mpls ldp session protection


初期設定

・全I/FでOSPFとLDP起動
・lo0にx.x.x.x/32(x: iosv-x)を割り当ててmpls ldp router-id lo0 force←forceを設定しないと上書きしてくれない!!!

mpls ldp session protection

iosv-3(config)#mpls ldp session protection
iosv-3(config)#do clear mpls ldp neighbor *
iosv-3(config)#
Jul 18 14:00:42.673: %LDP-5-CLEAR_NBRS: Clear LDP neighbors () by console
*Jul 18 14:00:42.691: %LDP-5-NBRCHG: LDP Neighbor 192.168.2.1:0 (2) is DOWN (User cleared session manually)
*Jul 18 14:00:42.693: %LDP-5-NBRCHG: LDP Neighbor 172.16.1.2:0 (3) is DOWN (User cleared session manually)
*Jul 18 14:00:42.696: %LDP-5-NBRCHG: LDP Neighbor 192.168.1.10:0 (6) is DOWN (User cleared session manually)
iosv-3(config)#
*Jul 18 14:00:43.682: %LDP-5-NBRCHG: LDP Neighbor 192.168.1.10:0 (1) is UP
*Jul 18 14:00:44.252: %LDP-5-NBRCHG: LDP Neighbor 192.168.2.1:0 (2) is UP
iosv-3(config)#
*Jul 18 14:00:45.852: %LDP-5-NBRCHG: LDP Neighbor 172.16.1.2:0 (3) is UP

碌にCCOを読まずに進めると何も変化がなくネイバーを形成する。言葉の雰囲気からしてフィルタリングに近い機能だと思ってた。

show mpls ldp neighbor detail

iosv-3#sh mpls ldp neighbor detail
    Peer LDP Ident: 4.4.4.4:0; Local LDP Ident 3.3.3.3:0
<略>
        LDP Session Protection enabled, state: Incomplete
            duration: 86400 seconds
        Capabilities Sent:
          [Dynamic Announcement (0x0506)]
          [Typed Wildcard (0x050B)]
        Capabilities Received:
          [Dynamic Announcement (0x0506)]
          [Typed Wildcard (0x050B)]
    Peer LDP Ident: 1.1.1.1:0; Local LDP Ident 3.3.3.3:0
<略>
        LDP Session Protection enabled, state: Ready
            duration: 86400 seconds
        Capabilities Sent:
          [Dynamic Announcement (0x0506)]
          [Typed Wildcard (0x050B)]
        Capabilities Received:
          [Dynamic Announcement (0x0506)]
          [Typed Wildcard (0x050B)]
    Peer LDP Ident: 10.10.10.10:0; Local LDP Ident 3.3.3.3:0
<略>
        LDP Session Protection enabled, state: Incomplete
            duration: 86400 seconds
        Capabilities Sent:
          [Dynamic Announcement (0x0506)]
          [Typed Wildcard (0x050B)]
        Capabilities Received:
          [Dynamic Announcement (0x0506)]
          [Typed Wildcard (0x050B)]

iosv-1とだけsession protection readyになっている。そのほかはImcomplete。
よくよく考えたら"Session Protection"でセッションを保護していて、ネイバーどうこうは特に語られていないことに気が付いた。

iosv-1 gi0/1をshutしてみる

spoke1(config)#int gi0/1
spoke1(config-if)#shut

*Jul 18 14:32:18.363: %LDP-5-SP: 1.1.1.1:0: session hold up initiated
iosv-3#sh mpls ldp nei                 
*Jul 18 14:32:39.575: %OSPF-5-ADJCHG: Process 1, Nbr 192.168.1.10 on GigabitEthernet0/2 from FULL to DOWN, Neighbor Down: Dead timer expired
iosv-3#sh mpls ldp nei 1.1.1.1 detail
<略>
        LDP Session Protection enabled, state: Protecting
            duration: 86400 seconds
            holdup time remaining: 86369 seconds
        Capabilities Sent:
          [Dynamic Announcement (0x0506)]
          [Typed Wildcard (0x050B)]
        Capabilities Received:
          [Dynamic Announcement (0x0506)]
          [Typed Wildcard (0x050B)]

ステータスがready→Protectingに変わった。

結論(めっちゃ大事)

MPLS LDP Session Protection uses LDP Targeted Hellos to protect LDP sessions. Take, for example, two directly connected routers that have LDP enabled and can reach each other through alternate IP routes in the network.

Chapter: MPLS LDP Session Protection

つまり直接接続で形成しているLDPネイバーでも、別のルートで到達できるなら、直接接続がdownしてもLDPセッションを継続することができる。
iosv-1は直接接続とiosv-0を経由する2つのルートがあったため、shut前は「ready」であり、shut後は「Protecting」となった。
一方、iosv-0やiosv-4は直接接続以外のルートを持っていないため「Incomplete」のステータスだったと考えられる。

spoke1(config-if)#shut
iosv-3#sh mpls ldp neighbor 1.1.1.1
iosv-3#

ちなみにSession protectionを設定していない状態だと、代替ルートがあってもLDPネイバーは消滅する。
仕組みとしては、Session protectionが有効なときはLink helloだけでなくtargeted helloも自発的に送信するからProtectingになるが、基本挙動ではLink Helloしか送信されないためそれが途切れると代替経路があろうともLDPネイバーはダウンするってことだと思う。

いいなと思ったら応援しよう!