Contents

Introdução

Topologia

Requisitos de configuração de peering OSPF

Identificação e Solução de Problemas de Adjacência OSPF - Lista de Verificação Geral

Identificação e Solução de Problemas de Adjacência do OSPF - Falhas

Capturando o tráfego plano de controle no nó

Verificação do Wireshark

Cenários de Troubleshooting

Identificação e Solução de Problemas de Adjacência OSPF: Incompatibilidade de ID de Área

Identificação e Solução de Problemas de Adjacência OSPF:Incompatibilidade de Tipo de Área

Identificação e Solução de Problemas de Adjacência OSPF:ID de Roteador Duplicado

Troubleshooting de Adjacência OSPF:Incompatibilidade de MTU

Identificação e Solução de Problemas de Adjacência OSPF:Incompatibilidade de Autenticação

Troubleshooting de Adjacência do OSPF: Incompatibilidade de Temporizadores Hello/Dead

Troubleshooting de Adjacência OSPF:Incompatibilidade de Tipo de Interface

Broadcast

Ponto a Ponto

Folha de especificações do comando de verificação

Informações Relacionadas

Introdução

Este documento descreve a solução de problemas de Adjacências do Open Shortest Path First (OSPF) da Application Centric Infrastructure (ACI).

Topologia

Topologia

Requisitos de configuração de peering OSPF

O OSPF é um dos protocolos que você pode ativar entre a Cisco ACI e um roteador externo. A Cisco ACI oferece suporte a todas as opções comuns, como área OSPF, incluindo backbone, várias opções de stub, autenticação de vizinhos e outras opções semelhantes.

Uma L3Out inclui as opções do protocolo de roteamento, a configuração específica do switch (um perfil de nó) e as configurações específicas da interface (um perfil de interface). Os parâmetros relacionados ao OSPF podem ser configurados principalmente em dois lugares, como um roteador normal. A primeira é a configuração de Roteamento e Encaminhamento Virtual (VRF) ou de todo o Nó, como ID de área e tipo de área que pode ser configurada na própria L3Out. O segundo são os parâmetros no nível da interface, como o intervalo de hello do OSPF ou o tipo de interface (Broadcast, Point-to-Point (P2P)).

Estes são os requisitos para que a adjacência do OSPF seja estabelecida entre a folha de borda da ACI e o roteador externo:

1. O ID e o tipo da área OSPF devem corresponder

2. O ID do roteador OSPF deve ser exclusivo

3. A unidade de transmissão máxima (MTU) deve corresponder (por padrão, a estrutura a define como 9000 e a maioria dos Cisco IOS®/NXOS a define como 1500)

4. A chave e o tipo de autenticação do OSPF devem corresponder (se usados)

5. Os intervalos de Hello e de Dead do OSPF devem corresponder

6. O tipo de rede OSPF deve corresponder

O white paper forneceu uma explicação detalhada dos conceitos e opções de design relacionados à ACI L3Out para os protocolos de roteamento de suporte.

Consulte o white paper se não estiver familiarizado com a configuração L3Out e outros requisitos básicos.

Identificação e Solução de Problemas de Adjacência OSPF - Lista de Verificação Geral

Independentemente de a adjacência OSPF ter sido ativada antes ou nunca ter sido ativada, é melhor validar primeiro os requisitos básicos.

Etapa 1. Faça ping na interface de extremidade remota. Isso ajuda a confirmar se você tem alcance de IP para a extremidade oposta, que é um requisito principal para que o OSPF seja ativado.

iping -V <vrf> <remote_end_IP>

example:

BL-301# iping -V abc1:vrf-1 192.0.2.50

Etapa 2. Valide os parâmetros básicos de configuração:

1. O ID e o tipo da área OSPF devem corresponder

2. O ID do roteador OSPF deve ser exclusivo

3. A MTU deve ser compatível (por padrão, a estrutura a define como 9000 e a maioria do Cisco IOS/NXOS a define como 1500)

4. A chave e o tipo de autenticação do OSPF devem corresponder (se usados)

5. Os intervalos de Hello e de Dead do OSPF devem corresponder

6. O tipo de rede OSPF deve corresponder

As saídas do comando mostram os atributos de configuração enviados para a folha.

BL-301# show ip int bri vrf abc1:vrf-1

IP Interface Status for VRF "abc1:vrf-1"(137)

Interface            Address              Interface Status

vlan1                192.0.2.1/24         protocol-up/link-up/admin-up  --> l3out SVI

lo9                  192.168.0.1/32       protocol-up/link-up/admin-up  --> Router ID SVI

BL-301# show ip ospf interface vlan 1

Vlan1 is up, line protocol is up

IP address 192.0.2.1/24, Process ID default VRF abc1:vrf-1, area backbone

Enabled by interface configuration

State P2P, Network type P2P, cost 4

Index 84, Transmit delay 1 sec

1 Neighbors, flooding to 1, adjacent with 1

Timer intervals: Hello 10, Dead 40, Wait 40, Retransmit 5

Hello timer due in 00:00:03

No authentication

Number of opaque link LSAs: 0, checksum sum 0

BL-301# show int vlan 1 | egrep "MTU"

MTU 9000 bytes, BW 10000000 Kbit, DLY 1 usec

BL-301# show ip ospf vrf abc1:vrf-1 | grep Routing

Routing Process default with ID 192.168.0.1 VRF abc1:vrf-1 --> Router ID

Anote todos os detalhes destacados e confirme se os parâmetros de extremidade remota correspondentes estão em sincronia.

Identificação e Solução de Problemas de Adjacência do OSPF - Falhas

[+]From the border Leaf we can identify the state of the neighbor state

BL-301# show ip ospf neighbors vrf abc1:vrf-1

<<EMPTY>>

[+] You can check the associated faults to the VRF.

BL-301# moquery -c faultInst -x 'query-target-filter=wcard(faultInst.dn,"abc1:vrf-1")' | egrep "code|rule|dn|descr|lastTransition"

<<EMPTY>>

Existem alguns cenários sem falhas ativas no ambiente, mas pode haver um registro de falha F1385 (protocol-ospf-adjacency-down) na folha que nos indica a última vez que essa vizinhança esteve ativa ou se nunca esteve em pleno estado.

Você pode identificar isso com o moquery -c faultRecord -f 'fault.Inst.code=="F1385"' -x 'query-target-filter=wcard(faultRecord.dn,"abc1:vrf-1")' | grep dn comando.

Verifique o número de registros de falhas para qualquer data específica com o moquery -c faultRecord -f 'fault.Inst.code=="F1385"' -x 'query-target-filter=wcard(faultRecord.dn,"abc1:vrf-1")' -x 'query-target-filter=wcard(faultRecord.created,"2024-01-01")' | egrep "dn" | wc -l comando.

Você deve identificar a interface OSPF e os IPs configurados local e remotamente.

[+] Identify the IP applied on the external device from the ARP associated to the interface

BL-301# moquery -c arpAdjEp -x 'query-target-filter=wcard(arpAdjEp.ifId,"vlan1")' | grep "ip "

ip           : 192.0.2.50

Capturando o tráfego plano de controle no nó

Com a SVI (Source and Destination Switch Virtual Interface, interface virtual do switch de origem e destino) esperada do leaf de borda, você pode utilizar o utilitário tcpdump para verificar.

Observação: para isso, a interface kpm_inb, que permite que você veja todo o tráfego de rede do plano de controle da banda da CPU, é usada.

[+] Capture a single OSPF hello packet using TCPDUMP coming for local BL OSPF IP 192.0.2.1

BL-301# tcpdump src host 192.0.2.1 -vv -e -i kpm_inb

tcpdump: listening on kpm_inb, link-type EN10MB (Ethernet), capture size 262144 bytes

192.0.2.1 > ospf-all.mcast.net: OSPFv2, Hello, length 44

Router-ID 192.168.0.1, Backbone Area, Authentication Type: none (0)

Options [External]

Hello Timer 10s, Dead Timer 40s, Mask 255.255.255.0, Priority 1

[+] Capture a single OSPF hello packet using TCPDUMP coming from external device OSPF IP 192.0.2.50

BL-301# tcpdump src host 192.0.2.50 -vv -e -i kpm_inb

tcpdump: listening on kpm_inb, link-type EN10MB (Ethernet), capture size 262144 bytes

192.0.2.50 > ospf-all.mcast.net: OSPFv2, Hello, length 44

Router-ID 172.16.0.1, Backbone Area, Authentication Type: none (0)

Options [External]

Hello Timer 10s, Dead Timer 40s, Mask 255.255.255.0, Priority 1

Verificação do Wireshark

Você pode capturar o OSPF e o tráfego específico do HOST para analisá-lo no Wireshark.

BL-301# tcpdump -i kpm_inb proto ospf -vv -e -w - | tee /data/techsupport/Node-XXX_OSPF.pcap | tcpdump -r - host any

BL-301# tcpdump -xxxvi kpm_inb 'proto ospf and (host <<X.X.X.X>> or host <<Y.Y.Y.Y>>)' -w /data/techsupport/Node-XXX_OSPF_HOST.pcap

BL-301# tcpdump -i kpm_inb proto ospf -vv -e -w - | tee /data/techsupport/Node-XXX_OSPF_HOST.pcap | tcpdump -r - host X.X.X.X

Para capturas de pcap, você pode usar filtros do Wireshark pesquisando e usando Analisar > Aplicar como uma coluna.

ospf.area_id = para identificar AreaID

ospf.auth.type = para verificar se o Tipo de Autenticação configurado corresponde

ospf.hello.hello_interval = para verificar MTUs diferentes

ospf.hello.router_dead_interval = para verificar a configuração de intervalo dead diferente

ospf.srcrouter = RouterID

Cenários de Troubleshooting

Identificação e Solução de Problemas de Adjacência OSPF: Incompatibilidade de ID de Área

Na configuração do APIC com a ID de área 0.0.0.42, navegue para Fabric > Tenants > Networking > L3Outs > <<L3outName> > Policy > Main.

ID de área OSPF incorreta configurada 0.0.0.42

Da folha de borda:

[+] Check OSPF interface details to confirm current area

BL-301# show ip ospf interface vlan 1 | grep area

IP address 192.0.2.1/24, Process ID default VRF abc1:vrf-1, area 0.0.0.42

Or

BL-301# moquery -c ospfIf -x 'query-target-filter=wcard(ospfIf.id,"vlan1")' | grep area

area         : 0.0.0.42

[+] Capture a single packet TCPDUMP for local BL OSPF IP

BL-301# tcpdump src host 192.0.2.1 -vv -e -i kpm_inb -c 1

192.0.2.1 > ospf-all.mcast.net: OSPFv2, Hello, length 44

Router-ID 192.168.0.1, Area 0.0.0.42, Authentication Type: none (0)

Options [External]

Hello Timer 10s, Dead Timer 40s, Mask 255.255.255.0, Priority 1

[+] Capture a single OSPF hello packet using TCPDUMP coming from external device OSPF IP

BL-301# tcpdump src host 192.0.2.50 -vv -e -i kpm_inb -c 1

192.0.2.50 > ospf-all.mcast.net: OSPFv2, Hello, length 44

Router-ID 172.16.0.1, Backbone Area, Authentication Type: none (0)

Options [External]

Hello Timer 10s, Dead Timer 40s, Mask 255.255.255.0, Priority 1

Do dispositivo externo:

NX-OS# show logging log | tail -n 100 | grep ospf-bootcamp

2023 Dec 28 15:17:09 NX-OS %OSPF-4-AREA_ERR: ospf-bootcamp [22263] (301-l3-abc1) Packet from 192.0.2.1 on Ethernet1/2 received for wrong area 0.0.0.42

NX-OS# show ip ospf interface Ethernet1/2 | grep area

Process ID bootcamp VRF 301-l3-abc1, area 0.0.0.0

Solução: faça a correspondência da área OSPF com 0.0.0.0 ou backbone no BL ou 0.0.0.42 no dispositivo externo.

Identificação e Solução de Problemas de Adjacência do OSPF: Incompatibilidade de Tipo de Área

Na GUI da ACI, a configuração com o tipo de área NSSA ou Stub, navegue para Fabric > Tenants > Networking > L3Outs > "L3outName" > Policy > Main.

Configuração NSSA ou Stub Area.

Da folha de borda:

[+] Capture a single packet TCPDUMP for local BL OSPF IP

BL-301# moquery -c ospfArea -x 'query-target-filter=wcard(ospfArea.dn,"abc1:vrf-1")' | egrep "type"

type               : nssa

BL-301# tcpdump src host 192.0.2.1 -vv -e -i kpm_inb -c 1

192.0.2.1 > ospf-all.mcast.net: OSPFv2, Hello, length 44

Router-ID 192.168.0.1, Area 0.0.0.42, Authentication Type: none (0)

Options [NSSA]

Hello Timer 10s, Dead Timer 40s, Mask 255.255.255.0, Priority 1

or

BL-301# moquery -c ospfArea -x 'query-target-filter=wcard(ospfArea.dn,"abc1:vrf-1")' | egrep "type"

type               : stub

BL-301# tcpdump src host 192.0.2.1 -vv -e -i kpm_inb -c 1

192.0.2.1 > ospf-all.mcast.net: OSPFv2, Hello, length 44

Router-ID 192.168.0.1, Area 0.0.0.42, Authentication Type: none (0)

Options [none]

Hello Timer 10s, Dead Timer 40s, Mask 255.255.255.0, Priority 1

[+] Capture a single OSPF hello packet using TCPDUMP coming from external device OSPF IP

BL-301# tcpdump src host 192.0.2.50 -vv -e -i kpm_inb -c 1

192.0.2.50 > ospf-all.mcast.net: OSPFv2, Hello, length 44

Router-ID 172.16.0.1, Area 0.0.0.42, Authentication Type: none (0)

Options [External]

Hello Timer 10s, Dead Timer 40s, Mask 255.255.255.0, Priority 1

Do dispositivo externo:

[+] Check OSPF interfaces con vrf

NX-OS# show ip int bri vrf 301-l3-abc1

IP Interface Status for VRF "301-l3-abc1"(21)

Interface            IP Address      Interface Status

Lo1001               110.1.0.1       protocol-up/link-up/admin-up

Eth1/2.1120          192.0.2.50      protocol-up/link-up/admin-up

NX-OS# show ip ospf interface Ethernet1/2 | grep area

Process ID bootcamp VRF 301-l3-abc1, area 0.0.0.0

Solução: combine o tipo de área OSPF regularmente em L3Out ou faça a correspondência a partir do dispositivo externo.

Identificação e Solução de Problemas de Adjacência OSPF: ID do Roteador Duplicado

Um ID de roteador duplicado impede a formação da adjacência OSPF. Na estrutura da ACI, depois de configurar o ID do roteador OSPF, a folha cria um loopback com o endereço IP do ID do roteador. Como esse endereço é usado para loopback, você não pode fazer com que ele se sobreponha ao IP da interface usado, pois ele falha.

Neste exemplo, você pode confirmar se ele foi configurado incorretamente com o ID do roteador do dispositivo vizinho.

Na GUI da ACI, navegue até Fabric > Tenants > Networking > L3Outs > "L3outName" > "Node-X" > Configured Nodes > topology/pod-Y/node-X.

configurado incorretamente com a ID do roteador do dispositivo vizinho.

Da folha de borda:

[+] Check OSPF interfaces associated with the VRF

BL-301# show ip int bri vrf  abc1:vrf-1

IP Interface Status for VRF "abc1:vrf-1"(137)

Interface            Address              Interface Status

vlan1                192.0.2.1/24         protocol-up/link-up/admin-up

lo9                  172.16.0.1/32       protocol-up/link-up/admin-up

[+] Capture a single packet TCPDUMP for local BL OSPF IP

BL-301# tcpdump src host 192.0.2.1 -vv -e -i kpm_inb -c 1

192.0.2.1 > ospf-all.mcast.net: OSPFv2, Hello, length 44

Router-ID 172.16.0.1, Backbone Area, Authentication Type: none (0)

Options [External]

Hello Timer 10s, Dead Timer 40s, Mask 255.255.255.0, Priority 1

[+] Capture a single OSPF hello packet using TCPDUMP coming from external device OSPF IP

BL-301# tcpdump src host 192.0.2.50 -vv -e -i kpm_inb -c 1

192.0.2.50 > ospf-all.mcast.net: OSPFv2, Hello, length 48

Router-ID 172.16.0.1, Backbone Area, Authentication Type: none (0)

Options [External]

Hello Timer 10s, Dead Timer 40s, Mask 255.255.255.0, Priority 1

Do dispositivo externo

NX-OS# show logging log | tail -n 100 | grep ospf-bootcamp

2024 Jan  4 13:55:36 NX-OS %OSPF-4-DUPRID:  ospf-bootcamp [22263] (301-l3-abc1) Router 192.0.2.1 on interface Ethernet1/2.1120 is using our routerid, packet dropped

Solução: use IDs de roteador diferentes em ambos os dispositivos.

usar IDs de roteador diferentes em ambos os dispositivos

Troubleshooting de Adjacência OSPF: Incompatibilidade de MTU

Depois que dois roteadores vizinhos OSPF estabelecem comunicação bidirecional e concluem a eleição do DR (Designated Router)/BDR (em redes de broadcast), os roteadores fazem a transição para o estado Exstart. Nesse estado, os roteadores vizinhos estabelecem uma relação ativa/standby e determinam o número de sequência do descritor de banco de dados inicial (DBD) a ser usado durante a troca de pacotes DBD.

Depois que a relação ative/standby tiver sido negociada (o roteador com o maior ID de roteador se torna o ative), os roteadores vizinhos passam para o estado exchange. Nesse estado, os roteadores trocam pacotes de DBD, que descrevem todo o banco de dados do estado de link. Os roteadores também enviam pacotes de solicitação de estado de enlace, que solicitam mais Anúncios de estado de enlace (LSA) dos vizinhos.

Se as configurações de MTU para as interfaces de roteador vizinhas não corresponderem, os roteadores ficarão presos no estado Exstart/Exchange. Isso ocorre porque o roteador com a MTU mais alta envia um pacote maior que a MTU definida no roteador vizinho, portanto o roteador vizinho ignora o pacote.

Na configuração da GUI do APIC com a configuração de herança padrão, navegue até Fabric > Tenants > Networking > L3Outs > "L3outName" > "Node-X" > Logical Interface Profiles > OSPF Interface Profile.

Por padrão, a estrutura da ACI define o MTU da interface da camada 3 como 9000 em vez de 1500

Por padrão, a estrutura da ACI define o MTU da interface da camada 3 como 9000 em vez de 1500. Como a ACI tem uma MTU mais alta, ela continua a aceitar os pacotes de DBD do roteador externo e tenta confirmá-los.

Se o roteador externo tiver uma MTU mais baixa ou mais alta, ele ignorará os pacotes de DBD junto com o ACK da ACI, continuará a retransmitir o pacote de DBD inicial e permanecerá no estado Exstart/Exchange.

Da folha de borda:

[+]From the border Leaf we can identify the state of the neighborship relation

BL-301# show ip ospf neighbors vrf abc1:vrf-1

OSPF Process ID default VRF abc1:vrf-1

Total number of neighbors: 1

Neighbor ID     Pri State            Up Time  Address         Interface

172.16.0.1       1 EXCHANGE/ -      01:10:05 192.0.2.50      Vlan1

[+] You can check the associated faults to the Tenant:VRF / OSPF interface

BL-301# moquery -c faultInst -x 'query-target-filter=wcard(faultInst.dn,"abc1:vrf-1\/if-\[vlan1\]")' | egrep "code|rule|dn|descr|lastTransition"

code             : F1385

descr            : OSPF adjacency is not full, current state Exchange

dn               : topology/pod-1/node-301/sys/ospf/inst-default/dom-abc1:vrf-1/if-[vlan1]/adj-172.16.0.1/fault-F1385

lastTransition   : 2023-12-28T12:26:23.369-05:00

rule             : ospf-adj-ep-failed

title            : OSPF Adjacency Down

code             : F3592

descr            : OSPF interface vlan1 mtu is different than neighbor mtu

dn               : topology/pod-1/node-301/sys/ospf/inst-default/dom-abc1:vrf-1/if-[vlan1]/fault-F3592

lastTransition   : 2023-12-28T12:26:23.369-05:00

rule             : ospf-if-mtu-config-mismatch-err

[+] Identify the MTU applied on the OSPF interface

BL-301# show int vlan 1 | egrep "MTU"

MTU 9000 bytes, BW 10000000 Kbit, DLY 1 usec

[+] If the default configuration is on place there will be a missmatch with the 1500 default

BL-301# show ip ospf event-history adjacency | grep "neighbor mtu"

2023-12-28T12:24:31.986149000-05:00 ospf default [20751]: TID 21885:ospfv2_check_ddesc_for_nbr_state:492:(abc1:vrf-1-base) DBD from 192.0.2.50,neighbor mtu [1500] is smaller than if mtu 9000

[+] Or if the locally configured MTU is lower tham external router

[2023-12-28T14:05:48.495659000-05:00:T:ospfv2_check_ddesc_for_nbr_state:478] abc1:vrf-1DBD from 192.0.2.50,neighbor mtu [1500] is large than if mtu 1200

Soluções possíveis:

- Faça a correspondência da MTU em ambos os dispositivos

Quando uma MTU é alterada em ambos os lados, como a associação já está estabelecida, ela permanece dessa forma até a próxima negociação e pode ser acionada por vários motivos. Por exemplo, interface física inativa, reimplantação de política, recarregamento de folha, atualização e assim por diante.

Navegue até Fabric > Tenants > Networking > L3Outs > "L3outName" > "Node-X" > Logical Interface Profiles > OSPF Interface Profile  conforme mostrado na imagem.

MTU configurado para 1500

- Ignorar MTU na Política de Interface OSPF Associada restabelece a conectividade.

O problema com o MTU ignore pode aparecer quando o banco de dados OSPF cresce. Quando as MTUs diferem em apenas alguns bytes, a configuração pode funcionar por um longo tempo até que você tropece na combinação correta de LSAs que geram o DBD ou atualizam o pacote com o tamanho correto.

Os testes em um laboratório pequeno funcionam bem, mas a rede de produção pode encontrar comportamentos inesperados.

Navegue até Fabric > Tenants > Networking > L3Outs > "L3outName" > "Node-X" > Logical Interface Profiles > OSPF Interface Profile > Associated OSPF Interface Policy  conforme mostrado na imagem.

configuração de ignorar MTU

Identificação e Solução de Problemas de Adjacência OSPF: Incompatibilidade de Autenticação

Você pode ativar a autenticação no OSPF para trocar informações de atualização de roteamento com segurança. A autenticação OSPF não pode ser "nenhum" (ou zero), simples ou MD5. O método de autenticação 'none' significa que nenhuma autenticação é usada para o OSPF e é o método padrão. Com a autenticação simples, a senha passa em texto claro pela rede. Com autenticação MD5, a senha não passa pela rede.

Estes são os três tipos diferentes de autenticação compatíveis com OSPF.

Autenticação nula — também conhecida como Tipo 0 e significa que não há informações de autenticação inclusas no cabeçalho do pacote. Esse é o padrão.

Autenticação simples — Também chamada de Tipo 1 e usa senhas simples de texto claro.

Autenticação MD5 — também conhecida como Tipo 2 e usa senhas criptográficas MD5.

A autenticação não precisa ser definida. No entanto, se estiver configurada, todos os roteadores de peer do mesmo segmento deverão ter a mesma senha e o mesmo método de autenticação.

Na GUI da ACI, navegue até Fabric > Tenants > Networking > L3Outs > "L3outName" > "Node-X" > Logical Interface Profiles > OSPF Interface Profile  conforme mostrado na imagem.

Autenticações MD5 ou Simples configuradas

Do CLI:

[+] Check Authentication type configured

APIC# moquery -c ospfIfP -x 'query-target-filter=wcard(ospfIfP.dn,"tn-abc1\/out-Site2-L3Out-OSPF-BL-301")' | grep authType

authType     : simple

[+] Capture a single packet TCPDUMP for local BL OSPF IP

BL-301# tcpdump src host 192.0.2.1 -vv -e -i kpm_inb -c 1

192.0.2.1 > ospf-all.mcast.net: OSPFv2, Hello, length 44

Router-ID 192.168.0.1, Backbone Area, Authentication Type: simple (1)

Simple text password: cisco

Options [External]

Hello Timer 10s, Dead Timer 40s, Mask 255.255.255.0, Priority 1

or

[+] Check Authentication type configured

APIC# moquery -c ospfIfP -x 'query-target-filter=wcard(ospfIfP.dn,"tn-abc1\/out-Site2-L3Out-OSPF-BL-301")' | grep authType

authType     : md5

[+] Capture a single packet TCPDUMP for local BL OSPF IP

BL-301# tcpdump src host 192.0.2.1 -vv -e -i kpm_inb -c 1

192.0.2.1 > ospf-all.mcast.net: OSPFv2, Hello, length 44

Router-ID 192.168.0.1, Backbone Area, Authentication Type: MD5 (2)

Key-ID: 1, Auth-Length: 16, Crypto Sequence Number: 0x026c0a34

Options [External]

Hello Timer 10s, Dead Timer 40s, Mask 255.255.255.0, Priority 1

[+] Capture a single OSPF hello packet using TCPDUMP coming from external device OSPF IP

BL-301# tcpdump src host 192.0.2.50 -vv -e -i kpm_inb -c 1

192.0.2.50 > ospf-all.mcast.net: OSPFv2, Hello, length 48

Router-ID 172.16.0.1, Backbone Area, Authentication Type: none (0)

Options [External]

Hello Timer 10s, Dead Timer 40s, Mask 255.255.255.0, Priority 1

[+] Live OSPF trace Decode for VRF

BL-301# log_trace_bl_print_tool /var/sysmgr/tmp_logs/ospfv2_1_trace.bl | tail -n 250 | grep abc1:vrf-1 | grep key

[2024-01-04T16:23:29.650806000-05:00:T:ospfv2_set_authentication:70] abc1:vrf-1out pkt on Vlan1: auth simple text: key cisco

or

[2024-01-04T16:24:22.794682000-05:00:T:ospfv2_set_authentication:96] abc1:vrf-1out pkt on Vlan1: auth md5: key cisco, key id 1 Seq 40635829 (time 1704403462)

Do dispositivo externo:

NX-OS#  show logging log | tail -n 100 | grep ospf-bootcamp

2024 Jan  4 16:55:01 NX-OS %OSPF-4-AUTH_ERR:  ospf-bootcamp [22263] (301-l3-abc1) Received packet from 192.0.2.1 on Ethernet1/2.1120 with bad authentication 1

or

2024 Jan  4 16:55:20 NX-OS %OSPF-4-AUTH_ERR:  ospf-bootcamp [22263] (301-l3-abc1) Received packet from 192.0.2.1 on Ethernet1/2.1120 with bad authentication 2

Solução: combine autenticações.

Troubleshooting de Adjacência do OSPF: Incompatibilidade de Temporizadores Hello/Dead

Os pacotes hello do OSPF são pacotes que um processo OSPF envia aos seus vizinhos OSPF para manter a conectividade com esses vizinhos. Os pacotes hello são enviados em um intervalo configurável (em segundos). Os padrões são 10 segundos para um link Ethernet (para P2P e Tipo de Rede de Broadcast). Os pacotes hello incluem uma lista de todos os vizinhos para os quais um pacote hello foi recebido no intervalo dead. O intervalo dead também é configurável (em segundos) e assume como padrão quatro vezes o valor do intervalo hello. O valor de todos os intervalos de Hello deve ser o mesmo dentro de uma rede. Da mesma forma, o valor de todos os intervalos inativos deve ser o mesmo dentro de uma rede.

Esses dois intervalos trabalham juntos para manter a conectividade, indicando que o link está operacional. Se um roteador não receber um pacote hello de um vizinho dentro do intervalo dead, ele declarará esse vizinho como inativo.

Se os temporizadores hello e dead padrão do OSPF forem modificados na estrutura da ACI, eles deverão corresponder ao roteador externo.

Na GUI da ACI, navegue até Fabric > Tenants > Networking > L3Outs > "L3outName" > "Node-X" > Logical Interface Profiles > OSPF Interface Profile > Associated OSPF Interface Policy  conforme mostrado na imagem.

Temporizadores Hello/Dead personalizados

Da folha de borda:

[+] Check OSPF interface configuration

BL-301# show ip ospf interface vlan 1 | egrep "Timer|Network"

State P2P, Network type P2P, cost 4

Timer intervals: Hello 20, Dead 42, Wait 42, Retransmit 5

Or

BL-301# moquery -c ospfIf -x 'query-target-filter=wcard(ospfIf.id,"vlan1")' | egrep "deadIntvl|helloIntvl|nwT"

deadIntvl    : 42

helloIntvl   : 20

nwT          : p2p

Or

APIC# moquery -c ospfRsIfPol -x 'query-target-filter=wcard(ospfIfP.dn,"abc1\/out-Site2-L3Out-OSPF-BL-301")' | grep tnOspfIfPolName

tnOspfIfPolName  : Custom_OSPF_Interface_Policy

APIC# moquery -c ospfIfPol -x 'query-target-filter=wcard(ospfIfPol.name,"Custom_OSPF_Interface_Policy")' | egrep "deadIntvl|helloIntvl|nwT"

deadIntvl    : 42

helloIntvl   : 20

nwT          : p2p

[+] Capture a single packet TCPDUMP for local BL OSPF IP

BL-301# tcpdump src host 192.0.2.1 -vv -e -i kpm_inb -c 1

192.0.2.1 > ospf-all.mcast.net: OSPFv2, Hello, length 44

Router-ID 192.168.0.1, Backbone Area, Authentication Type: none (0)

Options [External]

Hello Timer 20s, Dead Timer 42s, Mask 255.255.255.0, Priority 1

[+] Capture a single OSPF hello packet using TCPDUMP coming from external device OSPF IP

BL-301# tcpdump src host 192.0.2.50 -vv -e -i kpm_inb -c 1

192.0.2.50 > ospf-all.mcast.net: OSPFv2, Hello, length 44

Router-ID 172.16.0.1, Backbone Area, Authentication Type: none (0)

Options [External]

Hello Timer 10s, Dead Timer 40s, Mask 255.255.255.0, Priority 1

Do dispositivo externo:

[+] Check OSPF interfaces con vrf

NX-OS# show ip int bri vrf 301-l3-abc1

IP Interface Status for VRF "301-l3-abc1"(21)

Interface            IP Address      Interface Status

Lo1001               110.1.0.1       protocol-up/link-up/admin-up

Eth1/2.1120          192.0.2.50      protocol-up/link-up/admin-up

[+] Check OSPF configuration by default Dead timer on NX-OS devices is 4 times hello interval

NX-OS# show run ospf all | section Ethernet1/2.1120 | grep hello

ip ospf hello-interval 10

[+] Check OSPF interface advertized parameters

NX-OS# show ip ospf interface Ethernet1/2.1120 | grep Timer

Timer intervals: Hello 10, Dead 40, Wait 40, Retransmit 5

Solução: combine os temporizadores do OSPF.

Identificação e Solução de Problemas de Adjacência OSPF: Incompatibilidade de Tipo de Interface

Esta seção descreve a solução de problemas quando Broadcast ou não especificado está configurado na ACI e o dispositivo externo é P2P.

Broadcast

- O tipo de rede Broadcast é o padrão para uma interface Ethernet OSPF ativada

- O tipo de rede Broadcast requer que um link suporte os recursos de Broadcast da Camada 2

- O tipo de rede Broadcast tem uma saudação de 10 segundos e um temporizador de Dead de 40 segundos (o mesmo que P2P)

- Um tipo de rede de broadcast OSPF requer o uso de um DR/BDR.

Ponto a Ponto

- Um tipo de rede OSPF P2P não mantém uma relação DR/BDR

- O tipo de rede P2P tem um hello de 10 segundos e um dead timer de 40 segundos

- Os tipos de rede P2P devem ser usados entre dois roteadores conectados diretamente

Na GUI da ACI, navegue até Fabric > Tenants > Networking > L3Outs > "L3outName" > "Node-X" > Logical Interface Profiles > OSPF Interface Profile > Associated OSPF Interface Policy  conforme mostrado na imagem.

Tipo de Broadcast ou de Rede Não Especificada configurado

Da folha de borda:

[+] Check OSPF neighborship relation

BL-301# show ip ospf neighbors vrf abc1:vrf-1

OSPF Process ID default VRF abc1:vrf-1

Total number of neighbors: 1

Neighbor ID     Pri State            Up Time  Address         Interface

172.16.0.1       1 INITIALIZING/DROTHER 00:06:42 192.0.2.50      Vlan1

[+] Check OSPF interface configuration

BL-301# moquery -c ospfIf -x 'query-target-filter=wcard(ospfIf.id,"vlan1")' | egrep "deadIntvl|helloIntvl|nwT"

deadIntvl    : 40

helloIntvl   : 10

nwT          : bcast

or

BL-301# moquery -c ospfIf -x 'query-target-filter=wcard(ospfIf.id,"vlan1")' | egrep "deadIntvl|helloIntvl|nwT"

deadIntvl    : 40

helloIntvl   : 10

nwT          : unspecified

Or

APIC# moquery -c ospfRsIfPol -x 'query-target-filter=wcard(ospfIfP.dn,"abc1\/out-Site2-L3Out-OSPF-BL-301")' | grep tnOspfIfPolName

tnOspfIfPolName  : Custom_OSPF_Interface_Policy

APIC# moquery -c ospfIfPol -x 'query-target-filter=wcard(ospfIfPol.name,"Custom_OSPF_Interface_Policy")' | egrep "deadIntvl|helloIntvl|nwT"

deadIntvl    : 40

helloIntvl   : 10

nwT          : bcast

APIC# moquery -c ospfIfPol -x 'query-target-filter=wcard(ospfIfPol.name,"Custom_OSPF_Interface_Policy")' | egrep "deadIntvl|helloIntvl|nwT"

deadIntvl    : 40

helloIntvl   : 10

nwT          : unspecified

[+] Whether it is bcast or unspecified the interface will show as Broadcast

BL-301#  show ip ospf interface vlan 1 | egrep "Timer|Network"

State DR, Network type BROADCAST, cost 4

Timer intervals: Hello 10, Dead 40, Wait 40, Retransmit 5

[+] Capture a single packet TCPDUMP for local BL OSPF IP

BL-301# tcpdump src host 192.0.2.1 -vv -e -i kpm_inb -c 1

192.0.2.1 > ospf-all.mcast.net: OSPFv2, Hello, length 48

Router-ID 192.168.0.1, Backbone Area, Authentication Type: none (0)

Options [External]

Hello Timer 10s, Dead Timer 40s, Mask 255.255.255.0, Priority 1

Designated Router 192.0.2.1

Neighbor List:

172.16.0.1

[+] Capture a single OSPF hello packet using TCPDUMP coming from external device OSPF IP

BL-301# tcpdump src host 192.0.2.50 -vv -e -i kpm_inb -c 1

192.0.2.50 > ospf-all.mcast.net: OSPFv2, Hello, length 44

Router-ID 172.16.0.1, Backbone Area, Authentication Type: none (0)

Options [External]

Hello Timer 10s, Dead Timer 40s, Mask 255.255.255.0, Priority 1

Do dispositivo externo:

[+] Check OSPF interfaces con vrf

NX-OS# show ip int bri vrf 301-l3-abc1

IP Interface Status for VRF "301-l3-abc1"(21)

Interface            IP Address      Interface Status

Lo1001               110.1.0.1       protocol-up/link-up/admin-up

Eth1/2.1120          192.0.2.50      protocol-up/link-up/admin-up

[+] Check OSPF configuration by default Dead timer on NX-OS devices is 4 times hello interval

NX-OS# show run ospf all | section Ethernet1/2 | grep network

ip ospf network point-to-point

[+] Check OSPF interface advertized parameters

NX-OS# show ip ospf interface Ethernet1/2 | grep type

State P2P, Network type P2P, cost 1

Folha de especificações do comando de verificação

Esses comandos foram referenciados em todo este documento para solucionar problemas em diferentes cenários.

Nó

Comandos

Propósito

Switch ACI

show ip ospf neighbors vrf <<TNT:VRF>>

Verificar a relação de vizinhança no VRF

show ip ospf interface brief vrf <<TNT:VRF>>

Verificar interfaces OSPF associadas ao VRF

moquery -c faultInst -x 'query-target-filter=wcard(faultInst.dn,"<<TNT:VRF>>")'

Você pode verificar as falhas associadas ao VRF

moquery -c ospfIf -x 'query-target-filter=wcard(ospfIf.dn,"<<TNT:VRF>>")'

Verificar todos os detalhes da interface OSPF associados ao VRF

moquery -c ospfIf -x 'query-target-filter=wcard(ospfIf.id,"<<vlanX>>")'

Verificar a configuração da interface OSPF

moquery -c arpAdjEp -x 'query-target-filter=wcard(arpAdjEp.ifId,"<<vlanX>>")' | grep ip

Verifique o IP aplicado no dispositivo externo do ARP associado à interface

log_trace_bl_print_tool /var/sysmgr/tmp_logs/ospfv2_1_trace.bl | tail -n 250 | grep <<TNT:VRF>>

Decodificação de rastreamento de OSPF ao vivo para VRF

tcpdump -i kpm_inb proto ospf -vv -e -w - | tee /data/techsupport/Node-XXX_OSPF.pcap | tcpdump -r - host any

Capturar o tráfego OSPF para analisar no Wireshark

tcpdump -i kpm_inb proto ospf -vv -e -w - | tee /data/techsupport/Node-XXX_OSPF_HOST.pcap | tcpdump -r - host <<X.X.X.X>>

Capturar tráfego específico de HOST para analisar no Wireshark

tcpdump -xxxvi kpm_inb 'proto ospf and (host <<X.X.X.X>> or host <<Y.Y.Y.Y>>)' -w /data/techsupport/Node-XXX_OSPF_HOST.pcap

Capturar tráfego SRC e DST específico de HOST para analisar no Wireshark

tcpdump src host <<X.X.X.X>> -vv -e -i kpm_inb -c 1

Capturar um único plano de controle em banda para um host específico

APIC DA ACI

moquery -c ospfIfP -x 'query-target-filter=wcard(ospfIfP.dn,"<<TNT>>\/out-<<L3outName>>")'

Verifique o tipo de autenticação configurado

moquery -c l3ext.RsPathL3OutAtt -x 'query-target-filter=wcard(l3extRsPathL3OutAtt.dn,"<<TNT>>\/out-<<L3outName>>")'

Verificar a configuração do Caminho L3out

moquery -c faultRecord -f 'fault.Inst.code=="F1385"' -x 'query-target-filter=wcard(faultRecord.dn,"<<TNT:VRF>>")'

Verifique os registros históricos de falhas quanto à falha F1385 protocol-ospf-adjacency-down

moquery -c ospfRsIfPol -x 'query-target-filter=wcard(ospfIfP.dn,"<<TNT>>\/out-<<L3outName>>")' | grep tnOspfIfPolName

Verificar L3out para Política de Interface OSPF Associada personalizada

moquery -c ospfIfPol -x 'query-target-filter=wcard(ospfIfPol.name,"Custom_OSPF_Interface_Policy")'

Verificar detalhes da Política de Interface OSPF Associada personalizada

Switch NXOS

show ip int bri vrf <<VRF>>

Verificar interfaces OSPF con vrf

show run ospf all | section EthernetX/Y

Verificar a configuração do OSPF

show ip ospf interface EthernetX/Y

Verifique os parâmetros anunciados da interface OSPF

Informações Relacionadas

- Solução de problemas de encaminhamento externo da ACI

- Suporte técnico e downloads da Cisco