Dears ,
Adding to my previous lab
Here is Another Lab of my practical studies while my journey to the CCIE SP v4
Lab information
- OSPF as PE-CE
- Replacing LDP with RSVP TE at isis core
- MPLS TE tunnel with Affinity bit
- MPLS RSVP TE with FRR link protection
- OSPF as PE-CE
CE1 and CE2 are customers taking l3vpn service from SP.
They are connected via ospf.
PE1 , generate VPN labels for prefixes at vrf of CE1 and inform PE2 with them via MP-BGP
PE1#show mpls forwarding-table vrf ABC
Local Outgoing Prefix Bytes Label Outgoing Next Hop
Label Label or Tunnel Id Switched interface
16 No Label 172.1.1.1/32[V] 16296 Gi3/0 172.1.11.1
17 No Label 172.1.11.0/24[V] 0 aggregate/ABC
18 Pop Label 172.11.11.11/32[V] \
0 aggregate/ABC
|
PE2#show bgp vpnv4 unicast vrf ABC 172.1.1.1
BGP routing table entry for 1:1:172.1.1.1/32, version 14
Paths: (1 available, best #1, table ABC)
Not advertised to any peer
Refresh Epoch 1
Local
11.11.11.11 (metric 40) from 11.11.11.11 (11.11.11.11)
Origin incomplete, metric 2, localpref 100, valid, internal, best
Extended Community: RT:1:1 OSPF DOMAIN ID:0x0005:0x000000010200
OSPF RT:0.0.0.0:2:0 OSPF ROUTER ID:172.11.11.11:0
mpls labels in/out nolabel/16
rx pathid: 0, tx pathid: 0x0
|
The above highlighted OSPF RT:0.0.0.0:2:0 is ospf Route Type not Route target
16 is the vpn label of 172.1.1.1 (loopback of CE)
CE2#traceroute 172.1.1.1
Type escape sequence to abort.
Tracing the route to 172.11.11.11
VRF info: (vrf in name/id, vrf out name/id)
1 172.2.22.22 80 msec 56 msec 52 msec
2 10.1.22.1 [MPLS: Labels 19/16 Exp 0] 124 msec 124 msec 104 msec
3 10.1.2.2 [MPLS: Labels 18/16 Exp 0] 104 msec 100 msec 84 msec
4 172.11.11.11 100 msec 76 msec 104 msec
RSVP TE can replace the function of LDP at core , by creating Full mesh LSPs between PEs.
And each tail-end PE will send the label back to the head-end if the conditions of creating this LSP is ok like B.W.
Globally on all routers at core
mpls traffic-eng tunnels
|
Enable TE at level-2 and adjust metric style of isis
This will be done on all routers.
router isis
mpls traffic-eng router-id Loopback0
metric-style wide
mpls traffic-eng level-2
|
Enable traffic eng. Tunnels at all interfaces that the tunnel will passed by
interface gigabitethernet
mpls traffic-eng tunnels
|
Configure RSVP on interfaces
interface GigabitEthernet
ip rsvp bandwidth 20000 2000
|
20000 (20M) >> this first value is the resevrable bandwidth for tunnel
2000 (2M ) >> the per flow reservable bandwidth
PE2#show ip rsvp interface
interface rsvp allocated i/f max flow max sub max VRF
Gi2/0 ena 0 20M 2M 0
Creation of tunnel interface at headend
interface tunnel1
ip unnumbered Loopback0
tunnel destination 11.11.11.11
tunnel mode mpls traffic-eng
tunnel mpls traffic-eng bandwidth 20000
|
If we forget to specify the path option
PE2#show mpls traffic-eng tunnels
P2P TUNNELS/LSPs:
Name: PE2_t1 (Tunnel1) Destination: 11.11.11.11
Status:
Admin: up Oper: down Path: not valid Signalling: Down
no path options defined
Config Parameters:
Bandwidth: 20000 kbps (Global) Priority: 7 7 Affinity: 0x0/0xFFFF
Metric Type: TE (default)
AutoRoute: disabled LockDown: disabled Loadshare: 20000 [0] bw-based
auto-bw: disabled
History:
Tunnel:
Time since created: 1 minutes, 46 seconds
Number of LSP IDs (Tun_Instances) used: 0
After configuring the path option
PE2#show mpls traffic-eng tunnels
P2P TUNNELS/LSPs:
Name: PE2_t1 (Tunnel1) Destination: 11.11.11.11
Status:
Admin: up Oper: down Path: not valid Signalling: Down
path option 1, type explicit tunnel1-path
Config Parameters:
Bandwidth: 20000 kbps (Global) Priority: 7 7 Affinity: 0x0/0xFFFF
Metric Type: TE (default)
AutoRoute: enabled LockDown: disabled Loadshare: 20000 [0] bw-based
auto-bw: disabled
History:
Tunnel:
Time since created: 34 minutes, 14 seconds
Time since path change: 4 minutes, 37 seconds
Number of LSP IDs (Tun_Instances) used: 73
Prior LSP: [ID: 58]
ID: path option 1 [73]
Removal Trigger: path verification failed
Last Error: CTRL:: Explicit path has unknown address, 10.1.2.2
What if we forget to configure at isis or ospf [ mpls traffic-eng router-id Loopback0 ]
Here I made it at P2
The signalling of the tunnel will be down because the headend has no complete info about the topology ,
and we can know the place of the problem.
Explicit path has unknown address, 10.1.2.2
PE2#show mpls traffic-eng tunnels
P2P TUNNELS/LSPs:
Name: PE2_t1 (Tunnel1) Destination: 11.11.11.11
Status:
Admin: up Oper: down Path: not valid Signalling: Down
path option 1, type explicit tunnel1-path
Config Parameters:
Bandwidth: 20000 kbps (Global) Priority: 7 7 Affinity: 0x0/0xFFFF
Metric Type: TE (default)
AutoRoute: enabled LockDown: disabled Loadshare: 20000 [0] bw-based
auto-bw: disabled
History:
Tunnel:
Time since created: 34 minutes, 14 seconds
Time since path change: 4 minutes, 37 seconds
Number of LSP IDs (Tun_Instances) used: 73
Prior LSP: [ID: 58]
ID: path option 1 [73]
Removal Trigger: path verification failed
Last Error: CTRL:: Explicit path has unknown address, 10.1.2.2
Now the tunnel between PE2 and PE1 is established but what is the label of this tunnel ?
As we can see that the pop (implicit-null) will occur at PHP which is here P2
PE2#show mpls traffic-eng tunnels tunnel 1 | in Label
InLabel : -
OutLabel : GigabitEthernet2/0, 29
PE2#traceroute 11.11.11.11
Type escape sequence to abort.
Tracing the route to 11.11.11.11
VRF info: (vrf in name/id, vrf out name/id)
1 10.1.22.1 [MPLS: Label 29 Exp 0] 92 msec 104 msec 108 msec
2 10.1.3.3 [MPLS: Label 16 Exp 0] 104 msec 136 msec 104 msec
3 10.2.3.2 [MPLS: Label 19 Exp 0] 80 msec 108 msec 100 msec
4 10.2.11.11 108 msec 76 msec 116 msec
CE2#traceroute 172.1.1.1
Type escape sequence to abort.
Tracing the route to 172.1.1.1
VRF info: (vrf in name/id, vrf out name/id)
1 172.2.22.22 52 msec 52 msec 56 msec
2 10.1.22.1 [MPLS: Labels 29/16 Exp 0] 168 msec 124 msec 128 msec
3 10.1.3.3 [MPLS: Labels 16/16 Exp 0] 168 msec 128 msec 128 msec
4 10.2.3.2 [MPLS: Labels 19/16 Exp 0] 124 msec 104 msec 124 msec
5 172.1.11.11 [MPLS: Label 16 Exp 0] 132 msec 100 msec 104 msec
6 172.1.11.1 124 msec 128 msec 128 msec
Till Now I make one TE tunnel from PE2 to PE1 (unidirectional)
Now I tried to ping from CE2 to CE1 loopback0 but I can't ping
CE2#ping 172.1.1.1 source lo0
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 172.1.1.1, timeout is 2 seconds:
Packet sent with a source address of 172.2.2.2
.....
Success rate is 0 percent (0/5)
What is the solution ?
To debug icmp packets at CE1 to see if it is reached to it or not.
CE1#debug ip icmp
ICMP packet debugging is on
CE1#
*Dec 4 22:18:12.982: ICMP: echo reply sent, src 172.1.1.1, dst 172.2.2.2, topology BASE, dscp 0 topoid 0
CE1#
*Dec 4 22:18:15.546: ICMP: echo reply sent, src 172.1.1.1, dst 172.2.2.2, topology BASE, dscp 0 topoid 0
CE1#
*Dec 4 22:18:18.222: ICMP: echo reply sent, src 172.1.1.1, dst 172.2.2.2, topology BASE, dscp 0 topoid 0
CE1#
*Dec 4 22:18:20.982: ICMP: echo reply sent, src 172.1.1.1, dst 172.2.2.2, topology BASE, dscp 0 topoid 0
CE1#
*Dec 4 22:18:22.966: ICMP: echo reply sent, src 172.1.1.1, dst 172.2.2.2, topology BASE, dscp 0 topoid 0
From the debug it declares that CE1 sent the ECHO message to PE1
But PE1 has no back route.
Because I made one uni directional TE tunnel
Now I will make another TE tunnel and try to ping from customer.
I tried it and the ping is ok.
Till now I configured Tunnel1 from PE2 to PE1 to follow the IGP lowest metric by making path-option dynamic.
But now I want put another condition , which it is selection os specific links by using of Affinity bit.
PE2 - P1 - P3 -P2 - PE1
we must use path-option 1 dynamic it is a mandatory.
At PE2 (headend) tunnel interface
===============================
interface Tunnel1
ip unnumbered Loopback0
tunnel mode mpls traffic-eng
tunnel destination 11.11.11.11
tunnel mpls traffic-eng autoroute announce
tunnel mpls traffic-eng priority 7 7
tunnel mpls traffic-eng bandwidth 20000
tunnel mpls traffic-eng affinity 0x1 mask 0xFFFF
tunnel mpls traffic-eng path-option 1 dynamic
end
--------------------------------------------------------------------------
At PE2 (headend) outgoing interface
===============================
interface GigabitEthernet2/0
ip address 10.1.22.22 255.255.255.0
ip router isis
negotiation auto
mpls traffic-eng tunnels
mpls traffic-eng attribute-flags 0x1
isis network point-to-point
ip rsvp bandwidth 20000 2000
end
Path-option dynamic : it follows the IGP
Where to configure the affinity bits ?
- In the downlink ( egress port ) at each node in the path as show below
- No need to configure affinity at tail-end router PE1
- Sample of configuration needed at transit node P1interface GigabitEthernet3/0ip address 10.1.3.1 255.255.255.0ip router isisshutdownnegotiation autompls traffic-eng tunnelsmpls traffic-eng backup-path Tunnel0mpls traffic-eng attribute-flags 0x1isis network point-to-pointip rsvp bandwidth 20000 2000What if we remove the path option 1 dynamic from PE2 ?The tunnel will go down as shown below however we are configuring the affinity.And that's confirmed that path-option dynamic is mandatoryPE2(config)#interface Tunnel1PE2(config-if)# ip unnumbered Loopback0PE2(config-if)# tunnel mode mpls traffic-engPE2(config-if)# tunnel destination 11.11.11.11PE2(config-if)# tunnel mpls traffic-eng autoroute announcePE2(config-if)# tunnel mpls traffic-eng priority 7 7PE2(config-if)# tunnel mpls traffic-eng bandwidth 20000PE2(config-if)# tunnel mpls traffic-eng affinity 0x1 mask 0xFFFFPE2(config-if)#no tunnel mpls traffic-eng path-option 1 dynamic*Dec 5 00:14:27.429: %LINEPROTO-5-UPDOWN: Line protocol on Interface Tunnel1, changed state to downHow to confirm the path is following the path marked with the affinity bits I configured ?The output of the belowyellow highlighted will show us the explicit path that the tunnel is following [Constrained based routing]Blue highlighted will show us the explicit path that the tunnel will follow if we didn't use affinity [un Constrained based routing].PE2#show mpls traffic-eng tunnels tunnel 1Name: PE2_t1 (Tunnel1) Destination: 11.11.11.11Status:Admin: up Oper: up Path: valid Signalling: connectedpath option 1, type dynamic (Basis for Setup, path weight 40)Config Parameters:Bandwidth: 20000 kbps (Global) Priority: 7 7 Affinity: 0x1/0xFFFFMetric Type: TE (default)AutoRoute: enabled LockDown: disabled Loadshare: 20000 [100000] bw-basedauto-bw: disabledActive Path Option Parameters:State: dynamic path option 1 is activeBandwidthOverride: disabled LockDown: disabled Verbatim: disabledInLabel : -OutLabel : GigabitEthernet2/0, 16Next Hop : 10.1.22.1RSVP Signalling Info:Src 22.22.22.22, Dst 11.11.11.11, Tun_Id 1, Tun_Instance 155RSVP Path Info:My Address: 10.1.22.22Explicit Route: 10.1.22.1 10.1.3.3 10.2.3.2 10.2.11.1111.11.11.11Record Route: NONETspec: ave rate=20000 kbits, burst=1000 bytes, peak rate=20000 kbitsRSVP Resv Info:Record Route: NONEFspec: ave rate=20000 kbits, burst=1000 bytes, peak rate=20000 kbitsShortest Unconstrained Path Info:Path Weight: 30 (TE)Explicit Route: 10.1.22.1 10.1.2.2 10.2.11.11 11.11.11.11History:Tunnel:Time since created: 2 hours, 35 minutesTime since path change: 52 secondsNumber of LSP IDs (Tun_Instances) used: 155Current LSP: [ID: 155]Uptime: 52 secondsPrior LSP: [ID: 154]ID: path option unknownRemoval Trigger: configuration changedHow to check the state of all the tunnels however it is configured on the router or not ?We can check the status on the transit routers as for e.g. on P1 hereP1#show mpls traffic-eng tunnels briefSignalling Summary:LSP Tunnels Process: runningPassive LSP Listener: runningRSVP Process: runningForwarding: enabledPeriodic reoptimization: every 3600 seconds, next in 847 secondsPeriodic FRR Promotion: Not RunningPeriodic auto-bw collection: every 300 seconds, next in 247 secondsP2P TUNNELS/LSPs:TUNNEL NAME DESTINATION UP IF DOWN IF STATE/PROTPE1_t1 22.22.22.22 Gi1/0 Gi2/0 up/upPE2_t1 11.11.11.11 Gi2/0 Gi3/0 up/upDisplayed 0 (of 0) heads, 2 (of 2) midpoints, 0 (of 0) tailsHow from one node to see all the affinities configured in the topology ?the output declares all the affinities configured on all up interfaces on routers in the topologyPE2#show mpls traffic-eng topology briefMy_System_id: 0000.0000.0022.00 (isis level-2)Signalling error holddown: 10 sec Global Link Generation 119IGP Id: 0000.0000.0001.00, MPLS TE Id:1.1.1.1 Router Node (isis level-2)link[0]: Point-to-Point, Nbr IGP Id: 0000.0000.0003.00, nbr_node_id:4, gen:117frag_id: 0, Intf Address: 10.1.3.1, Nbr Intf Address: 10.1.3.3TE metric: 10, IGP metric: 10, attribute flags: 0x1SRLGs: Nonelink[1]: Point-to-Point, Nbr IGP Id: 0000.0000.0004.00, nbr_node_id:6, gen:117frag_id: 0, Intf Address: 10.1.4.1, Nbr Intf Address: 10.1.4.4TE metric: 10, IGP metric: 10, attribute flags: 0x0SRLGs: Nonelink[2]: Point-to-Point, Nbr IGP Id: 0000.0000.0022.00, nbr_node_id:3, gen:117frag_id: 0, Intf Address: 10.1.22.1, Nbr Intf Address: 10.1.22.22TE metric: 10, IGP metric: 10, attribute flags: 0x0SRLGs: NoneIGP Id: 0000.0000.0002.00, MPLS TE Id:2.2.2.2 Router Node (isis level-2)link[0]: Point-to-Point, Nbr IGP Id: 0000.0000.0003.00, nbr_node_id:4, gen:113frag_id: 0, Intf Address: 10.2.3.2, Nbr Intf Address: 10.2.3.3TE metric: 10, IGP metric: 10, attribute flags: 0x0SRLGs: Nonelink[1]: Point-to-Point, Nbr IGP Id: 0000.0000.0004.00, nbr_node_id:6, gen:113frag_id: 0, Intf Address: 10.2.4.2, Nbr Intf Address: 10.2.4.4TE metric: 10, IGP metric: 10, attribute flags: 0x0SRLGs: Nonelink[2]: Point-to-Point, Nbr IGP Id: 0000.0000.0011.00, nbr_node_id:5, gen:113frag_id: 0, Intf Address: 10.2.11.2, Nbr Intf Address: 10.2.11.11TE metric: 10, IGP metric: 10, attribute flags: 0x1SRLGs: NoneIGP Id: 0000.0000.0003.00, MPLS TE Id:3.3.3.3 Router Node (isis level-2)link[0]: Point-to-Point, Nbr IGP Id: 0000.0000.0001.00, nbr_node_id:1, gen:119frag_id: 0, Intf Address: 10.1.3.3, Nbr Intf Address: 10.1.3.1TE metric: 10, IGP metric: 10, attribute flags: 0x0SRLGs: Nonelink[1]: Point-to-Point, Nbr IGP Id: 0000.0000.0002.00, nbr_node_id:2, gen:119frag_id: 0, Intf Address: 10.2.3.3, Nbr Intf Address: 10.2.3.2TE metric: 10, IGP metric: 10, attribute flags: 0x1SRLGs: NoneIGP Id: 0000.0000.0004.00, MPLS TE Id:4.4.4.4 Router Node (isis level-2)link[0]: Point-to-Point, Nbr IGP Id: 0000.0000.0001.00, nbr_node_id:1, gen:52frag_id: 0, Intf Address: 10.1.4.4, Nbr Intf Address: 10.1.4.1TE metric: 10, IGP metric: 10, attribute flags: 0x0SRLGs: Nonelink[1]: Point-to-Point, Nbr IGP Id: 0000.0000.0002.00, nbr_node_id:2, gen:52frag_id: 0, Intf Address: 10.2.4.4, Nbr Intf Address: 10.2.4.2TE metric: 10, IGP metric: 10, attribute flags: 0x0SRLGs: Nonelink[2]: Point-to-Point, Nbr IGP Id: 0000.0000.0011.00, nbr_node_id:5, gen:52frag_id: 0, Intf Address: 10.4.11.4, Nbr Intf Address: 10.4.11.11TE metric: 10, IGP metric: 10, attribute flags: 0x0SRLGs: NoneIGP Id: 0000.0000.0011.00, MPLS TE Id:11.11.11.11 Router Node (isis level-2)link[0]: Point-to-Point, Nbr IGP Id: 0000.0000.0002.00, nbr_node_id:2, gen:38frag_id: 0, Intf Address: 10.2.11.11, Nbr Intf Address: 10.2.11.2TE metric: 10, IGP metric: 10, attribute flags: 0x0SRLGs: NoneIGP Id: 0000.0000.0022.00, MPLS TE Id:22.22.22.22 Router Node (isis level-2)link[0]: Point-to-Point, Nbr IGP Id: 0000.0000.0001.00, nbr_node_id:1, gen:112frag_id: 0, Intf Address: 10.1.22.22, Nbr Intf Address: 10.1.22.1TE metric: 10, IGP metric: 10, attribute flags: 0x1SRLGs: NoneHow many attribute flag we should see at toplogy related to tunnel1 at PE2 ?We should see 4 only as seen below.PE2#show mpls traffic-eng topology brief | include 0x1TE metric: 10, IGP metric: 10, attribute flags: 0x1TE metric: 10, IGP metric: 10, attribute flags: 0x1TE metric: 10, IGP metric: 10, attribute flags: 0x1TE metric: 10, IGP metric: 10, attribute flags: 0x1
Now I have a tunnel from PE2 to PE1 passing by P1 , P3 and P2And I want to protect the link between P1 & P3.When interface g3/0 went down , the main tunnel will use the backup tunnelPE1 - P1 - P2 - PE1When interface g3/0 came up , it will return immediately in ~50msec to the path PE1-P1-P3-P2-PE1What is the extra configuration needed? - Configure PE2 tunnel to support FRR
interface Tunnel1
ip unnumbered Loopback0
tunnel mode mpls traffic-eng
tunnel destination 11.11.11.11
tunnel mpls traffic-eng autoroute announce
tunnel mpls traffic-eng priority 7 7
tunnel mpls traffic-eng bandwidth 20000
tunnel mpls traffic-eng affinity 0x1 mask 0xFFFF
tunnel mpls traffic-eng path-option 1 dynamic
tunnel mpls traffic-eng fast-reroute
|
- Configure Backup tunnel at P1 to P2.
interface Tunnel0
ip unnumbered Loopback0
tunnel mode mpls traffic-eng
tunnel destination 2.2.2.2
tunnel mpls traffic-eng path-option 1 dynamic
end
|
- Configure the interface that we need to protect to use this backup tunnel.
interface GigabitEthernet3/0
ip address 10.1.3.1 255.255.255.0
ip router isis
shutdown
negotiation auto
mpls traffic-eng tunnels
mpls traffic-eng backup-path Tunnel0
mpls traffic-eng attribute-flags 0x1
isis network point-to-point
ip rsvp bandwidth 20000 2000
end
|
Before protecting the LSP
PE2#traceroute 11.11.11.11
Type escape sequence to abort.
Tracing the route to 11.11.11.11
VRF info: (vrf in name/id, vrf out name/id)
1 10.1.22.1 [MPLS: Label 29 Exp 0] 104 msec 80 msec 108 msec
2 10.1.3.3 [MPLS: Label 16 Exp 0] 80 msec 108 msec 108 msec
3 10.2.3.2 [MPLS: Label 19 Exp 0] 108 msec 84 msec 104 msec
4 10.2.11.11 152 msec 116 msec 104 msec
After making Backup tunnel to protect LSP
New label 26 pushed now by P1 will send the packet with it to P4 then P4 will make pop and reach to tail-end P2.
The backup tunnel should go to P2 direct as this is shorter path than going to P4 then P2
But because in this case we will not see the frr label , because P2 will send pop label to P1
I shut down the interface g0/0 going to P2 to force the traffic to go to P4 to can see FRR Label at P1 .
PE2#traceroute 11.11.11.11
Type escape sequence to abort.
Tracing the route to 11.11.11.11
VRF info: (vrf in name/id, vrf out name/id)
1 10.1.22.1 [MPLS: Label 29 Exp 0] 84 msec 108 msec 104 msec
2 10.1.4.4 [MPLS: Labels 26/19 Exp 0] 96 msec 80 msec 108 msec
3 10.2.4.2 [MPLS: Label 19 Exp 0] 140 msec 104 msec 68 msec
4 10.2.11.11 132 msec 104 msec 88 msec
26 is the FRR label to make P1 reach to P2
So Guess now how many label we will see if we make a traceroute End-to-End from Customer ?
CE2#traceroute 172.1.1.1 source lo0
Type escape sequence to abort.
Tracing the route to 172.1.1.1
VRF info: (vrf in name/id, vrf out name/id)
1 172.2.22.22 40 msec 56 msec 52 msec
2 10.1.22.1 [MPLS: Labels 29/16 Exp 0] 176 msec 128 msec 120 msec
3 10.1.4.4 [MPLS: Labels 26/19/16 Exp 0] 132 msec 128 msec 124 msec
4 10.2.4.2 [MPLS: Labels 19/16 Exp 0] 180 msec 124 msec 144 msec
5 172.1.11.11 [MPLS: Label 16 Exp 0] 128 msec 116 msec 104 msec
6 172.1.11.1 124 msec 124 msec 128 msec
What is the affect if we open now interface g0/0 at P1 ?
Now the backup tunnel will go with P1 - P2 path direct instead of P1 - P4 -P2 as it is the lowest metric.
P1#sh mpls traffic-eng tunnels tunnel 0 | in Expl
Explicit Route: 10.1.4.4 10.2.4.2 2.2.2.2 <<< this is Constrained path
Explicit Route: 10.1.2.2 2.2.2.2 <<< this is UnConstrained path
P1#sh mpls traffic-eng tunnels tunnel 0 | in Expl
Explicit Route: 10.1.2.2 2.2.2.2
Explicit Route: 10.1.2.2 2.2.2.2
Hope that would be informative to you
if anything not clear try to comment to open a discussion about it here.
Regards,
Mostafa Hassan
No comments:
Post a Comment