ユニキャスト RIB および FIB の設定

この章では、Cisco Nexus スイッチのユニキャスト ルーティング情報ベース(RIB)および転送情報ベース(FIB)のルートを設定し、管理する方法について説明します。

この章は、次の項で構成されています。

ユニキャスト RIB および FIB についての情報

ユニキャスト RIB(IPv4 RIB)および FIB は、下の図に示すように、 Cisco NX-OS の転送アーキテクチャの一部です。

図 1. Cisco NX-OS 転送アーキテクチャ

ユニキャスト RIB は、直接接続のルート、スタティック ルート、ダイナミック ユニキャスト ルーティング プロトコルで検出されたルートを含むルーティング テーブルを維持しています。また、アドレス解決プロトコル(ARP)などの送信元から、隣接情報を収集します。ユニキャスト RIB は、ルートに最適なネクスト ホップを決定し、さらにユニキャスト FIB 分散モジュール(FDM)のサービスを使用して、ユニキャスト転送情報ベース(FIB)にデータを入力します。

各ダイナミック ルーティング プロトコルは、タイム アウトしたあらゆるルートについて、ユニキャスト RIB を更新する必要があります。その後、ユニキャスト RIB はそのルートを削除し、そのルートに最適なネクスト ホップを再計算します(代わりに使用できるパスがある場合)。

レイヤ 3 整合性チェッカー

まれな事例として、各モジュールのユニキャスト RIB と FIB の間に不整合が発生することがあります。Cisco NX-OS は、レイヤ 3 整合性チェッカーをサポートします。この機能は、各インターフェイス モジュールのユニキャスト IPv4 RIB と FIB の間の不整合を検出します。不整合には次のようなものがあります。

  • 欠落したプレフィックス

  • 余分なプレフィックス

  • ネクストホップ アドレスの誤り

  • ARP またはネイバー探索(ND)キャッシュ内の不正なレイヤ 2 リライト文字列

レイヤ 3 整合性チェッカーは、FIB のエントリと隣接マネージャ(AM)から取得した最新の隣接情報を比較し、不整合があれば記録します。次に整合性チェッカーは、ユニキャスト RIB のプレフィックスをモジュールの FIB と比較し、不整合があればログに記録します。「レイヤ 3 整合性チェッカーのトリガー」の項を参照してください。

不整合は手動で解消できます。「FIB 内の転送情報の消去」の項を参照してください。

FIB テーブル

次に、スイッチが通常の転送モードで設定されている場合の Cisco Nexus 3548 スイッチのユニキャスト ルーティング テーブルの容量を示します。

  • ユニキャスト ルーティング ホスト テーブル = 64,000 ハッシュ テーブル エントリ

  • ユニキャスト ルーティング LPM テーブル = 16,000 TCAM エントリ

  • ECMP メンバー テーブル サイズ:16,000 エントリ

次に、スイッチがワープ モードで設定されている場合の Cisco Nexus 3548 スイッチのユニキャスト ルーティング テーブルの容量を示します。

  • L3 ユニキャスト ホスト テーブル = 8000 TCAM エントリ

  • L3 ユニキャスト LPM テーブル = 4000 TCAM エントリ


(注)  


ECMP はワープ モードではサポートされません。



(注)  


ワープ モードでは、2 つの等コスト パスが RIB で受信されると、パスの 1 つがハードウェアにインストールされます。ルーティング プロトコル構成で、最大パスを 1 に構成することをお勧めします。


仮想化のサポート

ユニキャスト RIB および FIB は、仮想ルーティングおよび転送(VRF)インスタンスをサポートします。詳細については、「レイヤ 3 仮想化の設定」を参照してください。

ユニキャスト RIB および FIB の管理


(注)  


Cisco IOS の CLI に慣れている場合、この機能に対応する Cisco NX-OS コマンドは通常使用する Cisco IOS コマンドと異なる場合があるので注意してください。


モジュールの FIB 情報の表示

スイッチの FIB 情報を表示できます。

手順の詳細

スイッチの FIB 情報を表示するには、任意のモードで次のコマンドを使用します。

コマンド

目的

show ip fib adjacency

例:
switch# show ip fib adjacency

FIB の隣接情報を表示します。

show forwarding ipv4 adjacency

例:
switch# show forwarding ipv4 adjacency

IPv4 の隣接情報を表示します。

show ip fib interfaces

例:
switch# show ip fib interfaces

IPv4 の FIB インターフェイス情報を表示します。

show ip fib route

例:
switch# show ip fib route

IPv4 のルート テーブルを表示します。

show forwarding ipv4 route

例:
switch# show forwarding ipv4 route

IPv4 のルート テーブルを表示します。

次に、スイッチの FIB の内容を表示する例を示します。

switch# show ip fib route
 
IPv4 routes for table default/base
 
------------------+------------------+---------------------
Prefix | Next-hop | Interface
------------------+------------------+---------------------
0.0.0.0/32 Drop Null0
255.255.255.255/32 Receive sup-eth1

ユニキャスト FIB でのロード シェアリングの設定

OSPF(Open Shortest Path First)などのダイナミック ルーティング プロトコルは、等コスト マルチパス(ECMP)によるロード シェアリングをサポートしています。ルーティング プロトコルは、そのプロトコルに設定されたメトリックに基づいて最適なルートを決定し、そのプロトコルに設定された最大数までのパスをユニキャスト RIB に組み込みます。ユニキャスト RIB は、RIB に含まれるすべてのルーティング プロトコル パスのアドミニストレーティブ ディスタンスを比較し、ルーティング プロトコルによって組み込まれたすべてのパス セットから最適なパス セットを選択します。ユニキャスト RIB は、この最適なパス セットを FIB に組み込み、フォワーディング プレーンで使用できるようにします。

フォワーディング プレーンは、ロード シェアリングのアルゴリズムを使用して、FIB に組み込まれたパスのいずれかを選択し、それを特定のデータ パケットに使用します。

ロード シェアリングの次の設定項目をグローバルに設定できます。

  • ロード シェアリング モード:宛先のアドレスとポート、または送信元と宛先のアドレスとポートに基づいて、最適なパスを選択します。

  • 汎用 ID:ハッシュ アルゴリズムのランダム シードを設定します。汎用 ID を設定する必要はありません。ユーザが設定しなかった場合は、Cisco NX-OS が汎用 ID を選択します。

ロード シェアリングでは、特定のフローに含まれるすべてのパケットに対して同じパスが使用されます。フローは、ユーザが設定したロード シェアリング方式によって定義されます。たとえば、送信元/宛先のロード シェアリングを設定すると、送信元 IP アドレスと宛先 IP アドレスのペアが同じであるすべてのパケットが同じパスをたどります。

ユニキャスト FIB のロード シェアリング アルゴリズムを設定するには、グローバル コンフィギュレーション モードで次のコマンドを使用します。

コマンド

目的

ip load-sharing address { destination port destination | source-destination [ port source-destination ]} [ universal-id seed ]

例:
switch(config)# ip load-sharing address source-destination

データ トラフィックに対するユニキャスト FIB のロード シェアリング アルゴリズムを設定します。universal-id の範囲は 1 ~ 4294967295 です。

ハッシュ オフセットの構成

多層 ECMP セッションで ECMP 極性を回避するには、各層で異なる ECMP ハッシュ オフセットを構成する必要があります。リリース 6.0(2)U5(1) 以降、ECMP ハッシュ連結の新しい CLI が導入され、16 の ECMP パスでトラフィックを均等に分散できます。更新された CLI サポートは、Cisco Nexus 3000 シリーズ スイッチではなく、Cisco Nexus 3100 プラットフォーム スイッチに存在します。ハッシュ オフセットは、非連結モードでは <0-15> の範囲、連結モードでは <0-63> の範囲で構成できます。

連結モードで、ハッシュオフセットが 0 に設定されていて、連結が設定されている場合、show running-config コマンドは hardware ecmp hash-offset 0 connatationation を表示します。ハッシュオフセットは値ごとにプログラムされます。ダウングレード時に、連結が構成されている場合、CAP チェックは構成を削除するように求めます。

非連結モードでは、ハッシュオフセットが 0 に構成されて連結がリセットされた場合、show running-config コマンドは hardware ecmp hash-offset 0 を表示しません。ハッシュオフセット値が 0 〜 15 の範囲にある場合、ハッシュオフセットは値に従ってプログラムされます。ハッシュオフセットでは、値が 16 ~ 63 の範囲の場合、CLI エラーが表示されます(非連結モードでは、0 ~ 15 の範囲のハッシュオフセットがサポートされます)。

show running-config のハッシュオフセットは、構成された値に従って表示されます。

ECMP ハッシュオフセットを構成するには、グローバル構成モードで以下のコマンドを使用します。

コマンド

目的

# hardware ecmp hash-offset ?

ECMP ハッシュ オフセットを構成します。範囲は 0 ~ 63 です。範囲 <0-15> のハッシュ オフセットは、非連結モード用です。範囲 <0-63> のハッシュ オフセットは、連結モード用です。

#hardware ecmp hash-offset number

例:

switch(config)# hardware ecmp hash-offset 5

非連結モードで ECMP ハッシュオフセットを構成します。範囲は 0 ~ 15 です。デフォルト値は 0 です。

#hardware ecmp hash-offset <0-63> concatenation

例:

switch(config)# hardware ecmp hash-offset 63 concatenation

連結モードで ECMP ハッシュオフセットを構成します。

(注)  

 

連結サポートは、Cisco Nexus 3000 シリーズ スイッチではなく、Cisco Nexus 3100 プラットフォーム スイッチにあります。この CLI は Cisco Nexus 3000 シリーズ スイッチでエラーを生成します。

ip load-sharing address コマンドを使用して構成されたさまざまなユニバーサル ID とともに、hardware ecmp hash-offset コマンドを使用して構成された ECMP ハッシュオフセットを使用して、ロード シェアリング アルゴリズムでさまざまなハッシュ結果を生成できます。

ハッシュ多項式の構成

Cisco NX-OS リリース 6.0(2)U5(1) 以降、CRC 構成に新しい CLI が追加されました。

コマンド

目的

switch# config t

コンフィギュレーション モードを開始します。

switch(config)# hardware ecmp ? hash-offset Configure hash offsethash-polynomial Configure hash polynomial

ハードウェア ECMP の構成オプションとしてハッシュ オフセットとハッシュ多数項を表示します。

switch config)# hardware ecmp hash-polynomial ? CRC16 Hash polynomial CRC16CRC32HI Hash polynomial CRC32 HI 

ハッシュ多項式の構成オプションとして CRC16 および CRC32HI を表示します。

switch config)#show running-config

実行設定を表示します。

ユニキャスト FIB のロード シェアリング アルゴリズムを表示するには、任意のモードで次のコマンドを使用します。

コマンド

目的

show ip load-sharing

例:

switch(config)# show ip load-sharing

データ トラフィックに対するユニキャスト FIB のロード シェアリング アルゴリズムを表示します。

ユニキャスト RIB および FIB が特定の送信元アドレス/宛先アドレスに使用するルートを表示するには、任意のモードで次のコマンドを使用します。

コマンド

目的

show routing hash source-addr dest-addr [ ip-proto ip-protocol ] [ source-l4-port dest-l4-port ] [ vrf vrf-name]

例:

switch# show routing hash 1.1.1.6.5.5 5.3 ip-proto 0x11 10 234

ユニキャスト RIB および FIB が特定の送信元/宛先アドレス ペアに使用するルートを表示します。送信元アドレスと宛先アドレスの形式は x.x.x.x です。送信元ポートと宛先ポートの範囲は 1 ~ 65535 です。VRF 名には最大 64 文字の英数字文字列を指定します。大文字と小文字は区別されます。ip-proto オプションは、IP ヘッダーのプロトコル フィールドに対応します。

次に、送信元/宛先ペアのために選択されたルートを表示する例を示します。

switch# show routing hash 1.1.1.6.5.5.5.3 ip-proto 0x11 10 234
Load-share parameters used for software forwarding:
load-share mode: address source-destination port source-destination
Universal-id seed: 0xe05e2e85
Invoking pc_ic_ecmp_resolution
Hash for VRF "default"
Hashing to path *Eth1/29%
For route:
5.5.5.0/24 ubest/mbest: 3/0
*via 2.2.2.1, Eth1/18, [1/0], 00:14:14, static
*via 3.3.3.1, Eth1/29, [1/0], 00:14:14, static
*via 4.4.4.1, Eth1/34, [1/0], 00:14:14, static

ルーティング情報と隣接情報の表示

ユーザーは、ルーティング情報と隣接情報を表示できます。

ルーティング情報と隣接情報を表示するには、任意のモードで次のコマンドを使用します。

コマンド

目的

show ip route [ route-type | interface int-type number | next-hop ]

例:
switch# show ip route

ユニキャスト ルート テーブルを表示します。route-type 引数には、1 つのルート プレフィックス、直接、静的、またはダイナミック ルーティング プロトコルを指定します。? キーワードを使用して、サポートされるインターフェイスを表示します。

show ip adjacency [ prefix | interface number [ summary ] | non-best ] [ detail ] [ vrf vrf-id ]

例:
switch# show ip adjacency

隣接関係テーブルを表示します。引数の範囲は次のとおりです。

  • prefix :任意の IPv4 プレフィックス アドレス。

  • interface-type number ? コマンドを使用して、サポートされるインターフェイスを表示します。

  • vrf-id :最大 32 文字の英数字文字列。大文字と小文字は区別されます。

show ip routing [ route-type | interface int-type number | next-hop | recursive-next-hop | summary | updated { since | until } time ]

例:
switch# show routing summary

ユニキャスト ルート テーブルを表示します。route-type 引数には、1 つのルート プレフィックス、直接、静的、またはダイナミック ルーティング プロトコルを指定します。? キーワードを使用して、サポートされるインターフェイスを表示します。

次に、ユニキャスト ルート テーブルを表示する例を示します。

switch# show ip route
IP Route Table for VRF "default"
'*' denotes best ucast next-hop
'**' denotes best mcast next-hop
'[x/y]' denotes [preference/metric]
 
192.168.0.2/24, ubest/mbest: 1/0, attached
*via 192.168.0.32, Eth1/5, [0/0], 22:34:09, direct
192.168.0.32/32, ubest/mbest: 1/0, attached
*via 192.168.0.32, Eth1/5, [0/0], 22:34:09, local

次に、隣接情報を表示する例を示します。

switch# show ip adjacency
 
IP Adjacency Table for VRF default
Total number of entries: 2
Address Age MAC Address Pref Source Interface Best
10.1.1.1 02:20:54 00e0.b06a.71eb 50 arp mgmt0 Yes
10.1.1.253 00:06:27 0014.5e0b.81d1 50 arp mgmt0 Yes

レイヤ 3 整合性チェッカーのトリガー

レイヤ 3 整合性チェッカーを手動でトリガーできます。

レイヤ 3 整合性チェッカーを手動でトリガーにするには、グローバル コンフィギュレーション モードで次のコマンドを使用します。

コマンド

目的

test [ ipv4 ] [ unicast] forwarding inconsistency [ vrf vrf-name ] [ module { slot | all }]

例:
switch(config)# test forwarding inconsistency

レイヤ 3 整合性チェックを開始します。vrf-name には最大 32 文字の英数字文字列を指定します。大文字と-小文字は区別されます。slot の範囲は 1 ~ 10 です。

レイヤ 3 整合性チェッカーを停止するには、グローバル コンフィギュレーション モードで次のコマンドを使用します。

コマンド

目的

test forwarding [ ipv4 ] [ unicast ] inconsistency [ vrf vrf-name ] [ module { slot | all }] stop

例:
switch(config)# test forwarding inconsistency stop

レイヤ 3 整合性チェックを停止します。vrf-name には最大 64 文字の英数字文字列を指定します。大文字と-小文字は区別されます。slot の範囲は 1 ~ 10 です。

レイヤ 3 の不整合を表示するには、任意のモードで次のコマンドを使用します。

コマンド

目的

show forwarding [ ipv4 ] inconsistency [ vrf vrf-name ] [ module { slot | all }]

例:
switch(config)# show forwarding inconsistency

レイヤ 3 整合性チェックの結果を表示します。vrf-name には最大 32 文字の英数字文字列を指定します。大文字と-小文字は区別されます。slot の範囲は 1 ~ 10 です。

FIB 内の転送情報の消去

FIB 内の 1 つまたは複数のエントリを消去できます。


(注)  


clear forwarding コマンドを実行すると、スイッチ上の転送は中断されます。


FIB 内のエントリ(レイヤ 3 の不整合を含む)を消去するには、任意のモードで次のコマンドを使用します。

コマンド

目的

clear forwarding { ipv4 } route {* | prefix } [ vrf vrf-name ] [ module { slot | all }]

例:
switch(config)# clear forwarding ipv4 route *

FIB から 1 つまたは複数のエントリを消去します。ルートのオプションは次のとおりです。

  • *:すべてのルート。

  • prefix :任意の IP プレフィックス。

vrf-name には最大 32 文字の英数字文字列を指定します。大文字と-小文字は区別されます。slot の範囲は 1 ~ 10 です。


(注)  


FIB エントリをクリアした後は、RIB エントリをクリアしてください。


ルートのメモリ要件の見積もり

一連のルートおよびネクストホップ アドレスが使用するメモリを見積もることができます。

ルートのメモリ要件を見積もるには、任意のモードで次のコマンドを使用します。

コマンド

目的

show routing memory estimate routes num-routes next-hops num-nexthops

例:
switch# show routing memory estimate routes 1000 next-hops 1

ルートのメモリ要件を表示します。num-routes の範囲は 1000 ~ 1000000 です。num-nexthops の範囲は 1 ~ 16 です。

ユニキャスト RIB 内のルートの消去

ユニキャスト RIB から 1 つまたは複数のルートを消去できます。


注意    


* キーワードを使用すると、ルーティングが著しく妨害されます。


ユニキャスト RIB 内の 1 つまたは複数のエントリを消去するには、任意のモードで次のコマンドを使用します。

コマンド

目的

clear iproute {* | { route | prefix/length }[ next-hop interface ]} [ vrf vrf-name ]

例:
switch(config)# clear ip route 10.2.2.2

ユニキャスト RIB とすべてのモジュール FIB から 1 つまたは複数のルートを消去します。ルートのオプションは次のとおりです。

  • *:すべてのルート。

  • route :個々の IP ルート。

  • prefix/length :任意の IP プレフィックス。

  • next-hop :ネスクトホップ アドレス。

  • interface :ネスクトホップ アドレスに到達するためのインターフェイス

vrf-name には最大 32 文字の英数字文字列を指定します。大文字と-小文字は区別されます。

clear routing unicast [ ip | ipv4 ] {* | { route | prefix/length }[ next-hop interface ]} [ vrf vrf-name ]

例:
switch(config)# clear routing ip 10.2.2.2

ユニキャスト RIB から 1 つまたは複数のルートを消去します。ルートのオプションは次のとおりです。

  • *:すべてのルート。

  • route :個々の IP ルート。

  • prefix/length :任意の IP プレフィックス。

  • next-hop :ネスクトホップ アドレス。

  • interface :ネスクトホップ アドレスに到達するためのインターフェイス

vrf-name には最大 32 文字の英数字文字列を指定します。大文字と-小文字は区別されます。

ユニキャスト RIB および FIB の確認

ユニキャスト RIB および FIB の設定情報を表示するには、次のいずれかの作業を行います。

コマンド

目的

show forwarding adjacency

モジュールの隣接関係テーブルを表示します。

show forwarding distribution { clients | fib-state }

FIB の分散情報を表示します。

show forwarding interfaces module slot

モジュールの FIB 情報を表示します。

show forwarding ipv4route

FIB 内のルートを表示します。

show ip adjacency

隣接関係テーブルを表示します。

show ip route

ユニキャスト RIB から受け取った IPv4 ルートを表示します。

show routing

ユニキャスト RIB から受け取ったルートを表示します。

その他の参考資料

ユニキャスト RIB および FIB の管理に関連する詳細情報については、次の項を参照してください。