on 03-26-2019 01:41 PM
In this post, we are going to examine the flexibility the MPLS TE auto-tunnel feature adds to networks where MPLS TE generally is needed.
Not going deeply into the basics of MPLS TE, one of the common design considerations for MPLS TE is the number of tunnels to be configured to achieve certain requirement: Scalability.
To give more clearance, let us have a look at the topology we are going to use for this post.
In the above topology, we have two CEs that needs to communicate with each other.
RIPv2 is the running PE to CE routing protocol.
As we know, MPLS TE tunnels are unidirectional tunnels, taking into consideration the number of MPLS PEs in our network, how many tunnels needed to be established? In our case the number is reasonable as depicted in the below diagram. But what if the network has 20 PEs for example?
Even if we considered P to P tunnels, the number is still countable which affects one of the design aspect mentioned above: Scalability.
So, whatever the option to follow (PE to PE tunnels or P to P tunnels), we are running into high management burden and remarkable OpEx.
Let us start diving into the configuration aspects of this, and not to forget we are running OSPF area 0 as our IGP (and it is already known that the two link-state routing protocols that support MPLS TE extensions are OSPF and ISIS).
R1-CE1:
interface Loopback0
ip address 1.1.1.1 255.255.255.255
interface FastEthernet1/0
ip address 192.168.12.1 255.255.255.0
router rip
version 2
network 1.0.0.0
network 192.168.12.0
no auto-summary
R2-PE1:
interface Loopback0
ip address 2.2.2.2 255.255.255.255
interface FastEthernet1/0
ip address 192.168.23.2 255.255.255.0
mpls traffic-eng tunnels
interface FastEthernet1/1
ip address 192.168.24.2 255.255.255.0
mpls traffic-eng tunnels
ip vrf MSSK
rd 1:1
route-target export 1:1
route-target import 1:1
interface FastEthernet2/0
ip vrf forwarding MSSK
ip address 192.168.12.2 255.255.255.0
mpls traffic-eng tunnels
mpls traffic-eng auto-tunnel mesh (We need to globally enable the feature).
router ospf 1
router-id 2.2.2.2
network 2.2.2.2 0.0.0.0 area 0
network 192.168.23.2 0.0.0.0 area 0
network 192.168.24.2 0.0.0.0 area 0
mpls traffic-eng router-id Loopback0
mpls traffic-eng area 0
mpls traffic-eng mesh-group 10 Loopback0 area 0 (We need to ensure proper IGP signaling).
router rip
address-family ipv4 vrf MSSK
redistribute bgp 1 metric 2
network 192.168.12.0
no auto-summary
version 2
exit-address-family
router bgp 1
bgp log-neighbor-changes
no bgp default ipv4-unicast
neighbor 6.6.6.6 remote-as 1
neighbor 6.6.6.6 update-source Loopback0
address-family vpnv4
neighbor 6.6.6.6 activate
neighbor 6.6.6.6 send-community both
exit-address-family
address-family ipv4 vrf MSSK
redistribute rip
exit-address-family
interface Auto-Template1
ip unnumbered Loopback0
tunnel mode mpls traffic-eng
tunnel destination mesh-group 10
tunnel mpls traffic-eng autoroute announce (Forcing the traffic into the tunnels).
tunnel mpls traffic-eng path-option 10 dynamic
The above auto-template interface is similar to the interface usually we create when establishing unidirectional tunnels (manual) with the respective parameters in use as well.
R3-P1:
interface Loopback0
ip address 3.3.3.3 255.255.255.255
interface FastEthernet1/0
ip address 192.168.23.3 255.255.255.0
mpls traffic-eng tunnels
interface FastEthernet1/1
ip address 192.168.36.3 255.255.255.0
mpls traffic-eng tunnels
interface FastEthernet2/0
ip address 192.168.35.3 255.255.255.0
mpls traffic-eng tunnels
mpls traffic-eng tunnels
mpls traffic-eng auto-tunnel mesh
router ospf 1
router-id 3.3.3.3
network 3.3.3.3 0.0.0.0 area 0
network 192.168.23.3 0.0.0.0 area 0
network 192.168.35.3 0.0.0.0 area 0
network 192.168.36.3 0.0.0.0 area 0
mpls traffic-eng router-id Loopback0
mpls traffic-eng area 0
mpls traffic-eng mesh-group 10 Loopback0 area 0
R4-P2:
interface Loopback0
ip address 4.4.4.4 255.255.255.255
interface FastEthernet1/0
ip address 192.168.24.4 255.255.255.0
mpls traffic-eng tunnels
interface FastEthernet1/1
ip address 192.168.45.4 255.255.255.0
mpls traffic-eng tunnels
mpls traffic-eng tunnels
mpls traffic-eng auto-tunnel mesh
router ospf 1
router-id 4.4.4.4
network 4.4.4.4 0.0.0.0 area 0
network 192.168.24.4 0.0.0.0 area 0
network 192.168.45.4 0.0.0.0 area 0
mpls traffic-eng router-id Loopback0
mpls traffic-eng area 0
mpls traffic-eng mesh-group 10 Loopback0 area 0
R5-P2:
interface Loopback0
ip address 5.5.5.5 255.255.255.255
interface FastEthernet1/0
ip address 192.168.56.5 255.255.255.0
mpls traffic-eng tunnels
interface FastEthernet1/1
ip address 192.168.45.5 255.255.255.0
mpls traffic-eng tunnels
interface FastEthernet2/0
ip address 192.168.35.5 255.255.255.0
mpls traffic-eng tunnels
mpls traffic-eng tunnels
mpls traffic-eng auto-tunnel mesh
router ospf 1
router-id 5.5.5.5
network 5.5.5.5 0.0.0.0 area 0
network 192.168.35.5 0.0.0.0 area 0
network 192.168.45.5 0.0.0.0 area 0
network 192.168.56.5 0.0.0.0 area 0
mpls traffic-eng router-id Loopback0
mpls traffic-eng area 0
mpls traffic-eng mesh-group 10 Loopback0 area 0
R6-PE2:
interface Loopback0
ip address 6.6.6.6 255.255.255.255
interface FastEthernet1/0
ip address 192.168.36.6 255.255.255.0
mpls traffic-eng tunnels
interface FastEthernet1/1
ip address 192.168.56.6 255.255.255.0
mpls traffic-eng tunnels
ip vrf MSSK
rd 1:1
route-target export 1:1
route-target import 1:1
interface FastEthernet2/0
ip vrf forwarding MSSK
ip address 192.168.67.6 255.255.255.0
mpls traffic-eng tunnels
mpls traffic-eng auto-tunnel mesh
router ospf 1
router-id 6.6.6.6
network 6.6.6.6 0.0.0.0 area 0
network 192.168.36.6 0.0.0.0 area 0
network 192.168.56.6 0.0.0.0 area 0
mpls traffic-eng router-id Loopback0
mpls traffic-eng area 0
mpls traffic-eng mesh-group 10 Loopback0 area 0
router rip
address-family ipv4 vrf MSSK
redistribute bgp 1 metric 2
network 192.168.67.0
no auto-summary
version 2
exit-address-family
router bgp 1
bgp log-neighbor-changes
no bgp default ipv4-unicast
neighbor 2.2.2.2 remote-as 1
neighbor 2.2.2.2 update-source Loopback0
address-family vpnv4
neighbor 2.2.2.2 activate
neighbor 2.2.2.2 send-community both
exit-address-family
address-family ipv4 vrf MSSK
redistribute rip
exit-address-family
interface Auto-Template1
ip unnumbered Loopback0
tunnel mode mpls traffic-eng
tunnel destination mesh-group 10
tunnel mpls traffic-eng autoroute announce
tunnel mpls traffic-eng path-option 10 dynamic
R7-CE2:
interface Loopback0
ip address 7.7.7.7 255.255.255.255
interface FastEthernet1/0
ip address 192.168.67.7 255.255.255.0
router rip
version 2
network 7.0.0.0
network 192.168.67.0
no auto-summary
Verifications:
Let us check CE1 routing table and test connectivity to CE2:
R1-CE1#sh ip route rip
Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2
i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
ia - IS-IS inter area, * - candidate default, U - per-user static route
o - ODR, P - periodic downloaded static route, H - NHRP, l - LISP
+ - replicated route, % - next hop override
Gateway of last resort is not set
7.0.0.0/32 is subnetted, 1 subnets
R 7.7.7.7 [120/2] via 192.168.12.2, 00:00:16, FastEthernet1/0
R 192.168.67.0/24 [120/2] via 192.168.12.2, 00:00:16, FastEthernet1/0
R1-CE1#ping 7.7.7.7 source loopback 0
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 7.7.7.7, 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 = 76/88/104 ms
As can be seen from the below output, we are able to see all the network elements in the network (P or PE):
R2-PE1#show mpls traffic-eng topology brief
My_System_id: 2.2.2.2 (ospf 1 area 0)
Signalling error holddown: 10 sec Global Link Generation 18
IGP Id: 2.2.2.2, MPLS TE Id:2.2.2.2 Router Node (ospf 1 area 0)
link[0]: Broadcast, DR: 192.168.23.2, nbr_node_id:1, gen:8
frag_id: 2, Intf Address: 192.168.23.2
TE metric: 1, IGP metric: 1, attribute flags: 0x0
SRLGs: None
link[1]: Broadcast, DR: 192.168.24.2, nbr_node_id:2, gen:8
frag_id: 3, Intf Address: 192.168.24.2
TE metric: 1, IGP metric: 1, attribute flags: 0x0
SRLGs: None
IGP Id: 3.3.3.3, MPLS TE Id:3.3.3.3 Router Node (ospf 1 area 0)
Area mg-id's:
: mg-id 10 3.3.3.3 :
link[0]: Broadcast, DR: 192.168.23.2, nbr_node_id:1, gen:11
frag_id: 2, Intf Address: 192.168.23.3
TE metric: 1, IGP metric: 1, attribute flags: 0x0
SRLGs: None
link[1]: Broadcast, DR: 192.168.36.6, nbr_node_id:4, gen:11
frag_id: 3, Intf Address: 192.168.36.3
TE metric: 1, IGP metric: 1, attribute flags: 0x0
SRLGs: None
link[2]: Broadcast, DR: 192.168.35.3, nbr_node_id:3, gen:11
frag_id: 4, Intf Address: 192.168.35.3
TE metric: 1, IGP metric: 1, attribute flags: 0x0
SRLGs: None
IGP Id: 4.4.4.4, MPLS TE Id:4.4.4.4 Router Node (ospf 1 area 0)
Area mg-id's:
: mg-id 10 4.4.4.4 :
link[0]: Broadcast, DR: 192.168.24.2, nbr_node_id:2, gen:13
frag_id: 2, Intf Address: 192.168.24.4
TE metric: 1, IGP metric: 1, attribute flags: 0x0
SRLGs: None
link[1]: Broadcast, DR: 192.168.45.4, nbr_node_id:5, gen:13
frag_id: 3, Intf Address: 192.168.45.4
TE metric: 1, IGP metric: 1, attribute flags: 0x0
SRLGs: None
IGP Id: 5.5.5.5, MPLS TE Id:5.5.5.5 Router Node (ospf 1 area 0)
Area mg-id's:
: mg-id 10 5.5.5.5 :
link[0]: Broadcast, DR: 192.168.56.6, nbr_node_id:6, gen:16
frag_id: 2, Intf Address: 192.168.56.5
TE metric: 1, IGP metric: 1, attribute flags: 0x0
SRLGs: None
link[1]: Broadcast, DR: 192.168.45.4, nbr_node_id:5, gen:16
frag_id: 3, Intf Address: 192.168.45.5
TE metric: 1, IGP metric: 1, attribute flags: 0x0
SRLGs: None
link[2]: Broadcast, DR: 192.168.35.3, nbr_node_id:3, gen:16
frag_id: 4, Intf Address: 192.168.35.5
TE metric: 1, IGP metric: 1, attribute flags: 0x0
SRLGs: None
IGP Id: 6.6.6.6, MPLS TE Id:6.6.6.6 Router Node (ospf 1 area 0)
Area mg-id's:
: mg-id 10 6.6.6.6 :
link[0]: Broadcast, DR: 192.168.36.6, nbr_node_id:4, gen:18
frag_id: 2, Intf Address: 192.168.36.6
TE metric: 1, IGP metric: 1, attribute flags: 0x0
SRLGs: None
link[1]: Broadcast, DR: 192.168.56.6, nbr_node_id:6, gen:18
frag_id: 3, Intf Address: 192.168.56.6
TE metric: 1, IGP metric: 1, attribute flags: 0x0
SRLGs: None
IGP Id: 192.168.23.2, Network Node (ospf 1 area 0)
link[0]: Broadcast, Nbr IGP Id: 2.2.2.2, nbr_node_id:7, gen:1
link[1]: Broadcast, Nbr IGP Id: 3.3.3.3, nbr_node_id:8, gen:1
IGP Id: 192.168.24.2, Network Node (ospf 1 area 0)
link[0]: Broadcast, Nbr IGP Id: 2.2.2.2, nbr_node_id:7, gen:2
link[1]: Broadcast, Nbr IGP Id: 4.4.4.4, nbr_node_id:9, gen:2
IGP Id: 192.168.35.3, Network Node (ospf 1 area 0)
link[0]: Broadcast, Nbr IGP Id: 3.3.3.3, nbr_node_id:8, gen:3
link[1]: Broadcast, Nbr IGP Id: 5.5.5.5, nbr_node_id:10, gen:3
IGP Id: 192.168.36.6, Network Node (ospf 1 area 0)
link[0]: Broadcast, Nbr IGP Id: 6.6.6.6, nbr_node_id:11, gen:4
link[1]: Broadcast, Nbr IGP Id: 3.3.3.3, nbr_node_id:8, gen:4
IGP Id: 192.168.45.4, Network Node (ospf 1 area 0)
link[0]: Broadcast, Nbr IGP Id: 4.4.4.4, nbr_node_id:9, gen:5
link[1]: Broadcast, Nbr IGP Id: 5.5.5.5, nbr_node_id:10, gen:5
IGP Id: 192.168.56.6, Network Node (ospf 1 area 0)
link[0]: Broadcast, Nbr IGP Id: 6.6.6.6, nbr_node_id:11, gen:6
link[1]: Broadcast, Nbr IGP Id: 5.5.5.5, nbr_node_id:10, gen:6
And we can see the dynamic tunnels created per the configuration done:
R2-PE1# sh ip int bri | ex Down
Interface IP-Address OK? Method Status Protocol
FastEthernet0/0 unassigned YES unset administratively down down
FastEthernet1/0 192.168.23.2 YES manual up up
FastEthernet1/1 192.168.24.2 YES manual up up
FastEthernet2/0 192.168.12.2 YES manual up up
FastEthernet2/1 unassigned YES unset administratively down down
Auto-Template1 2.2.2.2 YES TFTP up up
Loopback0 2.2.2.2 YES manual up up
Tunnel64336 2.2.2.2 YES TFTP up up
Tunnel64337 2.2.2.2 YES TFTP up up
Tunnel64338 2.2.2.2 YES TFTP up up
Tunnel64339 2.2.2.2 YES TFTP up up
R2-PE1#show mpls forwarding-table
Local Outgoing Prefix Bytes Label Outgoing Next Hop
Label Label or Tunnel Id Switched interface
16 No Label 192.168.12.0/24[V] \
0 aggregate/MSSK
17 No Label 1.1.1.1/32[V] 3768 Fa2/0 192.168.12.1
R3-P1#show mpls forwarding-table
Local Outgoing Prefix Bytes Label Outgoing Next Hop
Label Label or Tunnel Id Switched interface
16 Pop Label 2.2.2.2 64338 [7768] \
0 Fa2/0 192.168.35.5
17 Pop Label 6.6.6.6 64336 [2762] \
6801 Fa1/0 192.168.23.2
18 Pop Label 2.2.2.2 64339 [3399] \
4961 Fa1/1 192.168.36.6
R2-PE1#show ip route | inc Tunnel
O 3.3.3.3 [110/2] via 3.3.3.3, 00:19:55, Tunnel64336
O 4.4.4.4 [110/2] via 4.4.4.4, 00:19:55, Tunnel64337
O 5.5.5.5 [110/3] via 5.5.5.5, 00:19:45, Tunnel64338
O 6.6.6.6 [110/3] via 6.6.6.6, 00:19:45, Tunnel64339
O 192.168.35.0/24 [110/2] via 3.3.3.3, 00:19:55, Tunnel64336
O 192.168.36.0/24 [110/2] via 3.3.3.3, 00:19:55, Tunnel64336
O 192.168.45.0/24 [110/2] via 4.4.4.4, 00:19:55, Tunnel64337
O 192.168.56.0/24 [110/3] via 6.6.6.6, 00:19:45, Tunnel64339
[110/3] via 5.5.5.5, 00:19:45, Tunnel64338
R2-PE1#show mpls traffic-eng auto-tunnel mesh
Auto-Template1:
Using mesh-group 10 to clone the following tunnel interfaces:
Destination Interface
----------- ---------
3.3.3.3 Tunnel64336
4.4.4.4 Tunnel64337
5.5.5.5 Tunnel64338
6.6.6.6 Tunnel64339
Mesh tunnel interface numbers: min 64336 max 65335
R6-PE2#show mpls traffic-eng auto-tunnel mesh
Auto-Template1:
Using mesh-group 10 to clone the following tunnel interfaces:
Destination Interface
----------- ---------
2.2.2.2 Tunnel64336
3.3.3.3 Tunnel64337
4.4.4.4 Tunnel64338
5.5.5.5 Tunnel64339
Mesh tunnel interface numbers: min 64336 max 65335
If we checked the OSPF database for one of the PE routers:
LS age: 1695
Options: (No TOS-capability, DC)
LS Type: Opaque Area Link
Link State ID: 4.0.0.0
Opaque Type: 4
Opaque ID: 0
Advertising Router: 2.2.2.2
LS Seq Number: 80000001
Checksum: 0xE129
Length: 32
Capability Type: Mesh-group
Length: 8
Value:
0000 000A 0202 0202
LS age: 1686
Options: (No TOS-capability, DC)
LS Type: Opaque Area Link
Link State ID: 4.0.0.0
Opaque Type: 4
Opaque ID: 0
Advertising Router: 3.3.3.3
LS Seq Number: 80000001
Checksum: 0xF50D
Length: 32
Capability Type: Mesh-group
Length: 8
Value:
0000 000A 0303 0303
LS age: 1681
Options: (No TOS-capability, DC)
LS Type: Opaque Area Link
Link State ID: 4.0.0.0
Opaque Type: 4
Opaque ID: 0
Advertising Router: 4.4.4.4
LS Seq Number: 80000001
Checksum: 0xAF0
Length: 32
Capability Type: Mesh-group
Length: 8
Value:
0000 000A 0404 0404
LS age: 1678
Options: (No TOS-capability, DC)
LS Type: Opaque Area Link
Link State ID: 4.0.0.0
Opaque Type: 4
Opaque ID: 0
Advertising Router: 5.5.5.5
LS Seq Number: 80000001
Checksum: 0x1ED4
Length: 32
Capability Type: Mesh-group
Length: 8
Value:
0000 000A 0505 0505
LS age: 1661
Options: (No TOS-capability, DC)
LS Type: Opaque Area Link
Link State ID: 4.0.0.0
Opaque Type: 4
Opaque ID: 0
Advertising Router: 6.6.6.6
LS Seq Number: 80000001
Checksum: 0x32B8
Length: 32
Capability Type: Mesh-group
Length: 8
Value:
0000 000A 0606 0606
As can be seen the 0000 000A refers to the TLV which when decoded back to decimal equals to 10 (which is the mesh group number configured in the command mpls traffic-eng mesh-group 10 Loopback0 area 0 under the OSPF process).
A little note to refer to is that we have lowered down the OpEx as the needed tunnels has been created automatically, but that does not mean scalability has been resolved.
Find answers to your questions by entering keywords or phrases in the Search bar above. New here? Use these resources to familiarize yourself with the community: