このドキュメントでは、ユニファイド マルチプロトコル ラベル スイッチング(MPLS)の目的を説明し、設定例を示します。
このドキュメントに特有の要件はありません。
このドキュメントの内容は、特定のソフトウェアやハードウェアのバージョンに限定されるものではありません。
このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されました。このドキュメントで使用するすべてのデバイスは、初期(デフォルト)設定の状態から起動しています。対象のネットワークが実稼働中である場合には、どのようなコマンドについても、その潜在的な影響について確実に理解しておく必要があります。
ユニファイド MPLS の目的は拡張性です。異なるタイプのプラットフォームやサービスが含まれている MPLS ネットワークを拡張するには、ネットワークを複数のエリアに分割することが適切な方法です。一般的な設計では、中央にコアがあり、両側にアグリゲーションが配置される階層が導入されます。拡張のために、コアとアグリゲーションで異なる内部ゲートウェイ プロトコル(IGP)を使用することがあります。拡張のために、IGP プレフィックスを IGP 間で配布することはできません。IGP プレフィックスを IGP 間で配布しない場合は、エンドツーエンドのラベルスイッチド パス(LSP)は実現できません。
エンドツーエンドで MPLS サービスを提供するには、LSP がエンドツーエンドである必要があります。これは、MPLS サービス(MPLS VPN、MPLS L2VPN)をそのままの状態で維持し、かつ拡張性を向上することを目的としています。このためには、一部の IGP プレフィックスを Border Gateway Protocol(BGP)に移動します(プロバイダー エッジ(PE)ルータのループバック プレフィックス)。次にこれらのプレフィックスがエンドツーエンドで配布されます。
図 1 は、3 つの異なるエリアで構成される 1 つのネットワークを示します。1 つのコア エリアと両側の 2 つのアグリゲーション エリア。各エリアは専用の IGP を実行し、エリア境界ルータ(ABR)ではこれらのエリア間で再配布が行われません。 エンドツーエンド MPLS LSP を提供するには、BGP を使用する必要があります。BGP は、ラベルが付いた PE ルータのループバックをドメイン全体にアドバタイズし、エンドツーエンド LSP を実現します。BGP は RFC 3107 により PE と ABR の間に導入されました。つまり、BGP は IPv4 プレフィックス + ラベル(AFI/SAFI 1/4)を送信します。
ネットワークのコア部分とアグリゲーション部分が統合されておりエンドツーエンド 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 は転送パス上にあります。
次の 2 つのシナリオが考えられます。
両方のシナリオで、ABR は、ABR によりネットワークのアグリゲーション部分からコア部分にアドバタイズ(BGP により反映)されたプレフィックスの場合、ネクスト ホップをそれ自体に設定します。このように設定していない場合、ABR は PE のループバック プレフィックスを、アグリゲーション IGP からコア IGP に再配布する必要があります。この作業を行うと、拡張性はなくなります。
反映された iBGP ルートでネクスト ホップをそれ自体に設定するには、neighbor x.x.x.x next-hop-self all コマンドを設定する必要があります。
これは、シナリオ 2 の PE ルータと ABR の設定です。
PE1
interface Loopback0
ip address 10.100.1.4 255.255.255.255
!
interface Ethernet1/0
no ip address
xconnect 10.100.1.5 100 encapsulation mpls
!
router ospf 2
network 10.2.0.0 0.0.255.255 area 0
network 10.100.1.4 0.0.0.0 area 0
!
router bgp 1
bgp log-neighbor-changes
network 10.100.1.4 mask 255.255.255.255
neighbor 10.100.1.1 remote-as 1
neighbor 10.100.1.1 update-source Loopback0
neighbor 10.100.1.1 send-label
RR1
interface Loopback0
ip address 10.100.1.1 255.255.255.255
router ospf 1
network 10.1.0.0 0.0.255.255 area 0
network 10.100.1.1 0.0.0.0 area 0
!
router ospf 2
redistribute ospf 1 subnets match internal route-map ospf1-into-ospf2
network 10.2.0.0 0.0.255.255 area 0
!
router bgp 1
bgp log-neighbor-changes
neighbor 10.100.1.2 remote-as 1
neighbor 10.100.1.2 update-source Loopback0
neighbor 10.100.1.2 next-hop-self all
neighbor 10.100.1.2 send-label
neighbor 10.100.1.4 remote-as 1
neighbor 10.100.1.4 update-source Loopback0
neighbor 10.100.1.4 route-reflector-client
neighbor 10.100.1.4 next-hop-self all
neighbor 10.100.1.4 send-label
ip prefix-list prefix-list-ospf1-into-ospf2 seq 5 permit 10.100.1.1/32
route-map ospf1-into-ospf2 permit 10
match ip address prefix-list prefix-list-ospf1-into-ospf2
RR2
interface Loopback0
ip address 10.100.1.2 255.255.255.255
router ospf 1
network 10.1.0.0 0.0.255.255 area 0
network 10.100.1.2 0.0.0.0 area 0
!
router ospf 3
redistribute ospf 1 subnets match internal route-map ospf1-into-ospf3
network 10.3.0.0 0.0.255.255 area 0
!
router bgp 1
bgp log-neighbor-changes
neighbor 10.100.1.1 remote-as 1
neighbor 10.100.1.1 update-source Loopback0
neighbor 10.100.1.1 next-hop-self all
neighbor 10.100.1.1 send-label
neighbor 10.100.1.5 remote-as 1
neighbor 10.100.1.5 update-source Loopback0
neighbor 10.100.1.5 route-reflector-client
neighbor 10.100.1.5 next-hop-self all
neighbor 10.100.1.5 send-label
ip prefix-list prefix-list-ospf1-into-ospf3 seq 5 permit 10.100.1.2/32
route-map ospf1-into-ospf3 permit 10
match ip address prefix-list prefix-list-ospf1-into-ospf3
PE2
interface Loopback0
ip address 10.100.1.5 255.255.255.255
interface Ethernet1/0
no ip address
xconnect 10.100.1.4 100 encapsulation mpls
router ospf 3
network 10.3.0.0 0.0.255.255 area 0
network 10.100.1.5 0.0.0.0 area 0
router bgp 1
bgp log-neighbor-changes
network 10.100.1.5 mask 255.255.255.255
neighbor 10.100.1.2 remote-as 1
neighbor 10.100.1.2 update-source Loopback0
neighbor 10.100.1.2 send-label
図 2 を参照してコントロール プレーンの動作を検証してください。
図 3 を参照して MPLS ラベル アドバタイズを検証してください。
図 4 を参照してパケット転送を検証してください。
これは、パケットがPE1からPE2に転送される方法です。PE2のループバックプレフィックスは10.100.1.5/32です。したがって、このプレフィックスが対象になります。
PE1#show ip route 10.100.1.5
Routing entry for 10.100.1.5/32
Known via "bgp 1", distance 200, metric 0, type internal
Last update from 10.100.1.1 00:11:12 ago
Routing Descriptor Blocks:
* 10.100.1.1, from 10.100.1.1, 00:11:12 ago
Route metric is 0, traffic share count is 1
AS Hops 0
MPLS label: 22
PE1#show ip cef 10.100.1.5
10.100.1.5/32
nexthop 10.2.2.6 Ethernet0/0 label 19 22
PE1#show ip cef 10.100.1.5 detail
10.100.1.5/32, epoch 0, flags rib defined all labels
1 RR source [no flags]
recursive via 10.100.1.1 label 22
nexthop 10.2.2.6 Ethernet0/0 label 19
PE1#show bgp ipv4 unicast labels
Network Next Hop In label/Out label
10.100.1.4/32 0.0.0.0 imp-null/nolabel
10.100.1.5/32 10.100.1.1 nolabel/22
P1#show mpls forwarding-table labels 19 detail
Local Outgoing Prefix Bytes Label Outgoing Next Hop
Label Label or Tunnel Id Switched interface
19 Pop Label 10.100.1.1/32 603468 Et1/0 10.2.1.1
MAC/Encaps=14/14, MRU=1504, Label Stack{}
AABBCC000101AABBCC0006018847
No output feature configured
RR1#show mpls forwarding-table labels 22 detail
Local Outgoing Prefix Bytes Label Outgoing Next Hop
Label Label or Tunnel Id Switched interface
22 21 10.100.1.5/32 575278 Et0/0 10.1.1.3
MAC/Encaps=14/22, MRU=1496, Label Stack{17 21}
AABBCC000300AABBCC0001008847 0001100000015000
No output feature configured
RR1#show bgp ipv4 unicast labels
Network Next Hop In label/Out label
10.100.1.4/32 10.100.1.4 19/imp-null
10.100.1.5/32 10.100.1.2 22/21
P3#show mpls forwarding-table labels 17 detail
Local Outgoing Prefix Bytes Label Outgoing Next Hop
Label Label or Tunnel Id Switched interface
17 Pop Label 10.100.1.2/32 664306 Et1/0 10.1.2.2
MAC/Encaps=14/14, MRU=1504, Label Stack{}
AABBCC000201AABBCC0003018847
No output feature configured
RR2#show mpls forwarding-table labels 21 detail
Local Outgoing Prefix Bytes Label Outgoing Next Hop
Label Label or Tunnel Id Switched interface
21 17 10.100.1.5/32 615958 Et0/0 10.3.1.7
MAC/Encaps=14/18, MRU=1500, Label Stack{17}
AABBCC000700AABBCC0002008847 00011000
No output feature configured
RR2#show bgp ipv4 unicast labels
Network Next Hop In label/Out label
10.100.1.4/32 10.100.1.1 22/19
10.100.1.5/32 10.100.1.5 21/imp-null
P2#show mpls forwarding-table labels 17 detail
Local Outgoing Prefix Bytes Label Outgoing Next Hop
Label Label or Tunnel Id Switched interface
17 Pop Label 10.100.1.5/32 639957 Et1/0 10.3.2.5
MAC/Encaps=14/14, MRU=1504, Label Stack{}
AABBCC000500AABBCC0007018847
No output feature configured
PE1#trace
Protocol [ip]:
Target IP address: 10.100.1.5
Source address: 10.100.1.4
DSCP Value [0]:
Numeric display [n]:
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.5
VRF info: (vrf in name/id, vrf out name/id)
1 10.2.2.6 [MPLS: Labels 19/22 Exp 0] 3 msec 3 msec 3 msec
2 10.2.1.1 [MPLS: Label 22 Exp 0] 3 msec 3 msec 3 msec
3 10.1.1.3 [MPLS: Labels 17/21 Exp 0] 3 msec 3 msec 2 msec
4 10.1.2.2 [MPLS: Label 21 Exp 0] 2 msec 3 msec 2 msec
5 * * *
6 10.3.2.5 4 msec * 4 msec
P2#show ip route 10.100.1.4
% Subnet not in table
現在、この設定に関する特定のトラブルシューティング情報はありません。
改定 | 発行日 | コメント |
---|---|---|
1.0 |
03-Jul-2013 |
初版 |