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

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

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

次の図に示すように、ユニキャスト ルーティング情報ベース(IPv4 RIB および IPv6 RIB)および転送情報ベース(FIB)は、Cisco NX-OS 転送アーキテクチャの一部です。

図 1. CiscoNX-OS フォワーディング アーキテクチャ


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

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

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

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

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

  • 余分なプレフィックス

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

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

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

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

ハードウェア制限を超えて多くのルートが学習され、show consistency-checker forwarding ipv4 コマンドを実行した場合も、整合性の点で合格します。整合性のない状態から整合性のある状態に移行する場合も同様です。失敗として表示される場合があります。test forwarding ipv4 inconsistency route コマンドが再実行されるまで、この状態は終了しません。これは予期された動作です。

ユニキャスト RIB に関する注意事項と制約事項

URIB または U6RIB には、次の注意事項と制約事項が適用されます。

  • 仮想ドメイン コンテキスト(VDC)では、IPv4 または IPv6 ユニキャスト ルートのメモリ リソースの制限を変更しても、変更された制限はすぐには有効になりません。

    変更された制限をアクティブにするには、copy running-config startup-config コマンドの後に reload コマンドを発行する必要があります。

    たとえば、次のいずれかのコマンドを発行した場合、新しい設定をアクティブにするには、copy running-config startup-config を発行し、さらにスイッチをリロードする必要があります。

    • limit-resource u4route-mem

    • limit-resource u6route-mem


    (注)  


    limit-resource に「feature pim」が構成されている場合、limit-resource u4route-mem プラス limit-resource u6route-mem の値が 1024 MB(1GB)以下であることを確認してください。


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


(注)  


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


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

モジュールの FIB 情報を表示するには、任意のモードで次のコマンドを使用します。

コマンド 目的

show forwarding {ipv4 | ipv6} adjacency module slot

例:

switch# show forwarding ipv6 adjacency module 2

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

show forwarding {ipv4 | ipv6} route module slot

例:

switch# show forwarding ipv6 route module 2

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

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

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

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


(注)  


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


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

手順

  コマンドまたはアクション 目的

ステップ 1

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

例:

ip load-sharing address source-destination

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

次のオプションは、すべての IP ロード シェアリング設定で使用できます。

  • universal-id オプションは、ハッシュ アルゴリズムのランダム シードを設定することにより、フローをあるリンクから別のリンクにシフトします。

    汎用 ID を設定する必要はありません。ユーザが設定しなかった場合は、Cisco NX-OS が汎用 ID を選択します。universal-id の範囲は 1 ~ 4294967295 です。

  • rotate オプションを使用すると、ハッシュ アルゴリズムは、リンク ピッキングの選択をローテーションさせます。これは、ネットワーク内のすべてのノードが同じリンクを継続的に選択しないようにするためです。これは、ハッシュ アルゴリズムのビット パターンに影響を与えることによって機能します。このオプションは、あるリンクから別のリンクにフローをシフトし、最初の ECMP レベルからすでにロード バランシング(極性化)されているトラフィックのロード バランシングを複数のリンク間で行います。

    rotate 値を指定すると、64 ビットのストリームが、循環回転でのそのビット位置から解釈されます。rotate 値の範囲は 1 ~ 63 で、デフォルトは 32 です。

    (注)  

     

    多層レイヤ 3 トポロジでは、極性が発生する可能性があります。極性を回避するには、トポロジの各層で異なる循環ビットを使用します。

    (注)  

     

    ポート チャネルの rotation 値を設定するには、 port-channel load-balance src-dst ip-l4port rotate rotate コマンドを使用します。このコマンドの詳細については、『Cisco Nexus 9000 Series NX-OS Interfaces Configuration Guide』を参照してください。

  • concatenation オプションを使用すると、ECMP のハッシュ タグ値とポート チャネルのハッシュ タグ値がひとつに結合され、より強力な 64 ビットのハッシュを使用できるようになります。このオプションを使用しない場合、ECMP のロード バランシングおよびポート チャネルのロード バランシングを個別に制御できます。デフォルトではディセーブルになっています。

ステップ 2

(任意) show ip load-sharing

例:

switch(config)# show ip load-sharing
address source-destination
(任意)

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

ステップ 3

(任意) show routing hash source-addr dest-addr [source-port dest-port] [vrf vrf-name]

例:

switch(config)# show routing hash 192.0.2.1
10.0.0.1
(任意)

ユニキャスト RIB とユニキャスト FIB が特定の送信元と宛先アドレス のペアに使用するルートを表示します。送信元アドレスと宛先アドレスの形式は x.x.x.x です。送信元ポートと宛先ポートの範囲は 1 ~ 65535 です。VRF 名には最大 64 文字の英数字文字列を指定します。大文字と小文字は区別されます。

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

switch# show routing hash 10.0.0.5 192.0.0.2
Load-share parameters used for software forwarding:
load-share mode: address source-destination port source-destination
Universal-id seed: 0xe05e2e85
Hash for VRF "default"
Hashing to path *172.0.0.2 (hash: 0x0e), for route:

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

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

コマンド 目的

show {ip | ipv6} route [route-type | interface interface-type number | next-hop]

switch# show ip route

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

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

例:

switch# show ip adjacency

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

  • prefix :任意の IPv4、または IPv6 プレフィックス アドレス。

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

  • vrf-id :最大 64 文字の英数字文字列を指定します。大文字と小文字は区別されます。

show {ip | ipv6} routing [route-type | interface interface-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 Context "default"
'*' denotes best ucast next-hop '**' denotes best mcast next-hop
'[x/y]' denotes [preference/metric]
 
0.0.0.0/0, 1 ucast next-hops, 0 mcast next-hops
   *via 10.1.1.1, mgmt0, [1/0], 5d21h, static
0.0.0.0/32, 1 ucast next-hops, 0 mcast next-hops
   *via Null0, [220/0], 1w6d, local, discard
10.1.0.0/22, 1 ucast next-hops, 0 mcast next-hops, attached
   *via 10.1.1.55, mgmt0, [0/0], 5d21h, direct
10.1.0.0/32, 1 ucast next-hops, 0 mcast next-hops, attached
   *via 10.1.0.0, Null0, [0/0], 5d21h, local
10.1.1.1/32, 1 ucast next-hops, 0 mcast next-hops, attached
   *via 10.1.1.1, mgmt0, [2/0], 5d16h, am
10.1.1.55/32, 1 ucast next-hops, 0 mcast next-hops, attached
   *via 10.1.1.55, mgmt0, [0/0], 5d21h, local
10.1.1.253/32, 1 ucast next-hops, 0 mcast next-hops, attached
   *via 10.1.1.253, mgmt0, [2/0], 5d20h, am
10.1.3.255/32, 1 ucast next-hops, 0 mcast next-hops, attached
   *via 10.1.3.255, mgmt0, [0/0], 5d21h, local
255.255.255.255/32, 1 ucast next-hops, 0 mcast next-hops
   *via Eth Inband Port, [0/0], 1w6d, local

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

switch# show ip adjacency 
IP Adjacency Table for context 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 整合性チェッカーを手動でトリガーにするには、グローバル コンフィギュレーション モードで次のコマンドを使用します。

手順

  コマンドまたはアクション 目的

ステップ 1

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

例:

switch(config)# test forwarding inconsistency

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

ステップ 2

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

例:

switch(config)# test forwarding inconsistency stop

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

ステップ 3

show forwarding [ipv4 | ipv6] [unicast] inconsistency [vrfvrf-name] [module {slot | all}]

例:

switch(config)# show forwarding inconsistency

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

ステップ 4

show consistency-checker forwarding unicast

例:

switch(config)# show consistency-checker forwarding unicast

ユニキャスト ルータのレイヤ 3 整合性チェックの結果を表示します。

FIB 内の転送情報の消去

FIB 内の 1 つまたは複数のエントリを消去できます。FIB のエントリを消去しても、ユニキャスト RIB に影響はありません。


注意    


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

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

コマンド 目的

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

例:

switch# clear forwarding ipv4 route * module 1
FIB から 1 つまたは複数のエントリを消去します。ルートのオプションは次のとおりです。
  • * :すべてのルート。

  • prefix :任意の IP または IPv6 プレフィックス

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

ユニキャスト RIB の最大ルート数の設定

ルーティング テーブルで許可されている最大ルート数を設定できます。

手順

  コマンドまたはアクション 目的

ステップ 1

configure terminal

例:

switch# configure terminal
switch(config)#

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

ステップ 2

vrf context vrf-name

例:

switch(config)# vrf context management2
switch(config-vrf)#

VRF を作成し、VRF設定モードを開始します。

ステップ 3

address-family {ipv4 | ipv6} unicast

例:

switch(config-vrf)# address-family ipv4 unicast
switch(config-vrf-af-ipv4)

アドレス ファミリ コンフィギュレーション モードを開始します。

ステップ 4

maximum routes max-routes [threshold [reinstall threshold] | warning -only]

例:

switch(config-vrf-af-ipv4)# maximum routes 300000

ルーティング テーブルで許可される最大ルート数を設定します。範囲は 1 ~ 4294967295 です。

次の項目を任意で指定できます。

  • threshold:警告メッセージをトリガーする最大ルート数のパーセンテージ。範囲は 1 ~ 100 です。

  • warning-only —ルートの最大数を超えた場合に警告メッセージを記録します。

  • reinstall threshold :最大ルート数の上限を超過したために拒否された以前のルートを再インストールし、それらを再インストールするしきい値を指定します。しきい値の範囲は 1 ~ 100 です。

ステップ 5

(任意) copy running-config startup-config

例:

switch(config-vrf-af-ipv4)# copy running-config
startup-config
(任意)

この設定変更を保存します。

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

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

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

コマンド 目的

show routing {ipv6} memory estimate routes num-routes next-hops num-nexthops

例:

switch# show routing memory estimate
routes 5000 next-hops 2

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

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

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


注意    


* キーワードは、ルーティングに深刻な悪影響をもたらします。

ユニキャスト RIB 内の 1 つ以上のエントリを消去するには、任意のコンフィギュレーション モードで次のコマンドを使用します。

コマンド 目的

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

例:

switch(config)# clear ip route 10.2.2.2
ユニキャスト RIB とすべてのモジュール FIB から 1 つまたは複数のルートを消去します。ルートのオプションは次のとおりです。
  • * :すべてのルート。

  • route :個々の IP または IPv6 ルート。

  • prefix /length :任意の IP または IPv6 プレフィックス

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

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

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

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

例:

switch(config)# clear routing ip 10.2.2.2
ユニキャスト RIB から 1 つまたは複数のルートを消去します。ルートのオプションは次のとおりです。
  • * :すべてのルート。

  • route :個々の IP または IPv6 ルート。

  • prefix /length :任意の IP または IPv6 プレフィックス

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

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

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

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

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

コマンド 目的

show forwarding adjacency

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

show forwarding distribution {clients | fib-state}

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

show forwarding interfaces module slot

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

show forwarding {ip | ipv4 | ipv6} route

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

show {ip | ipv6} adjacency

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

show {ip | ipv6} route

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

show routing

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

show system internal access-list dest-miss stats

宛先の FIB ルートがないためにドロップされたパケットの統計情報を表示します。DEST MISS とも呼ばれます。出力には、DEST MISS カウンタの増分が表示されます。

(注)  

 

Cisco NX-OS リリース 10.1(1) 以降、この機能は Cisco Nexus 9300-FX3 プラットフォーム スイッチでサポートされます。