この製品のドキュメントセットは、偏向のない言語を使用するように配慮されています。このドキュメントセットでの偏向のない言語とは、年齢、障害、性別、人種的アイデンティティ、民族的アイデンティティ、性的指向、社会経済的地位、およびインターセクショナリティに基づく差別を意味しない言語として定義されています。製品ソフトウェアのユーザインターフェイスにハードコードされている言語、RFP のドキュメントに基づいて使用されている言語、または参照されているサードパーティ製品で使用されている言語によりドキュメントに例外が存在する場合があります。シスコのインクルーシブ ランゲージの取り組みの詳細は、こちらをご覧ください。
シスコは世界中のユーザにそれぞれの言語でサポート コンテンツを提供するために、機械と人による翻訳を組み合わせて、本ドキュメントを翻訳しています。ただし、最高度の機械翻訳であっても、専門家による翻訳のような正確性は確保されません。シスコは、これら翻訳の正確性について法的責任を負いません。原典である英語版(リンクからアクセス可能)もあわせて参照することを推奨します。
このドキュメントでは、ユニファイド マルチプロトコル ラベル スイッチング(MPLS)の目的について説明し、Cisco IOS® XR での設定例を示します。
このドキュメントに特有の要件はありません。
このドキュメントの内容は、Cisco IOS XR に特化していますが、特定のソフトウェア リリースやハードウェアに限定されるものではありません。
このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されました。このドキュメントで使用するすべてのデバイスは、初期(デフォルト)設定の状態から起動しています。対象のネットワークが実稼働中である場合には、どのようなコマンドについても、その潜在的な影響について確実に理解しておく必要があります。
ユニファイド MPLS の目的は拡張性です。異なるタイプのプラットフォームやサービスが含まれている MPLS ネットワークを拡張するには、ネットワークを複数のエリアに分割するのが適切な方法です。一般的な設計では、中央にコアがあり、両側にアグリゲーションが配置される階層が導入されます。拡張のために、コアとアグリゲーションで異なる内部ゲートウェイ プロトコル(IGP)を使用することがあります。拡張のために、IGP プレフィックスを IGP 間で配布することはできません。IGP プレフィックスを IGP 間で配布しない場合は、エンドツーエンドのラベルスイッチド パス(LSP)は実現できません。
エンドツーエンドで MPLS サービスを提供するには、LSP がエンドツーエンドである必要があります。これは、MPLS サービス(MPLS VPN、MPLS L2VPN)をそのままの状態で維持し、かつ拡張性を向上することを目的としています。このためには、一部の IGP プレフィックスを Border Gateway Protocol(BGP)に移動します(プロバイダー エッジ(PE)ルータのループバック プレフィックス)。次にこれらのプレフィックスがエンドツーエンドで配布されます。
注:コマンドの調査方法の詳細については、『コマンド検索のベストプラクティス』(登録ユーザ専用)を参照してください。
図1は、3つの異なるエリアを持つネットワークを示しています。1つのコアと2つのアグリゲーションエリアが側面にあります。各エリアは専用の IGP を実行し、エリア境界ルータ(ABR)ではこれらのエリア間で再配布が行われません。エンドツーエンド MPLS LSP を提供するには、BGP を使用する必要があります。BGP は、ラベルが付いた PE ルータのループバックをドメイン全体にアドバタイズし、エンドツーエンド LSP を実現します。BGP は RFC 3107(BGP ラベル付きユニキャスト)により PE と ABR の間に導入されました。つまり、BGP は IPv4 プレフィックス + ラベル(アドレス ファミリ識別子(AFI)1 と後続アドレス ファミリ識別子(SAFI)4)を送信します。
図 1:
ネットワークのコア部分とアグリゲーション部分が統合されておりエンドツーエンド LSP が提供されているため、ユニファイド MPLS ソリューションは「シームレス MPLS」とも呼ばれます。
ここでは新しいテクノロジーまたはプロトコルは使用せず、MPLS、ラベル配布プロトコル(LDP)、IGP、BGP だけを使用します。ネットワーク内の部分間で PE ルータのループバック プレフィックスを配布しないため、プレフィックスを BGP で伝送する必要があります。内部ボーダー ゲートウェイ プロトコル(IBGP)が 1 つのネットワークで使用されているため、プレフィックスのネクスト ホップ アドレスは PE ルータのループバック プレフィクスですが、これはネットワークの他の部分の IGP には認識されません。つまり、IGP プレフィクスへの再帰にネクスト ホップ アドレスを使用できません。この場合の対策は、ABR ルータをルート リフレクタ(RR)にし、反映済みの iBGP プレフィックスでも、ネクスト ホップをそのホップ自体に設定することです。
RR のみが、このアーキテクチャをサポートするためにソフトウェアを必要とします。RR は、ネクスト ホップがそのホップ自体に設定された状態で BGP プレフィックスをアドバタイズするため、ローカル MPLS ラベルを BGP プレフィックスに割り当てます。つまり、データ プレーンでは、これらのエンドツーエンド LSP で転送されるパケットの場合、ラベル スタックに追加の MPLS ラベルがあります。RR は転送パス上にあります。
注:このアーキテクチャでは、すべてのMPLSサービスが提供されます。たとえば、サービス MPLS VPN または MPLS L2VPN が PE ルータ間で提供されます。これらのパケットのデータ プレーンの相違点は、ラベル スタックに 3 つのラベルがあることです。一方、ユニファイド MPLS を使用しない場合、ラベル スタックにあるラベルは 2 つです。
次の 2 つのシナリオが考えられます。
両方のシナリオで、ABR は、ABR によりネットワークのアグリゲーション部分からコア部分にアドバタイズ(BGP により反映)されたプレフィックスの場合、ネクスト ホップをそれ自体に設定します。このように設定していない場合、ABR は PE のループバック プレフィックスを、アグリゲーション IGP からコア IGP に再配布する必要があります。この作業を行うと、拡張性はなくなります。
ABRで反映されたiBGPラベル付きユニキャストルートのネクストホップを自身に設定するために、さまざまな設定を適用できます。
Cisco IOS XR で RFC 3107 を有効にする目的では、以下のソリューションは機能しません。
以下に、いくつかの例を示します。
router bgp 1
neighbor 10.100.1.1
remote-as 1
update-source Loopback0
address-family ipv4 labeled-unicast
route-reflector-client
next-hop-self
!
以下に、いくつかの例を示します。
router bgp 1
neighbor 10.100.1.1
remote-as 1
update-source Loopback0
address-family ipv4 labeled-unicast
route-reflector-client
route-policy nhs-ibgp-3107 out
!
route-policy nhs-ibgp-3107
set next-hop self
end-policy
以下に、いくつかの例を示します。
router bgp 1
neighbor 10.100.1.1
address-family ipv4 labeled-unicast
route-policy nhs-ibgp-3107-peer out
!!% Could not find entry in list: Policy [nhs-ibgp-3107-peer]
uses 'set-to-peer-address next-hop'. 'set' is not a valid
operator for the 'next-hop' attribute at the bgp neighbor-out-dflt attach point.
!
!
!
route-policy nhs-ibgp-3107-peer
set next-hop peer-address
end-policy
以下に、いくつかの例を示します。
router bgp 1
ibgp policy out enforce-modifications
!
neighbor 10.100.1.1
remote-as 1
update-source Loopback0
address-family ipv4 labeled-unicast
route-reflector-client
route-policy nhs-ibgp-3107 out
!
!
route-policy nhs-ibgp-3107-peer
set next-hop 10.100.1.3
end-policy
これらのソリューションは機能します。
必ずibgp policy out enforce-modificationsを実行してください。
以下に、いくつかの例を示します。
router bgp 1
ibgp policy out enforce-modifications
!
neighbor 10.100.1.1
remote-as 1
update-source Loopback0
address-family ipv4 labeled-unicast
route-reflector-client
next-hop-self
!
!
以下に、いくつかの例を示します。
router bgp 1
ibgp policy out enforce-modifications
!
neighbor 1.100.1.1
remote-as 1
update-source Loopback0
address-family ipv4 labeled-unicast
route-reflector-client
route-policy nhs-ibgp-3107 out
!
!
route-policy nhs-ibgp-3107
set next-hop self
end-policy
以下に、いくつかの例を示します。
router bgp 1
ibgp policy out enforce-modifications
!
neighbor 10.100.1.1
remote-as 1
update-source Loopback0
address-family ipv4 labeled-unicast
route-reflector-client
route-policy nhs-ibgp-3107 out
next-hop-self
!
!
!
route-policy nhs-ibgp-3107
set next-hop self
end-policy
以下に、いくつかの例を示します。
router bgp 1
ibgp policy out enforce-modifications
!
neighbor 10.100.1.1
remote-as 1
update-source Loopback0
address-family ipv4 labeled-unicast
route-reflector-client
route-policy nhs-ibgp-3107 out
next-hop-self
!
!
!
route-policy nhs-ibgp-3107
set next-hop 10.100.1.3
end-policy
hostname PE1
!
vrf one <<< MPLS service is MPLS VPN
address-family ipv4 unicast
import route-target
1:1
!
export route-target
1:1
!
!
address-family ipv6 unicast
import route-target
1:1
!
export route-target
1:1
!
!
interface Loopback0
ipv4 address 10.100.1.1 255.255.255.255
!
!
interface GigabitEthernet0/0/0/0
ipv4 address 10.1.1.1 255.255.255.0
!
!
interface GigabitEthernet0/0/0/1 <<< VRF interface to CE1
vrf one
ipv4 address 10.9.1.3 255.255.255.0
!
!
router ospf 1
router-id 10.100.1.1
area 0
interface Loopback0
!
interface GigabitEthernet0/0/0/0
network point-to-point
!
!
!
router bgp 1
address-family ipv4 unicast
network 10.100.1.1/32 <<< advertise PE loopback in BGP
allocate-label all
!
address-family vpnv4 unicast
!
neighbor 10.100.1.3
remote-as 1
update-source Loopback0
address-family ipv4 labeled-unicast
!
!
neighbor 10.100.1.7 <<< vpnv4 iBGP session to PE2
remote-as 1
update-source Loopback0
address-family vpnv4 unicast
!
!
vrf one
rd 1:1
address-family ipv4 unicast
!
neighbor 10.9.1.2 <<< eBGP session to CE1
remote-as 65001
address-family ipv4 unicast
route-policy pass in
route-policy pass out
!
!
!
!
mpls ldp
mldp
logging notifications
address-family ipv4
!
!
router-id 10.100.1.1
address-family ipv4
!
interface GigabitEthernet0/0/0/0
address-family ipv4
!
!
!
hostname ABR1
!
interface Loopback0
ipv4 address 10.100.1.3 255.255.255.255
!
!
interface GigabitEthernet0/0/0/0
ipv4 address 10.1.3.3 255.255.255.0
!
interface GigabitEthernet0/0/0/1
ipv4 address 10.1.2.3 255.255.255.0
!
route-policy nhs-ibgp-3107
set next-hop 10.100.1.3 <<< set next hop to loopback
end-policy
!
route-policy connected-into-ospf2
if destination in (10.100.1.3/32) then
pass
endif
end-policy
!
router ospf 1
router-id 10.100.1.3
area 0
interface Loopback0
!
interface GigabitEthernet0/0/0/1
network point-to-point
!
!
!
router ospf 2
redistribute connected route-policy connected-into-ospf2
area 0
interface GigabitEthernet0/0/0/0
network point-to-point
!
!
!
router bgp 1
ibgp policy out enforce-modifications
address-family ipv4 unicast
allocate-label all
!
neighbor 10.100.1.1 <<< iBGP neighbor PE1
remote-as 1
update-source Loopback0
address-family ipv4 labeled-unicast
route-reflector-client
route-policy nhs-ibgp-3107 out
next-hop-self
!
!
neighbor 10.100.1.5 <<< iBGP neighbor ABR2
remote-as 1
update-source Loopback0
address-family ipv4 labeled-unicast
route-policy nhs-ibgp-3107 out
next-hop-self
!
!
!
mpls ldp
mldp
address-family ipv4
!
!
router-id 10.100.1.3
interface GigabitEthernet0/0/0/0
address-family ipv4
discovery transport-address interface
!
!
interface GigabitEthernet0/0/0/1
address-family ipv4
!
!
注:allocate-label allまたはallocate-label route-policyが必要です。それ以外の場合は、ABR が iBGP 反映ルートのネクスト ホップであるため、ラベル付きユニキャスト ルートには必要なローカル ラベルは含まれていません。
注:コアIGP(OSPF 2)のアグリゲーションIGP(OSPF 1またはOSPF 3)への再配布、またはその逆の再配布は実行されません。ただし、ABR/RR のループバック プレフィックスがアグリゲーション IGP で既知であることも必要です。これにより、PE ルータの BGP が RR のループバックとピアリングできます。そのため、接続ルートのアグリゲーション IGP への再配布は RPL を使用して実行されます。再配布された接続ルートは、RPL を使用する ABR のループバック プレフィックスに限定されます。
図 2 を参照してコントロール プレーンの動作を検証してください。
図 2
図 3 を参照して MPLS ラベル アドバタイズを検証してください。
図 3
図 4 を参照してパケット転送を検証してください。
図 4
これは、パケットが PE1 から PE2 へ転送される様子を示しています。PE2 のループバック プレフィックスは 10.100.1.7/32 であるため、このプレフィクスは対象となります。
RP/0/0/CPU0:PE1#traceroute
Protocol [ipv4]:
Target IP address: 10.100.1.7
Source address: 10.100.1.1
Numeric display? [no]:
Timeout in seconds [3]:
Probe count [3]:
Minimum Time to Live [1]:
Maximum Time to Live [30]:
Port Number [33434]:
Loose, Strict, Record, Timestamp, Verbose[none]:
Type escape sequence to abort.
Tracing the route to 10.100.1.7
1 10.1.1.2 [MPLS: Labels 24000/24005 Exp 0] 439 msec 119 msec 109 msec
2 10.1.2.3 [MPLS: Label 24005 Exp 0] 109 msec 109 msec 109 msec
3 10.1.3.4 [MPLS: Labels 24001/24003 Exp 0] 99 msec 99 msec 149 msec
4 10.1.4.5 [MPLS: Label 24003 Exp 0] 119 msec 119 msec 99 msec
5 10.1.5.6 [MPLS: Label 24001 Exp 0] 109 msec 139 msec 99 msec
6 10.1.6.7 109 msec * 109 msec
ラベル 24000 は、プレフィクス 10.100.1.3/32 について P2 から取得する LDP ラベルです。ラベル 24005 は、プレフィクス 10.100.1.7/32 について取得する BGP RFC 3107 ラベルです。
RP/0/0/CPU0:PE1#show route 10.100.1.7/32
Routing entry for 10.100.1.7/32
Known via "bgp 1", distance 200, metric 0, [ei]-bgp, type internal
BIER rid=0x0, flags=0x0, count=0
Installed May 27 02:52:07.184 for 00:08:52
Routing Descriptor Blocks
10.100.1.3, from 10.100.1.3 <<< next-hop is ABR1
Route metric is 0
No advertising protos.
RP/0/0/CPU0:PE1#show cef 10.100.1.7/32
10.100.1.7/32, version 89, internal 0x1000001 0x0 (ptr 0xa1470f74)
[1], 0x0 (0xa1456614), 0xa08 (0xa16181e0)
Updated May 27 02:52:07.203
Prefix Len 32, traffic index 0, precedence n/a, priority 4
via 10.100.1.3, 3 dependencies, recursive [flags 0x6000]
path-idx 0 NHID 0x0 [0xa16806f4 0x0]
recursion-via-/32
next hop 10.100.1.3 via 24001/0/21
local label 24003
next hop 10.1.1.2/32 Gi0/0/0/0 labels imposed {24000 24005}
RP/0/0/CPU0:PE1#show bgp ipv4 unicast labels
BGP router identifier 10.100.1.1, local AS number 1
BGP generic scan interval 60 secs
Non-stop routing is enabled
BGP table state: Active
Table ID: 0xe0000000 RD version: 44
BGP main routing table version 44
BGP NSR Initial initsync version 2 (Reached)
BGP NSR/ISSU Sync-Group versions 0/0
BGP scan interval 60 secs
Status codes: s suppressed, d damped, h history, * valid, > best
i - internal, r RIB-failure, S stale, N Nexthop-discard
Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Rcvd Label Local Label
*> 10.100.1.1/32 0.0.0.0 nolabel 3
*>i10.100.1.7/32 10.100.1.3 24005 24003
Processed 2 prefixes, 2 paths
ABR1 への Penultimate Hop Popping(PHP)が存在します。
RP/0/0/CPU0:P2#show mpls forwarding labels 24000
Local Outgoing Prefix Outgoing Next Hop Bytes
Label Label or ID Interface Switched
------ ----------- ------------------ ------------ --------------- ------------
24000 Pop 10.100.1.3/32 Gi0/0/0/1 10.1.2.3 694765
ラベル 24005 は ABR1 上でラベル 24003 と交換されます。
RP/0/0/CPU0:ABR1#show bgp ipv4 unicast labels
BGP router identifier 10.100.1.3, local AS number 1
BGP generic scan interval 60 secs
Non-stop routing is enabled
BGP table state: Active
Table ID: 0xe0000000 RD version: 60
BGP main routing table version 60
BGP NSR Initial initsync version 2 (Reached)
BGP NSR/ISSU Sync-Group versions 0/0
BGP scan interval 60 secs
Status codes: s suppressed, d damped, h history, * valid, > best
i - internal, r RIB-failure, S stale, N Nexthop-discard
Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Rcvd Label Local Label
*>i10.100.1.1/32 10.100.1.1 3 24003
*>i10.100.1.7/32 10.100.1.5 24003 24005
Processed 2 prefixes, 2 paths
RP/0/0/CPU0:ABR1#show mpls forwarding labels 24005
Wed May 27 04:08:24.255 UTC
Local Outgoing Prefix Outgoing Next Hop Bytes
Label Label or ID Interface Switched
------ ----------- ------------------ ------------ --------------- ------------
24005 24003 10.100.1.7/32 10.100.1.5 6347
P1 から ABR2 への PHP が存在します。
RP/0/0/CPU0:P1#show mpls forwarding labels 24001
Local Outgoing Prefix Outgoing Next Hop Bytes
Label Label or ID Interface Switched
------ ----------- ------------------ ------------ --------------- ------------
24001 Pop 10.100.1.5/32 Gi0/0/0/1 10.1.4.5 348835
ABR2 が PE2 から受け取る RFC 3107 ルート 10.100.1.7/32 の BGP ラベルは 3 です。これは、PHP を示す暗黙的な NULL ラベルです。
RP/0/0/CPU0:ABR2#show bgp ipv4 unicast labels
BGP router identifier 10.100.1.5, local AS number 1
BGP generic scan interval 60 secs
Non-stop routing is enabled
BGP table state: Active
Table ID: 0xe0000000 RD version: 47
BGP main routing table version 47
BGP NSR Initial initsync version 2 (Reached)
BGP NSR/ISSU Sync-Group versions 0/0
BGP scan interval 60 secs
Status codes: s suppressed, d damped, h history, * valid, > best
i - internal, r RIB-failure, S stale, N Nexthop-discard
Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Rcvd Label Local Label
*>i10.100.1.1/32 10.100.1.3 24003 24005
*>i10.100.1.7/32 10.100.1.7 3 24003
Processed 2 prefixes, 2 paths
ラベル 24003 は ABR2 上でラベル 24001 と交換されます。
RP/0/0/CPU0:ABR2#show mpls forwarding labels 24003
Local Outgoing Prefix Outgoing Next Hop Bytes
Label Label or ID Interface Switched
------ ----------- ------------------ ------------ --------------- ------------
24003 24001 10.100.1.7/32 Gi0/0/0/0 10.1.5.6 403676
P3 から PE2 への PHP があります。
RP/0/0/CPU0:P3#show mpls forwarding labels 24001
Local Outgoing Prefix Outgoing Next Hop Bytes
Label Label or ID Interface Switched
------ ----------- ------------------ ------------ --------------- ------------
24001 Pop 10.100.1.7/32 Gi0/0/0/1 10.1.6.7 685191
RP/0/0/CPU0:PE2#show bgp ipv4 unicast labels
BGP router identifier 10.100.1.7, local AS number 1
BGP generic scan interval 60 secs
Non-stop routing is enabled
BGP table state: Active
Table ID: 0xe0000000 RD version: 42
BGP main routing table version 42
BGP NSR Initial initsync version 2 (Reached)
BGP NSR/ISSU Sync-Group versions 0/0
BGP scan interval 60 secs
Status codes: s suppressed, d damped, h history, * valid, > best
i - internal, r RIB-failure, S stale, N Nexthop-discard
Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Rcvd Label Local Label
*>i10.100.1.1/32 10.100.1.5 24005 24004
*> 10.100.1.7/32 0.0.0.0 nolabel 3
Processed 2 prefixes, 2 paths
現在、この設定に関する特定のトラブルシューティング情報はありません。
改定 | 発行日 | コメント |
---|---|---|
1.0 |
31-Jul-2015 |
初版 |