この製品のドキュメントセットは、偏向のない言語を使用するように配慮されています。このドキュメントセットでの偏向のない言語とは、年齢、障害、性別、人種的アイデンティティ、民族的アイデンティティ、性的指向、社会経済的地位、およびインターセクショナリティに基づく差別を意味しない言語として定義されています。製品ソフトウェアのユーザインターフェイスにハードコードされている言語、RFP のドキュメントに基づいて使用されている言語、または参照されているサードパーティ製品で使用されている言語によりドキュメントに例外が存在する場合があります。シスコのインクルーシブ ランゲージの取り組みの詳細は、こちらをご覧ください。
シスコは世界中のユーザにそれぞれの言語でサポート コンテンツを提供するために、機械と人による翻訳を組み合わせて、本ドキュメントを翻訳しています。ただし、最高度の機械翻訳であっても、専門家による翻訳のような正確性は確保されません。シスコは、これら翻訳の正確性について法的責任を負いません。原典である英語版(リンクからアクセス可能)もあわせて参照することを推奨します。
このドキュメントでは、Cisco IOS® XEベースのデバイスのCisco Express Forwarding(CEF)機能について説明します。他のCiscoルータとは異なり、Cisco IOS XEベースのルータは、ハードウェアだけでなくソフトウェアでもモジュール化されています。この性質により、ほとんどの機能とプロトコルの動作も若干異なります。また、Cisco IOS XEベースのデバイスでCEFテーブルが維持される方法と、Cisco IOS XEプラットフォームでのCEFアップデートに関してボーダーゲートウェイプロトコル(BGP)テーブルが管理される方法についても説明します。
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 テーブルが正常に更新されているかどうかを確認するために、すべてのモジュールを調べることができます。
同様に、隣接プレフィックスに関するすべてのレイヤ 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シナリオが予想される動作と見なすことができます。