katorea memo

いろいろ

MPLS-TE (RSVP-TE) その2

前回はXRでのRSVP-TEを先延ばしにしたけど、原因が分かったのでIOSとXR混在の構成で今後進める。

構成は以下。
f:id:gemunopedy:20170611135652p:plain

xrv7のconfigは以下。

hostname xrv7
explicit-path name explicit
 index 1 next-address strict ipv4 unicast 6.6.6.6
 index 2 next-address strict ipv4 unicast 5.5.5.5
 index 3 next-address strict ipv4 unicast 2.2.2.2
!
vrf a
 address-family ipv4 unicast
  import route-target
   1:1
  !
  export route-target
   1:1
  !
 !
!
interface Loopback0
 ipv4 address 7.7.7.7 255.255.255.255
!
interface tunnel-te0
 ipv4 unnumbered Loopback0
 autoroute announce
 !
 destination 2.2.2.2
 path-option 5 explicit name explicit
!
interface MgmtEth0/0/CPU0/0
 shutdown
!
interface GigabitEthernet0/0/0/0
 vrf a
 ipv4 address 192.168.78.7 255.255.255.0
!
interface GigabitEthernet0/0/0/1
 ipv4 address 192.168.67.7 255.255.255.0
!
interface GigabitEthernet0/0/0/2
 shutdown
!
interface GigabitEthernet0/0/0/3
 ipv4 address 192.168.47.7 255.255.255.0
!
route-policy pass
  pass
end-policy
!
router ospf 1
 router-id 7.7.7.7
 address-family ipv4 unicast
 area 0
  mpls traffic-eng
  interface Loopback0
  !
  interface GigabitEthernet0/0/0/1
  !
  interface GigabitEthernet0/0/0/3
  !
 !
 mpls traffic-eng router-id Loopback0
!
router bgp 2
 bgp router-id 7.7.7.7
 address-family ipv4 unicast
 !
 address-family vpnv4 unicast
 !
 neighbor 2.2.2.2
  remote-as 2
  update-source Loopback0
  address-family vpnv4 unicast
  !
 !
 vrf a
  rd 1:1
  address-family ipv4 unicast
  !
  neighbor 192.168.78.8
   remote-as 3
   address-family ipv4 unicast
    route-policy pass in
    route-policy pass out
   !
  !
 !
!
rsvp
 interface GigabitEthernet0/0/0/1
 !
 interface GigabitEthernet0/0/0/3
 !
!
mpls traffic-eng
 interface GigabitEthernet0/0/0/1
 !
 interface GigabitEthernet0/0/0/3
 !
!
mpls ldp
!
end

XRで前回までうまくいかなかった理由は赤文字の「mpls ldp」設定がなかったことが原因。
IOSだと「mpls ip」の設定がなくてもいけたので、XRも同様の設定はなくてもいけると思ってたけどどうやら必須みたい。

「mpls ldp」の設定がないと、LFIB上でunresolvedとなるらしい。

RP/0/0/CPU0:xrv7#show cef vrf a 1.1.1.1 detail
Sun Jun 18 07:25:42.169 UTC

VRF: **nVSatellite
_____________
0.0.0.0/0, version 0, proxy default, default route handler, drop adjacency, internal 0x1001011 0x0 (ptr 0xa13b02f4) [1], 0x0 (0xa13961dc), 0x0 (0x0)
 Updated Jun 18 06:06:03.146
 Prefix Len 0, traffic index 0, precedence n/a, priority 15
  gateway array (0xa1292430) reference count 1, flags 0x200, source default (12), 0 backups
                [2 type 3 flags 0x8481 (0xa131417c) ext 0x0 (0x0)]
  LW-LDI[type=3, refc=1, ptr=0xa13961dc, sh-ldi=0xa131417c]
   via point2point, 8 dependencies, weight 0, class 0 [flags 0x0]
    path-idx 0 NHID 0x0 [0xa0eb6134 0x0]
    next hop point2point
     drop adjacency


    Load distribution: 0 (refcount 2)

    Hash  OK  Interface                 Address
    0     Y   Unknown                   drop

VRF: a
_____________
1.1.1.1/32, version 4, internal 0x5000001 0x0 (ptr 0xa13b17f4) [1], 0x0 (0x0), 0x208 (0xa152c0f0)
 Updated Jun 18 06:06:48.533
 Prefix Len 32, traffic index 0, precedence n/a, priority 3
  gateway array (0xa1293334) reference count 2, flags 0x403a, source rib (7), 0 backups
                [1 type 1 flags 0x140089 (0xa1546230) ext 0x0 (0x0)]
  LW-LDI[type=0, refc=0, ptr=0x0, sh-ldi=0x0]
   via 2.2.2.2, 0 dependencies, recursive [flags 0x6000]
    path-idx 0 NHID 0x0 [0xa0f1e244 0x0]
    recursion-via-/32
    next hop VRF - 'default', table - 0xe0000000
    unresolved
     labels imposed {16}

そして「mpls ldp」を設定するとresolvedになるらしい。

RP/0/0/CPU0:xrv7#show cef vrf a 1.1.1.1 detail
Sun Jun 18 07:24:21.285 UTC

VRF: **nVSatellite
_____________
0.0.0.0/0, version 0, proxy default, default route handler, drop adjacency, internal 0x1001011 0x0 (ptr 0xa13b02f4) [1], 0x0 (0xa13961dc), 0x0 (0x0)
 Updated Jun 18 06:06:03.146
 Prefix Len 0, traffic index 0, precedence n/a, priority 15
  gateway array (0xa1292430) reference count 1, flags 0x200, source default (12), 0 backups
                [2 type 3 flags 0x8481 (0xa131417c) ext 0x0 (0x0)]
  LW-LDI[type=3, refc=1, ptr=0xa13961dc, sh-ldi=0xa131417c]
   via point2point, 7 dependencies, weight 0, class 0 [flags 0x0]
    path-idx 0 NHID 0x0 [0xa0eb6134 0x0]
    next hop point2point
     drop adjacency


    Load distribution: 0 (refcount 2)

    Hash  OK  Interface                 Address
    0     Y   Unknown                   drop

VRF: a
_____________
1.1.1.1/32, version 4, internal 0x5000001 0x0 (ptr 0xa13b17f4) [1], 0x0 (0x0), 0x208 (0xa152c0f0)
 Updated Jun 18 06:06:48.533
 Prefix Len 32, traffic index 0, precedence n/a, priority 3
  gateway array (0xa1293334) reference count 2, flags 0x4038, source rib (7), 0 backups
                [1 type 1 flags 0x40089 (0xa1546230) ext 0x0 (0x0)]
  LW-LDI[type=0, refc=0, ptr=0x0, sh-ldi=0x0]
   via 2.2.2.2, 3 dependencies, recursive [flags 0x6000]
    path-idx 0 NHID 0x0 [0xa1594bf4 0x0]
    recursion-via-/32
    next hop VRF - 'default', table - 0xe0000000
    next hop 2.2.2.2 via 24000/0/21
     next hop 2.2.2.2/32 tt0          labels imposed {ImplNull 16}


    Load distribution: 0 (refcount 1)

    Hash  OK  Interface                 Address
    0     Y   Unknown                   24000/0

VRF: default

これでMPLSラベル情報を送ることが出来るのでエンドエンドでの疎通が可能となる。

r1#traceroute 8.8.8.8 so 1.1.1.1
Type escape sequence to abort.
Tracing the route to 8.8.8.8
VRF info: (vrf in name/id, vrf out name/id)
  1 192.168.12.2 2 msec 2 msec 1 msec
  2 192.168.25.5 [MPLS: Labels 16/24014 Exp 0] 15 msec 5 msec 4 msec
  3 192.168.56.6 [MPLS: Labels 16/24014 Exp 0] 5 msec 18 msec 7 msec
  4 192.168.67.7 [MPLS: Label 24014 Exp 0] 10 msec 7 msec 6 msec
  5 192.168.78.8 5 msec 5 msec *

やはりMPLSをまだちゃんと理解していない中で構築しているので、
自分の中でまだ挙動が落とし込めていない。

とりあえずIOS、XR混在環境が作れたので、先に進める。
進めた先で、あーそういうことねとなることを期待する。

てか以下のドキュメントにはこういうこと書かれていなかった気がする。なので嵌った。
Implementing MPLS Traffic Engineering on Cisco IOS XR Software - Cisco

XR同士だったらドキュメント通りの設定でいけるのかと思い、r2をxrv2に変えて設定してみたけど、
同様に「mpls ldp」がないとエンドエンドの疎通ができなかった。対向がIOSとかXRとか関係なく、「mpls ldp」は必要みたい。

次回はBandwidth Reservationあたりを予定。