内容

概要

Cisco IOS XEプラットフォームでのCEFの動作

CEF 隣接関係の確認

観察される一般的な現象

結論

概要

このドキュメントでは、Cisco IOS® XEベースのデバイスのCisco Express Forwarding(CEF)機能について説明します。他のCiscoルータとは異なり、Cisco IOS XEベースのルータは、ハードウェアだけでなくソフトウェアでもモジュール化されています。この性質により、ほとんどの機能とプロトコルの動作も若干異なります。また、Cisco IOS XEベースのデバイスでCEFテーブルが維持される方法と、Cisco IOS XEプラットフォームでのCEFアップデートに関してボーダーゲートウェイプロトコル(BGP)テーブルが管理される方法についても説明します。

Cisco IOS XEプラットフォームでのCEFの動作

XE プラットフォーム内部での CEF テーブルの更新

ASR1000などのCisco IOS XEデバイスでは、コントロールプレーンはフォワーディングプレーンとは別です。コントロール プレーンからデータ プレーンにアップデートを渡す必要がある場合、以下の図に示すデータ フローに従って実行する必要があります。たとえば、コントロールプレーンでプレフィクスが学習されるたびにCEFの場合、このアップデートはコントロールプレーン(IOSd)からコントロールプレーン(FMAN-RP)のフォワーディングマネージャに渡されます。 コントロールプレーンのフォワーディングマネージャは、更新をフォワーディングプレーン(ESP)フォワーディングマネージャ(FMAN-FP)に渡すために、lsmpi、Hyper-transport(HT)リンクなどのカーネルユーティリティを使用します。 転送マネージャは、QFPマイクロコードをプログラムするQuantum Flow Processor(QFP)にアップデートを送信し、最終的にCiscoアグリゲーションサービスルータ(ASR)デバイスのパケットの実際の転送を行うQFPサブシステムをプログラムします。

これらの各ソフトウェアモジュールでCEFアップデートを確認するために使用できるさまざまなコマンドがあります。これは、その手順を追ったプロセスです。

コントロールプレーンでCEFを確認するには、次のコマンドを実行します。

Router#show ip cef

Prefix                     Next Hop             Interface

0.0.0.0/0                  no route

0.0.0.0/8                  drop

0.0.0.0/32                 receive

1.1.1.1/32                 10.10.10.1           GigabitEthernet0/0/0

2.2.2.2/32                 receive              Loopback1

10.10.10.0/24              attached             GigabitEthernet0/0/0

10.10.10.0/32              receive              GigabitEthernet0/0/0

Router#show platform software ip rp active cef summary

Forwarding Table Summary

Name             VRF id  Table id    Protocol         Prefixes    State

------------------------------------------------------------------------------------------------

Default          0       0           IPv4             20          OM handle: 0x404a4df8

Router#show platform software ip rp active cef detail

Forwarding Table

0.0.0.0/0 -> OBJ_ADJ_NOROUTE (0), urpf: 5

Prefix Flags: Default, Default route handler

OM handle: 0x404a91e8

0.0.0.0/8 -> OBJ_ADJ_DROP (0), urpf: 13

Prefix Flags: unknown

OM handle: 0x404bd5e8

0.0.0.0/32 -> OBJ_ADJ_RECEIVE (0), urpf: 12

Prefix Flags: Receive

OM handle: 0x404bd298

1.1.1.1/32 -> OBJ_ADJACENCY (16), urpf: 20

Prefix Flags: unknown

OM handle: 0x404fec70

フォワーディングプレーン(ESP)のCEFの詳細を確認するには、次の手順を実行します。

Router#show platform software ip fp active cef detail

Forwarding Table

0.0.0.0/0 -> OBJ_ADJ_NOROUTE (0), urpf: 5

Prefix Flags: Default, Default route handler

aom id: 73, HW handle: 0x4310df8 (created)

0.0.0.0/8 -> OBJ_ADJ_DROP (0), urpf: 13

Prefix Flags: unknown

aom id: 90, HW handle: 0x4362cd8 (created)

0.0.0.0/32 -> OBJ_ADJ_RECEIVE (0), urpf: 12

Prefix Flags: Receive

aom id: 86, HW handle: 0x4333568 (created)

127.0.0.0/8 -> OBJ_ADJ_DROP (0), urpf: 13

Prefix Flags: unknown

aom id: 91, HW handle: 0x4387048 (created)

224.0.0.0/4 -> OBJ_ADJ_DROP (0), urpf: 13

Prefix Flags: unknown

aom id: 92, HW handle: 0x43870d8 (created)

Router#show platform software ip fp active cef summary

Forwarding Table Summary

Name             VRF id  Table id    Protocol         Prefixes    State

------------------------------------------------------------------------------------------------

Default          0       0           IPv4             20          hw: 0x43010a8 (created)

これらのコマンドは、デバイス上で CEF に関する問題が発生した場合にも使用できます。たとえば、ルートは学習されますが、プレフィックスに到達できません。すべての CEF テーブルが正常に更新されているかどうかを確認するために、すべてのモジュールを調べることができます。

CEF 隣接関係の確認

同様に、隣接プレフィックスに関するすべてのレイヤ 2 情報について、CEF 隣接関係テーブルを確認できます。

コントロールプレーンのCEF隣接関係を確認するには、次の手順を実行します。

Router#show adjacency gigabitEthernet 0/0/0 detail

Protocol Interface                 Address

IP       GigabitEthernet0/0/0      10.10.10.1(11)

72772 packets, 4622727 bytes

epoch 0

sourced in sev-epoch 0

Encap length 14

0062EC6B89000062EC6BEC000800

L2 destination address byte offset 0

L2 destination address byte length 6

Link-type after encap: ip

ARP

Router#show platform software adjacency rp active

Number of adjacency objects: 4

Adjacency id: 0x10 (16)

Interface: GigabitEthernet0/0/0, IF index: 8, Link Type: MCP_LINK_IP

Encap: 0:62:ec:6b:89:0:0:62:ec:6b:ec:0:8:0

Encap Length: 14, Encap Type: MCP_ET_ARPA, MTU: 1500

Flags: no-l3-inject

Incomplete behavior type: None

Fixup: unknown

Fixup_Flags_2: unknown

Nexthop addr: 10.10.10.1

IP FRR MCP_ADJ_IPFRR_NONE 0

OM handle: 0x404ea1d8

フォワーディングプレーンのこの特定の隣接関係の詳細を確認するには、隣接関係IDをメモする必要があります。この場合、隣接関係IDは16です。

フォワーディングプレーンでCEF隣接関係を確認するには、次のコマンドを実行します。

Router#show platform software adjacency fp active index 16

Number of adjacency objects: 4

Adjacency id: 0x10 (16)

Interface: GigabitEthernet0/0/0, IF index: 8, Link Type: MCP_LINK_IP

Encap: 0:62:ec:6b:89:0:0:62:ec:6b:ec:0:8:0

Encap Length: 14, Encap Type: MCP_ET_ARPA, MTU: 1500

Flags: no-l3-inject

Incomplete behavior type: None

Fixup: unknown

Fixup_Flags_2: unknown

Nexthop addr: 10.10.10.1

IP FRR MCP_ADJ_IPFRR_NONE 0

aom id: 114, HW handle: 0x43ae148 (created)

ここでは、CEF隣接情報がFPのフォワーディングマネージャ(FMAN)に入力されていることがわかります。FMAN FPは、この情報をQFPクライアントドライバに送信します。ドライバは、最終的に転送に使用されるQFP転送テーブルをプログラムします。前のコマンドから、ハードウェアハンドルをコピーして、QFPの転送情報を確認します。

Router#show pla hard qfp act feature cef-mpls adjacency handle 0x43ae148

Adj Type: : IPV4 Adjacency

Encap Len: : 14

L3 MTU: : 1500

Adj Flags: : 0

Fixup Flags: : 0

Output UIDB: :

Interface Name: GigabitEthernet0/0/0

Encap: : 00 62 ec 6b 89 00 00 62 ec 6b ec 00 08 00

Next Hop Address: : 10.10.10.1

Lisp Fixup HW Ptr: : 0x767b28f0

Next HW OCE Ptr: : 00000000

CM   HW    Ptr:: 946947588

Fixup_Falgs_2: : 0

これで、すべての隣接関係テーブルが正常に更新され、ルータが転送する準備が整いました。しかし、分離のプロセス全体で多くのコマンドが必要であり、特定のレベルでのモジュラアーキテクチャの知識が必要です。そのため、これを簡素化するために、最近では、すべてのモジュールから統合情報を提供するコマンドが導入されました。

注：ルーティングテーブルが長いデバイスでは、このコマンドの実行に数分かかることがあります。

コマンドはshow ip cef platform detailです。

観察される一般的な現象

ルータで多数のプレフィクスが学習されている状況にあるすべてのCisco IOX XEモジュラデバイスでは、通常、すべての転送モジュールですべてのプレフィクスをプログラムするのに時間がかかります。このような状況は、ISP から BGP ルーティング テーブルをすべて学習するプロバイダー エッジに配置されるルータでよく見られます。

Technical Assistance Center(TAC)では、BGPセッションが確立され、BGPルートがルーティングテーブルで更新された後でも、プレフィックスがしばらく到達不能であることが確認されたケースはほとんどありませんでした。通常、20 ～ 30 秒かかりますが、これらのプレフィックスを ping するルータ プラットフォームによって異なります。たとえば、次のようなテスト シナリオがあります。

Pagentは、100万のBGPルートをASR1002HXルータにプッシュするために使用されるトラフィックジェネレータツールです。

ここでは、BGPルートがデバイスで学習され、コントロールプレーンのCEFテーブルが更新された場合でも、内部ネットワークから学習されたプレフィックスに対して数秒間pingを実行できないことがわかります。CEFの説明に基づいて、各ソフトウェアモジュールでCEFエントリを更新する必要があることは明らかです。この特定のシナリオでは、ESP転送テーブルでプレフィックスが更新されていないためにプレフィックスに到達できない場合に、この動作の結果が1つ表示されます。参照用に、ASR1002HX からの出力を示します。

BGPテーブルは、100万全ルートで更新されます。

Router#show ip bgp summary

BGP router identifier 1.1.1.1, local AS number 100

BGP table version is 1, main routing table version 1

1000002 network entries using 248000496 bytes of memory

1000002 path entries using 128000256 bytes of memory

100002/0 BGP path/bestpath attribute entries using 26400528 bytes of memory

100000 BGP AS-PATH entries using 5402100 bytes of memory

0 BGP route-map cache entries using 0 bytes of memory

0 BGP filter-list cache entries using 0 bytes of memory

BGP using 407803380 total bytes of memory

BGP activity 8355774/7355772 prefixes, 9438985/8438983 paths, scan interval 60 secs

Neighbor        V           AS  MsgRcvd MsgSent   TblVer  InQ OutQ             Up/Down                                 State/PfxRcd

10.10.10.2      4          100       5       2              1    0             0 00:00:58                                         1

20.20.20.2      4          100  100002       3              1    0             0 00:01:02                                   1000000

BGPテーブルには100万個のプレフィックスがありますが、フォワーディングマネージャのCEFテーブルでは、まだ48613個のプレフィックスしか学習されていません。

20 ～ 30秒間待つと、100万個のプレフィックスを持つ完全に更新されたFP CEFテーブルが表示されます。

Router#show platform software ip fp active cef summary

Forwarding Table Summary

Name             VRF id  Table id    Protocol         Prefixes    State

------------------------------------------------------------------------------------------------

Default          0       0           IPv4             48613       hw: 0x2edce98 (created)

結論

Cisco IOS XEベースのモジュラアーキテクチャデバイスを使用して転送関連の問題を解決する場合は、すべてのソフトウェアモジュールから転送テーブル関連情報を確認する必要があります。このプラットフォームでは、デバイスがすべてのソフトウェアモジュールのプレフィックスを更新するのに数秒かかるため、説明されているBGPシナリオが予想される動作と見なすことができます。