MPLS TEトンネルへのトラフィック誘導
MPLS TEのトンネルは、Upになっただけではトラフィックを運びません。経路表でトンネルが次ホップに選ばれて、はじめてパケットが入ります。トンネルにトラフィックを載せる3つの方法(autoroute announce、forwarding adjacency、スタティックルート)を解説し、IOS XR(XRd)のラボでどのルータの経路表が変わるかを確かめます。トンネルがどの経路を通るかはMPLS TEのCSPFと経路の制約で解説しています。
3つの誘導方法
| 方法 | 仕組み | 経路表が変わるルータ |
|---|---|---|
| autoroute announce | head-endが自分のSPFでトンネルを次ホップとして使う(IGPショートカット) | head-endだけ |
| forwarding adjacency | トンネルをIGPのリンクとして広告する | エリア内の全ルータ |
| スタティックルート | 指定した宛先だけをトンネルに向ける | head-endだけ(指定した宛先のみ) |
autoroute announce
RFC 3906は、head-endがSPFの途中でトンネルのtail-endに行き着いたとき、トンネルを次ホップにする方法を示しています。結果として、tail-endへのトラフィックだけでなく、tail-endより下流のノードへのトラフィックもトンネルを通ります。 tail-endより手前のノードは対象外です。
トンネルは広告されないので、ほかのルータは何も知りません。メトリックはtail-endまでのIGPのコストを引き継ぐので、経路表のメトリックは変わらず、次ホップだけがトンネルになります。
forwarding adjacency
トンネルをIGPのリンクとして広告し、エリア内の全ルータのSPFに入れます。この考え方はRFC 4206でforwarding adjacency(FA)として定められています。
- OSPFではRouter-LSAにpoint-to-pointのリンクとして載ります。ルーティング隣接(Hello)はトンネル上に張りません
- IGPのリンクは双方向でなければSPFに使われないので、逆向きのトンネルにも同じ設定が要ります
- IOS XRはFAのリンクをメトリック1で広告します(
forwarding-adjacencyのmetricで変えられます)。物理リンクより小さいので、ほかのルータのトラフィックもhead-endに引き寄せられます
シスコのIOS XRの設定ガイドは、FAに対応するIGPとしてIS-ISを挙げています。この記事の検証(XRd 26.1.1)ではOSPFでもRouter-LSAに載り、経路計算に使われました。
スタティックルート
宛先を指定してトンネルに向けます。管理距離が1なのでIGPの経路より優先され、変わるのは指定した宛先だけです。
VPNのトラフィックはBGPネクストホップの経路に従う
VPNの経路(VRFのプレフィックス)は、BGPのネクストホップ(相手PEのLoopback)で再帰的に解決されます。PE2のLoopback(9.9.9.9/32)への経路がトンネルを向けば、そのネクストホップを持つVPNの経路はすべてトンネルを通ります。 VRFのプレフィックスを個別にトンネルへ向ける必要はありません。
検証構成
PE1とPE2の間に、ホップ数の同じ3経路があります。IGPの最短は中ルートです。トンネル(PE1 → PE2)はaffinityで下ルートに固定しました。 トンネルに載ったかどうかが、CE1 → CE2のtracerouteに出るPの名前で分かります。
| ルータ | Lo0 | 役割 |
|---|---|---|
| CE1 / CE2 | 1.1.1.1 / 10.10.10.10 | AS 65101 / AS 65102(VRF CUST-A) |
| PE1 | 2.2.2.2 | head-end |
| P1 / P2 | 3.3.3.3 / 4.4.4.4 | 上ルート(OSPFコスト30/リンク) |
| P3 / P4 | 5.5.5.5 / 6.6.6.6 | 中ルート(10/リンク、IGPの最短) |
| P5 / P6 | 7.7.7.7 / 8.8.8.8 | 下ルート(20/リンク、トンネルが通る) |
| PE2 | 9.9.9.9 | tail-end、CE2の経路のBGPネクストホップ |
検証の全体像
| STEP | 操作 | 確かめること |
|---|---|---|
| 0 | トンネルを作る(下ルート、誘導なし) | トンネルはUpだが、CE1 → CE2は中ルートのまま |
| 1 | autoroute announce |
PE1の経路表だけが変わる。tail-endより先の宛先もトンネル経由になる |
| 2 | autorouteを外し、両方向のトンネルにforwarding-adjacency |
Router-LSAにPE1 - PE2のリンクが載り、P1・P3・P5の経路も変わる |
| 3 | FAを外し、9.9.9.9/32のスタティックルートをトンネルへ | BGPネクストホップだけでVPNが追従する。ほかのルータは元に戻る |
| 4 | 撤去(最終状態) | STEP 0と同じに戻る |
STEP 0:トンネルはUpでも使われない
RP/0/RP0/CPU0:PE1#show configuration commit changes last 1
Sun Sep 13 08:29:50.770 UTC
!! Building configuration...
!! IOS XR Configuration 26.1.1
interface tunnel-te0
ipv4 unnumbered Loopback0
destination 9.9.9.9
record-route
affinity 0x2 mask 0x2
path-option 10 dynamic
!
end Path info (OSPF 1 area 0):
Hop0: 10.2.7.7
Hop1: 10.7.8.8
Hop2: 10.8.9.9
Hop3: 9.9.9.9トンネルは下ルート(P5 → P6)でUpです。しかしCE2の経路のネクストホップ9.9.9.9は、IGPの中ルートで解決されています。
via 9.9.9.9/32, 3 dependencies, recursive [flags 0x6000]
path-idx 0 NHID 0x0 [0x8856e168 0x0]
recursion-via-/32
next hop VRF - 'default', table - 0xe0000000
next hop 9.9.9.9/32 via 24013/0/21
next hop 10.2.5.5/32 GigabitEthernet0/0/0/2 labels imposed {24013 24013}RP/0/RP0/CPU0:CE1#traceroute 192.168.2.1 source 192.168.1.1
Sun Sep 13 08:36:58.683 UTC
Type escape sequence to abort.
Tracing the route to 192.168.2.1
1 10.1.2.2 6 msec 4 msec 31 msec
2 10.2.5.5 [MPLS: Labels 24013/24013 Exp 0] 18 msec 17 msec 22 msec
3 10.5.6.6 [MPLS: Labels 24013/24013 Exp 0] 18 msec 16 msec 19 msec
4 10.6.9.9 [MPLS: Label 24013 Exp 0] 18 msec 16 msec 32 msec
5 10.9.10.10 23 msec * 16 msec CE1 → CE2はP3・P4を通っています。ラベルは2段とも24013で、外側がLDP、内側がVPNのラベルです。
STEP 1:autoroute announce
RP/0/RP0/CPU0:PE1#show configuration commit changes last 1
Sun Sep 13 08:39:22.638 UTC
!! Building configuration...
!! IOS XR Configuration 26.1.1
interface tunnel-te0
autoroute announce
!
!
endO 3.3.3.3/32 [110/31] via 10.2.3.3, 00:25:51, GigabitEthernet0/0/0/1
O 4.4.4.4/32 [110/61] via 9.9.9.9, 00:05:21, tunnel-te0
[110/61] via 10.2.3.3, 00:05:21, GigabitEthernet0/0/0/1
O 5.5.5.5/32 [110/11] via 10.2.5.5, 00:25:58, GigabitEthernet0/0/0/2
O 6.6.6.6/32 [110/21] via 10.2.5.5, 00:25:58, GigabitEthernet0/0/0/2
O 7.7.7.7/32 [110/21] via 10.2.7.7, 00:25:59, GigabitEthernet0/0/0/3
O 8.8.8.8/32 [110/41] via 10.2.7.7, 00:25:59, GigabitEthernet0/0/0/3
O 9.9.9.9/32 [110/31] via 9.9.9.9, 00:05:21, tunnel-te09.9.9.9/32の次ホップがtunnel-te0になりました。 メトリックは31のままで、次ホップだけが変わっています。PE2の先にあるP2のLoopback(4.4.4.4/32)にもtunnel-te0が加わり、上ルートとの2本のECMPになりました。tail-endより下流の宛先もトンネルを使うということです。一方、トンネルの途中にあるP5(7.7.7.7)・P6(8.8.8.8)と、中ルートのP4(6.6.6.6)は物理インタフェースのままです。
via 9.9.9.9/32, 3 dependencies, recursive [flags 0x6000]
path-idx 0 NHID 0x0 [0x8856e168 0x0]
recursion-via-/32
next hop VRF - 'default', table - 0xe0000000
next hop 9.9.9.9/32 via 24013/0/21
next hop 9.9.9.9/32 tunnel-te0 labels imposed {ImplNull 24013}VPNの経路も、ネクストホップ9.9.9.9/32を通じてトンネルで解決されました。外側のラベルはImplNullで、トンネルのラベルは出力インタフェース(tunnel-te0)側で積まれます。
ほかのルータの経路表は変わっていません。
RP/0/RP0/CPU0:P1#show route 9.9.9.9/32
Sun Sep 13 08:40:10.494 UTC
Routing entry for 9.9.9.9/32
Known via "ospf 1", distance 110, metric 61, type intra area
Installed Sep 13 08:21:51.141 for 00:18:19
Routing Descriptor Blocks
10.2.3.2, from 9.9.9.9, via GigabitEthernet0/0/0/0
Route metric is 61
10.3.4.4, from 9.9.9.9, via GigabitEthernet0/0/0/1
Route metric is 61
No advertising protos. RP/0/RP0/CPU0:P3#show route 9.9.9.9/32
Sun Sep 13 08:41:42.196 UTC
Routing entry for 9.9.9.9/32
Known via "ospf 1", distance 110, metric 21, type intra area
Installed Sep 13 08:21:51.143 for 00:19:51
Routing Descriptor Blocks
10.5.6.6, from 9.9.9.9, via GigabitEthernet0/0/0/1
Route metric is 21
No advertising protos. RP/0/RP0/CPU0:P5#show route 9.9.9.9/32
Sun Sep 13 08:43:11.597 UTC
Routing entry for 9.9.9.9/32
Known via "ospf 1", distance 110, metric 41, type intra area
Installed Sep 13 08:21:49.530 for 00:21:22
Routing Descriptor Blocks
10.7.8.8, from 9.9.9.9, via GigabitEthernet0/0/0/1
Route metric is 41
No advertising protos. RP/0/RP0/CPU0:CE1#traceroute 192.168.2.1 source 192.168.1.1
Sun Sep 13 08:46:46.179 UTC
Type escape sequence to abort.
Tracing the route to 192.168.2.1
1 10.1.2.2 6 msec 16 msec 5 msec
2 10.2.7.7 [MPLS: Labels 24014/24013 Exp 0] 18 msec 15 msec 15 msec
3 10.7.8.8 [MPLS: Labels 24014/24013 Exp 0] 25 msec 16 msec 43 msec
4 10.8.9.9 [MPLS: Label 24013 Exp 0] 16 msec 16 msec 18 msec
5 10.9.10.10 17 msec * 17 msec CE1 → CE2が下ルート(P5・P6)に変わりました。外側のラベル24014がトンネル(RSVP)、内側の24013がVPNのラベルです。
STEP 2:forwarding adjacency
FAは両端に設定します。PE2には逆向き(PE2 → PE1)のトンネルを作り、同じく下ルートに固定しました。
RP/0/RP0/CPU0:PE1#show configuration commit changes last 1
Sun Sep 13 08:49:01.869 UTC
!! Building configuration...
!! IOS XR Configuration 26.1.1
interface tunnel-te0
no autoroute announce
forwarding-adjacency
!
!
endRP/0/RP0/CPU0:PE2#show configuration commit changes last 1
Sun Sep 13 08:48:56.033 UTC
!! Building configuration...
!! IOS XR Configuration 26.1.1
interface tunnel-te0
ipv4 unnumbered Loopback0
destination 2.2.2.2
record-route
affinity 0x2 mask 0x2
forwarding-adjacency
!
path-option 10 dynamic
!
endPE1のRouter-LSAの先頭に、PE2(9.9.9.9)へのpoint-to-pointのリンクがメトリック1で加わりました。
RP/0/RP0/CPU0:PE1#show ospf database router self-originate
Sun Sep 13 08:55:46.906 UTC
OSPF Router with ID (2.2.2.2) (Process ID 1)
Router Link States (Area 0)
LS age: 239
Options: (No TOS-capability, DC)
LS Type: Router Links
Link State ID: 2.2.2.2
Advertising Router: 2.2.2.2
LS Seq Number: 80000007
Checksum: 0xb2a9
Length: 120
Number of Links: 8
Link connected to: another Router (point-to-point)
(Link ID) Neighboring Router ID: 9.9.9.9
(Link Data) Router Interface address: 0.0.0.9
Number of TOS metrics: 0
TOS 0 Metrics: 1
Link connected to: a Stub Network
(Link ID) Network/subnet number: 2.2.2.2
(Link Data) Network Mask: 255.255.255.255
Number of TOS metrics: 0
TOS 0 Metrics: 1
Link connected to: another Router (point-to-point)
(Link ID) Neighboring Router ID: 3.3.3.3
(Link Data) Router Interface address: 10.2.3.2
Number of TOS metrics: 0
TOS 0 Metrics: 30
Link connected to: a Stub Network
(Link ID) Network/subnet number: 10.2.3.0
(Link Data) Network Mask: 255.255.255.0
Number of TOS metrics: 0
TOS 0 Metrics: 30
Link connected to: another Router (point-to-point)
(Link ID) Neighboring Router ID: 5.5.5.5
(Link Data) Router Interface address: 10.2.5.2
Number of TOS metrics: 0
TOS 0 Metrics: 10
Link connected to: a Stub Network
(Link ID) Network/subnet number: 10.2.5.0
(Link Data) Network Mask: 255.255.255.0
Number of TOS metrics: 0
TOS 0 Metrics: 10
Link connected to: another Router (point-to-point)
(Link ID) Neighboring Router ID: 7.7.7.7
(Link Data) Router Interface address: 10.2.7.2
Number of TOS metrics: 0
TOS 0 Metrics: 20
Link connected to: a Stub Network
(Link ID) Network/subnet number: 10.2.7.0
(Link Data) Network Mask: 255.255.255.0
Number of TOS metrics: 0
TOS 0 Metrics: 20添付のPE1 - P3間のキャプチャーのNo.1777が、このRouter-LSAを運んだLS Updateです。
Internet Protocol Version 4, Src: 10.2.5.2, Dst: 224.0.0.5
Message Type: LS Update (4)
Source OSPF Router: 2.2.2.2
LS Type: Router-LSA (1)
Link State ID: 2.2.2.2
Advertising Router: 2.2.2.2
Sequence Number: 0x80000006
Number of Links: 8
Type: PTP ID: 9.9.9.9 Data: 0.0.0.9 Metric: 1
Type: Stub ID: 2.2.2.2 Data: 255.255.255.255 Metric: 1
Type: PTP ID: 3.3.3.3 Data: 10.2.3.2 Metric: 30
Type: Stub ID: 10.2.3.0 Data: 255.255.255.0 Metric: 30
Type: PTP ID: 5.5.5.5 Data: 10.2.5.2 Metric: 10
Type: Stub ID: 10.2.5.0 Data: 255.255.255.0 Metric: 10
Type: PTP ID: 7.7.7.7 Data: 10.2.7.2 Metric: 20
Type: Stub ID: 10.2.7.0 Data: 255.255.255.0 Metric: 20PE1の経路表では、P2・P4・P6のLoopbackまでトンネル経由になりました。PE2の先へのコストがメトリック1で済むからです。
O 3.3.3.3/32 [110/31] via 10.2.3.3, 00:36:47, GigabitEthernet0/0/0/1
O 4.4.4.4/32 [110/32] via 0.0.0.0, 00:06:37, tunnel-te0
O 5.5.5.5/32 [110/11] via 10.2.5.5, 00:36:54, GigabitEthernet0/0/0/2
O 6.6.6.6/32 [110/12] via 0.0.0.0, 00:06:37, tunnel-te0
O 7.7.7.7/32 [110/21] via 10.2.7.7, 00:36:55, GigabitEthernet0/0/0/3
O 8.8.8.8/32 [110/22] via 0.0.0.0, 00:06:37, tunnel-te0
O 9.9.9.9/32 [110/2] via 0.0.0.0, 00:06:37, tunnel-te0ほかのルータの経路表も変わりました。 3台とも9.9.9.9/32の次ホップがPE1を向いています。
RP/0/RP0/CPU0:P1#show route 9.9.9.9/32
Sun Sep 13 08:51:02.825 UTC
Routing entry for 9.9.9.9/32
Known via "ospf 1", distance 110, metric 32, type intra area
Installed Sep 13 08:49:01.460 for 00:02:01
Routing Descriptor Blocks
10.2.3.2, from 9.9.9.9, via GigabitEthernet0/0/0/0
Route metric is 32
No advertising protos. RP/0/RP0/CPU0:P3#show route 9.9.9.9/32
Sun Sep 13 08:52:36.673 UTC
Routing entry for 9.9.9.9/32
Known via "ospf 1", distance 110, metric 12, type intra area
Installed Sep 13 08:49:01.460 for 00:03:35
Routing Descriptor Blocks
10.2.5.2, from 9.9.9.9, via GigabitEthernet0/0/0/0
Route metric is 12
No advertising protos. RP/0/RP0/CPU0:P5#show route 9.9.9.9/32
Sun Sep 13 08:54:07.791 UTC
Routing entry for 9.9.9.9/32
Known via "ospf 1", distance 110, metric 22, type intra area
Installed Sep 13 08:49:01.460 for 00:05:06
Routing Descriptor Blocks
10.2.7.2, from 9.9.9.9, via GigabitEthernet0/0/0/0
Route metric is 22
No advertising protos. P3はSTEP 1までP4経由(メトリック21)でしたが、PE1に戻ってトンネルに入る経路(10 + 1 + 1 = 12)のほうが短くなりました。P5のtracerouteは、PE1に上がってからトンネルで自分自身(10.2.7.7)を通り直しています。
RP/0/RP0/CPU0:P5#traceroute 9.9.9.9 source 7.7.7.7
Sun Sep 13 08:54:26.626 UTC
Type escape sequence to abort.
Tracing the route to 9.9.9.9
1 10.2.7.2 [MPLS: Label 24013 Exp 0] 15 msec 13 msec 14 msec
2 10.2.7.7 [MPLS: Label 24014 Exp 0] 27 msec 12 msec 14 msec
3 10.7.8.8 [MPLS: Label 24014 Exp 0] 14 msec 13 msec 13 msec
4 10.8.9.9 14 msec * 16 msec STEP 3:スタティックルート
RP/0/RP0/CPU0:PE1#show configuration commit changes last 1
Sun Sep 13 08:59:58.517 UTC
!! Building configuration...
!! IOS XR Configuration 26.1.1
interface tunnel-te0
no forwarding-adjacency
!
router static
address-family ipv4 unicast
9.9.9.9/32 tunnel-te0
!
!
endRP/0/RP0/CPU0:PE2#show configuration commit changes last 1
Sun Sep 13 08:59:52.143 UTC
!! Building configuration...
!! IOS XR Configuration 26.1.1
no interface tunnel-te0
endrouter staticはプレフィックス単位で追加しています。
RP/0/RP0/CPU0:PE1#show route 9.9.9.9/32
Sun Sep 13 09:05:31.342 UTC
Routing entry for 9.9.9.9/32
Known via "static", distance 1, metric 0 (connected)
Installed Sep 13 08:59:57.812 for 00:05:33
Routing Descriptor Blocks
directly connected, via tunnel-te0
Route metric is 0
No advertising protos. O 3.3.3.3/32 [110/31] via 10.2.3.3, 00:46:39, GigabitEthernet0/0/0/1
O 4.4.4.4/32 [110/61] via 10.2.3.3, 00:05:39, GigabitEthernet0/0/0/1
[110/61] via 10.2.5.5, 00:05:39, GigabitEthernet0/0/0/2
O 5.5.5.5/32 [110/11] via 10.2.5.5, 00:46:46, GigabitEthernet0/0/0/2
O 6.6.6.6/32 [110/21] via 10.2.5.5, 00:05:39, GigabitEthernet0/0/0/2
O 7.7.7.7/32 [110/21] via 10.2.7.7, 00:46:47, GigabitEthernet0/0/0/3
O 8.8.8.8/32 [110/41] via 10.2.7.7, 00:05:39, GigabitEthernet0/0/0/3
S 9.9.9.9/32 is directly connected, 00:05:33, tunnel-te09.9.9.9/32だけがスタティックでtunnel-te0を向き、ほかのLoopbackはIGPの経路に戻りました。VPNの経路は引き続きトンネルで解決されます。
via 9.9.9.9/32, 3 dependencies, recursive [flags 0x6000]
path-idx 0 NHID 0x0 [0x8856e168 0x0]
recursion-via-/32
next hop VRF - 'default', table - 0xe0000000
next hop 9.9.9.9/32 via 24013/0/21
next hop 0.0.0.0/32 tunnel-te0 labels imposed {ImplNull 24013}FAを外したので、PE1のRouter-LSAからPE2へのリンクが消えました(No.2411)。
Internet Protocol Version 4, Src: 10.2.5.2, Dst: 224.0.0.5
Message Type: LS Update (4)
Source OSPF Router: 2.2.2.2
LS Type: Router-LSA (1)
Link State ID: 2.2.2.2
Advertising Router: 2.2.2.2
Sequence Number: 0x80000008
Number of Links: 7
Type: Stub ID: 2.2.2.2 Data: 255.255.255.255 Metric: 1
Type: PTP ID: 3.3.3.3 Data: 10.2.3.2 Metric: 30
Type: Stub ID: 10.2.3.0 Data: 255.255.255.0 Metric: 30
Type: PTP ID: 5.5.5.5 Data: 10.2.5.2 Metric: 10
Type: Stub ID: 10.2.5.0 Data: 255.255.255.0 Metric: 10
Type: PTP ID: 7.7.7.7 Data: 10.2.7.2 Metric: 20
Type: Stub ID: 10.2.7.0 Data: 255.255.255.0 Metric: 20RP/0/RP0/CPU0:P3#show route 9.9.9.9/32
Sun Sep 13 09:02:27.028 UTC
Routing entry for 9.9.9.9/32
Known via "ospf 1", distance 110, metric 21, type intra area
Installed Sep 13 08:59:51.374 for 00:02:35
Routing Descriptor Blocks
10.5.6.6, from 9.9.9.9, via GigabitEthernet0/0/0/1
Route metric is 21
No advertising protos. RP/0/RP0/CPU0:CE1#traceroute 192.168.2.1 source 192.168.1.1
Sun Sep 13 09:07:32.982 UTC
Type escape sequence to abort.
Tracing the route to 192.168.2.1
1 10.1.2.2 23 msec 6 msec 5 msec
2 10.2.7.7 [MPLS: Labels 24014/24013 Exp 0] 63 msec 17 msec 17 msec
3 10.7.8.8 [MPLS: Labels 24014/24013 Exp 0] 19 msec 18 msec 18 msec
4 10.8.9.9 [MPLS: Label 24013 Exp 0] 18 msec 18 msec 17 msec
5 10.9.10.10 19 msec * 16 msec P3はP4経由に戻り、CE1 → CE2は下ルートのままです。
STEP 4:撤去
RP/0/RP0/CPU0:PE1#show configuration commit changes last 1
Sun Sep 13 09:09:46.338 UTC
!! Building configuration...
!! IOS XR Configuration 26.1.1
no interface tunnel-te0
router static
address-family ipv4 unicast
no 9.9.9.9/32 tunnel-te0
!
!
endRP/0/RP0/CPU0:CE1#traceroute 192.168.2.1 source 192.168.1.1
Sun Sep 13 09:17:09.673 UTC
Type escape sequence to abort.
Tracing the route to 192.168.2.1
1 10.1.2.2 18 msec 5 msec 5 msec
2 10.2.5.5 [MPLS: Labels 24013/24013 Exp 0] 16 msec 17 msec 17 msec
3 10.5.6.6 [MPLS: Labels 24013/24013 Exp 0] 67 msec 18 msec 17 msec
4 10.6.9.9 [MPLS: Label 24013 Exp 0] 19 msec 32 msec 17 msec
5 10.9.10.10 18 msec * 20 msec CE1 → CE2は中ルートに戻りました。
3つの方法の比較
| STEP | 方法 | PE1の9.9.9.9/32 | P3の9.9.9.9/32 | CE1 → CE2 |
|---|---|---|---|---|
| 0 | なし | 中ルート(Gi0/0/0/2) | P4経由 | 中 |
| 1 | autoroute announce | tunnel-te0 | P4経由 | 下 |
| 2 | forwarding adjacency | tunnel-te0(メトリック2) | PE1経由 | 下 |
| 3 | スタティックルート | tunnel-te0(static) | P4経由 | 下 |
| 4 | なし | 中ルート | P4経由 | 中 |
設計上の注意
- autorouteとスタティックルートは片方向です。 戻りのトラフィックを載せるには、PE2にもトンネルと設定が要ります
- FAはトラフィックを引き寄せます。 メトリック1のリンクが増えるので、P5のように遠回りするルータが出ます。FAのメトリックは実際の経路のコストに合わせて設定します
- FAは両方向のトンネルがそろって初めてSPFに使われます
- VPNを載せるなら、トンネルに向ける宛先は相手PEのLoopback(BGPネクストホップ)です
検証Configおよびshow結果
各STEPで10台すべてから、次の種類をルータごとに分けて取得しています。検証Configはこの..._run.txtです(最終状態は最後のSTEPのもの)。
| ファイル | 内容 |
|---|---|
..._show.txt |
show version / show route / show ospf database router / show mpls traffic-eng tunnels / show cef vrf CUST-A(PEのみ)ほか |
..._log.txt |
そのSTEPの範囲だけに絞ったshow logging |
..._run.txt |
そのSTEP時点のshow running-config(=そのSTEPの検証Config) |
..._ping.txt |
そのSTEPのping(50発、timeout 1秒)とtraceroute |
..._oam.txt |
ping / traceroute mpls traffic-eng tunnel-te 0とping / traceroute mpls ipv4(PE1・PE2) |
..._trace.txt |
show mpls traffic-eng trace head-end / linkとshow rsvp trace signalling(コア8台) |
..._commit.cfg |
そのSTEPで実際にcommitした設定だけ。 設定を変えたルータの分のみ |
STEP 0:トンネルを作る(下ルート、誘導なし)
| ルータ | show出力 | syslog | running-config | ping | OAM | trace | commit |
|---|---|---|---|---|---|---|---|
| CE1 | show | log | run | ping | - | - | - |
| PE1 | show | log | run | ping | oam | trace | cfg |
| P1 | show | log | run | ping | - | trace | - |
| P2 | show | log | run | - | - | trace | - |
| P3 | show | log | run | ping | - | trace | - |
| P4 | show | log | run | - | - | trace | - |
| P5 | show | log | run | ping | - | trace | - |
| P6 | show | log | run | - | - | trace | - |
| PE2 | show | log | run | ping | oam | trace | - |
| CE2 | show | log | run | ping | - | - | - |
STEP 1:autoroute announce
| ルータ | show出力 | syslog | running-config | ping | OAM | trace | commit |
|---|---|---|---|---|---|---|---|
| CE1 | show | log | run | ping | - | - | - |
| PE1 | show | log | run | ping | oam | trace | cfg |
| P1 | show | log | run | ping | - | trace | - |
| P2 | show | log | run | - | - | trace | - |
| P3 | show | log | run | ping | - | trace | - |
| P4 | show | log | run | - | - | trace | - |
| P5 | show | log | run | ping | - | trace | - |
| P6 | show | log | run | - | - | trace | - |
| PE2 | show | log | run | ping | oam | trace | - |
| CE2 | show | log | run | ping | - | - | - |
STEP 2:autorouteを外し、両方向のトンネルにforwarding-adjacency
| ルータ | show出力 | syslog | running-config | ping | OAM | trace | commit |
|---|---|---|---|---|---|---|---|
| CE1 | show | log | run | ping | - | - | - |
| PE1 | show | log | run | ping | oam | trace | cfg |
| P1 | show | log | run | ping | - | trace | - |
| P2 | show | log | run | - | - | trace | - |
| P3 | show | log | run | ping | - | trace | - |
| P4 | show | log | run | - | - | trace | - |
| P5 | show | log | run | ping | - | trace | - |
| P6 | show | log | run | - | - | trace | - |
| PE2 | show | log | run | ping | oam | trace | cfg |
| CE2 | show | log | run | ping | - | - | - |
STEP 3:FAを外し、9.9.9.9/32のスタティックルートをトンネルへ
| ルータ | show出力 | syslog | running-config | ping | OAM | trace | commit |
|---|---|---|---|---|---|---|---|
| CE1 | show | log | run | ping | - | - | - |
| PE1 | show | log | run | ping | oam | trace | cfg |
| P1 | show | log | run | ping | - | trace | - |
| P2 | show | log | run | - | - | trace | - |
| P3 | show | log | run | ping | - | trace | - |
| P4 | show | log | run | - | - | trace | - |
| P5 | show | log | run | ping | - | trace | - |
| P6 | show | log | run | - | - | trace | - |
| PE2 | show | log | run | ping | oam | trace | cfg |
| CE2 | show | log | run | ping | - | - | - |
STEP 4:撤去(最終状態)
| ルータ | show出力 | syslog | running-config | ping | OAM | trace | commit |
|---|---|---|---|---|---|---|---|
| CE1 | show | log | run | ping | - | - | - |
| PE1 | show | log | run | ping | oam | trace | cfg |
| P1 | show | log | run | ping | - | trace | - |
| P2 | show | log | run | - | - | trace | - |
| P3 | show | log | run | ping | - | trace | - |
| P4 | show | log | run | - | - | trace | - |
| P5 | show | log | run | ping | - | trace | - |
| P6 | show | log | run | - | - | trace | - |
| PE2 | show | log | run | ping | oam | trace | - |
| CE2 | show | log | run | ping | - | - | - |
PE1から出る3リンク(P1・P3・P5向け)のキャプチャー全体です。全STEPのOSPFとRSVPが入っています。
PE1 - P1間(上ルート)のキャプチャー全体をダウンロード
PE1 - P3間(中ルート)のキャプチャー全体をダウンロード
PE1 - P5間(下ルート)のキャプチャー全体をダウンロード
参考
| 出典 | 参照した箇所 |
|---|---|
| RFC 3906 Calculating Interior Gateway Protocol (IGP) Routes Over Traffic Engineering Tunnels | 2節(SPFでトンネルのtail-endを次ホップにする。tail-endより下流の宛先もトンネルを通る)、4.1節(絶対メトリックと相対メトリック) |
| RFC 4206 Label Switched Paths (LSP) Hierarchy with Generalized Multi-Protocol Label Switching (GMPLS) Traffic Engineering (TE) | 1節(FAの定義、FAでつながるノードは通常ルーティング隣接を持たない)、3.1.1節(Link Typeはpoint-to-point) |
| Cisco IOS XR MPLS Configuration Guide「Implementing MPLS Traffic Engineering」 | MPLS-TE Forwarding AdjacencyのRestrictions(双方向の設定、対応IGPとしてIS-IS) |
FAのメトリック1とOSPFでの動作は、検証機(XRd 26.1.1)での観測です。