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

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

2015 年 11 月 26 日 - 機械翻訳について
その他のバージョン: PDFpdf | ライター翻訳版 (2003 年 9 月 9 日) | 英語版 (2015 年 8 月 22 日) | フィードバック


目次


概要

この文書では、読者が基本的な 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

表記法

ドキュメント表記の詳細は、『シスコ テクニカル ティップスの表記法』を参照してください。

ネットワーク構成図

troubleshoot_mpls_vpn-1.gif

ルータの設定

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

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 advertises all interfaces of Network Type LOOPBACK as host 
!--- routes (/32).

解決策

P ルータと PE1 ルータとの間の LSP 障害は、ループバック用にアドバタイズされていたルートと PE1 によって生成されていたラベル バインディングとの不一致によるものであったので、最も簡単な解決策はループバックのマスクを変更して、OSPF から LOOPBACK タイプのすべてのネットワークに対してアドバタイズされているマスクに適合するようにすることです。

解決策 1PE2 のサブネット マスクの変更

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 によってアドバタイズされることを示します: /32 ルートのための 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.

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

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


関連情報


Document ID: 23565