BGP および IGP プレフィックス SID 用の MPLS Ping および Traceroute

プレフィックス SID 用の MPLS Ping および Traceroute の操作は、次のようなさまざまな BGP および IGP シナリオでサポートされています。

  • IS-IS レベルまたは OSPF エリア内

  • IS-IS レベルまたは OSPF エリア間

  • IS-IS から OSPF へ、および OSPF から IS-IS へのルート再配布

  • エニーキャスト プレフィックス SID

  • BGP と LDP によってシグナリングされた LSP の組み合わせ

MPLS LSP ping 機能を使用して、LSP に沿った入力ラベル スイッチ ルータ(LSR)と出力 LSR 間の接続を確認します。MPLS LSP ping は、Internet Control Message Protocol(ICMP)のエコー要求メッセージと応答メッセージと同様に、LSP の検証に MPLS エコーの要求メッセージと応答メッセージを使用します。MPLS エコー要求パケットの宛先 IP アドレスは、ラベル スタックの選択に使用されるアドレスとは異なります。宛先 IP アドレスは 127.x.y.z/8 アドレスとして定義され、LSP が壊れている場合は IP パケットがそれ自体の宛先へ IP を切り替えないようにします。

MPLS LSP traceroute 機能を使用して、LSP の障害ポイントを隔離します。これはホップバイホップ エラーのローカリゼーションとパス トレースに使用されます。MPLS LSP traceroute 機能は、エコー要求を伝送するパケットの存続可能時間(TTL)値の期限切れに依存します。MPLS エコー要求メッセージが中継ノードを見つけると TTL 値をチェックし、期限が切れている場合はコントロール プレーンにパケットが渡されます。それ以外の場合は、メッセージが転送されます。エコー メッセージがコントロール プレーンに渡されると、要求メッセージの内容に基づいて応答メッセージが生成されます。

MPLS LSP ツリー トレース(traceroute マルチパス)操作は、BGP および IGP プレフィックス SID でもサポートされています。MPLS LSP ツリー トレースでは、LSP のすべての可能な等コスト マルチパス(ECMP)ルーティング パスを検出して宛先プレフィックス SID に到達する手段が提供されます。エコー要求パケットにエンコードされたマルチパス データを使用して、ロードバランシング情報が照会されます。これにより、発信者は各 ECMP の実行を許可される場合があります。パケット TTL が応答ノードで期限切れになると、ノードはダウンストリーム パスのリストとマルチパス情報を返します。これにより、オペレータは MPLS エコー応答内の各パスを実行できるようになります。この操作は、すべての ECMP が検出されて検証されるまで、TTL 値が増加しながら各パスのホップごとに繰り返し実行されます。

MPLS エコー要求パケットは、ターゲット FEC スタック サブ TLV を伝送します。ターゲット FEC サブ TLV は、レスポンダによって FEC 検証のために使用されます。BGP および IGP IPv4 プレフィックス サブ TLV がターゲット FEC スタック サブ TLV に追加されました。IGP IPv4 プレフィックス サブ TLV には、プレフィックス SID、プレフィックス長、およびプロトコル(IS-IS または OSPF)が含まれています。BGP IPv4 プレフィックス サブ TLV には、プレフィックス SID とプレフィックス長が含まれています。

MPLS LSP ping および traceroute Nil FEC ターゲット

Nil-FEC LSP ping および traceroute の操作は、通常の MPLS ping および traceroute の拡張機能です。

Nil-FEC LSP Ping/Traceroute 機能は、セグメント ルーティングと MPLS スタティックをサポートしています。また、他のすべての LSP タイプに対する追加の診断ツールとしても機能します。この機能は、オペレータに以下を指定することを許可することで、オペレータがラベル スタックを自由にテストできるようにします。

  • ラベル スタック

  • 発信インターフェイス

  • ネクストホップ アドレス

セグメント ルーティングの場合、ルーティング パスに沿った各セグメント ノード ラベルおよび隣接関係ラベルは、イニシエータのラベル スイッチ ルータ(LSR)からのエコー要求メッセージのラベル スタックに入れられます。MPLS データ プレーンは、このパケットをラベル スタック ターゲットに転送し、ラベル スタック ターゲットはエコー メッセージを送り返します。

次の表に、ping および traceroute コマンドの構文を示します。

表 1. LSP ping および traceroute Nil FEC コマンド

コマンド構文

ping mpls nil-fec labels {label[, label]} [output {interface tx-interface} [nexthop nexthop-ip-addr]]

traceroute mpls nil-fec labels {label[, label]} [output {interface tx-interface} [nexthop nexthop-ip-addr]]

例:Nil_FEC ターゲットの LSP Ping および Traceroute

これらの例では、次のトポロジを使用しています。


Node loopback IP address: 172.18.1.3   172.18.1.4   172.18.1.5   172.18.1.7
Node label:                            16004        16005        16007
Nodes:                    Arizona ---- Utah ------- Wyoming ---- Texas

Interface:            GigabitEthernet0/0/0/1   GigabitEthernet0/0/0/1
Interface IP address:         10.1.1.3              10.1.1.4


RP/0/RP0/CPU0:router-utah# show mpls forwarding

Tue Jul  5 13:44:31.999 EDT
Local  Outgoing    Prefix             Outgoing     Next Hop        Bytes      
Label  Label       or ID              Interface                    Switched   
------ ----------- ------------------ ------------ --------------- ------------
16004  Pop         No ID              Gi0/0/0/1    10.1.1.4        1392       
       Pop         No ID              Gi0/0/0/2    10.1.2.2        0          
16005  16005       No ID              Gi0/0/0/0    10.1.1.4        0          
       16005       No ID              Gi0/0/0/1    10.1.2.2        0          
16007  16007       No ID              Gi0/0/0/0    10.1.1.4        4752       
       16007       No ID              Gi0/0/0/1    10.1.2.2        0          
24000  Pop         SR Adj (idx 0)     Gi0/0/0/0    10.1.1.4        0          
24001  Pop         SR Adj (idx 2)     Gi0/0/0/0    10.1.1.4        0          
24002  Pop         SR Adj (idx 0)     Gi0/0/0/1    10.1.2.2        0          
24003  Pop         SR Adj (idx 2)     Gi0/0/0/1    10.1.2.2        0          
24004  Pop         No ID              tt10         point2point     0          
24005  Pop         No ID              tt11         point2point     0          
24006  Pop         No ID              tt12         point2point     0          
24007  Pop         No ID              tt13         point2point     0          
24008  Pop         No ID              tt30         point2point     0      

Ping Nil FEC ターゲット


RP/0/RP0/CPU0:router-arizona# ping mpls nil-fec labels 16005,16007 output interface GigabitEthernet 0/0/0/1 nexthop 10.1.1.4 repeat 1
Sending 1, 72-byte MPLS Echos with Nil FEC labels 16005,16007,
     timeout is 2 seconds, send interval is 0 msec:

Codes: '!' - success, 'Q' - request not sent, '.' - timeout,
  'L' - labeled output interface, 'B' - unlabeled output interface,
  'D' - DS Map mismatch, 'F' - no FEC mapping, 'f' - FEC mismatch,
  'M' - malformed request, 'm' - unsupported tlvs, 'N' - no label entry,
  'P' - no rx intf label prot, 'p' - premature termination of LSP,
  'R' - transit router, 'I' - unknown upstream index,
  'l' - Label switched with FEC change, 'd' - see DDMAP for return code,
  'X' - unknown return code, 'x' - return code 0

Type escape sequence to abort.
!
Success rate is 100 percent (1/1), round-trip min/avg/max = 1/1/1 ms
 Total Time Elapsed 0 ms

Traceroute Nil FEC ターゲット


RP/0/RP0/CPU0:router-arizona# traceroute mpls nil-fec labels 16005,16007 output interface GigabitEthernet 0/0/0/1 nexthop 10.1.1.4
Tracing MPLS Label Switched Path with Nil FEC labels 16005,16007, timeout is 2 seconds

Codes: '!' - success, 'Q' - request not sent, '.' - timeout,
  'L' - labeled output interface, 'B' - unlabeled output interface,
  'D' - DS Map mismatch, 'F' - no FEC mapping, 'f' - FEC mismatch,
  'M' - malformed request, 'm' - unsupported tlvs, 'N' - no label entry,
  'P' - no rx intf label prot, 'p' - premature termination of LSP,
  'R' - transit router, 'I' - unknown upstream index,
  'l' - Label switched with FEC change, 'd' - see DDMAP for return code,
  'X' - unknown return code, 'x' - return code 0

Type escape sequence to abort.
  0 10.1.1.3 MRU 1500 [Labels: 16005/16007/explicit-null Exp: 0/0/0]
L 1 10.1.1.4 MRU 1500 [Labels: implicit-null/16007/explicit-null Exp: 0/0/0] 1 ms
L 2 10.1.1.5 MRU 1500 [Labels: implicit-null/explicit-null Exp: 0/0] 1 ms
! 3 10.1.1.7 1 ms

セグメント ルーティング Ping

MPLS LSP ping 機能を使用して、LSP の入力と出力の間の接続を確認します。MPLS LSP ping は、Internet Control Message Protocol(ICMP)のエコー要求メッセージと応答メッセージと同様に、LSP の検証に MPLS エコーの要求メッセージと応答メッセージを使用します。セグメント ルーティング ping は、セグメント ルーティング コントロール プレーン上で接続性検証を実行するための MPLS LSP ping の拡張機能です。


(注)  

セグメント ルーティング ping は、発信デバイスがセグメント ルーティングを実行している場合にのみ使用できます。

セグメント ルーティング ping の操作は、セグメント ルーティング コントロール プレーンが発信者側で使用可能な場合(優先されていない場合でも)にのみ開始できます。これにより、パス上でトラフィックを誘導する前に、SR パスを検証できます。セグメント ルーティング ping は、汎用 FEC タイプまたは SR コントロール プレーン FEC タイプ(SR-OSPF、SR-ISIS)のいずれかを使用できます。複数のデバイスが MPLS コントロール プレーンを実行している(LDP など)、または SR FEC を認識していない混合ネットワークでは、汎用 FEC タイプを使用することで、デバイスがエコー要求を正常に処理して応答することができます。デフォルトでは、汎用 FEC タイプがセグメント ルーティング ping エコー要求のターゲット FEC スタックで使用されます。汎用 FEC は、特定のコントロール プレーンに結合されていません。そのため、アドバタイジング プロトコルが不明の場合、またはエコー要求のパス中に変更される可能性がある場合に、パス検証を行うことができます。ターゲット FEC を指定する必要がある場合は、FEC タイプを OSPF、IS-IS、または BGP として選択できます。これにより、セグメント ルーティング コントロール プレーンを実行し、セグメント ルーティング IGP FEC を理解できるデバイスだけがエコー要求に応答することが保証されます。

設定例

次の例に、セグメント ルーティング コントロール プレーンの接続性をテストするためにセグメント ルーティング ping を使用する方法を示します。最初の例では、FEC のタイプは指定されていません。他の例に示すように、FEC タイプを指定することもできます。

RP/0/RP0/CPU0:router# ping sr-mpls 10.1.1.2/32
 
Sending 5, 100-byte MPLS Echos to 10.1.1.2/32,
      timeout is 2 seconds, send interval is 0 msec:
 
Codes: '!' - success, 'Q' - request not sent, '.' - timeout,
  'L' - labeled output interface, 'B' - unlabeled output interface, 
  'D' - DS Map mismatch, 'F' - no FEC mapping, 'f' - FEC mismatch,
  'M' - malformed request, 'm' - unsupported tlvs, 'N' - no rx label, 
  'P' - no rx intf label prot, 'p' - premature termination of LSP, 
  'R' - transit router, 'I' - unknown upstream index,
  'X' - unknown return code, 'x' - return code 0
 
Type escape sequence to abort.
 
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/2/5 ms
RP/0/RP0/CPU0:router# ping sr-mpls 10.1.1.2/32 fec-type generic 
 
Sending 5, 100-byte MPLS Echos to 10.1.1.2/32,
      timeout is 2 seconds, send interval is 0 msec:
 
Codes: '!' - success, 'Q' - request not sent, '.' - timeout,
  'L' - labeled output interface, 'B' - unlabeled output interface, 
  'D' - DS Map mismatch, 'F' - no FEC mapping, 'f' - FEC mismatch,
  'M' - malformed request, 'm' - unsupported tlvs, 'N' - no rx label, 
  'P' - no rx intf label prot, 'p' - premature termination of LSP, 
  'R' - transit router, 'I' - unknown upstream index,
  'X' - unknown return code, 'x' - return code 0
 
Type escape sequence to abort.
 
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/1/2 ms

RP/0/RP0/CPU0:router# ping sr-mpls 10.1.1.2/32 fec-type igp ospf  
 
Sending 5, 100-byte MPLS Echos to 10.1.1.2/32,
      timeout is 2 seconds, send interval is 0 msec:
 
Codes: '!' - success, 'Q' - request not sent, '.' - timeout,
  'L' - labeled output interface, 'B' - unlabeled output interface, 
  'D' - DS Map mismatch, 'F' - no FEC mapping, 'f' - FEC mismatch,
  'M' - malformed request, 'm' - unsupported tlvs, 'N' - no rx label, 
  'P' - no rx intf label prot, 'p' - premature termination of LSP, 
  'R' - transit router, 'I' - unknown upstream index,
  'X' - unknown return code, 'x' - return code 0
 
Type escape sequence to abort.
 
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/1/2 ms
 
RP/0/RP0/CPU0:router# ping sr-mpls 10.1.1.2/32 fec-type igp isis 
 
Sending 5, 100-byte MPLS Echos to 10.1.1.2/32,
      timeout is 2 seconds, send interval is 0 msec:
 
Codes: '!' - success, 'Q' - request not sent, '.' - timeout,
  'L' - labeled output interface, 'B' - unlabeled output interface, 
  'D' - DS Map mismatch, 'F' - no FEC mapping, 'f' - FEC mismatch,
  'M' - malformed request, 'm' - unsupported tlvs, 'N' - no rx label, 
  'P' - no rx intf label prot, 'p' - premature termination of LSP, 
  'R' - transit router, 'I' - unknown upstream index,
  'X' - unknown return code, 'x' - return code 0
 
Type escape sequence to abort.
 
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/1/2 ms

RP/0/RP0/CPU0:router# ping sr-mpls 10.1.1.2/32 fec-type bgp 

Sending 5, 100-byte MPLS Echos to 10.1.1.2/32,
      timeout is 2 seconds, send interval is 0 msec:

Codes: '!' - success, 'Q' - request not sent, '.' - timeout,
  'L' - labeled output interface, 'B' - unlabeled output interface, 
  'D' - DS Map mismatch, 'F' - no FEC mapping, 'f' - FEC mismatch,
  'M' - malformed request, 'm' - unsupported tlvs, 'N' - no rx label, 
  'P' - no rx intf label prot, 'p' - premature termination of LSP, 
  'R' - transit router, 'I' - unknown upstream index,
  'X' - unknown return code, 'x' - return code 0

Type escape sequence to abort.

!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/1/2 ms

セグメント ルーティング Traceroute

MPLS LSP traceroute を使用して、LSP の障害ポイントを隔離します。これはホップバイホップ エラーのローカリゼーションとパス トレースに使用されます。MPLS LSP traceroute 機能は、エコー要求を伝送するパケットの存続可能時間(TTL)値の期限切れに依存します。MPLS エコー要求メッセージが中継ノードを見つけると TTL 値をチェックし、期限が切れている場合はコントロール プレーンにパケットが渡されます。それ以外の場合は、メッセージが転送されます。エコー メッセージがコントロール プレーンに渡されると、要求メッセージの内容に基づいて応答メッセージが生成されます。セグメント ルーティング traceroute 機能は、MPLS LSP traceroute 機能をセグメント ルーティング ネットワークに拡張します。

セグメント ルーティング ping と同様に、セグメント ルーティング traceroute 操作は、セグメント ルーティング コントロール プレーンが発信者側で使用可能な場合(優先されていない場合でも)にのみ開始できます。セグメント ルーティング traceroute は、汎用 FEC タイプまたは SR コントロール プレーン FEC タイプ(SR-OSPF、SR-ISIS)のいずれかを使用できます。デフォルトでは、汎用 FEC タイプがセグメント ルーティング traceroute エコー要求のターゲット FEC スタックで使用されます。ターゲット FEC を指定する必要がある場合は、FEC タイプを OSPF、IS-IS、または BGP として選択できます。これにより、セグメント ルーティング コントロール プレーンを実行し、セグメント ルーティング IGP FEC を理解できるデバイスだけがエコー要求に応答することが保証されます。

MPLS ネットワーク内のルータにロード バランシングが存在すると、MPLS トラフィックをターゲット ルータに伝送するための代替パスが提供されます。マルチパス セグメント ルーティング traceroute 機能は、入力ルータと出力ルータ間で LSP のすべての可能なパスを検出する手段を提供します。

設定例

次の例に、セグメント ルーティング traceroute を使用して、指定された IPv4 プレフィックス SID アドレスの LSP をトレースする方法を示します。最初の例では、FEC のタイプは指定されていません。他の例に示すように、FEC タイプを指定することもできます。

RP/0/RP0/CPU0:router# traceroute sr-mpls 10.1.1.2/32 
 
Tracing MPLS Label Switched Path to 10.1.1.2/32, timeout is 2 seconds
 
Codes: '!' - success, 'Q' - request not sent, '.' - timeout,
  'L' - labeled output interface, 'B' - unlabeled output interface, 
  'D' - DS Map mismatch, 'F' - no FEC mapping, 'f' - FEC mismatch,
  'M' - malformed request, 'm' - unsupported tlvs, 'N' - no rx label, 
  'P' - no rx intf label prot, 'p' - premature termination of LSP, 
  'R' - transit router, 'I' - unknown upstream index,
  'X' - unknown return code, 'x' - return code 0
 
Type escape sequence to abort.
 
  0 10.12.12.1 MRU 1500 [Labels: implicit-null Exp: 0]
! 1 10.12.12.2 3 ms

RP/0/RP0/CPU0:router# traceroute sr-mpls 10.1.1.2/32  fec-type generic 
 
Tracing MPLS Label Switched Path to 10.1.1.2/32, timeout is 2 seconds
 
Codes: '!' - success, 'Q' - request not sent, '.' - timeout,
  'L' - labeled output interface, 'B' - unlabeled output interface, 
  'D' - DS Map mismatch, 'F' - no FEC mapping, 'f' - FEC mismatch,
  'M' - malformed request, 'm' - unsupported tlvs, 'N' - no rx label, 
  'P' - no rx intf label prot, 'p' - premature termination of LSP, 
  'R' - transit router, 'I' - unknown upstream index,
  'X' - unknown return code, 'x' - return code 0
 
Type escape sequence to abort.
 
  0 10.12.12.1 MRU 1500 [Labels: implicit-null Exp: 0]
! 1 10.12.12.2 2 ms
 
RP/0/RP0/CPU0:router# traceroute sr-mpls 10.1.1.2/32  fec-type  igp ospf 
 
Tracing MPLS Label Switched Path to 10.1.1.2/32, timeout is 2 seconds
 
Codes: '!' - success, 'Q' - request not sent, '.' - timeout,
  'L' - labeled output interface, 'B' - unlabeled output interface, 
  'D' - DS Map mismatch, 'F' - no FEC mapping, 'f' - FEC mismatch,
  'M' - malformed request, 'm' - unsupported tlvs, 'N' - no rx label, 
  'P' - no rx intf label prot, 'p' - premature termination of LSP, 
  'R' - transit router, 'I' - unknown upstream index,
  'X' - unknown return code, 'x' - return code 0
 
Type escape sequence to abort.
 
  0 10.12.12.1 MRU 1500 [Labels: implicit-null Exp: 0]
! 1 10.12.12.2 2 ms

RP/0/RP0/CPU0:router# traceroute sr-mpls 10.1.1.2/32  fec-type  igp isis 
 
Tracing MPLS Label Switched Path to 10.1.1.2/32, timeout is 2 seconds
 
Codes: '!' - success, 'Q' - request not sent, '.' - timeout,
  'L' - labeled output interface, 'B' - unlabeled output interface, 
  'D' - DS Map mismatch, 'F' - no FEC mapping, 'f' - FEC mismatch,
  'M' - malformed request, 'm' - unsupported tlvs, 'N' - no rx label, 
  'P' - no rx intf label prot, 'p' - premature termination of LSP, 
  'R' - transit router, 'I' - unknown upstream index,
  'X' - unknown return code, 'x' - return code 0
 
Type escape sequence to abort.
 
  0 10.12.12.1 MRU 1500 [Labels: implicit-null Exp: 0]
! 1 10.12.12.2 2 ms

RP/0/RP0/CPU0:router#traceroute sr-mpls 10.1.1.2/32 fec-type bgp                                         
 
Tracing MPLS Label Switched Path to 10.1.1.2/32, timeout is 2 seconds
 
Codes: '!' - success, 'Q' - request not sent, '.' - timeout,
  'L' - labeled output interface, 'B' - unlabeled output interface, 
  'D' - DS Map mismatch, 'F' - no FEC mapping, 'f' - FEC mismatch,
  'M' - malformed request, 'm' - unsupported tlvs, 'N' - no rx label, 
  'P' - no rx intf label prot, 'p' - premature termination of LSP, 
  'R' - transit router, 'I' - unknown upstream index,
  'X' - unknown return code, 'x' - return code 0
 
Type escape sequence to abort.
 
 
  0 10.12.12.1 MRU 1500 [Labels: implicit-null/implicit-null Exp: 0/0]
! 1 10.12.12.2 2 ms

次の例に、マルチパス traceroute を使用して、IPv4 プレフィックス SID に可能なすべてのパスを検出する方法を示します。

RP/0/RP0/CPU0:router# traceroute sr-mpls multipath 10.1.1.2/32 
 
Starting LSP Path Discovery for 10.1.1.2/32
 
Codes: '!' - success, 'Q' - request not sent, '.' - timeout,
  'L' - labeled output interface, 'B' - unlabeled output interface, 
  'D' - DS Map mismatch, 'F' - no FEC mapping, 'f' - FEC mismatch,
  'M' - malformed request, 'm' - unsupported tlvs, 'N' - no rx label, 
  'P' - no rx intf label prot, 'p' - premature termination of LSP, 
  'R' - transit router, 'I' - unknown upstream index,
  'X' - unknown return code, 'x' - return code 0
 
Type escape sequence to abort.
 
!
Path 0 found, 
 output interface GigabitEthernet0/0/0/2 nexthop 10.13.13.2
source 10.13.13.1 destination 127.0.0.0
!
Path 1 found, 
 output interface Bundle-Ether1 nexthop 10.12.12.2
source 10.12.12.1 destination 127.0.0.0
 
Paths (found/broken/unexplored) (2/0/0)
Echo Request (sent/fail) (2/0)
Echo Reply (received/timeout) (2/0)
Total Time Elapsed 14 ms