0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

MPLS 【CCIEメモ_20251012-16】

Posted at

参考資料・時間

資料:
CCIE Enterprise Infrastructure Foundation lab
MPLS Lab 1

勉強時間:
20251011 : 約4.5時間
20251012 : 約3時間
20251013 : 約0時間
20251014 : 約3時間
20251015 : 約3時間
20251016 : 約3時間

学習内容

MPLSによるラベルスイッチング

LDPを有効化するには、以下の手順が必要。

・LDPのHelloメッセージはMulticast:224.0.0.2 UPD/646で送信される。

・ネイバー認識後、TCPセッションを張った後にラベル情報を交換し合う。

TCPセッションは指定がない場合、一番大きいループバックのIPをLDPのIPとして使う。
もし指定する場合は以下のコマンドで指定。

mpls ldp router-id Loopback0 [force]

[force]オプションは設定時点で強制的にLDPのルータIDを変更する。
ルータIDのアドレスに対してTCP接続できないと、LDPセッションは張れない。


データの保持方法は2種類。
 ・Liberal retention mode
  デフォルトの方法。
  すべてのネイバーからのラベルを保持する。

 ・Conservative mode
  特定のルートに対して、最短経路となるルートのネクストホップのみを保持する。


プレフィックスのバインディング
show mpls ldp bindings 
R1#show mpls ldp bindings 1.1.1.1 32
  lib entry: 1.1.1.1/32, rev 4
        local binding:  label: imp-null
        remote binding: lsr: 2.2.2.2:0, label: 204


R2#sh mpls ldp bindings 1.1.1.1 32
  lib entry: 1.1.1.1/32, rev 16
        local binding:  label: 204
        remote binding: lsr: 11.1.1.1:0, label: imp-null
        remote binding: lsr: 3.3.3.3:0, label: 305

各プレフィックスに対してローカルでラベルを割り当てる。
上記結果では、

local binding: ルータ内でプレフィックスに割り当てたラベル

remote-binding: 隣接ルータが特定のプレフィックスに対して割り当てたラベル

つまり、LDPドメイン内で一つのプレフィックスに対してユニークなラベルを割り当てるんではなく、
ルータごとに一つのプレフィックスを各自で好きにラベル付けし、それを交換しあう。

野良猫を皆で同じ名前で呼ぶんじゃなく、各家庭で好き勝手に呼んであだ名だけお隣さんで交換し合う感じ?



TTL Propagation

MPLSのヘッダ(SHIM Header)はL2ヘッダとL3ヘッダの間に存在する。
また、TTLフィールドが存在する。

ラベル転送により、MPLSヘッダのTTLが1つずつ減っていくが、このままではIPヘッダのTTLは消費されない。
そのためTTLの限界数の255以上ホップする可能性もある。何より、IPヘッダのTTLが消費されないことでTraceroute等によってホップ数を正しく測定できない事象が発生する。

これを防止するため、TTL PropagationによってMPLSのヘッダとIPパケットのTTLをお互いにコピーし合う。
これによって、ルータによるラベル転送でもTTLが減少する。
これはデフォルトで有効化されている。

問題点

しかし、これを有効化している場合、tracerouteを実行した際、以下のように経由ルータとローカルラベルが表示される。

R1#traceroute 7.7.7.7
Type escape sequence to abort.
Tracing the route to 7.7.7.7
VRF info: (vrf in name/id, vrf out name/id)
  1 12.1.1.2 2 msec 1 msec 1 msec
  2 23.1.1.3 [MPLS: Label 308 Exp 0] 5 msec 4 msec 4 msec
  3 34.1.1.4 [MPLS: Label 408 Exp 0] 5 msec 4 msec 4 msec
  4 45.1.1.5 [MPLS: Label 503 Exp 0] 5 msec 5 msec 6 msec
  5 56.1.1.6 [MPLS: Label 602 Exp 0] 4 msec 4 msec 4 msec
  6 67.1.1.7 5 msec *  5 msec

MPLSネットワークを通る際のネットワークが分かってしまうので、セキュリティ上よろしくない。
そのため、TTL propagetionを無効にすることでMPLSネットワークを秘匿化する。

# 全てのトラフィックにおいてIPパケットからTTLをコピーしない
R2(config)#no mpls ip propagate-ttl

# 自身が生成したトラフィックにおいてIPパケットからTTLをコピーしない
# 通過したパケットに関してはIPパケットからTTLをコピーする。
R2(config)#no mpls ip propagate-ttl local

# 通過したパケットに関してはIPパケットからTTLをコピーしない。
# 自身が生成したトラフィックにおいてIPパケットからTTLをコピーする。
R2(config)#no mpls ip propagate-ttl forwarded

OSPFによるMPLS有効化

OSPFが有効化されているインターフェースに対してLDPを有効化する。
以下のコマンドがある場合、自動的に設定する。
mpls ldp autoconfig area 0
これはグローバルに設定される。

◆設定
router ospf 1
 mpls ldp autoconfig area 0
 router-id 0.0.0.4
 network 4.4.4.4 0.0.0.0 area 0
 network 34.1.1.4 0.0.0.0 area 0
 network 45.1.1.4 0.0.0.0 area 0

◆確認
R4#sh mpls interfaces
Interface              IP            Tunnel   BGP Static Operational
GigabitEthernet0/3     Yes (ldp)     No       No  No     Yes
GigabitEthernet0/5     Yes (ldp)     No       No  No     Yes

ループバックである4.4.4.4もMPLSを有効化されているが、
show mpls interfacesには表示されない。

グローバルに有効化されるため、IF単位で無効化する場合、
no mpls ldp igp autoconfigを投入する。

R3(config-if)#int gi 0/2
R3(config-if)#no mpls ldp igp autoconfig
R3(config-if)#
*Oct 16 04:35:28.175: LDP SP: 2.2.2.2:0: disabling session protection: session DOWN
*Oct 16 04:35:28.175: LDP SP: 2.2.2.2:0: state change (Incomplete -> None)
R3(config-if)#
*Oct 16 04:35:28.176: %LDP-5-NBRCHG: LDP Neighbor 2.2.2.2:0 (1) is DOWN (LDP disabled on interface)


LDPの経路冗長

mpls ldp session protection
によって、経路の状態を保護できる。
ここでいう保護とは、セッションが切断されても他の経路がある場合、通信を継続できることを指す。

通常のMPLSのHelloはマルチキャストのため1ホップ離れた相手にのみ届くが、targeted Hello というユニキャストで送信することで複数ホップ離れた相手にもHelloを送信することが出来る。

このTargeted Helloが届く前提なので、複数のリンクで冗長されていることが前提条件となる。

R3#sh run | i mpls ldp session protection
mpls ldp session protection


R3#sh mpls ldp discovery
 Local LDP Identifier:
    3.3.3.3:0
    Discovery Sources:
    Interfaces:
        GigabitEthernet0/2 (ldp): xmit/recv
            LDP Id: 2.2.2.2:0; IP addr: 23.1.1.2; no host route
        GigabitEthernet0/5 (ldp): xmit/recv
            LDP Id: 5.5.5.5:0
    Targeted Hellos:
        3.3.3.3 -> 4.4.4.4 (ldp): active/passive, xmit/recv
            LDP Id: 4.4.4.4:0
        3.3.3.3 -> 5.5.5.5 (ldp): active/passive, xmit/recv
            LDP Id: 5.5.5.5:0
        3.3.3.3 -> 2.2.2.2 (ldp): active, xmit

「Targeted Hellos:」欄に注目。
「active/passive, xmit/recv」となっており、4.4.4.4と5.5.5.5には相互にTargeted Helloが出来ている。
ただ、2.2.2.2.に対しては「active, xmit」とこちらから送信のみしている形であり、相互にはなっていないため冗長はされていない。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?