Saturday, December 29, 2012

InterArea MPLS TE with OSPF




Issue

In this example we will go through InterArea MPLS TE with OSPFv2 as our routing protocol
As we can see from the figure above that we have multiple areas, which mean we have different flooding domain between our CEs: R1 and R5
Devices in different link state different flooding domain cannot run a full SPF calculation to build SPT
So , we will use ABRs are trusted exit points toward next area which will yield to the concept of ERO (Explicit Route Object) which contains the addresses of ABRs as loose hops in the transit paths

Configuration

R1

R1#sh run int f1/0
interface FastEthernet1/0
 ip address 192.1.12.1 255.255.255.0
 ip ospf 1 area 1
 speed 100
 duplex full
 mpls traffic-eng tunnels
 ip rsvp bandwidth

R1#sh run int lo0
interface Loopback0
 ip address 1.1.1.1 255.255.255.255
 ip ospf 1 area 1

R1#sh run | sec router ospf
router ospf 1
 router-id 1.1.1.1
 mpls traffic-eng router-id Loopback0
 mpls traffic-eng area 1

R1#sh run int tun0
interface Tunnel0
 ip unnumbered Loopback0
 tunnel mode mpls traffic-eng
 tunnel destination 5.5.5.5
 tunnel mpls traffic-eng autoroute destination
 tunnel mpls traffic-eng path-option 1 explicit name TO_R5

R1#sh run | sec ip explic
ip explicit-path name TO_R5 enable
 next-address loose 3.3.3.3
 next-address loose 7.7.7.7

R2

R2#sh run int f1/0
interface FastEthernet1/0
 ip address 192.1.12.2 255.255.255.0
 ip ospf 1 area 1
 speed 100
 duplex full
 mpls traffic-eng tunnels
 ip rsvp bandwidth

interface FastEthernet1/1
 ip address 192.1.23.2 255.255.255.0
 ip ospf 1 area 1
 speed 100
 duplex full
 mpls traffic-eng tunnels
 ip rsvp bandwidth

R2#sh run int f2/0
interface FastEthernet2/0
 ip address 192.1.26.2 255.255.255.0
 ip ospf 1 area 1
 speed 100
 duplex full
 mpls traffic-eng tunnels
 ip rsvp bandwidth

R2#sh run int lo0
interface Loopback0
 ip address 2.2.2.2 255.255.255.255
 ip ospf 1 area 1

R2#sh run | sec router ospf
router ospf 1
 router-id 2.2.2.2
 mpls traffic-eng router-id Loopback0
 mpls traffic-eng area 1

R3

R3#sh run int f1/0
interface FastEthernet1/0
 ip address 192.1.23.3 255.255.255.0
 ip ospf 1 area 1
 speed 100
 duplex full
 mpls traffic-eng tunnels
 ip rsvp bandwidth

R3#sh run int f1/1
interface FastEthernet1/1
 ip address 192.1.34.3 255.255.255.0
 ip ospf 1 area 2
 speed 100
 duplex full
 mpls traffic-eng tunnels
 ip rsvp bandwidth

R3#sh run int f2/0
interface FastEthernet2/0
 ip address 192.1.36.3 255.255.255.0
 ip ospf 1 area 0
 speed 100
 duplex full
 mpls traffic-eng tunnels
 ip rsvp bandwidth

R3#sh run int f2/1
interface FastEthernet2/1
 ip address 192.1.37.3 255.255.255.0
 ip ospf 1 area 0
 speed 100
 duplex full
 mpls traffic-eng tunnels
 ip rsvp bandwidth

R3#sh run int lo0
interface Loopback0
 ip address 3.3.3.3 255.255.255.255
 ip ospf 1 area 0

R3#sh run | sec router ospf
router ospf 1
 router-id 3.3.3.3
 mpls traffic-eng router-id Loopback0
 mpls traffic-eng area 0
 mpls traffic-eng area 1
 mpls traffic-eng area 2

R4

R4#sh run int f1/0
interface FastEthernet1/0
 ip address 192.1.45.4 255.255.255.0
 ip ospf 1 area 2
 speed 100
 duplex full
 mpls traffic-eng tunnels
 ip rsvp bandwidth

R4#sh run int f1/1
interface FastEthernet1/1
 ip address 192.1.34.4 255.255.255.0
 ip ospf 1 area 2
 speed 100
 duplex full
 mpls traffic-eng tunnels
 ip rsvp bandwidth

R4#sh run int f2/0
interface FastEthernet2/0
 ip address 192.1.47.4 255.255.255.0
 ip ospf 1 area 2
 speed 100
 duplex full
 mpls traffic-eng tunnels
 ip rsvp bandwidth

R4#sh run int lo0
interface Loopback0
 ip address 4.4.4.4 255.255.255.255
 ip ospf 1 area 2

R4#sh run | sec router ospf
router ospf 1
 router-id 4.4.4.4
 mpls traffic-eng router-id Loopback0
 mpls traffic-eng area 2

R5

R5#sh run int f1/0
interface FastEthernet1/0
 ip address 192.1.45.5 255.255.255.0
 ip ospf 1 area 2
 speed 100
 duplex full
 mpls traffic-eng tunnels
 ip rsvp bandwidth

R5#sh run int lo0
interface Loopback0
 ip address 5.5.5.5 255.255.255.255
 ip ospf 1 area 2

R5#sh run | sec ip route
ip route 1.1.1.1 255.255.255.255 Tunnel0

R5#sh run int tun0
interface Tunnel0
 ip unnumbered Loopback0
 tunnel mode mpls traffic-eng
 tunnel destination 1.1.1.1
 tunnel mpls traffic-eng path-option 1 explicit name TO_R1

R5#sh run | sec router ospf
router ospf 1
 router-id 5.5.5.5
 mpls traffic-eng router-id Loopback0
 mpls traffic-eng area 2

R5#sh run | sec ip explic
ip explicit-path name TO_R1 enable
 next-address loose 7.7.7.7
 next-address loose 6.6.6.6

R6

R6#sh run int f1/0
interface FastEthernet1/0
 ip address 192.1.26.6 255.255.255.0
 ip ospf 1 area 1
 speed 100
 duplex full
 mpls traffic-eng tunnels
 ip rsvp bandwidth

R6#sh run int f1/1
interface FastEthernet1/1
 ip address 192.1.67.6 255.255.255.0
 ip ospf 1 area 0
 speed 100
 duplex full
 mpls traffic-eng tunnels
 ip rsvp bandwidth

R6#sh run int f2/0
interface FastEthernet2/0
 ip address 192.1.36.6 255.255.255.0
 ip ospf 1 area 0
 speed 100
 duplex full
 mpls traffic-eng tunnels
 ip rsvp bandwidth

R6#s run int lo0
interface Loopback0
 ip address 6.6.6.6 255.255.255.255
 ip ospf 1 area 0

R6#sh run | sec router ospf
router ospf 1
 router-id 6.6.6.6
 mpls traffic-eng router-id Loopback0
 mpls traffic-eng area 0
 mpls traffic-eng area 1

R7

mpls traffic-eng tunnels

R7#sh run int f1/0
interface FastEthernet1/0
 ip address 192.1.47.7 255.255.255.0
 ip ospf 1 area 2
 speed 100
 duplex full
 mpls traffic-eng tunnels
 ip rsvp bandwidth

R7#sh run int f1/1
interface FastEthernet1/1
 ip address 192.1.67.7 255.255.255.0
 ip ospf 1 area 0
 speed 100
 duplex full
 mpls traffic-eng tunnels
 ip rsvp bandwidth

R7#sh run int f2/0
interface FastEthernet2/0
 ip address 192.1.37.7 255.255.255.0
 ip ospf 1 area 0
 speed 100
 duplex full
 mpls traffic-eng tunnels
 ip rsvp bandwidth

R7#s run int lo0
interface Loopback0
 ip address 7.7.7.7 255.255.255.255
 ip ospf 1 area 0

R7#sh run | sec router ospf
router ospf 1
 router-id 7.7.7.7
 mpls traffic-eng router-id Loopback0
 mpls traffic-eng area 0
 mpls traffic-eng area 2

Verification

Testing reachablity between our CEs

R1#ping 5.5.5.5 source lo0
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 5.5.5.5, timeout is 2 seconds:
Packet sent with a source address of 1.1.1.1
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 20/21/24 ms
R1#sh ip route 5.5.5.5
Routing entry for 5.5.5.5/32
  Known via "static", distance 1, metric 0 (connected)
  Routing Descriptor Blocks:
  * directly connected, via Tunnel0
      Route metric is 0, traffic share count is 1

R1#traceroute 5.5.5.5 source lo0
Type escape sequence to abort.
Tracing the route to 5.5.5.5
VRF info: (vrf in name/id, vrf out name/id)
  1 192.1.12.2 [MPLS: Label 16 Exp 0] 20 msec 20 msec 20 msec
  2 192.1.23.3 [MPLS: Label 16 Exp 0] 24 msec 28 msec 24 msec
  3 192.1.37.7 [MPLS: Label 16 Exp 0] 24 msec 20 msec 20 msec
  4 192.1.47.4 [MPLS: Label 16 Exp 0] 24 msec 20 msec 20 msec
  5 192.1.45.5 24 msec 20 msec *

As we can see from the output above that the trace is following the explicit path we configured from R1 toward R5 , let us check the way back

R5#traceroute 1.1.1.1 source lo0
Type escape sequence to abort.
Tracing the route to 1.1.1.1
VRF info: (vrf in name/id, vrf out name/id)
  1 192.1.45.4 [MPLS: Label 17 Exp 0] 20 msec 20 msec 20 msec
  2 192.1.47.7 [MPLS: Label 17 Exp 0] 20 msec 28 msec 24 msec
  3 192.1.67.6 [MPLS: Label 16 Exp 0] 20 msec 20 msec 20 msec
  4 192.1.26.2 [MPLS: Label 17 Exp 0] 24 msec 20 msec 20 msec
  5 192.1.12.1 24 msec 20 msec *

The same, we are following the explicit path


Let us check now how the signaling is occurring from R1 towards R5 (part of the path is examined) passing through the trusted exit points: ABRs (which in case of R1 are configured as R3, R7)

Once the tunnels are initialized, path calculation to the first ABR occurs and intra area signaling occurs to the same point, from the first ABR to the second one until we reach our destination

R1#debug mpls traffic-eng path lookup
MPLS traffic-eng path lookup events debugging is on
R1#debug mpls traffic-eng path lookup       
R1(config)#int tun0
R1(config-if)#no shut

*Dec 29 23:29:52.319: TE-SIG: deactivating setup Tunnel0 [1], reason: tunnel shutdown
*Dec 29 23:29:52.323: TE-SIG-HE: Tunnel0 [1]->5.5.5.5: RSVP head-end close
*Dec 29 23:29:52.335: TE-SIG-LM: 1.1.1.1_1->5.5.5.5_0 {7}: received DELETE RESV request
*Dec 29 23:29:52.335: TE-SIG-LM: 1.1.1.1_1->5.5.5.5_0 {7}: path next hop is 192.1.12.2 (FastEthernet1/0)
*Dec 29 23:29:52.339: TE-SIG-LM: 1.1.1.1_1->5.5.5.5_0 {7}: sending DELETE RESV reply
*Dec 29 23:29:52.347: TE-SIG-HE: Tunnel0 [1]->5.5.5.5: notified of disappearing label information
*Dec 29 23:29:52.347: TE-SIG-HE: Tunnel0 [1]->5.5.5.5: label information Changed
*Dec 29 23:29:52.351: TE-PCALC-PATH: 1.1.1.1_1->5.5.5.5_0 {7}: shut
R1(config-if)#enFreeing rrr_path_setup_t
*Dec 29 23:29:52.355: TE-PCALC-PATH: 1.1.1.1_1->5.5.5.5_0 {7}: Free all paths in path tree
*Dec 29 23:29:53.583: TE-SIG-HE: Tunnel0 [0]: Attempting to activate
*Dec 29 23:29:53.583: TE-PCALC-API: 1.1.1.1_34->5.5.5.5_0 {7}: P2P LSP Path Lookup called
*Dec 29 23:29:53.587: TE-PCALC: 1.1.1.1_34->5.5.5.5_0 {7}: Path Request Info
*Dec 29 23:29:53.587:   Flags:  IP_EXPLICIT_PATH  METRIC_TE
*Dec 29 23:29:53.591:   IP explicit-path: Supplied
*Dec 29 23:29:53.595:     3.3.3.3 Loose
*Dec 29 23:29:53.595:     7.7.7.7 Loose
*Dec 29 23:29:53.599:   bw 0, min_bw 0, metric: 0
*Dec 29 23:29:53.599:   setup_pri 7, hold_pri 7
*Dec 29 23:29:53.599:   affinity_bits 0x0, affinity_mask 0xFFFF
*Dec 29 23:29:53.603: TE-PCALC-PATH: 1.1.1.1_34->5.5.5.5_0 {7}: Area (ospf 1  area 1) Path Lookup begin
*Dec 29 23:29:53.607: TE-PCALC-PATH: Area (ospf 1  area 1): Dest ip addr 5.5.5.5 not found
*Dec 29 23:29:53.607: TE-PCALC-PATH: lsr_exists:first Loose Hop is to addr 3.3.3.3
*d
R1#Dec 29 23:29:53.611: TE-PCALC-PATH:Path from 1.1.1.1 -> 3.3.3.3:
*Dec 29 23:29:53.615:   192.1.23.3->0.0.0.0 (admin_weight=2):
*Dec 29 23:29:53.615:   192.1.23.2->0.0.0.0 (admin_weight=2):
*Dec 29 23:29:53.615:   192.1.12.2->0.0.0.0 (admin_weight=1):
*Dec 29 23:29:53.615:   192.1.12.1->0.0.0.0 (admin_weight=1):
*Dec 29 23:29:53.615:   num_hops 5, accumulated_aw 2, min_bw 75000
*Dec 29 23:29:53.615: TE-PCALC-PATH: 1.1.1.1_34->5.5.5.5_0 {7}: Freeing rrr_path_setup_t
*Dec 29 23:29:53.619: TE-PCALC-PATH: 1.1.1.1_34->5.5.5.5_0 {7}: Free all paths in path tree
*Dec 29 23:29:53.619: TE-PCALC: Verify Path Lookup: 1.1.1.1_34->5.5.5.5_0 {7}: (protocol nil  area nil)
*Dec 29 23:29:53.619:   Flags:  METRIC_TE
*Dec 29 23:29:53.619:   Last Strict Router: 3.3.3.3
*Dec 29 23:29:53.619:   sub-lsp weight:0 (Total LSP weight:2)
*Dec 29 23:29:53.619:   Hop List:
*Dec 29 23:29:53.619:     192.1.12.1
*Dec 29 23:29:53.619:     192.1.12.2
*Dec 29 23:29:53.619:     192.1.23.2
*Dec 29 23:29:53.619:     192.1.23.3
*Dec 29 23:29:53.619:     3.3.3.3
*Dec 29 23:29:53.619:     7.7.7.7 Loose
*Dec 29 23:29:53.619: TE-PCALC-VERIFY: VERIFY to 3.3.3.3 BEGIN:
*Dec 29 23:29:53.619: TE-PCALC-VERIFY: Verify:
TE-PCALC-VERIFY:  1.1.1.1, 192.1.12.1 points to
TE-PCALC-VERIFY:  2.2.2.2, 192.1.12.2
*Dec 29 23:29:53.619: TE-PCALC-VERIFY: Verify:
TE-PCALC-VERIFY:  2.2.2.2, 192.1.23.2 points to
TE-PCALC-VERIFY:  3.3.3.3, 192.1.23.3
*Dec 29 23:29:53.619: TE-PCALC-VERIFY: VERIFY to 3.3.3.3 PASSED
*Dec 29 23:29:53.619: TE-PCALC-PATH: 1.1.1.1_34->5.5.5.5_0 {7}: Area (ospf 1  area 1) Path Lookup end: path found
*Dec 29 23:29:53.619: TE-PCALC-API: 1.1.1.1_34->5.5.5.5_0 {7}: P2P LSP Path Lookup result: success
*Dec 29 23:29:53.619: TE-SIG-HE: Tunnel0 [34]->5.5.5.5: RSVP head-end open
*Dec 29 23:29:53.627: TE-SIG-HE: Tunnel0 [34]: Activation succeeded
*Dec 29 23:29:53.919: TE-SIG-LM: 1.1.1.1_34->5.5.5.5_0 {7}: received ADD RESV request
*Dec 29 23:29:53.919: TE-SIG-LM: 1.1.1.1_34->5.5.5.5_0 {7}: path next hop is 192.1.12.2 (FastEthernet1/0)
*Dec 29 23:29:53.923: TE-SIG: Installed up_tag 4294967294
*Dec 29 23:29:53.923: TE-SIG: Installed down_tag 18
*Dec 29 23:29:53.923: TE-SIG-LM: 1.1.1.1_34->5.5.5.5_0 {7}: sending ADD RESV reply
*Dec 29 23:29:53.927: TE-SIG-HE: Tunnel0 [34]->5.5.5.5: received RESV CREATE
*Dec 29 23:29:53.927: TE-SIG-HE: Tunnel0 [34]->5.5.5.5: notified of new label information
*Dec 29 23:29:53.927:         FastEthernet1/0, nhop 192.1.12.2, frame, 18
*Dec 29 23:29:53.927: TE-SIG-HE: Tunnel0 [34]->5.5.5.5: label information Changed
*Dec 29 23:29:53.927: TE-SIG-HE: Tunnel0: route change: FastEthernet1/0:16->FastEthernet1/0:18
*Dec 29 23:29:54.339: %SYS-5-CONFIG_I: Configured from console by console

R3#debug mpls traffic-eng tunnels signalling
MPLS traffic-eng tunnels signalling debugging is on
R3#debug mpls traffic-eng path lookup
MPLS traffic-eng path lookup events debugging is on
R3#
*Dec 29 23:29:52.115: TE-SIG-LM: 1.1.1.1_1->5.5.5.5_0 {7}: received DELETE RESV request
*Dec 29 23:29:52.119: TE-SIG-LM: 1.1.1.1_1->5.5.5.5_0 {7}: path previous hop is 192.1.23.2 (FastEthernet1/0)
*Dec 29 23:29:52.119: TE-SIG-LM: 1.1.1.1_1->5.5.5.5_0 {7}: path next hop is 192.1.37.7 (FastEthernet2/1)
*Dec 29 23:29:52.123: TE-SIG-LM: 1.1.1.1_1->5.5.5.5_0 {7}: sending DELETE RESV reply
*Dec 29 23:29:52.131: TE-PCALC-PATH: 3.3.3.3_1->7.7.7.7_0 {7}: Freeing rrr_path_setup_t
*Dec 29 23:29:52.131: TE-PCALC-PATH: 3.3.3.3_1->7.7.7.7_0 {7}: Free all paths in path tree
*Dec 29 23:29:53.447: TE-PCALC-API: 1.1.1.1_34->7.7.7.7_0 {7}: LSP Path Expand called
*Dec 29 23:29:53.451: TE-PCALC: 1.1.1.1_34->7.7.7.7_0 {7}: Path Request Info
*Dec 29 23:29:53.451:   Flags:  END_SWCAP_UNKNOWN
*Dec 29 23:29:53.451:   IP explicit-path: None (dynamic)
*Dec 29 23:29:53.451:   bw 0, min_bw 0, metric: 0
*Dec 29 23:29:53.451:   setup_pri 7, hold_pri 7
*Dec 29 23:29:53.451:   affinity_bits 0x0, affinity_mask 0x0
*Dec 29 23:29:53.451: TE-PCALC-PATH: 1.1.1.1_34->7.7.7.7_0 {7}: rrr_pcalc_lsr_expand:  Exclude node: 2.2.2.2 (intf: 192.1.23.2)
*Dec 29 23:29:53.451: TE-PCALC-PATH: 1.1.1.1_34->7.7.7.7_0 {7}: rrr_pcalc_lsr_expand:  Exclude node: 1.1.1.1 (intf: 192.1.12.1)
*Dec 29 23:29:53.455: TE-PCALC-PATH: 1.1.1.1_34->7.7.7.7_0 {7}: Area (ospf 1  area 0) Path Lookup begin
*Dec 29 23:29:53.455: TE-PCALC-PATH: exclude_path: system_id 0-0-0-0-0-0-0 not known!
*Dec 29 23:29:53.455: TE-PCALC-PATH: exclude_path: system_id 0-0-0-0-0-0-0 not known!
*Dec 29 23:29:53.455: TE-PCALC-PATH:Path from 3.3.3.3 -> 7.7.7.7:
*Dec 29 23:29:53.455:   192.1.37.7->0.0.0.0 (admin_weight=1):
*Dec 29 23:29:53.455:   192.1.37.3->0.0.0.0 (admin_weight=1):
*Dec 29 23:29:53.455:   num_hops 3, accumulated_aw 1, min_bw 75000
*Dec 29 23:29:53.455: TE-PCALC-PATH: 3.3.3.3_34->7.7.7.7_0 {7}: Area (ospf 1  area 0) Path Lookup end: path found
*Dec 29 23:29:53.455: TE-PCALC-PATH: 3.3.3.3_34->7.7.7.7_0 {7}: Area (ospf 1  area 2) Path Lookup begin
*Dec 29 23:29:53.455: TE-PCALC-PATH: exclude_path: system_id 0-0-0-0-0-0-0 not known!
*Dec 29 23:29:53.455: TE-PCALC-PATH: exclude_path: system_id 0-0-0-0-0-0-0 not known!
*Dec 29 23:29:53.455: TE-PCALC-PATH:Path from 3.3.3.3 -> 7.7.7.7:
*Dec 29 23:29:53.455:   192.1.47.7->0.0.0.0 (admin_weight=2):
*Dec 29 23:29:53.459:   192.1.47.4->0.0.0.0 (admin_weight=2):
*Dec 29 23:29:53.459:   192.1.34.4->0.0.0.0 (admin_weight=1):
*Dec 29 23:29:53.459:   192.1.34.3->0.0.0.0 (admin_weight=1):
*Dec 29 23:29:53.459:   num_hops 5, accumulated_aw 2, min_bw 75000
*Dec 29 23:29:53.459: TE-PCALC-PATH: 3.3.3.3_34->7.7.7.7_0 {7}: Area (ospf 1  area 2) Path Lookup end: path found
*Dec 29 23:29:53.459: TE-PCALC-PATH: 3.3.3.3_34->7.7.7.7_0 {7}: Freeing rrr_path_setup_t
*Dec 29 23:29:53.459: TE-PCALC-PATH: 3.3.3.3_34->7.7.7.7_0 {7}: Free all paths in path tree
*Dec 29 23:29:53.459: 7.7.7.7 expands to:
*Dec 29 23:29:53.459: 192.1.37.3
*Dec 29 23:29:53.459: 192.1.37.7
*Dec 29 23:29:53.459: 7.7.7.7
*Dec 29 23:29:53.459: TE-PCALC-API: 3.3.3.3_34->7.7.7.7_0 {7}: LSP Path Expand result: success
*Dec 29 23:29:53.459: TE-PCALC-PATH: 3.3.3.3_34->7.7.7.7_0 {7}: Freeing rrr_path_setup_t
*Dec 29 23:29:53.615: TE-SIG-LM: 1.1.1.1_34->5.5.5.5_0 {7}: received ADD RESV request
*Dec 29 23:29:53.615: TE-SIG-LM: 1.1.1.1_34->5.5.5.5_0 {7}: path previous hop is 192.1.23.2 (FastEthernet1/0)
*Dec 29 23:29:53.615: TE-SIG-LM: 1.1.1.1_34->5.5.5.5_0 {7}: path next hop is 192.1.37.7 (FastEthernet2/1)
*Dec 29 23:29:53.623: TE-SIG: Installed up_tag 17
*Dec 29 23:29:53.623: TE-SIG: Installed down_tag 18
*Dec 29 23:29:53.627: TE-SIG-LM: 1.1.1.1_34->5.5.5.5_0 {7}: sending ADD RESV reply