Genie's Tech Blog

Where knowledge has no dimensions

Inter-AS MPLS TE

Hello Everyone,

Today I am going to discuss about Inter-AS MPLS Traffic-engineering (TE). Till now we have seen how MPLS behaves within a single AS but will not see the functionality and implementation of Traffic-engineering Tunels. Actually Inter-AS MPLS TE is a part of Inter-Domain Traffic-engineering in which a domain is identified as an IGP area or an Autonomous-System. In Inter-Domain TE, Head-End router lacks complete network topology to perform path computation in both cases. 

Inter-Domain TE Fast-Reroute: The Inter-Domain TE FRR has the same configuration as the single domain scenario. Node-Id id defined which is a sub-object required to implement ABR/ASBR node protection. Node-Id helps a PLR (Point of local repair) detect a merge point. ASBR node protection includes a Node-Id flag (0x20) which is also called a node-Id sub-object. When it is set, the flag indicates that the address specified in the RRO (Record Route Object) in the resv message is the Node-Id address. The Node-Id refers to the TE router Id.

Inter-Domain TE Re-optimization: Tunnel re-optimization is the signalling of an LSP that is more optimal than the LSP a TE tunnel is currently using and switching over of the tunnel's data to use the new LSP. Re-optimization can be timer / event / admin triggered. In the admin method, user triggers the "mpls traffic-eng reoptimize" command to manually re-optimize the TE LSP. Regardless of how re-optimization is triggered, the headend router re-optimizes a tunnel only if it can find a better path than the one the tunnel currently uses. If there is not a better path in the topology database, no new LSP is signaled and re-optimization does not occur. With the addition of loose path reoptimization, a tunnel's headend can reoptimize LSPs even if they span multiple areas, levels, or autonomous systems. This is done via the implementation of a query and response protocol defined in draft-vasseur-mpls-loose-path-reopt-02.txt. 

Inter-AS TE has been defined in the RFC 4216. Inter-AS TE involves setting up TE tunnels spanning multiple autonomous IGP systems (AS). This feature is very similar to inter-area TE as it requires all the building blocks required used in inter-area TE except following issues.

1. In case of Inter-AS TE, link at the edge of a network between two ASes run BGP or static routes. Since there is no IGP adjacency on this link, it is not distributed in opaque LSA/TLV. This prevents the head end LSR to take that link into account in its TE LSP path computation. This problem is solved by configuring the link with neighbor ID, IGP information and TE Metric.

2. There may be a requirement for policy control at ASBR to not propagate link addresses from one AS to another. Typically, a configurations knob is provided to overwrite link addresses in Path Error and Record Route Object with the address of the ASBR.

Let us now try to understand the Inter-AS Traffic Engineering with the help of an example. Consider the following topology:

 

In the above topology you can see that there are 4 router: R1, R3, R4 and R6. Lets consider R1 and R3 in one AS say AS100 and R4 and R6 in another AS say AS200. R3 and R4 are the ASBR routers. We are running OSPF in AS100 and ISIS in AS200 as the IGP protocol. We have created a TE tunnel from R1 to R6 (source Loopback0 on R1 to destination Loopback0 on R6). Lets now have a look at the basic config:

Config on R1:
=============
interface Loopback0
 ip address 1.1.1.1 255.255.255.255
 ip pim sparse-mode
!     
interface Tunnel100
 ip unnumbered Loopback0
 tunnel mode mpls traffic-eng
 tunnel destination 6.6.6.6
 tunnel mpls traffic-eng autoroute announce
 tunnel mpls traffic-eng path-option 1 explicit name lanos
 tunnel mpls traffic-eng fast-reroute
!
interface Ethernet0/0
 ip address 13.13.13.1 255.255.255.0
 ip pim sparse-mode
 mpls ip
 mpls traffic-eng tunnels
 ip rsvp bandwidth
!
router ospf 100
 router-id 1.1.1.1
 log-adjacency-changes
 network 1.1.1.1 0.0.0.0 area 0
 network 13.13.13.1 0.0.0.0 area 0
 mpls traffic-eng router-id Loopback0
 mpls traffic-eng area 0
!
ip explicit-path name lanos enable
 next-address loose 3.3.3.3
 next-address loose 4.4.4.4
 next-address loose 6.6.6.6
!


Config on R3:
=============
interface Loopback0
 ip address 3.3.3.3 255.255.255.255
 ip pim sparse-mode
!
interface Ethernet0/0
 ip address 13.13.13.3 255.255.255.0
 ip pim sparse-mode
 mpls ip
 mpls traffic-eng tunnels
 ip rsvp bandwidth
!
interface Ethernet3/0
 ip address 34.34.34.3 255.255.255.0
 ip pim sparse-mode
 mpls traffic-eng tunnels
 mpls traffic-eng passive-interface nbr-te-id 4.4.4.4
 ip rsvp bandwidth
!
router ospf 100
 router-id 3.3.3.3
 log-adjacency-changes
 redistribute static subnets
 redistribute bgp 100 subnets
 network 3.3.3.3 0.0.0.0 area 0
 network 13.13.13.3 0.0.0.0 area 0
 mpls traffic-eng router-id Loopback0
 mpls traffic-eng area 0
!
router bgp 100
 bgp router-id 3.3.3.3
 no bgp default ipv4-unicast
 bgp log-neighbor-changes
 neighbor 34.34.34.4 remote-as 200
 !
 address-family ipv4
  no synchronization
  redistribute ospf 100
  neighbor 34.34.34.4 activate
  neighbor 34.34.34.4 send-community
  no auto-summary
 exit-address-family
!

Config on R4:
=============
interface Loopback0
 ip address 4.4.4.4 255.255.255.255
 ip pim sparse-mode
 ip router isis 
!
interface Ethernet0/0
 ip address 46.46.46.4 255.255.255.0
 ip pim sparse-mode
 ip router isis 
 mpls traffic-eng tunnels
 ip rsvp bandwidth
!
interface Ethernet3/0
 ip address 34.34.34.4 255.255.255.0
 ip pim sparse-mode
 mpls traffic-eng tunnels
 mpls traffic-eng passive-interface nbr-te-id 3.3.3.3
 ip rsvp bandwidth
!
router isis
 net 49.0001.0000.0000.0004.00
 is-type level-1
 metric-style wide
 redistribute static ip level-1
 redistribute bgp 200 level-1-2
 mpls traffic-eng router-id Loopback0
 mpls traffic-eng level-1
!
router bgp 200
 bgp router-id 4.4.4.4
 no bgp default ipv4-unicast
 bgp log-neighbor-changes
 neighbor 34.34.34.3 remote-as 100
 !
 address-family ipv4
  no synchronization
  redistribute isis level-1-2
  neighbor 34.34.34.3 activate
  neighbor 34.34.34.3 send-community
  no auto-summary
 exit-address-family
!

Config on R6:
=============
interface Loopback0
 ip address 6.6.6.6 255.255.255.255
 ip pim sparse-mode
 ip router isis 
!
interface Ethernet0/0
 ip address 46.46.46.6 255.255.255.0
 ip pim sparse-mode
 ip router isis 
 mpls traffic-eng tunnels
 ip rsvp bandwidth
!
router isis
 net 49.0001.0000.0000.0006.00
 is-type level-1
 metric-style wide
 mpls traffic-eng router-id Loopback0
 mpls traffic-eng level-1
!

From the above config, we can see that R3 and R4 have been configured with BGP and then BGP is redistributed in the IGP so that all the routes are learnt in the IGP table. The most important part of this section is the "mpls traffic-eng passive-interface nbr-te-id" config. This command is configured on the interface of an ASBR. With this command, the link is flooded in the ASBR's IGP. All the links are flooded as point-to-point links. Please note that the neighbor TE Id is the mpls traffic-eng router-id of the neighbor which we specify through "mpls traffic-eng router-id Loopback0" command under the routing protocol. Please note that the router-id configured on the link using the "mpls traffic-eng passive-interface" command must not conflict with the router-id within the AS. When you configure forced link flooding on an interface, the MPLS TE link management module advertises the link to all nodes. As a result of this advertisement, the TE topology database on all the nodes within the Inter-AS is updated with this information. Another point to remember is that all the links configured for link flooding are are flooded as point-to-point links. OSPF floods opaque link-state advertisement (LSA) Type 10 link information. If a multiaccess link has more than one neighbor, a Type 10 LSA is advertised for each neighbor. In the topology database, neighbors are represented by point-to-point neighbor relationships. In IS-IS, when autonomous system A1 floods its LSP, it includes the system ID and a pseudonode number. If three autonomous systems are connected to a multiaccess network LAN, each link is considered to be a point-to-point link. The links are marked with the maximum metric value so that the inter-ASBR links are considered by CSPF and not by shortest path first (SPF).

Also, if you see that above we mentioned about the node-id sub-object with a value of 0x20. You can see the same on the ASBR router or the HeadEnd router using the command "show ip rsvp reservation detail".

R3#sh ip rsvp reservation detail 
Reservation:
  Tun Dest:   6.6.6.6  Tun ID: 100  Ext Tun ID: 1.1.1.1
  Tun Sender: 1.1.1.1  LSP ID: 84
  Next Hop: 34.34.34.4 on Ethernet3/0
  Label: 16 (outgoing)
  Reservation Style is Shared-Explicit, QoS Service is Controlled-Load
  Resv ID handle: 02000406.
  Created: 13:04:45 PST Sat Nov 17 2012
  Average Bitrate is 0 bits/sec, Maximum Burst is 1K bytes
  Min Policed Unit: 0 bytes, Max Pkt Size: 1500 bytes
  RRO:
    4.4.4.4/32, Flags:0x20 (No Local Protection, Node-id)
      Label subobject: Flags 0x1, C-Type 1, Label 16
    46.46.46.4/32, Flags:0x0 (No Local Protection)
      Label subobject: Flags 0x1, C-Type 1, Label 16
    6.6.6.6/32, Flags:0x20 (No Local Protection, Node-id)
      Label subobject: Flags 0x1, C-Type 1, Label 0
    46.46.46.6/32, Flags:0x0 (No Local Protection)
      Label subobject: Flags 0x1, C-Type 1, Label 0
  Status:
  Policy: Accepted. Policy source(s): MPLS/TE
R3#

Note that this node-id subobject comes into picture when we are configuring node protection i.e. fast-reroute feature. Above presented configured will help bring up the Inter-AS TE tunnel. Lets have a look at the output below:

R1# show mpls traffic-eng tunnel tu100

Name: R1_t100                             (Tunnel100) Destination: 6.6.6.6
  Status:
    Admin: up         Oper: up     Path: valid       Signalling: connected
    path option 1, type explicit lanos (Basis for Setup, path weight 10)

  Config Parameters:
    Bandwidth: 0        kbps (Global)  Priority: 7  7   Affinity: 0x0/0xFFFF
    Metric Type: TE (default)
    AutoRoute announce: enabled  LockDown: disabled Loadshare: 0        bw-based
    auto-bw: disabled
  Active Path Option Parameters:
    State: explicit path option 1 is active
    BandwidthOverride: disabled  LockDown: disabled  Verbatim: disabled


  InLabel  :  -
  OutLabel : Ethernet0/0, 19
  Next Hop : 13.13.13.3
  RSVP Signalling Info:
       Src 1.1.1.1, Dst 6.6.6.6, Tun_Id 100, Tun_Instance 84
    RSVP Path Info:
      My Address: 13.13.13.1   
      Explicit Route: 13.13.13.3 3.3.3.3 4.4.4.4* 6.6.6.6* 
      Record   Route: 
      Tspec: ave rate=0 kbits, burst=1000 bytes, peak rate=0 kbits
    RSVP Resv Info:
      Record   Route:  3.3.3.3(19) 34.34.34.3(19)
                       4.4.4.4(16) 46.46.46.4(16)
                       6.6.6.6(0) 46.46.46.6(0)
      Fspec: ave rate=0 kbits, burst=1000 bytes, peak rate=0 kbits
  Shortest Unconstrained Path Info:
    Path Weight: UNKNOWN
    Explicit Route:  UNKNOWN
  History:
    Tunnel:
      Time since created: 19 hours, 57 minutes
      Time since path change: 19 hours, 28 minutes
      Number of LSP IDs (Tun_Instances) used: 84
    Current LSP: [ID: 84]
      Uptime: 19 hours, 28 minutes
    Prior LSP: [ID: 83]
      ID: path option unknown
      Removal Trigger: path error
R1#

In the above output, you can see that there is an '*' mark in the ERO for 4.4.4.4 and 6.6.6.6 . This is seen because both these addresses are in different Autonomous system. We can try to perform a simple test to see how things behave when we do not perform link flooding on ASBR. We remove the mpls traffic-eng passive-interface command on R3 and R4 and will try to troubleshoot using some debug commands:

R3# debug ip rsvp messages
R3#
R3#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
R3(config)#int e3/0
R3(config-if)#no mpls tra pass nbr 4.4.4.4
R3(config-if)#end
R3#wr
Building configuration...
[OK]

*Nov 18 11:27:51.213: RSVP: session [TBD]
  Incoming Path, I/F=Et0/0, Layer=IP
  IP   HDR: 1.1.1.1->6.6.6.6, TOS=0xC0, Len=236, TTL=254, RA=Y
  RSVP HDR: RRC=N, TTL=255, Len=212, Cksum=0xA901
*Nov 18 11:27:51.213: RSVP: 1.1.1.1_165->6.6.6.6_100[Src] {7}:
  Outgoing PathError, I/F=Et0/0, Layer=IP, NHOP=13.13.13.1, Prerouted=N
  IP   HDR: 13.13.13.3->13.13.13.1, TOS=0x00, Len=152, TTL=255, RA=N
  RSVP HDR: RRC=N, TTL=255, Len=132, Cksum=0x4D0C
*Nov 18 11:27:51.213: RSVP: session [TBD]
  Incoming PathTear, I/F=Et0/0, Layer=IP
  IP   HDR: 1.1.1.1->6.6.6.6, TOS=0x00, Len=156, TTL=254, RA=Y
  RSVP HDR: RRC=N, TTL=255, Len=132, Cksum=0xB195

R3#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
R3(config)#int e3/0
R3(config-if)#mpls tra pass nbr 4.4.4.4
R3(config-if)#end
R3#wr
  
*Nov 18 11:27:53.269: %SYS-5-CONFIG_I: Configured from console by console
*Nov 18 11:28:01.253: RSVP: session [TBD]
  Incoming Path, I/F=Et0/0, Layer=IP
  IP   HDR: 1.1.1.1->6.6.6.6, TOS=0xC0, Len=236, TTL=254, RA=Y
  RSVP HDR: RRC=N, TTL=255, Len=212, Cksum=0x8E01
*Nov 18 11:28:01.293: RSVP: 1.1.1.1_166->6.6.6.6_100[Src] {7}:
  Outgoing Path, I/F=Et3/0, Layer=IP, NHOP=4.4.4.4, Prerouted=Y
  IP   HDR: 1.1.1.1->6.6.6.6, TOS=0xC0, Len=236, TTL=254, RA=Y
  RSVP HDR: RRC=N, TTL=254, Len=212, Cksum=0xC3CF
*Nov 18 11:28:01.381: RSVP: session [TBD]
  Incoming Resv, I/F=Et3/0, Layer=IP
  IP   HDR: 34.34.34.4->34.34.34.3, TOS=0xC0, Len=196, TTL=254, RA=N
  RSVP HDR: RRC=N, TTL=255, Len=176, Cksum=0x176C
*Nov 18 11:28:01.401: RSVP: session 6.6.6.6_100[1.1.1.1] (7):
  Outgoing Resv, I/F=Et0/0, Layer=IP, NHOP=13.13.13.1, Prerouted=N
  IP   HDR: 13.13.13.3->13.13.13.1, TOS=0xC0, Len=228, TTL=255, RA=N
  RSVP HDR: RRC=N, TTL=255, Len=208, Cksum=0x21AE
R3#

So we enabled debug ip rsvp messages on R3, which shows which all RSVP messages are coming and going out of the router. When we disabled "mpls traffic-eng passive-interface nbr-te-id 4.4.4.4" on the ASBR router R3, we noticed that we are getting incoming and outgoing path error messages. Since the next-hop router R4 with loopback ip is in AS200 and this AS doesn't has information regarding the same, it starts sending R1 a Path Error message. Once we enabled the same command on the interface connecting the AS200 i.e. interface E3/0, this is when we see that there is an incoming Resv message from the ip 34.34.34.4 which is AS200 and then the Resv message goes to R1, thus completing the LSP and this is when we can see the Inter-AS TE tunnel comes up. We can also debug the mpls TE path using the following debugs:

debug mpls traffic-eng path verify

debug mpls traffic-eng path lookup

debug mpls traffic-eng path spf

Lets now have a look at the output of these debugs:

Ouputs of the debugs when mpls traffic-eng passive-interface nbr-te-id command is not present:

*Nov 18 11:51:53.709: TE-PCALC-VERIFY: 1.1.1.1_184->6.6.6.6_100 {7}: LSP old accumulated_aw = 20, slsp old aw = 20, slsp_new_aw=10
*Nov 18 11:51:53.709: TE-PCALC-VERIFY: 1.1.1.1_184->6.6.6.6_100 {7}: LSP new accumulated_aw = 10
*Nov 18 11:51:53.709: TE-PCALC-VERIFY: VERIFY to 3.3.3.3 PASSED
*Nov 18 11:51:53.709: TE-PCALC-API: 1.1.1.1_184->6.6.6.6_100 {7}: P2P LSP Path Verify result: success
*Nov 18 11:52:03.721: TE-PCALC-API: 1.1.1.1_185->6.6.6.6_100 {7}: P2P LSP Path Lookup called
*Nov 18 11:52:03.721: TE-PCALC: 1.1.1.1_185->6.6.6.6_100 {7}: Path Request Info
*Nov 18 11:52:03.721:   Flags:  IP_EXPLICIT_PATH  METRIC_TE
*Nov 18 11:52:03.721:   IP explicit-path: Supplied
*Nov 18 11:52:03.721:     3.3.3.3 Loose
*Nov 18 11:52:03.721:     4.4.4.4 Loose
*Nov 18 11:52:03.721:     6.6.6.6 Loose
*Nov 18 11:52:03.721:   bw 0, min_bw 0, metric: 0
*Nov 18 11:52:03.721:   setup_pri 7, hold_pri 7
*Nov 18 11:52:03.721:   affinity_bits 0x0, affinity_mask 0xFFFF
*Nov 18 11:52:03.721: TE-PCALC-PATH: 1.1.1.1_185->6.6.6.6_100 {7}: Area (ospf 100  area 0) Path Lookup begin
*Nov 18 11:52:03.721: TE-PCALC-PATH: Area (ospf 100  area 0): Dest ip addr 6.6.6.6 not found      <<<<<<<<<<<<<<<<<<<<
*Nov 18 11:52:03.721: TE-PCALC-PATH: lsr_exists:first Loose Hop is to addr 3.3.3.3
*Nov 18 11:52:03.721: TE-PCALC-SPF: 1.1.1.1 aw 0 min_bw 18446744073709551615, prev_node(NULL)
*Nov 18 11:52:03.721: TE-PCALC-SPF: 1.1.1.1
*Nov 18 11:52:03.721: TE-PCALC-SPF: 13.13.13.3 aw 10 min_bw 7500, prev_node(1.1.1.1)
*Nov 18 11:52:03.721: TE-PCALC-SPF: rrr_pcalc_dump_tentitive list:
*Nov 18 11:52:03.721:   node(3)=(aw=10, min_bw=7500, hops=1)
*Nov 18 11:52:03.721: TE-PCALC-SPF: 13.13.13.3
*Nov 18 11:52:03.721: TE-PCALC-SPF: 3.3.3.3 aw 10 min_bw 7500, prev_node(13.13.13.3)
*Nov 18 11:52:03.721: TE-PCALC-SPF: rrr_pcalc_dump_tentitive list:
*Nov 18 11:52:03.721:   node(2)=(aw=10, min_bw=7500, hops=1)
*Nov 18 11:52:03.721: Path from 1.1.1.1 -> 3.3.3.3:
*Nov 18 11:52:03.721:   13.13.13.3->0.0.0.0 (admin_weight=10):
*Nov 18 11:52:03.721:   13.13.13.1->0.0.0.0 (admin_weight=10):
*Nov 18 11:52:03.721:   num_hops 3, accumlated_aw 10, min_bw 7500
*Nov 18 11:52:03.721: TE-PCALC: Verify Path Lookup: 1.1.1.1_185->6.6.6.6_100 {7}: (  area nil)
*Nov 18 11:52:03.721:   Flags:  METRIC_TE
*Nov 18 11:52:03.721:   Last Strict Router: 3.3.3.3
*Nov 18 11:52:03.721:   sub-lsp weight:0 (Total LSP weight:10)
*Nov 18 11:52:03.721:   Hop List:
*Nov 18 11:52:03.721:     13.13.13.1
*Nov 18 11:52:03.721:     13.13.13.3
*Nov 18 11:52:03.721:     3.3.3.3
*Nov 18 11:52:03.721:     4.4.4.4 Loose
*Nov 18 11:52:03.721:     6.6.6.6 Loose
*Nov 18 11:52:03.721: TE-PCALC-VERIFY: VERIFY to 3.3.3.3 BEGIN:
*Nov 18 11:52:03.721: TE-PCALC-VERIFY: Verify: 
TE-PCALC-VERIFY:  1.1.1.1, 13.13.13.1 points to 
TE-PCALC-VERIFY:  3.3.3.3, 13.13.13.3

If we see the above output, we see that R1 is unable to find destination ip address 6.6.6.6 in OSPF 100 area 0 during its lookup. Though the Hop list is available and we also see that the strict path is only till 3.3.3.3 but after that 4.4.4.4 and 6.6.6.6 are the loose hops. Lets now see the debug output on R1 when the "mpls traffic-eng passive-interface nbr-te-id" command is present on R3.

*Nov 18 11:52:03.721: TE-PCALC-VERIFY: 1.1.1.1_185->6.6.6.6_100 {7}: LSP old accumulated_aw = 10, slsp old aw = 0, slsp_new_aw=10
*Nov 18 11:52:03.721: TE-PCALC-VERIFY: 1.1.1.1_185->6.6.6.6_100 {7}: LSP new accumulated_aw = 20
*Nov 18 11:52:03.721: TE-PCALC-VERIFY: VERIFY to 3.3.3.3 PASSED
*Nov 18 11:52:03.721: TE-PCALC-PATH: 1.1.1.1_185->6.6.6.6_100 {7}: Area (ospf 100  area 0) Path Lookup end: path found
*Nov 18 11:52:03.721: TE-PCALC-API: 1.1.1.1_185->6.6.6.6_100 {7}: P2P LSP Path Lookup result: success
*Nov 18 11:52:03.721: TE-PCALC-API: 1.1.1.1_185->6.6.6.6_100 {7}: P2P LSP Path Verify called
*Nov 18 11:52:03.721: TE-PCALC-VERIFY: 1.1.1.1_185->6.6.6.6_100 {7}: verify_path: new spf generation: 6122
*Nov 18 11:52:03.721: TE-PCALC: Verify Path Periodic: 1.1.1.1_185->6.6.6.6_100 {7}: (ospf 100  area 0)
*Nov 18 11:52:03.721:   Flags:  METRIC_TE  IP_EXPLICIT_PATH
*Nov 18 11:52:03.721:   Last Strict Router: 3.3.3.3
*Nov 18 11:52:03.721:   sub-lsp weight:20 (Total LSP weight:20)
*Nov 18 11:52:03.721:   Hop List:
*Nov 18 11:52:03.721:     13.13.13.1
*Nov 18 11:52:03.721:     13.13.13.3
*Nov 18 11:52:03.721:     3.3.3.3
*Nov 18 11:52:03.721:     4.4.4.4 Loose
*Nov 18 11:52:03.721:     6.6.6.6 Loose
*Nov 18 11:52:03.721: TE-PCALC-VERIFY: VERIFY to 3.3.3.3 BEGIN:
*Nov 18 11:52:03.721: TE-PCALC-VERIFY: Verify: 
TE-PCALC-VERIFY:  1.1.1.1, 13.13.13.1 points to 
TE-PCALC-VERIFY:  3.3.3.3, 13.13.13.3
*Nov 18 11:52:03.721: TE-PCALC-VERIFY: 1.1.1.1_185->6.6.6.6_100 {7}: LSP old accumulated_aw = 20, slsp old aw = 20, slsp_new_aw=10
*Nov 18 11:52:03.721: TE-PCALC-VERIFY: 1.1.1.1_185->6.6.6.6_100 {7}: LSP new accumulated_aw = 10
*Nov 18 11:52:03.721: TE-PCALC-VERIFY: VERIFY to 3.3.3.3 PASSED
*Nov 18 11:52:03.721: TE-PCALC-API: 1.1.1.1_185->6.6.6.6_100 {7}: P2P LSP Path Verify result: success

*Nov 18 11:52:03.845: %LINEPROTO-5-UPDOWN: Line protocol on Interface Tunnel100, changed state to up

In the above logs we see that the during the path calculation the router was able to find the destination ip 6.6.6.6 . and the lookup also succeeded. Thats when the Inter-AS TE tunnel has come up.

Hope the above post has clarified on how Inter-AS MPLS TE works and how can we debug it. I will be further writing upon Inter-Area TE tunnels.

Please write to me in case of any queries.

Cheers..!!!

Comments (3) -

  • Tarique

    11/18/2012 6:17:33 PM |

    Dear Genie,

    This was a fabulous post.  Looking forward to your post on Inter-Area.  I believe the same fundamental principles apply except at the ABR we must just configure the router to maintain TE database for two areas in the case OSPF, correct?

    One doubt I had is though, as the tunnel is going across the ASBRs from one domain to the other, is bandwidth reserversation also reserverted across the AS link?  As per below debug output you pasted, I believe it stands true.

    *Nov 18 11:52:03.721: TE-PCALC-SPF: 3.3.3.3 aw 10 min_bw 7500, prev_node(13.13.13.3)*Nov 18 11:52:03.721: TE-PCALC-SPF: rrr_pcalc_dump_tentitive list:*Nov 18 11:52:03.721:   node(2)=(aw=10, min_bw=7500, hops=1)*Nov 18 11:52:03.721: Path from 1.1.1.1 -> 3.3.3.3:*Nov 18 11:52:03.721:   13.13.13.3->0.0.0.0 (admin_weight=10):*Nov 18 11:52:03.721:   13.13.13.1->0.0.0.0 (admin_weight=10):*Nov 18 11:52:03.721:   num_hops 3, accumlated_aw 10, min_bw 7500*Nov 18 11:52:03.721: TE-PCALC: Verify Path Lookup: 1.1.1.1_185->6.6.6.6_100 {7}: (  area nil)


    We see min_bw 7500.  That must be cause by default RSVP reserves 75% of interface bandwidth.  Your tunnel head end R1 did not specify the bandwidth of tunnel, so it reserves 75% by default.

    interface Tunnel100 ip unnumbered Loopback0 tunnel mode mpls traffic-eng tunnel destination 6.6.6.6 tunnel mpls traffic-eng autoroute announce tunnel mpls traffic-eng path-option 1 explicit name sonal tunnel mpls traffic-eng fast-reroute

    Is it true MPLS TE inter domain does not work with dynamic option?

    regards,
    Tarique

  • Tarique

    11/18/2012 6:23:30 PM |

    Dear Subscribers,

    Nice white paper I found on cisco website with visuals that give a nice basic theory on what Genie has posted.

    www.cisco.com/.../tech_brief09186a00801f0b2d.html

    hope its useful.

    regards,
    Tarique

  • Genie

    11/18/2012 6:26:24 PM |

    Hello Tarique,
    yes, Dynamic option will not function in Inter-Domain TE. The main reason behind is we need loose paths.

    R1#sh mpls tra tu tu100

    Name: R1_t100                             (Tunnel100) Destination: 6.6.6.6
      Status:
        Admin: up         Oper: down   Path: not valid   Signalling: Down
        path option 10, type dynamic

      Config Parameters:
        Bandwidth: 0        kbps (Global)  Priority: 7  7   Affinity: 0x0/0xFFFF
        Metric Type: TE (default)
        AutoRoute announce: enabled  LockDown: disabled Loadshare: 0        bw-based
        auto-bw: disabled

      Shortest Unconstrained Path Info:
        Path Weight: UNKNOWN
        Explicit Route:  UNKNOWN
      History:
        Tunnel:
          Time since created: 1 days, 18 minutes
          Time since path change: 30 seconds
          Number of LSP IDs (Tun_Instances) used: 188
        Prior LSP: [ID: 185]
          ID: path option 10 [188]
          Removal Trigger: configuration changed
          Last Error: CTRL:: Destination IP address, 6.6.6.6, not found
    R1#

    You can see the output in debugs as well:

    R1#debug mpls tra path ver    
    R1#debug mpls tra path verify
    MPLS traffic-eng path verify events debugging is on
    R1#conf t
    Enter configuration commands, one per line.  End with CNTL/Z.
    R1(config)#no
    *Nov 18 12:55:07.180: TE-PCALC-API: 1.1.1.1_191->6.6.6.6_100 {7}: P2P LSP Path Lookup called
    *Nov 18 12:55:07.180: TE-PCALC: 1.1.1.1_191->6.6.6.6_100 {7}: Path Request Info
    *Nov 18 12:55:07.180:   Flags:  METRIC_TE
    *Nov 18 12:55:07.180:   IP explicit-path: None (dynamic)
    *Nov 18 12:55:07.180:   bw 0, min_bw 0, metric: 0
    *Nov 18 12:55:07.180:   setup_pri 7, hold_pri 7
    *Nov 18 12:55:07.180:   affinity_bits 0x0, affinity_mask 0xFFFF
    *Nov 18 12:55:07.180: TE-PCALC-PATH: 1.1.1.1_191->6.6.6.6_100 {7}: Area (ospf 100  area 0) Path Lookup begin
    *Nov 18 12:55:07.180: TE-PCALC-PATH: Area (ospf 100  area 0): Dest ip addr 6.6.6.6 not found
    R1(config)#no logg
    *Nov 18 12:55:07.180: TE-PCALC-API: 1.1.1.1_191->6.6.6.6_100 {7}: P2P LSP Path Lookup result: failed
    R1(config)#

    It says path lookup failed. For rest of the questions,I believed you answered yourself.. Smile

Comments are closed