Contents

Introduction

Prerequisites

Requirements

Componentes Utilizados

Conventions

Diagrama de Rede

Problema

Troubleshoot

Solução

Informações Relacionadas

Introduction

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).

Prerequisites

Requirements

Use estes recursos para entender melhor alguns dos conceitos que este documento usa:

- Visão geral do Cisco Express Forwarding

- Seleção de Rota em Cisco Routers

Componentes Utilizados

Este documento não se restringe a versões de software e hardware específicas.

Conventions

For more information on document conventions, refer to the Cisco Technical Tips Conventions.

Diagrama de Rede

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.

Problema

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

!

Troubleshoot

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:

1. O serial 8/0 no R2 se desconecta.

2. R2 tem um pacote destinado a 10.10.34.4.

3. O R2 segue a rota padrão de backup apontada diretamente para a Ethernet 0/0.

4. R2 envia uma solicitação ARP para 10.10.34.4.

5. R1 (Proxy) responde à solicitação ARP com seu próprio endereço MAC para R2.

6. R2 agora tem uma entrada ARP para 10.10.34.4 com o endereço MAC de R1.

7. 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.

8. Serial 8/0 em R2 aparece.

9. 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.

10. O R1 aprende o prefixo 10.10.34.0/24 via iBGP de R2 e o instala na tabela de roteamento IP.

11. R1 tem um pacote destinado a 10.10.34.4.

12. R1 procura na sua tabela de roteamento, corresponde às rotas de prefixo do iBGP para R2 e às rotas para R2.

13. 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.

Solução

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

Informações Relacionadas

- Troubleshooting do balanceamento de carga em links paralelos usando o Cisco Express Forwarding

- Como verificar a switching Cisco Express Forwarding

- Troubleshooting de Inconsistências de Prefixo com o Cisco Express Forwarding

- Troubleshooting de Adjacências Incompletas com o Cisco Express Forwarding

- Página de suporte do Cisco Express Forwarding

- Páginas de Suporte aos Protocolos de IP Routing

- Suporte Técnico e Documentação - Cisco Systems