Este documento ajuda a resolver o problema de loops de roteamento e roteamento subotimizado do Cisco Express Forwarding (CEF) causados por uma adjacência em cache válida do Cisco Express Forwarding que indica a interface incorreta. Uma adjacência com uma interface incorreta é criada pelas seguintes razões:
Uma rota estática aponta diretamente para uma interface multiacesso.
Uma adjacência válida do Cisco Express Forwarding é criada como resultado das respostas do Proxy Address Resolution Protocol (ARP).
Use estes recursos para entender melhor alguns dos conceitos que este documento usa:
Este documento não se restringe a versões de software e hardware específicas.
For more information on document conventions, refer to the Cisco Technical Tips Conventions.
O roteador R1 se conecta ao R3 via Serial 8/0 e o roteador R2 se conecta ao R4 via Serial 8/0. R1 e R2 estão conectados via Ethernet 0/0, como mostrado na figura.
O R2 recebe atualizações de prefixo de protocolo de gateway de bordo externo (eBGP) para 10.10.34.0/24 do R4. R2 propaga esse prefixo para R1 por meio do BGP interno (iBGP).
R2 tem uma rota padrão estática (0.0.0.0/0) que aponta para o endereço IP serial 8/0 de R4 10.10.24.4.
R2 também tem uma rota padrão flutuante de backup (rota IP 0.0.0.0 0.0.0.0 Ethernet0/0 10) que aponta para a interface Ethernet 0/0 para rotear pacotes se a conexão serial entre R2 e R4 falhar.
R1 tem uma rota padrão que aponta para a Serial 8/0 de R3 com o endereço IP 10.10.13.3.
O tráfego IP destinado a 10.10.34.0/24 é bloqueado entre R1 e R2. Observe a saída do comando traceroute em R1.
R1#traceroute 10.10.34.4 Type escape sequence to abort. Tracing the route to 10.10.34.4 1 192.168.12.2 20 msec 20 msec 20 msec 2 192.168.12.1 8 msec 12 msec 8 msec 3 192.168.12.2 8 msec 8 msec 12 msec 4 192.168.12.1 12 msec ...
Observe que o tráfego destinado ao 10.10.34.4 salta entre o a Ethernet 0/0 do R1 (endereço IP 192.168.12.1) e a Ethernet 0/0 do R2 (endereço IP 192.168.12.2). Idealmente, o tráfego de R1 destinado a 10.10.34.0/24 precisa ir para R2 devido ao prefixo aprendido de iBGP 10.10.34.0/24. Em seguida, de R2, o tráfego deve rotear para R4. No entanto, a saída do comando traceroute confirma um loop de roteamento entre R1 e R2.
R1 |
---|
hostname R1 ! ip subnet-zero ! ip cef ! interface Ethernet0/0 ip address 192.168.12.1 255.255.255.0 ! interface Serial8/0 ip address 10.10.13.1 255.255.255.0 ! router bgp 11 no synchronization bgp log-neighbor-changes neighbor 10.10.13.3 remote-as 12 neighbor 192.168.12.2 remote-as 11 no auto-summary ! ip route 0.0.0.0 0.0.0.0 10.10.13.3 |
R2 |
---|
hostname R2 ! ip cef ! interface Ethernet0/0 ip address 192.168.12.2 255.255.255.0 ! interface Serial8/0 ip address 10.10.24.2 255.255.255.0 ! router bgp 11 no synchronization bgp log-neighbor-changes network 192.168.12.0 neighbor 10.10.24.4 remote-as 10 neighbor 192.168.12.1 remote-as 11 neighbor 192.168.12.1 next-hop-self no auto-summary ! ip route 0.0.0.0 0.0.0.0 10.10.24.4 ip route 0.0.0.0 0.0.0.0 Ethernet0/0 10 ! |
Como os pacotes destinados a 10.10.34.4 ficam em loop entre R1 e R2, comece a solucionar o problema. Primeiro, verifique o roteamento IP em R1. A saída do comando show ip route 10.10.34.0 confirma o salto seguinte de 192.168.12.2 para pacotes destinados a 10.10.34.0/24. Isso corresponde ao primeiro salto do comando traceroute, onde os pacotes são enviados para o salto seguinte 192.168.12.2, que confirma que os pacotes são comutados corretamente em R1.
R1#show ip route 10.10.34.0 Routing entry for 10.10.34.0/24 Known via "bgp 11", distance 200, metric 0 Tag 10, type internal Last update from 192.168.12.2 00:22:59 ago Routing Descriptor Blocks: * 192.168.12.2, from 192.168.12.2, 00:22:59 ago Route metric is 0, traffic share count is 1 AS Hops 1
A próxima etapa é verificar a tabela de roteamento de IP do R2. Como essa saída do comando show ip route 10.10.34.0 mostra, os pacotes destinados a 10.10.34.0 devem ser roteados para o salto seguinte 10.10.24.4 na Serial 8/0. No entanto, o comando traceroute mostra os pacotes comutados de volta para R1 para o endereço IP 192.168.12.1. É necessária uma investigação mais profunda sobre por que os pacotes destinados a 10.10.34.0 são comutados em R2 para o salto seguinte 192.168.12.1 (como na saída do comando traceroute) em vez de para 10.10.24.4.
R2#show ip route 10.10.34.0 Routing entry for 10.10.34.0/24 Known via "bgp 11", distance 20, metric 0 Tag 10, type external Last update from 10.10.24.4 00:42:32 ago Routing Descriptor Blocks: * 10.10.24.4, from 10.10.24.4, 00:42:32 ago Route metric is 0, traffic share count is 1 AS Hops 1
Neste ponto, é importante entender que em uma rede comutada do Cisco Express Forwarding, uma decisão de encaminhamento de pacotes consiste em:
Uma pesquisa de tabela de roteamento para a correspondência de prefixo mais longa.
Uma pesquisa na base de informações de encaminhamento (FIB).
Como a tabela de roteamento é verificada, examine o FIB do Cisco Express Forwarding. Nos resultados do comando show ip cef 10.10.34.4 detail, observe que o Cisco Express Forwarding comuta 10.10.34.4 para Ethernet 0/0 em vez do próximo salto 10.10.24.4 para Serial 8/0 (como mostrado no show ip route 10.10.30.34 saída do comando). Essa discrepância cria loops na rede.
R2#show ip cef 10.10.34.4 detail 10.10.34.4/32, version 19, cached adjacency 10.10.34.4 0 packets, 0 bytes via 10.10.34.4, Ethernet0/0, 0 dependencies next hop 10.10.34.4, Ethernet0/0 valid cached adjacency
A próxima etapa é examinar a tabela de adjacências do Cisco Express Forwarding e ver como o Cisco Express Forwarding aprende a comutar pacotes da Ethernet 0/0. Observe que a adjacência é criada por causa do ARP.
R2#show adjacency ethernet 0/0 detail | begin 10.10.34.4 IP Ethernet0/0 10.10.34.4(5) 50 packets, 2100 bytes AABBCC006500AABBCC0066000800 ARP 03:02:00
Esta saída do comando show ip arp é uma confirmação.
R2#show ip arp 10.10.34.4 Protocol Address Age (min) Hardware Addr Type Interface Internet 10.10.34.4 60 aabb.cc00.6500 ARPA Ethernet0/0
Em seguida, descubra por que essa entrada ARP foi criada quando há uma rota IP na tabela de roteamento. Examine a tabela de roteamento novamente.
R2#show run | include ip route 0.0.0.0 ip route 0.0.0.0 0.0.0.0 10.10.24.4 ip route 0.0.0.0 0.0.0.0 Ethernet0/0 10
Se a conexão serial falhar entre R2 e R4, todo o tráfego é roteado com o uso de uma rota estática flutuante para fora da Ethernet 0/0 porque R2 tem uma rota estática flutuante que aponta para a interface multiacesso Ethernet 0/0, e não para o endereço IP Ethernet 192.168.12.1 de R1. Portanto, para todos os destinos desconhecidos, o roteador R2 envia uma solicitação ARP através da interface Ethernet0/0. Nesse caso, R2 perdeu a rota mais específica para a rede 10.10.34.0. Portanto, quando o pacote de dados chega aos hosts nessa rede, ele gera uma solicitação ARP através da interface Ethernet. Como o Proxy ARP é ativado por padrão na interface Ethernet de R1 e tem uma rota padrão que aponta para R3, ele responde com uma resposta Proxy ARP com seu próprio endereço MAC. Portanto, R2 envia todo o tráfego para R1 e R1 encaminha todo o tráfego com o uso de sua rota padrão (0.0.0.0/0) para o AS 12 e, consequentemente, para 10.10.34.4 via Internet.
Quando R2 recebe a resposta ARP de proxy de R1, cria uma adjacência válida de /32 Cisco Express Forwarding que aponta para a interface Ethernet 0/0. Essa entrada do Cisco Express Forwarding não expira até que o roteador R1 do proxy ARP esteja presente no segmento Ethernet. Assim, a entrada /32 Cisco Express Forwarding continua a ser usada para o Cisco Express Forwarding-comutar os pacotes, mesmo depois que a conexão serial entre R2 e R4 estiver de volta e a rota padrão da tabela de roteamento apontar Serial 8/0 para AS 10. O resultado é um circuito de roteamento.
Por fim, analise os registros e veja se o link serial (s8/0) sincronizou. Isso faz com que uma rota estática flutuante seja instalada na tabela de roteamento, o que leva ao proxy ARP e resulta na instalação de uma entrada do Cisco Express Forwarding de 10.10.34.4/32 no Cisco Express Forwarding FIB.
R2#show log | beg Ethernet0/0 [..] %LINEPROTO-5-UPDOWN: Line protocol on Interface Serial8/0, changed state to down %BGP-5-ADJCHANGE: neighbor 10.10.24.4 Down Interface flap %LINEPROTO-5-UPDOWN: Line protocol on Interface Serial8/0, changed state to up %BGP-5-ADJCHANGE: neighbor 10.10.24.4 Up
Os registros confirmam a causa. Em resumo, estas etapas mostram a sequência de eventos:
O serial 8/0 no R2 se desconecta.
R2 tem um pacote destinado a 10.10.34.4.
O R2 segue a rota padrão de backup apontada diretamente para a Ethernet 0/0.
R2 envia uma solicitação ARP para 10.10.34.4.
R1 (Proxy) responde à solicitação ARP com seu próprio endereço MAC para R2.
R2 agora tem uma entrada ARP para 10.10.34.4 com o endereço MAC de R1.
O R2 cria uma adjacência do Cisco Express Forwarding para 10.10.34.4 e uma entrada 10.10.34.4/32 é instalada na tabela Cisco Express Forwarding (FIB) para esse destino via Ethernet 0/0. Essa entrada do Cisco Express Forwarding é mantida enquanto a entrada ARP for válida ou até que R1 esteja presente no segmento Ethernet.
Serial 8/0 em R2 aparece.
O R2 aprende a rota de eBGP 10.10.34.0/24 do R4 com o próximo salto 10.10.24.4 e instala a rota na tabela de IP Routing.
O R1 aprende o prefixo 10.10.34.0/24 via iBGP de R2 e o instala na tabela de roteamento IP.
R1 tem um pacote destinado a 10.10.34.4.
R1 procura na sua tabela de roteamento, corresponde às rotas de prefixo do iBGP para R2 e às rotas para R2.
O R2 recebe um pacote destinado a 10.10.34.4. Como já tem uma entrada do Cisco Express Forwarding para 10.10.34.4/32 que aponta para a Ethernet 0/0 em sua tabela FIB com o endereço MAC de R1, ele envia o pacote de volta para R1 sem consultar a tabela de roteamento. Isso cria um loop.
Substitua a rota estática flutuante que aponta diretamente para a Ethernet 0/0 por uma que aponte para um endereço do próximo salto.
R2(config)#no ip route 0.0.0.0 0.0.0.0 ethernet 0/0 10 R2(config)# ip route 0.0.0.0 0.0.0.0 192.168.12.1 10
Quando você tem uma rota estática que aponta para o endereço IP do próximo salto em vez de uma interface Ethernet 0/0 multiacesso, ela impede que R2 envie solicitações ARP para todos os destinos. Os pacotes são roteados e comutados com base no salto seguinte 192.168.12.1. Portanto, quaisquer entradas e loops do Cisco Express Forwarding ARP são evitados.
Observe a entrada do Cisco Express Forwarding em R2 que aponta para a interface serial 8/0 correta.
R2#show ip cef 10.10.34.4 10.10.34.0/24, version 32, cached adjacency to Serial8/0 0 packets, 0 bytes via 10.10.24.4, 0 dependencies, recursive next hop 10.10.24.4, Serial8/0 via 10.10.24.0/24 valid cached adjacency