MPLS-TE via RSVP – Part 3 of 3 – Brocade Netrion (XMR/MLX)

Part 1 – Cisco IOS
Part 2 – Juniper JunOS
Part 3 – Brocade Netiron XMR/MLX
Part 4 – Cisco IOS-XR

You thought I forgot about this? No ways. The main issue is that while I run a Brocade core, I don’t have a lot of spare Brocade kit to play with. Hence I’m sat at Brocade’s lab showing the same thing here.

So let’s remind ourselves of the topology:

Netiron MLX/XMR basic config

This is CR1’s config. CR2 and CR3 are nearly identical:

interface loopback 2
 ip ospf area 0
 ip address 2.2.2.2/32
!
interface ethernet 2/1
 enable
 ip ospf area 0
 ip address 192.168.1.2/30
!
interface ethernet 2/3
 enable
 ip ospf area 0
 ip address 192.168.1.9/30
!
router mpls

 mpls-interface e2/1

 mpls-interface e2/3

Vanilla again. In fact out of all 3 vendors, Brocade’s is by far the neatest. You simple add interfaces to OSPF and then enable them under router mpls. Job done.

As always, the bulk of the work is done on the PE boxes. Let’s take a look at AR1’s config:

interface loopback 1
 ip ospf area 0
 ip address 1.1.1.1/32
!
interface loopback 10
 ip address 10.10.10.10/32
!
interface ethernet 1/1
 enable
 ip ospf area 0
 ip address 192.168.1.1/30
!
interface ethernet 1/2
 enable
 ip ospf area 0
 ip address 192.168.1.5/30
!
router bgp
 local-as 100
 neighbor 5.5.5.5 remote-as 100
 neighbor 5.5.5.5 update-source 1.1.1.1

 address-family ipv4 unicast
 network 10.10.10.10/32
 exit-address-family
!
router mpls


 mpls-interface e1/1

 mpls-interface e1/2

 path TO-AR3
  loose 5.5.5.5

 lsp TO-AR3
  to 5.5.5.5
  primary TO-AR3
  enable

I’ve enabled OSPF. Enabled BGP. Added a second loopback advertising a route to AR3. Enabled RSVP. And finally created a loose path to AR3 which is used by my LSP config. I’ve done a similar config on AR3 and my BGP session is now up. On AR3 I’ve aadded a loopback with the IP address of 50.50.50.50/32 advertised to AR1 via BGP. Let’s take a look:

[email protected]#sh ip route 50.50.50.50
Type Codes - B:BGP D:Connected I:ISIS O:OSPF R:RIP S:Static; Cost - Dist/Metric
BGP  Codes - i:iBGP e:eBGP
ISIS Codes - L1:Level-1 L2:Level-2
OSPF Codes - i:Inter Area 1:External Type 1 2:External Type 2 s:Sham Link
        Destination        Gateway         Port          Cost          Type Uptime
1       50.50.50.50/32     192.168.1.2     eth 1/1       200/0         Bi   0m4s

So we have the route. Can we ping it? I guess you can figure out what’s going to happen if you look at that gateway address:

[email protected]#ping 50.50.50.50
Sending 1, 16-byte ICMP Echo to 50.50.50.50, timeout 5000 msec, TTL 64
Type Control-c to abort
Request timed out.
No reply from remote host.

Nope, of course we can’t. BGP is trying to send this packet to the core, who has no idea how to get to 50.50.50.50. So the packet gets dropped. We can verify this with a traceroute:

[email protected]#traceroute 50.50.50.50

Type Control-c to abort
Tracing the route to IP node (50.50.50.50) from 1 to 30 hops

  1    *       *       *     ?
  2    *    ^C
Trace Route aborted!

This is an easy fix though. Instead of having a static route, or even making the LSP avaiable to the IGP, we simply tell BGP it can use LSPs as next hops:

router bgp 
next-hop-mpls

[email protected]#sh ip route 50.50.50.50
Type Codes - B:BGP D:Connected I:ISIS O:OSPF R:RIP S:Static; Cost - Dist/Metric
BGP  Codes - i:iBGP e:eBGP
ISIS Codes - L1:Level-1 L2:Level-2
OSPF Codes - i:Inter Area 1:External Type 1 2:External Type 2 s:Sham Link
        Destination        Gateway         Port          Cost          Type Uptime
1       50.50.50.50/32     DIRECT          lsp TO-AR3    200/0         Bi   0m5s

Now we do see the LSP as a next hop. And does it work?

[email protected]#ping 50.50.50.50
Sending 1, 16-byte ICMP Echo to 50.50.50.50, timeout 5000 msec, TTL 64
Type Control-c to abort
Reply from 50.50.50.50     : bytes=16 time=1ms TTL=63
Success rate is 100 percent (1/1), round-trip min/avg/max=1/1/1 ms.

Of course it does :)

Let’s take a slightly deeper look at what labels will be used.

[email protected]#sh mpls forwarding
Total number of MPLS forwarding entries: 1
      Dest-prefix        In-lbl Out-lbl Out-intf      Sig Next-hop
1     5.5.5.5/32         -      1026    e1/1          R   192.168.1.2

We should see AR1 sending the frame out with a label of 1026. Is that what we see?

[email protected]#traceroute 50.50.50.50

Type Control-c to abort
Tracing the route to IP node (50.50.50.50) from 1 to 30 hops

  1    <1 ms   <1 ms   <1 ms 192.168.1.2
        MPLS Label=1026 Exp=7 TTL=1 S=1
  2    <1 ms   <1 ms   <1 ms 50.50.50.50

Netiron MLX/XMR explicit paths

Now let's create an RSVP static path to go through CR2 and CR3. Config again is pretty simple:

router mpls
 
 path STRICT-TO-AR3
  strict 192.168.1.6
  strict 192.168.1.18
  strict 192.168.1.26

lsp TO-AR3
  to 5.5.5.5
  primary STRICT-TO-AR3
  enable

I can add a secondary path plus plenty of options, but for this blog the config above is good enough. We should now see a slightly different label, plus 2 labelled hops:

[email protected]#sh mpls forwarding
Total number of MPLS forwarding entries: 1
      Dest-prefix        In-lbl Out-lbl Out-intf      Sig Next-hop
1     5.5.5.5/32         -      1024    e1/2          R   192.168.1.6

[email protected]#traceroute 50.50.50.50

Type Control-c to abort
Tracing the route to IP node (50.50.50.50) from 1 to 30 hops

  1    <1 ms   <1 ms   <1 ms 192.168.1.6
        MPLS Label=1024 Exp=7 TTL=1 S=1
  2    <1 ms   <1 ms   <1 ms 192.168.1.18
        MPLS Label=1024 Exp=7 TTL=1 S=1
  3    <1 ms   <1 ms   <1 ms 50.50.50.50

All good.

Netiron MLX/XMR Type-10 OSPF LSA

Enabling OSPF-TE is done under router mpls, not ospf as you might expect:

router mpls
 policy
  traffic-eng ospf area 0

Let's take a look at the database:

[email protected]#sh ip ospf database

Link States

Index Area ID         Type LS ID           Adv Rtr         Seq(Hex) Age  Cksum  SyncState
1     0               Rtr  192.168.1.1     192.168.1.1     80000027 1213 0x1960 Done
2     0               Rtr  192.168.1.6     192.168.1.6     80000028 1108 0xa89d Done
3     0               Rtr  192.168.1.18    192.168.1.18    80000029 1290 0x5999 Done
4     0               Rtr  192.168.1.10    192.168.1.10    80000028 1186 0x27f5 Done
5     0               Rtr  192.168.1.2     192.168.1.2     8000002b 1287 0x0e49 Done
6     0               Net  192.168.1.17    192.168.1.6     80000022 1348 0x98ca Done
7     0               Net  192.168.1.6     192.168.1.6     80000022 1828 0x1867 Done
8     0               Net  192.168.1.21    192.168.1.18    80000022 1050 0xbf97 Done
9     0               Net  192.168.1.13    192.168.1.2     80000022 1287 0x0873 Done
10    0               Net  192.168.1.10    192.168.1.10    80000022 706  0x0e64 Done
11    0               Net  192.168.1.2     192.168.1.2     80000023 87   0x2e5c Done
12    0               Net  192.168.1.25    192.168.1.18    80000022 570  0x0843 Done
13    0               OpAr 1.0.0.3         192.168.1.1     80000003 159  0xebd0 Done
14    0               OpAr 1.0.0.3         192.168.1.18    80000003 51   0xb2d9 Done
15    0               OpAr 1.0.0.3         192.168.1.10    80000003 45   0xa406 Done
16    0               OpAr 1.0.0.3         192.168.1.6     80000003 57   0x2a76 Done
17    0               OpAr 1.0.0.3         192.168.1.2     80000003 60   0x316a Done
18    0               OpAr 1.0.0.5         192.168.1.2     80000003 60   0x5d4d Done

Index Area ID         Type LS ID           Adv Rtr         Seq(Hex) Age  Cksum  SyncState
19    0               OpAr 1.0.0.2         192.168.1.1     80000003 159  0x25a0 Done
20    0               OpAr 1.0.0.2         192.168.1.18    80000003 51   0x8df7 Done
21    0               OpAr 1.0.0.2         192.168.1.10    80000003 45   0xdbb0 Done
22    0               OpAr 1.0.0.2         192.168.1.6     80000003 57   0xf5c1 Done
23    0               OpAr 1.0.0.2         192.168.1.2     80000003 60   0x3d86 Done
24    0               OpAr 1.0.0.4         192.168.1.6     80000003 57   0x6d39 Done
25    0               OpAr 1.0.0.4         192.168.1.18    80000003 51   0xf59c Done
26    0               OpAr 1.0.0.4         192.168.1.2     80000003 60   0xac06 Done
27    0               OpAr 1.0.0.1         192.168.1.1     80000002 164  0x90e6 Done
28    0               OpAr 1.0.0.1         192.168.1.10    80000002 50   0xb4b0 Done
29    0               OpAr 1.0.0.1         192.168.1.18    80000002 56   0xd480 Done
30    0               OpAr 1.0.0.1         192.168.1.6     80000002 61   0xa4c8 Done
31    0               OpAr 1.0.0.1         192.168.1.2     80000002 66   0x94e0 Done

Let's drill deeper:

[email protected]# sh ip ospf database link-state opaque-area 1.0.0.2
Area ID         Type LS ID           Adv Rtr         Seq(Hex) Age  Cksum  SyncState
0               OpAr 1.0.0.2         192.168.1.1     80000003 212  0x25a0 Done
  Area-opaque TE LSA
  Link:
    Link type : multiaccess
    Link ID : 192.168.1.2
    Local IP Address:
                192.168.1.1
    Remote IP Address:
                0.0.0.0
    TE metric: 1
    Link BW: 1000000 kbits/sec
    Reservable BW: 1000000 kbits/sec
    Unreserved BW:
       [0]    1000000 kbits/sec  [1]    1000000 kbits/sec
       [2]    1000000 kbits/sec  [3]    1000000 kbits/sec
       [4]    1000000 kbits/sec  [5]    1000000 kbits/sec
       [6]    1000000 kbits/sec  [7]    1000000 kbits/sec
    Admin Group: 0x00000000

Area ID         Type LS ID           Adv Rtr         Seq(Hex) Age  Cksum  SyncState
0               OpAr 1.0.0.2         192.168.1.18    80000003 104  0x8df7 Done
  Area-opaque TE LSA
  Link:
    Link type : multiaccess
    Link ID : 192.168.1.25
    Local IP Address:
                192.168.1.25
    Remote IP Address:
                0.0.0.0
    TE metric: 1
    Link BW: 1000000 kbits/sec
    Reservable BW: 1000000 kbits/sec
    Unreserved BW:
       [0]    1000000 kbits/sec  [1]    1000000 kbits/sec
       [2]    1000000 kbits/sec  [3]    1000000 kbits/sec
       [4]    1000000 kbits/sec  [5]    1000000 kbits/sec
       [6]    1000000 kbits/sec  [7]    1000000 kbits/sec
    Admin Group: 0x00000000

Area ID         Type LS ID           Adv Rtr         Seq(Hex) Age  Cksum  SyncState
0               OpAr 1.0.0.2         192.168.1.10    80000003 99   0xdbb0 Done
  Area-opaque TE LSA
  Link:
    Link type : multiaccess
    Link ID : 192.168.1.25
    Local IP Address:
                192.168.1.26
    Remote IP Address:
                0.0.0.0
    TE metric: 1
    Link BW: 1000000 kbits/sec
    Reservable BW: 1000000 kbits/sec
    Unreserved BW:
       [0]    1000000 kbits/sec  [1]    1000000 kbits/sec
       [2]    1000000 kbits/sec  [3]    1000000 kbits/sec
       [4]    1000000 kbits/sec  [5]    1000000 kbits/sec
       [6]    1000000 kbits/sec  [7]    1000000 kbits/sec
    Admin Group: 0x00000000

Area ID         Type LS ID           Adv Rtr         Seq(Hex) Age  Cksum  SyncState
0               OpAr 1.0.0.2         192.168.1.6     80000003 112  0xf5c1 Done
  Area-opaque TE LSA
  Link:
    Link type : multiaccess
    Link ID : 192.168.1.6
    Local IP Address:
                192.168.1.6
    Remote IP Address:
                0.0.0.0
    TE metric: 1
    Link BW: 1000000 kbits/sec
    Reservable BW: 1000000 kbits/sec
    Unreserved BW:
       [0]    1000000 kbits/sec  [1]    1000000 kbits/sec
       [2]    1000000 kbits/sec  [3]    1000000 kbits/sec
       [4]    1000000 kbits/sec  [5]    1000000 kbits/sec
       [6]    1000000 kbits/sec  [7]    1000000 kbits/sec
    Admin Group: 0x00000000

Area ID         Type LS ID           Adv Rtr         Seq(Hex) Age  Cksum  SyncState
0               OpAr 1.0.0.2         192.168.1.2     80000003 116  0x3d86 Done
  Area-opaque TE LSA
  Link:
    Link type : multiaccess
    Link ID : 192.168.1.2
    Local IP Address:
                192.168.1.2
    Remote IP Address:
                0.0.0.0
    TE metric: 1
    Link BW: 1000000 kbits/sec
    Reservable BW: 1000000 kbits/sec
    Unreserved BW:
       [0]    1000000 kbits/sec  [1]    1000000 kbits/sec
       [2]    1000000 kbits/sec  [3]    1000000 kbits/sec
       [4]    1000000 kbits/sec  [5]    1000000 kbits/sec
       [6]    1000000 kbits/sec  [7]    1000000 kbits/sec
    Admin Group: 0x00000000

All of the above will also work on the CER and I believe the CES with correct licensing. As with all the vendors there are a lot more options that can be added to the configs above in order to make the network converge and respond to failure a lot faster. The main idea of all three was to show you a quick insight into how RSVP is configured on the 3 main vendors.

© 2009-2020 Darren O'Connor All Rights Reserved -- Copyright notice by Blog Copyright