Encaminhamento interior OSPF (terceiro trabalho laboratorial) FEUP/DEEC Redes de Banda Larga MIEEC 2009/10 José Ruela
Bancada de trabalho
Topologia genérica (OSPF e BGP)
Objectivo e descrição sumária Os dois trabalhos sobre encaminhamento têm como objectivo a familiarização com os conceitos de Sistema Autónomo (Autonomous System AS), encaminhamento interior e exterior e utilização de protocolos representativos de cada tipo A topologia genérica é usada para estudar e analisar estes protocolos Um protocolo de encaminhamento interior (IGP Interior Gateway Protocol) é necessário em cada AS OSPF (Open Shortest Path First) é usado neste contexto Um protocolo de encaminhamento exterior (EGP Exterior Gateway Protocol) é executado entre ASs BGP-4 (Border Gateway Protocol version 4) é usado com este objectivo Neste trabalho apenas será analisado o protocolo OSPF e portanto apenas se consideram ASs isolados (cada bancada representa um AS e portanto os grupos trabalham de forma independente) No trabalho seguinte o estudo será estendido de modo a cobrir os protocolos OSPF e BGP-4 (pelo que as configurações de cada AS deverão ser mantidas, de acordo com o definido para o trabalho descrito neste guião)
Sistemas Autónomos Internet service provider Border routers Autonomous system or domain LAN level Border routers Intradomain level Interdomain level
Encaminhamento intra e inter domínio (IGP e EGP) AS A R R IGP R EGP IGP R R EGP R AS C R IGP R AS B
Descrição genérica Deverão ser configurados seis Sistemas Autónomos AS65001 a AS65006 (um por bancada ) OSPF (este trabalho) A configuração de cada AS deve ser feita de acordo com os detalhes apresentados na topologia genérica Os servidores GNUyi devem ser configurados para desempenhar o papel de routers (devendo também ser activado IP forwarding no GNUy2) Todos os routers no mesmo AS (C1841 e GNUyi) executam processos OSPF e estão na mesma área (OSPF 0) OSPF e BGP (trabalho seguinte) Os routers Cisco C1841 devem ser ligados por meio de interfaces série E1 (2 Mbit/s) Os routers Cisco C1841 são Area Border Routers (ABR) e trocam informação de encaminhamento com outros ASs por meio de BGP-4
OSPF aspectos de configuração Cada grupo deve configurar em cada bancada duas subredes IP associadas a duas VLANs configuradas no comutador (CAT 2960) Os endereços IP devem ser atribuídos às interfaces conforme representado na topologia genérica O pacote de encaminhamento Quagga ( zebra e daemon OSPF) deve ser instalado em cada servidor GNUyi O router Cisco (C1841) deve ser configurado como gateway para a default network e fazer os anúncios correspondentes por meio de OSPF Designated router (DR) e backup designated router (BDR) O DR e o BDR são eleitos com base no parâmetro router id É possível forçar a escolha do DR e do BDR alterando as prioridades e/ou atribuindo endereços a interfaces loopback Os custos das ligações são calculados com base numa largura de banda de referência ( reference bandwidth ) custo = ref_bw / bw A largura de banda de referência por omissão pode ser diferente no router Cisco e nos servidores GNU
Testes (1/2) 1. Com configurações por omissão (default) Usar Wireshark para capturar tráfego OSPF Verificar se existe conectividade entre máquinas na mesma subrede e em subredes diferentes (executar ping para interfaces de rede relevantes) Verificar se as vizinhanças / adjacências foram aprendidas pelos routers, identificando o DR e o BDR eleitos em cada subrede (porquê estas escolhas?) show ip ospf neighbor Verificar quais as rotas aprendidas e os custos correspondentes zebra: show ip route; ospfd: show ip ospf route 2. Alterar as configurações (se necessário) para forçar o GNUy2 e o router C1841 a serem, respectivamente, o DR e o BDR (em ambas as redes) Verificar se o DR e o BDR foram eleitos como pretendido Para os testes restantes, alterar (se necessário) as configurações de modo que a mesma largura de banda de referência seja usada pelo router Cisco e pelos GNUs
Testes (2/2) 3. Com as novas configurações Registar a informação relevante relativa às tabelas de encaminhamento (rotas aprendidas e seleccionadas, custo de rotas, etc.) em todos os sistemas Executar traceroute em cada servidor GNU usando como alvo os endereços IP de todas as interfaces dos outros sistemas Confirmar que os resultados obtidos com traceroute são coerentes com o conteúdo das tabelas de encaminhamento previamente registado Considerar em particular traceroute envolvendo o GNUy1 e o GNUy3 e verificar se ocorre distribuição de carga (load balancing), em percursos com o mesmo custo 4. Interromper a ligação entre o GNUy1 e o GNUy2 (por exemplo, remover o cabo entre o GNUy2 e o comutador e desactivar a interface eth0) Usar Wireshark para capturar tráfego OSPF (após a interrupção) Repetir os testes anteriores e registar a informação relevante Verificar quais as alterações que tiveram lugar (e explicar porquê) Todos os resultados devem ser analisados e explicados
Relatório Deve ser produzido um relatório no prazo de dez dias após a conclusão do trabalho Deve ser enviada uma versão electrónica para jruela@fe.up.pt A entrega de cópia em papel é opcional O relatório deve incluir, para cada teste A(s) figura(s) correspondente(s) ao cenário de comunicação testado As configurações dos sistemas (router, comutador, daemons OSPF com o Quagga nos servidores GNU) Testes de conectividade e rotas (ping, traceroute), documentados com a análise de capturas de tráfego relevantes e o conteúdo de tabelas (e.g., informação OSPF, tabelas de encaminhamento, etc.) quando apropriado Interpretação e comentários dos resultados (para além das respostas às questões colocadas)
Anexo
Quagga instalação Instalação do software nos servidores GNUyi apt-get update apt-get install quagga Copiar os templates fornecidos pelo Quagga cp /usr/share/doc/quagga/examples/ospfd.conf.sample /etc/quagga/ospfd.conf cp /usr/share/doc/quagga/examples/zebra.conf.sample /etc/quagga/zebra.conf Editar o ficheiro onde são declarados os daemons (/etc/quagga/daemons) Alterar parâmetros zebra e ospfd para yes Reiniciar o serviço /etc/init.d/quagga restart Configuração do zebra telnet localhost 2601 Configurar interfaces (eth0 / eth1) e endereços IP Configuração do OSPF telnet localhost 2604 Configurar daemon OSPF (redes / área, prioridades, etc.)
Quagga configuração de interfaces (zebra) telnet localhost 2601 User Access Verification Password: Router> enable Password: Router# configure terminal Router (config)# interface eth0 Router (config-if)# ip address address / mask Router (config-if)# no shutdown Router (config-if)# end Router# write (Configuration saved to /etc/quagga/zebra.conf) Router# show ip route
Quagga configuração de OSPF telnet localhost 2604 Password: ospfd> enable ospfd# configure terminal ospfd (config)# router ospf ospfd (config-router)# network network address / mask area 0.0.0.0 ospfd (config-router)# end ospfd (config)# interface eth0 ospfd (config-if)# ip ospf priority priority value ospfd# write (Configuration saved to /etc/quagga/ospfd.conf) ospfd# show ip ospf / show ip ospf route / show ip ospf database ospfd# show ip ospf interface [interface] / show ip ospf neighbor [interface]
Router C1841 configuração de OSPF Criação de processo OSPF rtr(config)#router ospf process-id Configuração de rede rtr(config-router)#network ip-address wildcard-mask area area-id Anúncio de default route rtr(config-router)#default-information originate always Criação e configuração de interface de loopback rtr(config)#interface loopback 0 rtr(config-if)#ip address ip-address mask Alteração de largura de banda de referência rtr(config-router)#auto-cost reference-bandwidth ref-bw Alteração do parâmetro de prioridade rtr(config-router)#interface interface type interface-number (e.g. fastethernet 0/0.x) rtr(config-if)#ip ospf priority value Display de informação geral sobre processos OSPF rtr#show ip ospf [process-id] rtr#show ip ospf neighbor rtr#show ip ospf.. Display da tabela de encaminhamento rtr#show ip route
OSPF divisão em áreas (exemplo) Link to other AS Area 0.0.0.0 N1 R1 N5 R Router N Network R2 N2 R3 R4 R5 R6 N4 R7 N6 N3 Area 0.0.0.1 R8 Area 0.0.0.2 ASBR AS Boundary Router ABR Area Border Router IR Internal Router BBR Backbone Router N7 ASBR: 4 ABR: 3, 6, 8 IR: 1, 2, 7 BBR: 3, 4, 5, 6, 8 Area 0.0.0.3
OSPF tipos de pacotes Hello Database Description Link State Request Link State Update Link State Ack
OSPF cabeçalho dos pacotes 0 8 16 31 Version Type Packet length Router ID Area ID Checksum Authentication type OSPF common header Authentication Authentication Data OSPF packet body
Hello 0 16 24 31 Network mask Hello interval Options Priority Dead interval Designated router Backup designated router Neighbour 1..... Neighbour n
Database Description 0 16 24 29 31 Interface MTU Options Zero I M M S Database Description Sequence Number LSA Header LSA Link State Advertisement
Database Description LSA Header 0 16 24 31 Link-state age Options Link-state type Link-state ID Advertising router Link-state sequence number Link-state checksum Length
Link State Request 0 31 Link-state type Link-state ID Advertising router...
Link State Update e Link State Ack 0 31 Number of LSAs LSA 1... LSA n
Links úteis Documentação online dos routers Cisco http://cisco.com Cisco IOS IP Routing Protocols Configuration Guide http://cisco.com/en/us/docs/ios/iproute/configuration/guide/12_4/irp_12_4_book.pdf OSPF configuração http://www.cisco.com/en/us/docs/ios/iproute_ospf/configuration/guide/iro_cfg.pdf Quagga / Zebra http://www.quagga.net http://www.openmaniak.com/quagga.php http://www-106.ibm.com/developerworks/linux/library/l-emu/?ca=dgr-lnxw02zebra