このドキュメントは、マルチプロトコル ラベル スイッチング(MPLS)の基本的な概念について理解していることを前提としています。MPLS によってスイッチされたパケットは、Label Forwarding Information Base(LFIB; ラベル転送情報ベース)にある情報に基づいて転送されます。ルータのラベルスイッチド インターフェイスから発信されるパケットは、LFIB によって指定された値のラベルを受け取ります。ラベルは Forwarding Equivalence Class(FEC; 転送等価クラス)に従って LFIB 内の宛先と関連付けられます。FEC は IP パケットをグループ化したもので、同一経路で転送され、同一の転送処理が行われます。FEC の最も簡単な例は、あるサブネットへ転送されるすべてのパケットです。もう 1 つの例としては、ある IP 優先順位が与えられ、Border Gateway Protocol(BGP; ボーダー ゲートウェイ プロトコル)ルートのグループに関連付けられた Interior Gateway Protocol(IGP; 内部ゲートウェイ プロトコル)ネクストホップに送られるすべてのパケットが挙げられます。
Label Information Base(LIB; ラベル情報ベース)とは、すべての Label Distribution Protocol(LDP; ラベル配布プロトコル)近接ルータや Tag Distribution Protocol(TDP; タグ配布プロトコル)近接ルータから受け取ったラベルを保存する構造体です。シスコの実装では、ラベルはあるルータのルーティング テーブルにあるすべてのルートを対象に送られ(BGP ルートは除く)、すべての LDP 近隣ルータまたは TDP 近隣ルータに送られます。近接ルータから受け取ったすべてのラベルは、使用するしないにかかわらず、LIB に保存されます。ラベルが FEC 上での下流近接ルータから得られたものの場合は、LIB に保存されたラベルが LFIB によるパケット転送に使用されます。転送に使用されるラベルは、ルータの Cisco Express Forwarding(CEF; Cisco エクスプレス転送)とルーティング テーブルに従って、ルータのネクストホップから宛先向けに得られたものです。
ラベルのバインディングがプレフィクス(サブネット マスクを含む)上の下流近接ルータから得られたもので、ルータのルーティング テーブルや CEF テーブルにない場合は、これらのバインディングは使用されません。同様に、ルータからサブネットまたはサブネット マスクのペアに対するラベルがアドバタイズされており、これがこのルータから同じサブネットまたはサブネット マスクのペアに対して同様にアドバタイズされているルーティング更新に対応していない場合は、これらのラベルは上流近接ルータでは使用されず、これらのデバイス間の Label Switched Path(LSP; ラベル スイッチド パス)には障害が発生します。
この文書では、この種類の LSP 障害と、適用可能な解決方法をいくつか説明します。この文書では、MPLS によってスイッチされるパケットの転送に、ルータにより得られたラベル バインディングが使用されないというシナリオを取り上げます。ただし、この問題の診断と修正に使用する手順は、ラベルのバインディングや MPLS 用に設定されたルータでの LFIB が関係するあらゆる問題に適用できます。
このドキュメントに特有の要件はありません。
このドキュメントの情報は次のソフトウェア バージョンに基づいています。
Cisco IOS®ソフトウェアリリース12.0(21)ST2
ドキュメント表記の詳細は、『シスコ テクニカル ティップスの表記法』を参照してください。
PE1 ルータの設定 |
---|
ip vrf aqua rd 100:1 route-target export 1:1 route-target import 1:1 ! interface Loopback0 ip address 10.2.2.2 255.255.255.255 no ip directed-broadcast ! interface Ethernet2/0/1 ip vrf forwarding aqua ip address 10.1.1.2 255.255.255.0 no ip directed-broadcast ip route-cache distributed !--- The VPN Routing and Forwarding (VRF) interface !--- toward the customer edge (CE) router. interface Ethernet2/0/2 ip address 10.7.7.2 255.255.255.0 no ip directed-broadcast ip route-cache distributed tag-switching ip ! router ospf 1 log-adjacency-changes network 0.0.0.0 255.255.255.255 area 0 ! router bgp 1 bgp log-neighbor-changes neighbor 10.5.5.5 remote-as 1 neighbor 10.5.5.5 update-source Loopback0 no auto-summary ! address-family vpnv4 neighbor 10.5.5.5 activate neighbor 10.5.5.5 send-community extended exit-address-family ! address-family ipv4 neighbor 10.5.5.5 activate no auto-summary no synchronization exit-address-family ! address-family ipv4 vrf aqua redistribute connected no auto-summary no synchronization exit-address-family |
P ルータの設定 |
---|
interface Loopback0 ip address 10.7.7.7 255.255.255.255 no ip directed-broadcast ! interface Ethernet2/0 ip address 10.8.8.7 255.255.255.0 no ip directed-broadcast tag-switching ip ! interface Ethernet2/1 ip address 10.7.7.7 255.255.255.0 no ip directed-broadcast tag-switching ip ! router ospf 1 log-adjacency-changes network 0.0.0.0 255.255.255.255 area 0 !--- BGP is not run on this router. |
PE2 ルータの設定 |
---|
ip vrf aqua rd 100:1 route-target export 1:1 route-target import 1:1 ! interface Loopback0 ip address 10.5.5.5 255.255.255.0 no ip directed-broadcast ! interface Ethernet0/0 ip vrf forwarding aqua ip address 10.10.10.5 255.255.255.0 no ip directed-broadcast !--- The VRF interface toward the CE router. ! interface Ethernet0/3 ip address 10.8.8.5 255.255.255.0 no ip directed-broadcast tag-switching ip ! router ospf 1 log-adjacency-changes network 0.0.0.0 255.255.255.255 area 0 ! router rip version 2 ! address-family ipv4 vrf aqua version 2 network 10.0.0.0 no auto-summary exit-address-family ! router bgp 1 bgp log-neighbor-changes neighbor 10.2.2.2 remote-as 1 neighbor 10.2.2.2 update-source Loopback0 no auto-summary ! address-family vpnv4 neighbor 10.2.2.2 activate neighbor 10.2.2.2 send-community extended exit-address-family ! address-family ipv4 neighbor 10.2.2.2 activate no auto-summary no synchronization exit-address-family ! address-family ipv4 vrf aqua redistribute connected redistribute rip no auto-summary no synchronization exit-address-family |
CE2 ルータの設定 |
---|
interface Loopback0 ip address 192.168.1.196 255.255.255.192 no ip directed-broadcast ! interface Ethernet1 ip address 10.10.10.6 255.255.255.0 no ip directed-broadcast ! router rip version 2 network 10.0.0.0 network 192.168.1.0 no auto-summary !--- Routing Information Protocol (RIP) is used for the advertisement !--- of routes between the CE and the provider edge (PE) router. ! ip route 0.0.0.0 0.0.0.0 10.10.10.5 |
注:CE1の設定は省略されています。設定に含まれているものは、イーサネット インターフェイスの IP アドレスの割り当てと、10.2.2.2 への スタティックなデフォルト ルートだけです。
次の例に示すように、CE1 と CE2 のループバック インターフェイスとの間の接続が消失しています。
CE1#ping 192.168.1.196 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 192.168.1.196, timeout is 2 seconds: ..... Success rate is 0 percent (0/5)
ただし、次の例に示すように、CE1 にはこの宛先に対する有効なルーティング エントリがあります。
CE1#show ip route 0.0.0.0 Routing entry for 0.0.0.0/0, supernet Known via "static", distance 1, metric 0, candidate default path Redistributing via ospf 100 Routing Descriptor Blocks: * 10.1.1.2 Route metric is 0, traffic share count is 1
PE1(CE1 が接続されている PE ルータ)では、MPLS VPN 固有の情報をチェックできます。次の例では、宛先に対する有効なルートが、この VPN 用の VRF テーブルに存在しています。
PE1#show ip route vrf aqua 192.168.1.196 Routing entry for 192.168.1.192/26 Known via "bgp 1", distance 200, metric 1, type internal Last update from 10.5.5.5 00:09:52 ago Routing Descriptor Blocks: * 10.5.5.5 (Default-IP-Routing-Table), from 10.5.5.5, 00:09:52 ago Route metric is 1, traffic share count is 1 AS Hops 0, BGP network version 0 PE1#show tag-switching forwarding-table vrf aqua 192.168.1.196 detail Local Outgoing Prefix Bytes tag Outgoing Next Hop tag tag or VC or Tunnel Id switched interface None 16 192.168.1.192/26 0 Et2/0/2 10.7.7.7 MAC/Encaps=14/22, MTU=1496, Tag Stack{16 32} 00603E2B02410060835887428847 0001000000020000 No output feature configured PE1#show ip bgp vpnv4 vrf aqua 192.168.1.192 BGP routing table entry for 100:1:192.168.1.192/26, version 43 Paths: (1 available, best #1, table aqua) Not advertised to any peer Local 10.5.5.5 (metric 21) from 10.5.5.5 (10.5.5.5) Origin incomplete, metric 1, localpref 100, valid, internal, best Extended Community: RT:1:1 PE1#show tag-switching forwarding-table 10.5.5.5 detail Local Outgoing Prefix Bytes tag Outgoing Next Hop tag tag or VC or Tunnel Id switched interface 18 16 10.5.5.5/32 0 Et2/0/2 10.7.7.7 MAC/Encaps=14/18, MTU=1500, Tag Stack{16} 00603E2B02410060835887428847 00010000 No output feature configured Per-packet load-sharing, slots: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
この例で示されるように、PE1 には正しいマスクが設定された BGP ネクストホップへのルートがありません。
PE1# PE1#show ip route 10.5.5.5 255.255.255.0 % Subnet not in table PE1#show ip route 10.5.5.5 255.255.255.255 Routing entry for 10.5.5.5/32 Known via "ospf 1", distance 110, metric 21, type intra area Last update from 10.7.7.7 on Ethernet2/0/2, 00:38:55 ago Routing Descriptor Blocks: * 10.7.7.7, from 10.5.5.5, 00:38:55 ago, via Ethernet2/0/2 Route metric is 21, traffic share count is 1
PE1 によってこの BGP ネクストホップに到達するために使用される IGP ルーティング情報は、P ルータから取得されています。次の例で示すように、このルータでは PE2 ループバックに対する誤ったマスクが表示されており、正しいマスクを持つこのプレフィクスへのルートがありません。
P#show ip route 10.5.5.5 Routing entry for 10.5.5.5/32 Known via "ospf 1", distance 110, metric 11, type intra area Last update from 10.8.8.5 on Ethernet2/0, 00:47:48 ago Routing Descriptor Blocks: * 10.8.8.5, from 10.5.5.5, 00:47:48 ago, via Ethernet2/0 Route metric is 11, traffic share count is 1 P#show ip route 10.5.5.5 255.255.255.0 % Subnet not in table
PルータのLFIBとタグバインディングは、このルータとPE2の間のLSP障害の原因を示しています。10.5.5.5の発信ラベルはありません。パケットがPE1から送信された場合、Pルータ(16)によって生成されたBGPネクストホップラベル(32)。 P ルータでのこのエントリは、この宛先に対するタグなしのラベル スイッチド パケットであるため、ラベルなしで送信されます。VPN ラベル 32 は失われているため、PE2 で受信されることはなく、また PE2 ではこのパケットを正しい VPN 宛先に転送するための情報が得られません。
P#show tag-switching forwarding-table 10.5.5.5 detail Local Outgoing Prefix Bytes tag Outgoing Next Hop tag tag or VC or Tunnel Id switched interface 16 Untagged 10.5.5.5/32 5339 Et2/0 10.8.8.5 MAC/Encaps=0/0, MTU=1504, Tag Stack{} No output feature configured Per-packet load-sharing, slots: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
次の例に示すように、Pルータのラベルバインディングテーブルには、PE2(tsr:10.8.8.5:0)は、/24マスクを持つ10.5.5.5のバインディングのみをアドバタイズします。/32ルートのラベルは、PルータとPE1(tsr:10.2.2.2:0)。ただし、PE2はアドバタイズされません。PE2によってアドバタイズされたバインディングが、アドバタイズされたルートとも一致しないため、この宛先にパケットを転送するためのラベルはPルータのLFIBには存在しません。
P#show tag-switching tdp bindings detail tib entry: 10.5.5.0/24, rev 67(no route) remote binding: tsr: 10.8.8.5:0, tag: imp-null tib entry: 10.5.5.5/32, rev 62 local binding: tag: 16 Advertised to: 10.2.2.2:0 10.8.8.5:0 remote binding: tsr: 10.2.2.2:0, tag: 18
PE2 によるルーティング更新とアドバタイズされたラベル バインディングの矛盾の原因は、このルータのルーティング テーブルとタグ バインディング テーブルで見ることができます。直接接続されたループバックは正しい /24 のマスクを示していますが、これはルータによってラベル バインディングの生成に使用されています。このネットワークでは、Open Shortest Path First(OSPF)が使用されているため、次の例に示すように、ルータはこのインターフェイスを /32 のマスクでアドバタイズします。
PE2#show ip route 10.5.5.5 Routing entry for 10.5.5.0/24 Known via "connected", distance 0, metric 0 (connected, via interface) Routing Descriptor Blocks: * directly connected, via Loopback0 Route metric is 0, traffic share count is 1 PE2#show tag-switching tdp bindings detail tib entry: 10.5.5.0/24, rev 142 local binding: tag: imp-null Advertised to: 10.7.7.7:0 tib entry: 10.5.5.5/32, rev 148 remote binding: tsr: 10.7.7.7:0, tag: 16 PE2#show ip ospf interface loopback 0 Loopback0 is up, line protocol is up Internet Address 10.5.5.5/24, Area 0 Process ID 1, Router ID 10.5.5.5, Network Type LOOPBACK, Cost: 1 Loopback interface is treated as a stub Host !--- OSPF advertises all interfaces of Network Type LOOPBACK as host !--- routes (/32).
P ルータと PE1 ルータとの間の LSP 障害は、ループバック用にアドバタイズされていたルートと PE1 によって生成されていたラベル バインディングとの不一致によるものであったので、最も簡単な解決策はループバックのマスクを変更して、OSPF から LOOPBACK タイプのすべてのネットワークに対してアドバタイズされているマスクに適合するようにすることです。
解決策 1:PE2 のサブネット マスクの変更
PE2#configure terminal Enter configuration commands, one per line. End with CNTL/Z. PE2(config)#int lo 0 PE2(config-if)#ip add 10.5.5.5 255.255.255.255 PE2(config-if)#end PE2#
PE1 の情報には、LSP 障害が発生するこのシナリオと同じものが示されています。次に例を示します。
PE1#show tag-switching forwarding-table vrf aqua 192.168.1.196 detail Local Outgoing Prefix Bytes tag Outgoing Next Hop tag tag or VC or Tunnel Id switched interface None 16 192.168.1.192/26 0 Et2/0/2 10.7.7.7 MAC/Encaps=14/22, MTU=1496, Tag Stack{16 32} 00603E2B02410060835887428847 0001000000020000 No output feature configured PE1#show tag-switching forwarding-table 10.5.5.5 detail Local Outgoing Prefix Bytes tag Outgoing Next Hop tag tag or VC or Tunnel Id switched interface 18 16 10.5.5.5/32 0 Et2/0/2 10.7.7.7 MAC/Encaps=14/18, MTU=1500, Tag Stack{16} 00603E2B02410060835887428847 00010000 No output feature configured Per-packet load-sharing, slots: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
P ルータは、LSP 障害を起こしていた状態が解消されていることを示しています。出ラベルは現在はポップ タグになっています。このことは、BGP ネクストホップのトップ ラベルが、パケットがルータを通過するときにポップされることを意味していますが、パケットには依然として二次 VPN ラベルが付けられています(パケットはタグなしで送信されることはありません)。
タグバインディングテーブルは、PE2(tsr:10.8.8.5:0)。
P#show tag-switching forwarding-table 10.5.5.5 detail Local Outgoing Prefix Bytes tag Outgoing Next Hop tag tag or VC or Tunnel Id switched interface 16 Pop tag 10.5.5.5/32 3493 Et2/0 10.8.8.5 MAC/Encaps=14/14, MTU=1504, Tag Stack{} 006009E08B0300603E2B02408847 No output feature configured Per-packet load-sharing, slots: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 P#show tag-switching tdp bindings detail tib entry: 10.5.5.5/32, rev 71 local binding: tag: 16 Advertised to: 10.2.2.2:0 10.8.8.5:0 remote binding: tsr: 10.2.2.2:0, tag: 18 remote binding: tsr: 10.8.8.5:0, tag: imp-null
解決策 2:OSPF ネットワーク タイプの変更
2 つ目の解決方法は、ループバック インターフェイスの OSPF ネットワーク タイプを変更することです。PE2 のループバック インターフェイスの OSPF ネットワーク タイプがポイントツーポイントに変更されると、ループバック プレフィクスは /32 のマスクでは自動的にはアドバタイズされなくなります。これは、PE2 によって生成されるラベル バインディングが、ルーティング テーブルで直接接続されているサブネット(/24 のサブネット マスクを含む)を参照するときに、PE2 から受け取った P ルータでの OSPF ルート(このプレフィクス用の /24 のサブネットを含む)に一致することを意味しています。
PE2 のループバック インターフェイスのネットワーク タイプの変更には、ip ospf network point-to-point コマンドを使用できます。次に例を示します。
PE2#configure terminal Enter configuration commands, one per line. End with CNTL/Z. PE2(config)#interface loopback 0 PE2(config-if)#ip ospf network point-to-point PE2(config-if)#
次に示すように、PE1のタグ転送テーブルにはBGPネクストホップのエントリが含まれており、これはPE2のループバックインターフェイスの実際のマスクと一致しています。ルーティングテーブルには、この転送エントリに関連付けられたOSPFルートも正しいことが示されています。
PE1#show tag-switching forwarding-table 10.5.5.5 detail Local Outgoing Prefix Bytes tag Outgoing Next Hop tag tag or VC or Tunnel Id switched interface 22 17 10.5.5.0/24 0 Et2/0/2 10.7.7.7 MAC/Encaps=14/18, MTU=1500, Tag Stack{17} 00603E2B02410060835887428847 00011000 No output feature configured Per-packet load-sharing, slots: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 PE1#show ip route 10.5.5.5 Routing entry for 10.5.5.0/24 Known via "ospf 1", distance 110, metric 21, type intra area Last update from 10.7.7.7 on Ethernet2/0/2, 00:36:53 ago Routing Descriptor Blocks: * 10.7.7.7, from 10.5.5.5, 00:36:53 ago, via Ethernet2/0/2 Route metric is 21, traffic share count is 1
次の例では、P ルータのタグ転送エントリによって、発信タグがポップ タグとして示されています。これは「解決方法 1」と同様です。再び、BGP ネクストホップのトップ ラベルが、パケットがこのルータを通過したときにポップされますが、二次 VPN ラベルは維持されて、LSP に障害は発生しません。正しいサブネット マスクを示しているバインディングも存在しています。
P#show tag-switching forwarding-table 10.5.5.5 detail Local Outgoing Prefix Bytes tag Outgoing Next Hop tag tag or VC or Tunnel Id switched interface 17 Pop tag 10.5.5.0/24 4261 Et2/0 10.8.8.5 MAC/Encaps=14/14, MTU=1504, Tag Stack{} 006009E08B0300603E2B02408847 No output feature configured Per-packet load-sharing, slots: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 P#show tag-switching tdp bindings detail tib entry: 10.5.5.0/24, rev 68 local binding: tag: 17 Advertised to: 10.2.2.2:0 10.8.8.5:0 remote binding: tsr: 10.8.8.5:0, tag: imp-null remote binding: tsr: 10.2.2.2:0, tag: 22
次に示すように、このコマンドの出力では、ネットワーク タイプがポイントツーポイントに変更されたことが示されています。CE1 から CE2 のループバック インターフェイスへの完全な接続も行われています。
PE2#show ip ospf interface loopback 0 Loopback0 is up, line protocol is up Internet Address 10.5.5.5/24, Area 0 Process ID 1, Router ID 10.5.5.5, Network Type POINT_TO_POINT, Cost: 1 Transmit Delay is 1 sec, State POINT_TO_POINT, Timer intervals configured, Hello 10, Dead 40, Wait 40, Retransmit 5 Index 3/3, flood queue length 0 Next 0x0(0)/0x0(0) Last flood scan length is 0, maximum is 0 Last flood scan time is 0 msec, maximum is 0 msec Neighbor Count is 0, Adjacent neighbor count is 0 Suppress hello for 0 neighbor(s) CE1#ping 192.168.1.196 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 192.168.1.196, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 4/4/4 ms CE1.
改定 | 発行日 | コメント |
---|---|---|
1.0 |
18-Jan-2008 |
初版 |