no mpls ip propagate-ttl
設定
・中央がMPLS網:MP-BGPはAS200
・左:AS100
・右:EIGRP接続
前提
iosv-7#trace 192.168.2.1 source gi0/1
Type escape sequence to abort.
Tracing the route to 192.168.2.1
VRF info: (vrf in name/id, vrf out name/id)
1 57.1.1.5 6 msec 4 msec 2 msec
2 45.1.1.4 [MPLS: Labels 20/26 Exp 0] 9 msec 11 msec 12 msec
3 34.1.1.3 [MPLS: Labels 23/26 Exp 0] 15 msec 13 msec 14 msec
4 12.1.1.1 [MPLS: Label 26 Exp 0] 14 msec 12 msec 10 msec
5 12.1.1.2 11 msec 17 msec 14 msec
6 192.168.2.1 14 msec 14 msec 13 msec
tracerouteの仕組み
1)tracerouteを打つ
2)宛先に向けTTL1のICMP echoを出す
3)当然宛先に到着する前にTTLは0になるのでICMP unreachableがTTLが0になった場所から送られてくる
4)unreachableの送信元をメモしつつTTL2のICMP echoを出してunreachableを待つ
5)宛先にたどり着くまでこれを繰り返す
MPLS網を挟んだtracerouteの仕組み
◎IPヘッダのTTLをshimヘッダに移す
- RFCを確認してみると、TTLがshimヘッダにあることがわかる
- 網内ではshimヘッダに移すことで、上記tracerouteのようなlabelを含んだtracerouteの結果を得られることができる
no mpls propagate-ttl
forwarded
iosv-1(config)#no mpls ip propagate-ttl forwarded
IPヘッダのTTLをshimヘッダに移さないようにすることで、MPLS網内のルートをtracerouteの結果に載せないようにする。
iosv-7#trace 192.168.2.1 source gi0/1
Type escape sequence to abort.
Tracing the route to 192.168.2.1
VRF info: (vrf in name/id, vrf out name/id)
1 57.1.1.5 6 msec 5 msec 5 msec
2 12.1.1.1 [MPLS: Label 26 Exp 0] 13 msec 13 msec 11 msec
3 12.1.1.2 13 msec 11 msec 14 msec
4 192.168.2.1 13 msec 11 msec 16 msec
但し、そもそもMPLS網内からtracerouteがスタートすると始めからshimヘッダにTTLが入っているため普通に表示される。
iosv-5#trace 1.1.1.1
Type escape sequence to abort.
Tracing the route to 1.1.1.1
VRF info: (vrf in name/id, vrf out name/id)
1 45.1.1.4 [MPLS: Label 20 Exp 0] 10 msec 7 msec 7 msec
2 34.1.1.3 [MPLS: Label 23 Exp 0] 5 msec 7 msec 8 msec
3 13.1.1.1 10 msec 16 msec *
local
iosv-1(config)#no mpls ip propagate-ttl local
名前の通り、ローカルから来たttlを制限するためforwardedとは挙動が逆になる。
iosv-7#trace 192.168.2.1 source gi0/1
Type escape sequence to abort.
Tracing the route to 192.168.2.1
VRF info: (vrf in name/id, vrf out name/id)
1 57.1.1.5 7 msec 4 msec 3 msec
2 45.1.1.4 [MPLS: Labels 20/26 Exp 0] 13 msec 14 msec 14 msec
3 34.1.1.3 [MPLS: Labels 23/26 Exp 0] 14 msec 18 msec 15 msec
4 12.1.1.1 [MPLS: Label 26 Exp 0] 10 msec 11 msec 10 msec
5 12.1.1.2 12 msec 12 msec 15 msec
6 192.168.2.1 21 msec 13 msec 17 msec
iosv-5#trace 1.1.1.1
Type escape sequence to abort.
Tracing the route to 1.1.1.1
VRF info: (vrf in name/id, vrf out name/id)
1 13.1.1.1 8 msec 17 msec *
設定の取り消し
iosv-1(config)#do sh run | i mpls
no mpls ip propagate-ttl forwarded
mpls ldp autoconfig
iosv-1(config)#no no mpls ip propagate-ttl
iosv-1(config)#do sh run | i mpls
mpls ldp autoconfig
ややこしいが、mpls ip propagate-ttlと設定すると初期状態に戻る。
参考
CCIE Enterprise Infrastructure Foundation, 2nd Edition
RFC 3032 - MPLS Label Stack Encoding
tracerouteの仕組みなんてCCNA時代に勉強したから正直何も難しくはないんだけど、こういう知ってたもん勝ちみたいなところで点を落とすと萎えそう。
この記事が気に入ったらサポートをしてみませんか?