Re: MPLS TE VPN

From: Victor Cappuccio <vcappuccio_at_gmail.com>
Date: Wed, 26 Aug 2009 21:53:36 +0300

you can create an the unidirectional LSP Path based on the labels that
the rsvp reservations allocates by means of the original rsvp path,
PCAL% at the Head End, that is performed by the control plane of the
router when signalling the creation of it.

check out

R4 s0/0 --- >s0/1 R1 s0/0 --- s0/0 R2 s0/1 --- s0/0 R3 s0/1<--- s0/0 R5

note that R1 has also a direct connection to R2 via s0/1 on both routers.

R4/R5 are in VRF 45 on the PE Router R1 and R3 respectively

R1#show ip bgp vpnv4 all summ | b Neigh
Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd
3.3.3.3 4 123 44 46 21 0 0 00:38:38 2

here we can see that R1 is learning 2 prefixes from R3

R1#show ip bgp vpnv4 all | b Route
Route Distinguisher: 45:45 (default for vrf 45)
*> 4.4.4.4/32 10.1.14.4 2 32768 ?
*>i5.5.5.5/32 3.3.3.3 1 100 0 ?
*> 10.1.14.0/24 0.0.0.0 0 32768 ?
*>i10.1.35.0/24 3.3.3.3 0 100 0 ?

and we are announcing 2 to R3

on R1 we have

R1#show ip route vrf 45 | b Gateway
Gateway of last resort is not set

     4.0.0.0/32 is subnetted, 1 subnets
R 4.4.4.4 [120/1] via 10.1.14.4, 00:00:24, Serial0/1
     5.0.0.0/32 is subnetted, 1 subnets
B 5.5.5.5 [200/1] via 3.3.3.3, 00:05:24
     10.0.0.0/24 is subnetted, 2 subnets
C 10.1.14.0 is directly connected, Serial0/1
B 10.1.35.0 [200/0] via 3.3.3.3, 00:05:24

now on R1 we have the following configuration (mirror on R3)

R1#show run int tu 0
Building configuration...

Current configuration : 266 bytes
!
interface Tunnel0
 ip unnumbered Loopback0
 tunnel destination 3.3.3.3
 tunnel mode mpls traffic-eng
 tunnel mpls traffic-eng autoroute announce
 tunnel mpls traffic-eng path-option 1 explicit name R3
 tunnel mpls traffic-eng record-route
 no routing dynamic
end

if we look at the LFIB

R1#show mpls forwarding-table 3.3.3.3 detail
Local Outgoing Prefix Bytes tag Outgoing Next Hop
tag tag or VC or Tunnel Id switched interface
22 Pop tag 3.3.3.3/32 0 Tu0 point2point
        MAC/Encaps=4/8, MRU=1500, Tag Stack{17}, via Se0/0
        0F008847 00011000
        No output feature configured
    Per-packet load-sharing

so R1 says here when traffic is sent to 3.3.3.3 insert label 17

on R2#show mpls forwarding-table detail | b 17
17 Pop tag 1.1.1.1 0 [7] 137860 Se0/1 point2point
        MAC/Encaps=4/4, MRU=1504, Tag Stack{}
        0F008847
        No output feature configured
whateva is received with label 17 pop it = PopThe top label is
removed. The packet is forwarded with the remaining label stack or as
an unlabeled packet.

on R3 we get *Mar 1 01:14:57.315: MPLS: Se0/0: recvd: CoS=0,
TTL=253, Label(s)=18
so following the labels.
on R1
R1#show ip bgp vpnv4 all lab | in 5.5.5.5
   5.5.5.5/32 3.3.3.3 nolabel/18
everything that goes to 5.5.5.5 we have to use next hop 3.3.3.3 with
label 18 (assigned via MPBGP)

to reach R3
R1#show ip cef 3.3.3.3
3.3.3.3/32, version 53, epoch 0
0 packets, 0 bytes
  tag information set, shared
    local tag: 22
    fast tag rewrite with Tu0, point2point, tags imposed: {17}
  via 3.3.3.3, Tunnel0, 2 dependencies
    next hop 3.3.3.3, Tunnel0
    valid adjacency
    tag rewrite with Tu0, point2point, tags imposed: {17

we impose label 17

now the only thing R2 has to do is to swap / pop the labels
*Mar 1 01:16:54.783: MPLS: Se0/0: recvd: CoS=0, TTL=254, Label(s)=17/18
*Mar 1 01:16:54.783: MPLS: Se0/1: xmit: CoS=0, TTL=253, Label(s)=18

on R3 the packet arrives with label 18
R3#show mpls forwarding-table labels 18
Local Outgoing Prefix Bytes tag Outgoing Next Hop
tag tag or VC or Tunnel Id switched interface
18 Untagged 5.5.5.5/32[V] 632040 Se0/1 point2point

and is sent across the interface that is configured inside the VRF

so R4 follows the following path

R4#traceroute 5.5.5.5

Type escape sequence to abort.
Tracing the route to 5.5.5.5

  1 10.1.14.1 12 msec 112 msec 24 msec
  2 10.1.12.2 140 msec 72 msec 92 msec
  3 10.1.35.3 40 msec 88 msec 76 msec
  4 10.1.35.5 120 msec * 104 msec
R4#

that was defined in the explicit LSP

R1#show ip explicit-paths
PATH R3 (strict source route, path complete, generation 15)
    1: next-address 10.1.12.2
    2: next-address 10.1.23.3

-------------------

R1#show ip explicit-paths
PATH R3 (strict source route, path complete, generation 15)
    1: next-address 10.1.12.2
    2: next-address 10.1.23.3

R1#show mpls inter
Interface IP Tunnel Operational
Serial0/0 No Yes No
Serial0/2 No Yes Yes
Tunnel0 No No Yes
R1#show ip vrf inter
Interface IP-Address VRF Protocol
Se0/1 10.1.14.1 45 up
R1#show ip proto summ
Index Process Name
0 connected
1 static
2 isis
3 rip
4 bgp 123

1#show mpls tra tu brief
Signalling Summary:
    LSP Tunnels Process: running
    RSVP Process: running
    Forwarding: enabled
    Periodic reoptimization: every 3600 seconds, next in 2244 seconds
    Periodic auto-bw collection: disabled
TUNNEL NAME DESTINATION UP IF DOWN IF STATE/PROT
R1_t0 3.3.3.3 - Se0/0 up/up
R3_t0 1.1.1.1 Se0/0 - up/up
Displayed 1 (of 1) heads, 0 (of 0) midpoints, 1 (of 1) tails

---------

R2#show mpls inter
Interface IP Tunnel Operational
Serial0/0 No Yes Yes
Serial0/1 No Yes Yes
R2#show ip proto summ
Index Process Name
0 connected
1 static
2 isis
R2#show mpls tra tu bri
Signalling Summary:
    LSP Tunnels Process: running
    RSVP Process: running
    Forwarding: enabled
    Periodic reoptimization: every 3600 seconds, next in 3305 seconds
    Periodic auto-bw collection: disabled
TUNNEL NAME DESTINATION UP IF DOWN IF STATE/PROT
R1_t0 3.3.3.3 Se0/0 Se0/1 up/up
R3_t0 1.1.1.1 Se0/1 Se0/0 up/up
Displayed 0 (of 0) heads, 2 (of 2) midpoints, 0 (of 0) tails

------

R3#
R3#show mpls inter
Interface IP Tunnel Operational
Serial0/0 No Yes Yes
Serial0/2 No Yes Yes
Tunnel0 No No Yes

R3#show mpls tra tu

Name: R3_t0 (Tunnel0) Destination: 1.1.1.1
  Status:
    Admin: up Oper: up Path: valid Signalling: connected

    path option 1, type explicit R1 (Basis for Setup, path weight 20)
    path option 2, type dynamic

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

  InLabel : -
  OutLabel : Serial0/0, 16
  RSVP Signalling Info:
       Src 3.3.3.3, Dst 1.1.1.1, Tun_Id 0, Tun_Instance 45
    RSVP Path Info:
      My Address: 3.3.3.3
      Explicit Route: 10.1.23.2 10.1.12.1 1.1.1.1
      Record Route:
      Tspec: ave rate=0 kbits, burst=1000 bytes, peak rate=0 kbits
    RSVP Resv Info:
      Record Route: 10.1.23.2 10.1.12.1
      Fspec: ave rate=0 kbits, burst=1000 bytes, peak rate=0 kbits
  History:
    Tunnel:
      Time since created: 58 minutes, 15 seconds
      Time since path change: 26 minutes, 32 seconds
    Current LSP:
      Uptime: 26 minutes, 32 seconds
    Prior LSP:
      ID: path option 1 [42]
      Removal Trigger: configuration changed

LSP Tunnel R1_t0 is signalled, connection is up
  InLabel : Serial0/0, implicit-null
  OutLabel : -
  RSVP Signalling Info:
       Src 1.1.1.1, Dst 3.3.3.3, Tun_Id 0, Tun_Instance 7
    RSVP Path Info:
      My Address: 3.3.3.3
      Explicit Route: NONE
      Record Route: 10.1.23.2 10.1.12.1
      Tspec: ave rate=0 kbits, burst=1000 bytes, peak rate=0 kbits
    RSVP Resv Info:
      Record Route:
      Fspec: ave rate=0 kbits, burst=1000 bytes, peak rate=0 kbits
R3#
R3#
R3#show ip proto sum
Index Process Name
0 connected
1 static
2 isis
3 rip
4 bgp 123

and just in case, let test the second option

 R1#show clns neighbors

System Id Interface SNPA State Holdtime Type Protocol
R2 Se0/0 *HDLC* Up 124 IS ES-IS
R3 Se0/2 *HDLC* Up 22 L2 IS-IS
R1#
R1#conf ter
Enter configuration commands, one per line. End with CNTL/Z.
R1(config)#int s0/0
R1(config-if)#sh
R1(config-if)#exit
R1(config)#
*Mar 1 01:28:53.075: %LINK-5-CHANGED: Interface Serial0/0, changed
state to administratively down
*Mar 1 01:28:54.075: %LINEPROTO-5-UPDOWN: Line protocol on Interface
Serial0/0, changed state to down
R1(config)#
R1(config)#do show mpls tra tu | in path option| record
    path option 2, type dynamic (Basis for Setup, path weight 10)
    path option 1, type explicit R3
      ID: path option 1 [7]

R4#traceroute 5.5.5.5

Type escape sequence to abort.
Tracing the route to 5.5.5.5

  1 10.1.14.1 108 msec 44 msec 24 msec
  2 10.1.35.3 64 msec 36 msec 56 msec
  3 10.1.35.5 92 msec * 112 msec

-

R1#show mpls forwarding-table 3.3.3.3
Local Outgoing Prefix Bytes tag Outgoing Next Hop
tag tag or VC or Tunnel Id switched interface
22 Pop tag [T] 3.3.3.3/32 0 Tu0 point2point

[T] Forwarding through a TSP tunnel.
        View additional tagging info with the 'detail' option
R1#show ip route 3.3.3.3
Routing entry for 3.3.3.3/32
  Known via "isis", distance 115, metric 10, type level-2
  Redistributing via isis
  Last update from 3.3.3.3 on Tunnel0, 00:03:02 ago
  Routing Descriptor Blocks:
  * 3.3.3.3, from 3.3.3.3, via Tunnel0
      Route metric is 10, traffic share count is 1

R1#show mpls forwarding-table 3.3.3.3 det
Local Outgoing Prefix Bytes tag Outgoing Next Hop
tag tag or VC or Tunnel Id switched interface
22 Pop tag 3.3.3.3/32 0 Tu0 point2point
        MAC/Encaps=4/4, MRU=1504, Tag Stack{}, via Se0/2
        0F008847
        No output feature configured
    Per-packet load-sharing
R1#

R1#show ip cef 3.3.3.3
3.3.3.3/32, version 63, epoch 0
0 packets, 0 bytes
  tag information set
    local tag: 22
    fast tag rewrite with Tu0, point2point, tags imposed: {}
  via 3.3.3.3, Tunnel0, 2 dependencies
    next hop 3.3.3.3, Tunnel0
    valid adjacency
    tag rewrite with Tu0, point2point, tags imposed: {}
R1#show ip bgp vpnv4 all lab | in 5.5.5.5
   5.5.5.5/32 3.3.3.3 nolabel/18

 R1#1
[Resuming connection 1 to 4.4.4.4 ... ]

R4#ping 5.5.5.5 rep 23

Type escape sequence to abort.
Sending 23, 100-byte ICMP Echos to 5.5.5.5, timeout is 2 seconds:
!!!!!!!!!!!!!!!!!!!
*Mar 1 01:32:52.415: MPLS: Se0/2: recvd: CoS=0, TTL=254, Label(s)=20
*Mar 1 01:32:52.535: MPLS: Se0/2: recvd: CoS=0, TTL=254, Label(s)=20
*Mar 1 01:32:52.583: MPLS: Se0/2: recvd: CoS=0, TTL=254, Label(s)=20
*Mar 1 01:32:52.667: MPLS: Se0/2: recvd: CoS=0, TTL=254, Label(s)=20
*Mar 1 01:32:52.731: MPLS: Se0/2: recvd: CoS=0, TTL=254, Label(s)=20
*Mar 1 01:32:52.759: MPLS: Se0/2: recvd: CoS=0, TTL=254, Label(s)=20
*Mar 1 01:32:52.851: MPLS: Se0/2: recvd: CoS=0, TTL=254, Label(s)=20
*Mar 1 01:32:52.915: MPLS: Se0/2: recvd: CoS=0, TTL=254, Label(s)=20
*Mar 1 01:32:53.055: MPLS: Se0/2: recvd: CoS=0, TTL=254, Label(s)=20
*Mar 1 01:32:53.103: MPLS: Se0/2: recvd: CoS=0, TTL=254, Label(s)=20
*Mar 1 01:32:53.131: MPLS: Se0/2: recvd: CoS=0, TTL=254, Label(s)=20
*Mar 1 01:32:53.211: MPLS: Se0/2: recvd: CoS=0, TTL=254, Label(s)=20
*Mar 1 01:32:53.327: MPLS: Se0/2: recvd: CoS=0, TTL=254, Label(s)=20
*Mar 1 01:32:53.447: MPLS: Se0/2: recvd: CoS=0, TTL=254, Label(s)=20
*Ma!!!!
Success rate is 100 percent (23/23), round-trip min/avg/max = 16/73/152 ms
R4#
R1#r 1 01:32:53.511: MPLS: Se0/2: recvd: CoS=0, TTL=254, Label(s)=20
*Mar 1 01:32:53.575: MPLS: Se0/2: recvd: CoS=0, TTL=254, Label(s)=20
*Mar 1 01:32:53.619: MPLS: Se0/2: recvd: CoS=0, TTL=254, Label(s)=20
*Mar 1 01:32:53.667: MPLS: Se0/2: recvd: CoS=0, TTL=254, Label(s)=20
*Mar 1 01:32:53.683: MPLS: Se0/2: recvd: CoS=0, TTL=254, Label(s)=20
*Mar 1 01:32:53.791: MPLS: Se0/2: recvd: CoS=0, TTL=254, Label(s)=20
*Mar 1 01:32:53.851: MPLS: Se0/2: recvd: CoS=0, TTL=254, Label(s)=20
*Mar 1 01:32:53.947: MPLS: Se0/2: recvd: CoS=0, TTL=254, Label(s)=20
*Mar 1 01:32:54.075: MPLS: Se0/2: recvd: CoS=0, TTL=254, Label(s)=20
R1#3
[Resuming connection 3 to 3.3.3.3 ... ]

R3#show logg
Syslog logging: enabled (11 messages dropped, 1 messages rate-limited,
                0 flushes, 0 overruns, xml disabled, filtering disabled)
    Console logging: level debugging, 1187 messages logged, xml disabled,
                     filtering disabled
    Monitor logging: level debugging, 131 messages logged, xml disabled,
                     filtering disabled
        Logging to: vty66(131)
    Buffer logging: level debugging, 47 messages logged, xml disabled,
                    filtering disabled
    Logging Exception size (4096 bytes)
    Count and timestamp logging messages: disabled

No active filter modules.

    Trap logging: level informational, 100 message lines logged

Log Buffer (4096 bytes):

*Mar 1 01:32:47.335: %SYS-5-CONFIG_I: Configured from console by vty0 (1.1.1.1)
*Mar 1 01:32:51.723: MPLS: Se0/2: recvd: CoS=0, TTL=254, Label(s)=18

Enjoy!!

Victor Cappuccio
CCIE R/S# 20657
CCSI# 30452
www.anetworkerblog.com
www.linkedin.com/in/vcappuccio

On Wed, Aug 26, 2009 at 2:01 AM, Jian Gu<guxiaojian_at_gmail.com> wrote:
> How would that work? tunnel1 is an interface is not a vrf interface.
>
> To solve original problem, you can configure IBGP to peer with
> different loopback address, have TE tunnel to one loopback, but to LDP
> (or TE tunnel with dynamic path) to reach the other loopback.
>
> On Tue, Aug 25, 2009 at 2:32 PM, Amr Masoud<amr.eng_at_gmail.com> wrote:
>> Hi,
>>
>> My reply seems too late :) . but I have been attracted by this topic :D
>>
>> I think this is doable via Policy Based Routing on the Head PE. we can
>> simply match all traffic of a specific customer (by applying the PBR on the
>> Customer's incoming interface) and set the outgoing interface as the
>> required TE tunnel.
>>
>> Suppose this Customer is A, Head PE is PE1, required TE is tunnel 1, then:
>>
>> *@PE1*
>> interface giga 0/0.1
>> ip vrf forwarding A
>> ip address 10.10.10.10 255.255.255.252
>> ip policy route-map A-THROUGH-TE1
>>
>> route-map A-THROUGH-TE1
>> set interface tunnel 1
>>
>>
>> I haven't test it yet, but I believe that will work. However, I will test it
>> soon and feedback you :)
>>
>> Regards,
>> Amr Ahmed
>>
>>
>> Blogs and organic groups at http://www.ccie.net
>>
>> _______________________________________________________________________
>> Subscription information may be found at:
>> http://www.groupstudy.com/list/CCIELab.html
>
>
> Blogs and organic groups at http://www.ccie.net
>
> _______________________________________________________________________
> Subscription information may be found at:
> http://www.groupstudy.com/list/CCIELab.html

Blogs and organic groups at http://www.ccie.net
Received on Wed Aug 26 2009 - 21:53:36 ART

This archive was generated by hypermail 2.2.0 : Tue Sep 01 2009 - 05:43:57 ART