Trabalho 5 - VLAN e SNMP


Teoria/HowTo/Referências

Objectivo

No emulador de rede GNS3 dentro da VM a correr no sistema de virtualização deve configurar a rede da seguinte figura segundo as indicações dadas abaixo:

Rede Trabalho 5

Questões/Traces/Análise

  1. Inicie capturas wireshark no groucho e na interface f1/0 de R1.
    1. Faça um ping de groucho para R1 e capture o primeiro ICMP Echo Request enviado em ambas as interfaces. As imagens das capturas devem ilustrar claramente as diferenças. (2×capRes)
    2. Quais foram as diferenças encontradas e a que se devem? (texRes)
  2. Inicie capturas wireshark em groucho e na interface f1/0 de R1. Altere o endereço IP de averell para 10.0.0.4, que pertence à mesma subnet de groucho. Faça um ping de averell para groucho. Diga o que observa e explique a razão para ser assim. (texRes)
    Reponha agora o endereço IP original de averell:  ip 172.20.0.2 255.255.255.0 172.20.0.1 
  3. Active o encaminhamento em R1 (deverá ficar activo para todas as restantes perguntas) e inicie uma captura na sua interface f1/0. Faça um ping de groucho para averell. O que observa em relação aos pacotes ICMP? (capRes + texRes) Use um filtro para mostrar apenas os pacotes relevantes na captura.
  4. Faça as alterações necessárias para a ligação entre R1 e o terminal linux funcionar em modo trunk, adicionando neste último uma interface na VLAN 10 com o endereço IP 10.0.0.5.
    1. Indique as configurações que teve de fazer. (confRes)
    2. Faça uma captura wireshark na interface f1/3 de R1. A partir do terminal linux faça ping aos endereços de R1 nas VLAN 1 e 10. Mostre a captura de um pacote de cada um dos pings que ilustre a diferença. (2×capRes)
    3. Como explica o que observou na alínea anterior? (texRes)
    Reponha agora a configuração anterior a esta pergunta (ligação entre R1 e terminal linux em modo acesso).
  5. Altere as configurações de SW1 e R1 de modo a que a ligação entre eles fique em modo acesso na VLAN 10.
    1. Verifique que consegue fazer ping do groucho para o harpo, mas não do averell para o joe. (outRes)
    2. Altere a configuração de R1 para que a sua ligação a SW1 fique em modo acesso na VLAN 20 (note que esta ligação fica com VLAN diferentes nas duas pontas). Repita os pings da alínea anterior e verifique que não consegue fazer nenhum deles. Porquê? (texRes) Para compreender melhor o que se passa pode fazer capturas Wireshark em harpo e joe.
    Reponha agora a configuração anterior a esta pergunta (ligação entre SW1 e R1 em modo trunk).
  6. Utilize na shell do Linux os comandos snmp* para comunicar com o agente SNMP no router Cisco, usando a comunidade só de leitura sempre que possível. Para as capturas, use o wireshark na interface ligada ao router com um filtro de visualização de modo a que apenas sejam mostradas as mensagens SNMP.
    1. Tente fazer um get ao OID iso.org.dod.internet.mgmt.mib-2.system.sysDescr de R1. Por que razão não conseguiu? (texRes)
    2. Modifique o comando usado na alínea anterior de modo a obter a a descrição do sistema (objecto sysDescr) do R1. Indique o comando usado e a sua saída. (outRes)
    3. Faça um getnext ao mesmo OID usado na alínea anterior. Para que serve o getnext? (texRes)
    4. Faça um walk a iso.org.dod.internet.mgmt.mib-2.interfaces. Na captura, compare o OID do primeiro pedido getnext com o início dos OIDs de todas as respostas, prestando especial atenção à última. Diga para que serve o walk e explique como funciona, indicando as mensagens SNMP a partir das quais se constrói e as condições de terminação. (capRes + texRes)
    5. Com base nos resultados da alínea anterior, diga quantas interfaces tem o router e quais são elas. (texRes)
    6. Obtenha o valor de system.sysName usando um get. Altere esse valor usando um set e confirme o sucesso da operação na consola de R1. Mostre o comando usado para fazer o set. (outRes)
    7. Faça um walk e um bulkwalk à sub-árvore system da MIB-2. Qual é a diferença entre estes dois comandos e em que se traduz na prática? (2×capRes + texRes)
    8. Usando o snmpnetstat, obtenha informação sobre as interfaces de R1 ( -Ci ) e a sua tabela de encaminhamento ( -Cr ). (outRes)
  7. O SNMP permite gerir objectos estruturados de forma tabular.
    1. Usando o comando snmptable no OID ip.ipAddrTable obtenha a tabela de informação sobre os endereços IP de R1 (se a tabela tiver demasiadas colunas para caber no terminal, use a opção  -Cw 64  para a partir). (outRes)
    2. Com base na sua definição no módulo IP-MIB, explique o que faz com que ip.ipAddrTable seja uma tabela. (texRes)
    3. Diga como se mapeiam as linhas (índices) e as colunas de uma tabela em OIDs na estrutura em árvore da MIB. (texRes)
  8. Configure em R1 a emissão de (alguns) traps para o PC usando:
    snmp-server host 172.16.1.2 <community>
    snmp-server enable traps snmp
    No PC, edite o ficheiro /etc/snmp/snmptrapd.conf, acrescentando-lhe a linha
    authCommunity log <community>
    e lance o receptor de traps: snmptrapd -n -f -Lo.
    1. Inicie uma nova captura wireshark na interface f1/3 de R1. Simule a falha da ligação da interface f1/2 desactivando-a administrativamente (shutdown). O que observa? (capRes + texRes)
    2. Em R1 adicione uma rota para 172.16.2.0/24 através do terminal linux (R1 deve ter o encaminhamento activo). Mude a configuração do SNMP de modo a que os traps sejam enviados para 172.16.2.2 em vez de 172.16.1.2 (esses pacotes serão enviados para o terminal linux, que é a default gateway para R1, mas não vão ser recebidos, dado que não existe nenhuma máquina com o IP 172.16.2.2). Reactive a interface f1/2 de R1 e capture a troca de pacotes. (capRes)
    3. Na configuração de R1, substitua a linha snmp-server host 172.16.2.2 <community> pela linha snmp-server host 172.16.2.2 informs version 2c <community>, para usar informs (versão 2c) em vez de traps . Capture com o wireshark a troca de pacotes quando em R1 desactiva ou reactiva a porta f1/2. (capRes)
    4. Altere novamente a linha alterada na alínea anterior de modo a que os informs sejam enviados para 172.16.1.2. Repita a captura. (capRes)
    5. Com base nas alíneas anteriores, comente as diferenças entre o uso de informs e de traps, bem como as implicações práticas dessas diferenças. (texRes)
  9. Para experimentar o modelo de segurança do SNMPv3, adicione um grupo para autenticação e outro para cifragem usando os seguintes comandos (pode usar outras cifras em vez da DES):
    snmp-server group <authgroup> v3 auth
    snmp-server user <authuser> <authgroup> v3 auth md5 <authpassword>
    snmp-server group <privgroup> v3 priv
    snmp-server user <privuser> <privgroup> v3 auth md5 <authpassword> priv des <privpassword>
    1. Faça uma captura dos pacotes trocados quando executa os seguintes comandos (3×capRes)
      • snmpgetnext -v2c -c <community> 172.16.1.1 system.sysName
      • snmpgetnext -v3 -l authNoPriv -u <authuser> -a md5 -A <authpassword> 172.16.1.1 system.sysName
      • snmpgetnext -v3 -l authPriv -u <privuser> -a md5 -A <authpassword> -x des -X <privpassword> 172.16.1.1 system.sysName
    2. Compare a segurança nos três casos. (texRes)