Friday, July 11, 2008

PPP over Frame-Relay Example

Until few days ago, PPP over Frame-Relay was a bit confusing to me, not that I knew it or not, but I´d never configured it so far, just saw it on theory...

This week, after checking the VoD from IPExpert, things became much easier!

To clear things out, PPP over Frame-Relay is used to bundle PVCs together (or also for authentication over Frame-Relay links).

Frame-Relay multilink is used to bundle LINKs together.

So, in this example, we´ll be checking the PPP over Frame-Relay option,  take a look at the topology used:

PPPoFR

Ok! First things first, the drawing is not showing  the PVCs that we´re supposed to be using, so... how can we check this information?! Well... in fact it´s pretty easy... We can just configure the Serial Link with Frame-Relay encapsulation and check the PVCs (sh frame-relay pvc) configured in our Frame-Relay Switch (not in the diagram):

R1, R2, R3

int s1/0
encap frame-relay
no frame inverse-arp
no shut

After the sh frame-relay pvc command, we can see that we have a FULL-MESH network, but, we´re not going to use them all!

According to the drawing, we need two PVCs between R1 and R3 (103, 113 and 301, 311), as far as the task is not asking for anything specific, we can use any PVC that we want to achieve the goal. Also, we need only one PVC between R1 and R2 (102 and 201). How about the others?! Well... leave them for now, they´re not going to be used in this task!

R1(config-if)#do sh frame pvc | in ACT
DLCI = 102, DLCI USAGE = UNUSED, PVC STATUS = ACTIVE, INTERFACE = Serial1/0
DLCI = 103, DLCI USAGE = UNUSED, PVC STATUS = ACTIVE, INTERFACE = Serial1/0
DLCI = 112, DLCI USAGE = UNUSED, PVC STATUS = ACTIVE, INTERFACE = Serial1/0
DLCI = 113, DLCI USAGE = UNUSED, PVC STATUS = ACTIVE, INTERFACE = Serial1/0

R2(config-if)#do sh frame pvc | in ACT
DLCI = 201, DLCI USAGE = UNUSED, PVC STATUS = ACTIVE, INTERFACE = Serial1/0
DLCI = 203, DLCI USAGE = UNUSED, PVC STATUS = ACTIVE, INTERFACE = Serial1/0
DLCI = 211, DLCI USAGE = UNUSED, PVC STATUS = ACTIVE, INTERFACE = Serial1/0

R3(config-if)#do sh frame pvc | in ACT
DLCI = 301, DLCI USAGE = UNUSED, PVC STATUS = ACTIVE, INTERFACE = Serial1/0
DLCI = 302, DLCI USAGE = UNUSED, PVC STATUS = ACTIVE, INTERFACE = Serial1/0
DLCI = 311, DLCI USAGE = UNUSED, PVC STATUS = ACTIVE, INTERFACE = Serial1/0

Now... in order to configure PPP over Frame-Relay, we need to create a virtual-template interface, and point the DLCIs that we´re going to be  using to this virtual-template interface that we just created, take a look on how all three routers were configured  (in this specific case, R1 and R3 are the only ones using PPP over Frame-Relay):

R1

int virtual-template 1
ip address 200.200.230.1 255.255.255.0
bandwitdh 64
no shut
!
int s1/0
frame interface-dlci 103 ppp virtual-temp 1
frame interface-dlci 113 ppp virtual-temp 1
!
int s1/0.102 point-to-point
ip address 200.200.220.1 255.255.255.0
frame-relay interface-dlci 102 broadcast

R2

int s1/0.201 point-to-point
bandwitdh 64
ip address 200.200.220.2 255.255.255.0
frame-relay interface-dlci 201 broadcast

R3

int virtual-template 1
bandwitdh 64
ip address 200.200.230.3 255.255.255.0
no shut
!
int s1/0
frame interface-dlci 301 ppp virtual-temp 1
frame interface-dlci 311 ppp virtual-temp 1

So, time for a quick test?! Yeah! It is! Let´s try to ping R2 and R3 from R1:

R1(config-fr-dlci)#do ping 200.200.220.2

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 200.200.220.2, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max= 20/60/112 ms

R1(config-fr-dlci)#do ping 200.200.230.3

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 200.200.230.3, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 20/70/120 ms

It worked! Things seens good, don´t you think?! If we check the interfaces at R1 (show ip int brief), we can see our Virtual-Template1 interface down and what in the world are those Virtual-Access interfaces?! We never configured those!

In fact, the Virtual-Template will remain down, and each time the PPP connection gets reseted (up, down, up again, shut, or anything else) a new Virtual-Access interface (one for each DLCI)  will be created and those are the interfaces that will remain up/up for our connection. So the Virtual-Access interfaces are created everytime the PPP connection gets up!

R1(config-if)#do sh ip int brief
Interface         IP-Address     OK? Method Status     Protocol
FastEthernet0/0   unassigned     YES unset  down       down Serial1/0         unassigned     YES unset  up         up
Serial1/0.102     200.200.220.1  YES manual up         up
Virtual-Template1 200.200.230.1  YES manual down       down
Virtual-Access2   200.200.230.1  YES TFTP   up         up
Virtual-Access3   200.200.230.1  YES TFTP   up         up

A good thing to do also is to check the Routing Table...

R1(config-fr-dlci)#do sh ip route
Codes: 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

Gateway of last resort is not set

C    200.200.220.0/24 is directly connected, Serial1/0.102
     200.200.230.0/24 is variably subnetted, 2 subnets, 2 masks
C       200.200.230.3/32 is directly connected, Virtual-Access2
                         is directly connected, Virtual-Access3

C       200.200.230.0/24 is directly connected, Virtual-Access2
                         is directly connected, Virtual-Access3

The /32 entry was created by the PPP, and both Virtual-Access2 and Virtual-Access3 interfaces are there also, so what does the routing protocols will do?! They will load balance, and that´s not what we want in first place!

To solve it, we just go into the Virtual-Template interface and "multilink" them together, using the command ppp multilink, this will create another Virtual-Access interface that will bundle to two others!

R1, R3

int virtual-temp 1
ppp multilink

To check if the interfaces are bundled together, we can use the following show command: show ppp multilink.

R1#sh ppp multilink

Virtual-Access4, bundle name is R3
  Endpoint discriminator is R3
  Bundle up for 00:01:45, total bandwidth 128, load 1/255
  Receive buffer limit 24384 bytes, frag timeout 1524 ms
    0/0 fragments/bytes in reassembly list
    0 lost fragments, 0 reordered
    0/0 discarded fragments/bytes, 0 lost received
    0x2 received sequence, 0x2 sent sequence
  Member links: 2 (max not set, min not set)
    Vi2, since 00:01:46
    Vi3, since 00:01:46
No inactive multilink interfaces

R3(config-if)#do sh ppp multilink

Virtual-Access4, bundle name is R1
  Endpoint discriminator is R1
  Bundle up for 00:01:02, total bandwidth 128, load 1/255
  Receive buffer limit 24384 bytes, frag timeout 1524 ms
    0/0 fragments/bytes in reassembly list
    0 lost fragments, 0 reordered
    0/0 discarded fragments/bytes, 0 lost received
    0x2 received sequence, 0x2 sent sequence
  Member links: 2 (max not set, min not set)
    Vi2, since 00:01:03
    Vi3, since 00:01:03
No inactive multilink interfaces

And finally, we can check our routing table, and we see just the newly created Virtual-Access interface over there! Much better for our Routing Protocols!

R1(config-fr-dlci)#do sh ip route
Codes: 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

Gateway of last resort is not set

C    200.200.220.0/24 is directly connected, Serial1/0.102
     200.200.230.0/24 is variably subnetted, 2 subnets, 2 masks
C       200.200.230.3/32 is directly connected, Virtual-Access4
C       200.200.230.0/24 is directly connected, Virtual-Access4

These little notes about PPP over Frame-Relay were based on the Frame-Relay VoD from IPExpert CCIE R&S BLS, an extremelly helpfull resource for me so far!

Also, I´ve simulated this on Dynamips, so, if anyone wants the .NET file, just let me know, and I can forward it to your email!

No comments: