内容

はじめに

トポロジ

OSPFピアリングの設定要件

OSPF隣接関係のトラブルシューティング：一般的なチェックリスト

OSPF隣接関係のトラブルシューティング：障害

ノードでのコントロールプレーントラフィックのキャプチャ

Wiresharkの検証

トラブルシューティングのシナリオ

OSPF隣接関係のトラブルシューティング：エリアIDの不一致

OSPF隣接関係のトラブルシューティング：エリアタイプの不一致

OSPF隣接関係のトラブルシューティング：ルータIDの重複

OSPF隣接関係のトラブルシューティング：MTUの不一致

OSPF隣接関係のトラブルシューティング：認証の不一致

OSPF隣接関係のトラブルシューティング：Hello/Deadタイマーの不一致

OSPF隣接関係のトラブルシューティング：インターフェイスタイプの不一致

ブロードキャスト

ポイントツーポイント

検証コマンドチートシート

関連情報

はじめに

このドキュメントでは、アプリケーションセントリックインフラストラクチャ(ACI)のOpen Shortest Path First(OSPF)の隣接関係のトラブルシューティングについて説明します。

トポロジ

トポロジ

OSPFピアリングの設定要件

OSPFは、Cisco ACIと外部ルータ間で有効にできるプロトコルの1つです。Cisco ACIは、バックボーン、さまざまなスタブオプション、ネイバー認証、その他の類似オプションを含む、OSPFエリアなどのすべての共通オプションをサポートします。

L3Outには、ルーティングプロトコルオプション、スイッチ固有の設定（ノードプロファイル）、およびインターフェイス固有の設定（インターフェイスプロファイル）が含まれます。OSPF関連のパラメータは、通常のルータと同様に、主に2つの場所で設定できます。1つ目は、Virtual Routing and Forwarding(VRF)全体またはノード全体の設定です。これには、エリアIDやエリアタイプなどが含まれ、L3Out自体で設定できます。2つ目は、OSPF hello間隔やインターフェイスタイプ(ブロードキャスト、ポイントツーポイント(P2P))などのインターフェイスレベルのパラメータです。

ACI境界リーフと外部ルータの間にOSPF隣接関係を確立するための要件を次に示します。

1. OSPFエリアIDとタイプが一致している必要がある

2. OSPFルータIDは一意でなければなりません

3. 最大伝送ユニット(MTU)は一致する必要があります(デフォルトでは、ファブリックは9000に設定され、ほとんどのCisco IOS®/NXOSは1500に設定されます)

4. OSPF認証キーとタイプは一致する必要があります（使用する場合）

5. OSPF Hello間隔とDead間隔が一致する必要がある

6. OSPFネットワークタイプが一致する必要がある

ホワイトペーパーでは、サポートしているルーティングプロトコルのACI L3Outに関連する設計概念とオプションについて詳細に説明しました。

L3Outの設定およびその他の基本要件に慣れていない場合は、ホワイトペーパーを参照してください。

OSPF隣接関係のトラブルシューティング：一般的なチェックリスト

OSPFアジャセンシー関係が以前にアップしたか、またはまだアップしたことがないかに関係なく、最初に基本要件を検証するのが最善です。

ステップ 1：リモートエンドインターフェイスに対してpingを実行します。これは、OSPFが起動するための主要な要件である遠端へのIP到達可能性があるかどうかを確認するのに役立ちます。

iping -V <vrf> <remote_end_IP>

example:

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

ステップ 2：基本設定パラメータを検証します。

1. OSPFエリアIDとタイプが一致している必要がある

2. OSPFルータIDは一意でなければなりません

3. MTUが一致している必要があります（デフォルトではファブリックによって9000に設定され、ほとんどのCisco IOS/NXOSによって1500に設定されます）。

4. OSPF認証キーとタイプは一致する必要があります（使用する場合）

5. OSPF Hello間隔とDead間隔が一致する必要がある

6. OSPFネットワークタイプが一致する必要がある

コマンド出力には、リーフにプッシュされた設定属性が表示されます。

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

強調表示された詳細情報をすべてメモし、対応するリモートエンドパラメータが同期されていることを確認します。

OSPF隣接関係のトラブルシューティング：障害

[+]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>>

環境にアクティブな障害がないシナリオもありますが、リーフ上に1つの障害レコードF1385(protocol-ospf-adjacency-down)が存在し、このネイバーシップが最後に起動された時点、または完全な状態に達していなかった時点を指している場合があります。

これは、moquery -c faultRecord -f 'fault.Inst.code=="F1385"' -x 'query-target-filter=wcard(faultRecord.dn,"abc1:vrf-1")' | grep dnコマンドで識別できます。

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コマンドで、特定の日付の障害レコード数を確認します。

OSPFインターフェイスと、ローカルおよびリモートの設定済みIPを特定する必要があります。

[+] 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

ノードでのコントロールプレーントラフィックのキャプチャ

境界リーフから予測される送信元および宛先スイッチ仮想インターフェイス(SVI)を使用して、tcpdumpユーティリティを使用して確認できます。

注：このために、すべてのCPUインバンドコントロールプレーンネットワークトラフィックを表示できるインターフェイスkpm_inbが使用されます。

[+] 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

Wiresharkの検証

OSPFおよびホスト固有のトラフィックをキャプチャして、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

pcapキャプチャでは、Analyze > Apply as a Columnを使用して検索を行い、Wiresharkフィルタを使用できます。

ospf.area_id = AreaIDを識別するため

ospf.auth.type =照合する設定済みの認証タイプを確認する

ospf.hello.hello_interval =異なるMTUをチェックする

ospf.hello.router_dead_interval =別のdead間隔設定を確認する

ospf.srcrouter =ルータID

トラブルシューティングのシナリオ

OSPF隣接関係のトラブルシューティング：エリアIDの不一致

エリアID 0.0.0.42のAPIC設定から、Fabric > Tenants > Networking > L3Outs > <<L3outName>> > Policy > Mainの順に移動します。

誤ったOSPFエリアIDが0.0.0.42に設定されている

境界リーフから：

[+] 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

外部デバイスから：

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

解決策：OSPFエリアを、BLの0.0.0.0またはバックボーン、または外部デバイスの0.0.0.42に一致させてください。

OSPF隣接関係のトラブルシューティング：エリアタイプの不一致

ACI GUIで、エリアタイプがNSSAまたはスタブの設定から、Fabric > Tenants > Networking > L3Outs > "L3outName" > Policy > Mainの順に移動します。

NSSAまたはスタブエリアの設定

境界リーフから：

[+] 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

外部デバイスから：

[+] 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

解決策：OSPFエリアタイプをL3Outで定期的に照合するか、外部デバイスから照合します。

OSPF隣接関係のトラブルシューティング：ルータIDの重複

ルータIDが重複していると、OSPF隣接関係が形成されません。ACIファブリックでは、OSPFルータIDを設定した後、リーフがルータID IPアドレスでループバックを作成します。このアドレスはループバックに使用されるため、障害が発生したときに使用するインターフェイスIPと重複させることはできません。

この例では、ネイバーデバイスからのルータIDを使用して誤って設定されたことを確認できます。

ACIのGUIで、Fabric > Tenants > Networking > L3Outs > "L3outName" > "Node-X" > Configured Nodes > topology/pod-Y/node-Xに移動します。

ネイバーデバイスからのルータIDが誤って設定されている。

境界リーフから：

[+] 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

外部装置から

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

解決策：両方のデバイスで異なるルータIDを使用します。

両方のデバイスで異なるルータIDを使用する

OSPF隣接関係のトラブルシューティング：MTUの不一致

2台のOSPF隣接ルータが双方向通信を確立し、ブロードキャストネットワークでDesignated Router（DR；代表ルータ）/BDR選定が完了すると、ルータはExstart状態に移行します。この状態では、ネイバールータがアクティブ/スタンバイ関係を確立し、DBDパケットの交換中に使用する初期Database Descriptor（DBD；データベース記述子）シーケンス番号を決定します。

アクティブ/スタンバイ関係がネゴシエートされると(最も高いルータIDを持つルータがアクティブになる)、ネイバールータはexchange状態に移行します。この状態では、リンク ステート データベース全体を記述した DBD パケットをルータが交換します。ルータはリンクステートリクエストパケットも送信し、近隣ルータからの最新の Link-State Advertisements（LSA; リンクステートアドバタイズメント）を要求します。

隣接ルータインターフェイスのMTU設定が一致しない場合、ルータはExstart/Exchange状態でスタックします。これは、MTUが大きい側のルータからネイバールータのMTU設定よりも大きいパケットが送信され、ネイバールータではそのパケットが無視されるためです。

デフォルトの継承設定を使用したAPIC GUIの設定から、Fabric > Tenants > Networking > L3Outs > "L3outName" > "Node-X" > Logical Interface Profiles > OSPF Interface Profileに移動します。

デフォルトでは、ACIファブリックはレイヤ3インターフェイスMTUを1500ではなく9000に設定します

デフォルトでは、ACIファブリックはレイヤ3インターフェイスMTUを1500ではなく9000に設定します。ACIのMTUの方が大きいため、ACIは外部ルータからのDBDパケットを引き続き受け入れ、その確認応答を試みます。

外部ルータのMTUが低いか高い場合、ACIからのACKとともにDBDパケットが無視され、初期DBDパケットの再送信が続行され、Exstart/Exchange状態が維持されます。

境界リーフから：

[+]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

考えられる解決策:

- 両方のデバイスのMTUに一致する

いずれかの側でMTUが変更された場合、メンバーシップはすでに確立されているため、次のネゴシエーションまで同じ方法が使用され、さまざまな理由でトリガーされる可能性があります。 たとえば、ダウンしている物理インターフェイス、ポリシーの再導入、リーフのリロード、アップグレードなどです。

図に示すように、Fabric > Tenants > Networking > L3Outs > "L3outName" > "Node-X" > Logical Interface Profiles > OSPF Interface Profile  に移動します。

1500に設定されたMTU

- MTU ignore in the Associated OSPF Interface Policyは、接続を再確立します。

MTU ignoreに関する問題は、OSPFデータベースが拡大すると発生する可能性があります。MTUの差が数バイトにすぎない場合、DBDまたはアップデートパケットを生成するLSAの正しい組み合わせに遭遇して適切なサイズになるまで、セットアップは長時間動作する可能性があります。

小規模なラボでのテストは正常に機能しますが、実稼働ネットワークで予期しない動作が発生する可能性があります。

図に示すように、Fabric > Tenants > Networking > L3Outs > "L3outName" > "Node-X" > Logical Interface Profiles > OSPF Interface Profile > Associated OSPF Interface Policy  に移動します。

MTU ignore設定

OSPF隣接関係のトラブルシューティング：認証の不一致

ルーティングアップデート情報を安全に交換するために、OSPFで認証をイネーブルにできます。OSPF 認証は、None（またはヌル）、Simple、または MD5 のいずれかです。認証方式「none」は、OSPFで認証が使用されないことを意味し、これがデフォルトの方式です。簡易認証では、パスワードはクリアテキストでネットワークを通過します。MD5 認証では、パスワードはネットワークを通過しません。

OSPF では次の 3 種類の認証がサポートされています。

ヌル認証：Type 0 とも呼ばれ、パケット ヘッダーに認証情報が含まれていないことを意味します。これがデフォルト設定です。

簡易認証：Type 1とも呼ばれ、シンプルなクリアテキストパスワードを使用します。

MD5 認証：Type 2 とも呼ばれ、MD5 暗号化パスワードを使用します。

認証を設定する必要はありません。認証を設定する場合は、同じセグメント上のすべてのピア ルータで、パスワードと認証方式が同じである必要があります。

ACIのGUIから、図に示すようにFabric > Tenants > Networking > L3Outs > "L3outName" > "Node-X" > Logical Interface Profiles > OSPF Interface Profile  に移動します。

MD5認証または簡易認証の設定

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)

外部デバイスから：

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

解決策：認証を照合します。

OSPF隣接関係のトラブルシューティング：Hello/Deadタイマーの不一致

OSPF helloパケットは、OSPFプロセスがOSPFネイバーとの接続を維持するためにOSPFネイバーに送信するパケットです。helloパケットは、設定可能な間隔（秒単位）で送信されます。イーサネットリンク（P2Pおよびブロードキャストネットワークタイプ）のデフォルトは10秒です。helloパケットには、dead間隔内にhelloパケットが受信されたすべてのネイバーのリストが含まれます。dead間隔も設定可能で（秒単位）、デフォルトはhello間隔の値の4倍です。すべてのHello間隔の値は、ネットワーク内で同じである必要があります。同様に、dead間隔の値はすべて、ネットワーク内で同じである必要があります。

これら2つのインターバルは、リンクが動作可能であることを示すことによって接続を維持するために連携します。ルータがdead間隔内にネイバールータからhelloパケットを受信しなかった場合、そのネイバールータはダウン状態であると宣言します。

ACIファブリックでデフォルトのOSPF helloタイマーとdeadタイマーを変更する場合は、外部ルータと一致させる必要があります。

ACIのGUIから、図に示すようにFabric > Tenants > Networking > L3Outs > "L3outName" > "Node-X" > Logical Interface Profiles > OSPF Interface Profile > Associated OSPF Interface Policy  に移動します。

カスタムHello/Deadタイマー

境界リーフから：

[+] 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

外部デバイスから：

[+] 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

解決策：OSPFタイマーを一致させます。

OSPF隣接関係のトラブルシューティング：インターフェイスタイプの不一致

この項では、ACIでブロードキャストまたは未指定が設定され、外部デバイスがP2Pの場合のトラブルシューティングについて説明します。

ブロードキャスト

- ブロードキャストネットワークタイプは、OSPF対応イーサネットインターフェイスのデフォルトです

- ブロードキャストネットワークタイプでは、リンクがレイヤ2ブロードキャスト機能をサポートする必要があります

- ブロードキャストネットワークタイプには、10秒のhelloタイマーと40秒のdeadタイマーがあります（P2Pと同じ）

- OSPFブロードキャストネットワークタイプでは、DR/BDRを使用する必要があります。

ポイントツーポイント

- P2P OSPFネットワークタイプはDR/BDR関係を維持しない

- P2Pネットワークタイプには、10秒のhelloタイマーと40秒のdeadタイマーがあります

- P2Pネットワークタイプは、2台の直接接続されたルータ間で使用することを目的としています

ACIのGUIから、図に示すようにFabric > Tenants > Networking > L3Outs > "L3outName" > "Node-X" > Logical Interface Profiles > OSPF Interface Profile > Associated OSPF Interface Policy  に移動します。

ブロードキャストまたは未指定のネットワークタイプが設定済み

境界リーフから：

[+] 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

外部デバイスから：

[+] 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

検証コマンドチートシート

これらのコマンドは、さまざまなシナリオをトラブルシューティングするために、このドキュメント全体を通じて参照されています。

ノード

コマンド

目的

ACIスイッチ

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

VRFのネイバーシップ関係を確認します

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

VRFに関連付けられたOSPFインターフェイスを確認します

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

VRFに関連する障害を確認できます

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

VRFに関連付けられているすべてのOSPFインターフェイスの詳細を確認します

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

OSPFインターフェイス設定をチェックします

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

インターフェイスに関連付けられたARPから、外部デバイスに適用されているIPを確認します

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

VRFのライブOSPFトレースデコード

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

OSPFトラフィックをキャプチャして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>>

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

Wiresharkで分析するためにホストのSRCおよびDST固有のトラフィックをキャプチャします。

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

特定のホスト用の単一のインバンドコントロールプレーンをキャプチャ

ACI APIC

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

設定されている認証タイプを確認します

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

L3out Path設定のチェック

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

F1385 protocol-ospf-adjacency-downの障害の履歴レコードを確認します。

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

L3outでカスタムの関連OSPFインターフェイスポリシーを確認する

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

カスタムの関連付けられたOSPFインターフェイスポリシーの詳細を確認する

NXOSスイッチ

show ip int bri vrf <<VRF>>

OSPFインターフェイスcon vrfを確認します。

show run ospf all | section EthernetX/Y

OSPF設定のチェック

show ip ospf interface EthernetX/Y

OSPFインターフェイスのアドバタイズされたパラメータを確認します

関連情報

- ACI外部転送のトラブルシューティング

- シスコのテクニカルサポートとダウンロード