マルチプロトコル ラベル スイッチング(MPLS) : MPLS

トラブルシューティング:MPLS VPN での LSP 障害

2003 年 9 月 9 日 - ライター翻訳版
その他のバージョン: PDFpdf | 機械翻訳版 (2013 年 8 月 21 日) | 英語版 (2008 年 1 月 18 日) | フィードバック

目次


概要

この文書では、読者が基本的な Multiprotocol Label Switching(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(R) ソフトウェア リリース バージョン 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
  !---  VPN ルーティング/転送(VRF)インターフェイス
  !--- これはカスタマー エッジ(CE)ルータ用です。 
  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 は実行されません。
  

 
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
  !--- CE ルータに対する VRF インターフェイス.
  !
  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
  !--- ルーティング情報インターフェイス(RIP)が、CE ルータと
  !--- プロバイダー エッジ(PE)ルータ間のルートのアドバタイズに使用されています。
  !
  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

LSP 障害の原因

P ルータでの LFIB とタグ バインディングにより、このルータと PE2 間での LSP 障害の原因がわかります。 ここには、10.5.5.5 に対する出ラベルがありません。 パケットが PE1 から発信されるとき、パケットには 2 つのラベルが付けられます。P ルータによって生成された BGP ネクストホップのラベル(16)と、PE2 によって生成された VPN ラベル(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 によって Network Type LOOPBACK がホスト ルート(/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)によって /32 ルートに対するラベル(imp-null)がアドバタイズされていることが示されています。

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.


関連するシスコ サポート コミュニティ ディスカッション

シスコ サポート コミュニティは、どなたでも投稿や回答ができる情報交換スペースです。


関連情報


Document ID: 23565