Monday, July 30, 2012

Understanding and Configuring Cisco Router PPP Multilink




This article provides an in-depth explanation of PPP Multilink and shows how to configure a Cisco router to use PPP Multilink between two serial interfaces (WIC-1T). We'll show you the commands that are required for the configuration, plus how to ensure the PPP Multilink is working correctly.
The Point-to-Point Protocol (PPP) is an encapsulation protocol that allows the transporting of network layer traffic over point-to-point links. Examples of point-to-point links are ISDN and Synchronous serial links. PPP is also described in RFC1661.
PPP Multilink is used to  take multiple PPP links and 'bond' them together, making them act as a single PPP link.  Examples of PPP Multilink can be usually found at service providers, who will bond multiple links for a customer in order to provide increased bandwidth.
For example, a company can order two E1 connections from their service provider: each E1 providing a speed of 2.048Mbits/sec. With the use of PPP Multilink we can bond these two links into one and effectively obtain a single link with the speed of 4.096Mbit/sec.
It is important to understand that PPP Multilink requires both ends to be configured the same, which means that both you and your ISP must have PPP Multilink configured otherwise the link will not work.
cisco router ppp multilink
Configuring PPP Multilink is a pretty straightforward process, however, configuration steps can differ depending on the interfaces and protocols you are dealing with.  

Our example uses two WIC-1T interfaces, installed on our customer's router, which need to be bonded with the service provider's links. Of course, the customer has previously requested the two E1 lines to support PPP Multilink.


Configuring PPP Multilink on our Cisco Router

 First step is to configure the Multilink interface on our router. The Multilink interface is assigned to a multilink group:
R1(config)# interface Multilink1
R1(config-if)# description Service Provider - 4096Mbit
R1(config-if)# ip address 213.229.63.20 255.255.255.252
R1(config-if)# ip nat outside 
R1(config-if)# ip inspect monitor out
R1(config-if)# ip virtual-reassembly
R1(config-if)# ppp multilink
R1(config-if)# ppp multilink group 1
R1(config-if)# no cdp enable
 
As you can see, the configuration of the Multilink Interface is similar to that of a physical interface. The multilink interface is configured with its IP Address and ip nat outside is enabled, indicating that this virtual interface is the public interface of our router - but of course, you probably figured that out just by looking at its IP address :)

Next, we need to configure each physical serial interface and bind them both to the multilink group 1
R1(config)# interface Serial0/0/0R1(config-if)# description PPP-Multilink-1R1(config-if)# bandwidth 2048R1(config-if)# no ip addressR1(config-if)# no ip proxy-arpR1(config-if)# encapsulation pppR1(config-if)# ppp multilinkR1(config-if)# ppp multilink group 1R1(config-if)# no fair-queueR1(config-if)# no clock rate 2000000R1(config-if)# no cdp enable
R1(config)# interface Serial0/0/1R1(config-if)# description PPP-Multilink-2R1(config-if)# bandwidth 2048R1(config-if)# no ip addressR1(config-if)# no ip proxy-arpR1(config-if)# encapsulation pppR1(config-if)# ppp multilinkR1(config-if)# ppp multilink group 1R1(config-if)# no fair-queueR1(config-if)# no clock rate 2000000R1(config-if)# no cdp enable 

You might have also noticed that we have used the no clock rate command. On a serial interface, this indicates that we are the DTE end, which means the service provider end is the DCE. The DCE is also responsible for providing clocking to the DTE. This explains why we have disabled clocking and expect it from the service provider's end.

Verifying Our Configuration

Once the above configuration has been applied to the router, we can view the serial ports and check to see they are up and connected to the provider's DCE:
R1# sh interface serial 0/0/0
Serial0/0/0 is up, line protocol is up 
  Hardware is WIC MBRD Serial
  Description: PPP-Multilink-1
  MTU 1500 bytes, BW 2048 Kbit/sec, DLY 20000 usec,
    reliability 255/255, txload 1/255, rxload 1/255
  Encapsulation PPP, LCP Open, multilink Open
  Link is a member of Multilink bundle Multilink1, loopback not set
  Keepalive set (10 sec)
  Last input 00:00:00, output 00:00:00, output hang never
  Last clearing of "show interface" counters 6w5d
  Input queue: 0/75/0/0 (size/max/drops/flushes); Total output drops: 0
  Queueing strategy: fifo
  Output queue: 0/40 (size/max)
  5 minute input rate 0 bits/sec, 2 packets/sec
  5 minute output rate 0 bits/sec, 2 packets/sec
     16867280 packets input, 2083057714 bytes, 0 no buffer
     Received 0 broadcasts, 6631 runts, 1 giants, 0 throttles
     22931 input errors, 14660 CRC, 0 frame, 589 overrun, 0 ignored, 1051 abort
     17750930 packets output, 116319254 bytes, 0 underruns
     0 output errors, 0 collisions, 358 interface resets
     0 unknown protocol drops
     0 output buffer failures, 0 output buffers swapped out
     0 carrier transitions
     DCD=up  DSR=up  DTR=up  RTS=up  CTS=up 


 R1# sh interface serial 0/0/1
 Serial0/0/1 is up, line protocol is up 
   Hardware is WIC MBRD Serial
   Description: PPP-Multilink-2
   MTU 1500 bytes, BW 2048 Kbit/sec, DLY 20000 usec,
      reliability 255/255, txload 1/255, rxload 1/255
   Encapsulation PPP, LCP Open, multilink Open
   Link is a member of Multilink bundle Multilink1, loopback not set
   Keepalive set (10 sec)
   Last input 00:00:00, output 00:00:00, output hang never
   Last clearing of "show interface" counters 6w5d
   Input queue: 0/75/0/0 (size/max/drops/flushes); Total output drops: 0
   Queueing strategy: fifo
   Output queue: 0/40 (size/max)
   5 minute input rate 0 bits/sec, 0 packets/sec
   5 minute output rate 0 bits/sec, 0 packets/sec
      16930723 packets input, 2107539518 bytes, 0 no buffer
      Received 0 broadcasts, 12586 runts, 0 giants, 0 throttles
      39569 input errors, 25902 CRC, 0 frame, 0 overrun, 0 ignored, 1081 abort
      17818341 packets output, 158108561 bytes, 0 underruns
      0 output errors, 0 collisions, 32 interface resets
      1 unknown protocol drops
      0 output buffer failures, 0 output buffers swapped out
      0 carrier transitions
      DCD=up  DSR=up  DTR=up  RTS=up  CTS=up

In most real-life scenarios, you are bound to see a few errors on the interfaces as it's unavoidable, however, this number should remain relatively small. The above output is from a working environment and the statistics haven't been reset for over 1.5 months.  The most important areas of the output are highlighted.

If you would like to check the clocking, but also confirm the DTE/DCE ends, simply use the 'show controllers' command. The output data from this command is quite a bit, so we've omitted the rest, keeping just the information we are interested in:
R1# show controllers serial 0/0/0
Interface Serial0/0/0
Hardware is SCC
DTE V.11 (X.21)
Clock Freq detected Rx clk/Tx clk 1902062/1902062 (+-10%)
R1# show controllers serial 0/0/1
Interface Serial0/0/1
Hardware is SCC
DTE V.11 (X.21)
Clock Freq detected Rx clk/Tx clk 1902062/1902062 (+-10%) 

As a last step, we can view the multilink interface to ensure it's up and running as expected. Remember, we are expecting to see an interface with a bandwidth of 4096Kbit/sec:
R1# show interface multilink 1Multilink1 is up, line protocol is up 
  Hardware is multilink group interface
  Description: Vodafone 4096Mbit
  Internet address is 213.249.13.10/30
  MTU 1500 bytes, BW 4096 Kbit/sec, DLY 20000 usec,
    reliability 255/255, txload 1/255, rxload 1/255
  Encapsulation PPP, LCP Open, multilink Open
  Open: IPCP, loopback not set
  Keepalive set (10 sec)
  DTR is pulsed for 2 seconds on reset
  Last input 00:00:00, output never, output hang never
  Last clearing of "show interface" counters 6w6d
  Input queue: 0/75/0/0 (size/max/drops/flushes); Total output drops: 63
  Queueing strategy: fifo
  Output queue: 0/40 (size/max)
  5 minute input rate 1000 bits/sec, 3 packets/sec
  5 minute output rate 0 bits/sec, 2 packets/sec
     17560482 packets input, 4037124738 bytes, 0 no buffer
     Received 0 broadcasts, 0 runts, 0 giants, 0 throttles
     585 input errors, 0 CRC, 255 frame, 0 overrun, 183 ignored, 147 abort
     17871590 packets output, 546160159 bytes, 0 underruns
     0 output errors, 0 collisions, 4 interface resets
     0 unknown protocol drops
     0 output buffer failures, 0 output buffers swapped out
     0 carrier transitions 

The output of our command indicates that everything is running fine. Of course, to access the internet, NAT Overload must be configured. More information on Cisco Router NAT Overload can be found on our NAT Overload page.

Article Summary


In this article we covered the configuration of PPP Multilink on a Cisco router. We covered the necessary commands to ensure the selected serial interfaces are part of the Multilink bundle and verify that the Multilink interface is working correctly.

No comments:

Post a Comment