In this article we’ll go over a simple AToM (Any Transport over MPLS) configuration. I’ve been studying MPLS a lot lately and this is my first time playing with AToM and it’s very cool stuff. This article could be useful for anyone studying MPLS and/or CCIP/CCIE topics, or just someone who is interested in learning new things. I will be including my Dynagen/GNS3 .net file with this. Here is our topology:

AToM Topology

Let’s go through the config:

P Router:

hostname P
!
mpls label protocol ldp
mpls ldp router-id lo0 force
!
interface Loopback0
 ip address 1.1.1.1 255.255.255.255
!
interface FastEthernet1/0
 ip address 10.1.1.1 255.255.255.252
 duplex auto
 speed auto
 mpls ip
!
interface FastEthernet1/1
 ip address 10.1.2.1 255.255.255.252
 duplex auto
 speed auto
 mpls ip
!
router ospf 100
 router-id 1.1.1.1
 log-adjacency-changes
 network 1.1.1.1 0.0.0.0 area 0
 network 10.1.1.0 0.0.0.3 area 0
 network 10.1.2.0 0.0.0.3 area 0

Here we’ve set the hostname, configured the MPLS label protocol (note: LDP is the default on new IOSes), we set a loopback interface that will be our RID for MPLS and OSPF. We also configured our connections to the PE routers and brought up OSPF as our IGP.

PE1 Router:

hostname PE1
!
mpls label protocol ldp
mpls ldp router-id lo0 force
!
pseudowire-class one
 encapsulation mpls
!
interface Loopback0
 ip address 2.2.2.2 255.255.255.255
!
interface FastEthernet1/0
 ip address 10.1.1.2 255.255.255.252
 duplex auto
 speed auto
 mpls ip
!
interface Serial2/0
 no ip address
 xconnect 3.3.3.3 100 pw-class one
!
router ospf 100
 router-id 2.2.2.2
 log-adjacency-changes
 network 2.2.2.2 0.0.0.0 area 0
 network 10.1.1.0 0.0.0.3 area 0

PE2 Router:

hostname PE2
!
mpls label protocol ldp
mpls ldp router-id lo0 force
!
pseudowire-class one
 encapsulation mpls
!
interface Loopback0
 ip address 3.3.3.3 255.255.255.255
!
interface FastEthernet1/0
 ip address 10.1.2.2 255.255.255.252
 duplex auto
 speed auto
 mpls ip
!
interface Serial2/0
 no ip address
 xconnect 2.2.2.2 100 pw-class one
!
router ospf 100
 router-id 3.3.3.3
 log-adjacency-changes
 network 2.2.2.2 0.0.0.0 area 0
 network 10.1.2.0 0.0.0.3 area 0

Here we’ve configured our PE routers. They are both running MPLS and OSPF like the P router. The important part here is the “pseudowire-class” and “xconnect” commands, the pseudowire command sets the encapsulation to MPLS for class one. The xconnect command under the serial interfaces creates an MPLS neighbor relationship and L2 connection between the two PE routers, we also set the VC (Virtual Circuit) to 100, which will need to match on both routers.

CE1 Router:

hostname CE1
!
interface Serial0/0
 ip address 192.168.50.1 255.255.255.252

CE2 Router:

hostname CE2
!
interface Serial0/0
 ip address 192.168.50.2 255.255.255.252

The CE routers are obviously very basic, everything in the provider network is transparent to the customer network.

That’s it! We now have a Layer 2 connection between our CE routers. Let’s verify our config:

CE1#sh ip int b
Interface    IP-Address      OK? Method Status   Protocol
Serial0/0    192.168.50.1   YES manual  up         up
 
CE1#ping 192.168.50.2
 
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.50.2, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 24/34/56 ms

Here we see that our interface is up/up and our pings are successful.

CE1#traceroute 192.168.50.2
 
Type escape sequence to abort.
Tracing the route to 192.168.50.2
 
1 192.168.50.2 28 msec *  28 msec

Now we see our traceroute, which is only a single hop as we expected.

That’s our AToM config. Very simple, but also very powerful. As promised:

The Dynagen/GNS3 .net file
(you will need to change the paths to make it work)

Colby

Colby Glass has been in IT since 2002. He is currently a Systems Engineer (presales) with a Cisco Gold partner and holds the CCNP R/S, CCNP DC, CCDP, CCIP, JNCIA-ER.

More Posts