Cisco Systems



Link Aggregation - Multilink PPP (MLP)


Multilink PPP (MLP)

There are many load-balancing mechanisms available, but this one is free for use on serial WAN links! It provides multivendor support and is specified in RFC 1990, which details the fragmentation and packet sequencing specifications.

You can use MLP to connect your home network to an Internet service provider using two traditional modems or to connect a company via two leased lines.

The MLP feature provides a load-balancing functionality over multiple WAN links while allowing for multivendor interoperability. It offers support for packet fragmentation, proper sequencing, and load calculation on both inbound and outbound traffic.

MLP allows packets to be fragmented and then sent simultaneously over multiple point-topoint links to the same remote address. It can work over synchronous and asynchronous serial types.

MLP combines multiple physical links into a logical link called an MLP bundle, which is essentially a single, virtual interface that connects to the remote router. None of the links inside the bundle have any knowledge about the traffic on the other links

The MLP over serial interfaces feature provides us with the following benefits:

Load balancing MLP provides bandwidth on demand, utilizing load balancing on up to 10 links and can even calculate the load on traffic between specific sites. You don’t actually need to make all links the same bandwidth, but doing so is recommended. Another key MLP advantage is that it splits packets and fragments across all links, which reduces latency across the WAN.

Increased redundancy This one is pretty straightforward… If a link fails, the others will still transmit and receive.

Link fragmentation and interleaving The fragmentation mechanism in MLP works by fragmenting large packets, then sending the packet fragments over the multiple point-topoint links. Smaller real-time packets are not fragmented. So interleaving basically means real-time packets can be sent in between sending the fragmented, non-real-time packets, which helps reduce delay on the lines. So let’s configure MLP now to get a good feel for how it actually works now.

Configuring MLP

But first, I want you to study the configuration of the two serial interfaces on the Corp router that we’re going to use for making our bundle:

Corp#show interfaces Serial0/0
Serial0/0 is up, line protocol is up
Hardware is M4T
Internet address is 172.16.10.1/30
MTU 1500 bytes, BW 1544 Kbit/sec, DLY 20000 usec,
reliability 255/255, txload 1/255, rxload 1/255
Encapsulation PPP, LCP Open
Open: IPCP, CDPCP, crc 16, loopback not set

Corp#show interfaces Serial1/1
Serial1/1 is up, line protocol is up
Hardware is M4T
Internet address is 172.16.10.9/30
MTU 1500 bytes, BW 1544 Kbit/sec, DLY 20000 usec,
reliability 255/255, txload 1/255, rxload 1/255
Encapsulation PPP, LCP Open
Open: IPCP, CDPCP, crc 16, loopback not set

Did you notice that each serial connection is on a different subnet (they have to be) and that the encapsulation is PPP?
When you configure MLP, you must first remove your IP addresses off your physical interface. Then, you configure a multilink bundle by creating a multilink interface on both sides of the link. After that, you assign an IP address to this multilink interface, which effectively restricts a physical link so that it can only join the designated multilink group interface.
So first I’m going to remove the IP addresses from the physical interfaces that I’m going to include in my PPP bundle.

Corp#config t
Corp(config)#int Serial0/0
Corp(config-if)#no ip address
Corp(config-if)#int Serial1/1
Corp(config-if)#no ip address
Corp(config-if)#end
Corp#
SF#config t
SF(config)#int Serial0/0
SF(config-if)#no ip address
SF(config-if)#int Serial0/1
SF(config-if)#no ip address
SF(config-if)#end
SF#
Now we create the multilink interface on each side of the link and the MLP commands to enable the bundle.

Corp#config t
Corp(config)#interface Multilink1
Corp(config-if)#ip address 10.1.1.1 255.255.255.0
Corp(config-if)#ppp multilink
Corp(config-if)#ppp multilink group 1
Corp(config-if)#end
SF#config t
SF(config)#interface Multilink1
SF(config-if)#ip address 10.1.1.2 255.255.255.0
SF(config-if)#ppp multilink
SF(config-if)#ppp multilink group 1
SF(config-if)#exit

We can see that a link joins an MLP bundle only if it negotiates to use the bundle when a connection is established and the identification information that has been exchanged matches the info for an existing bundle.
When you configure the ppp multilink group command on a link, that link won’t be allowed to join any bundle other than the indicated group interface.

Verifying MLP

To verify that your bundle is up and running, just use the show ppp multilink and show interfaces multilink1 commands:
Corp#show ppp multilink
Multilink1
Bundle name: Corp
Remote Endpoint Discriminator: [1] SF
Local Endpoint Discriminator: [1] Corp
Bundle up for 02:12:05, total bandwidth 4188, load 1/255
Receive buffer limit 24000 bytes, frag timeout 1000 ms
0/0 fragments/bytes in reassembly list
0 lost fragments, 53 reordered
0/0 discarded fragments/bytes, 0 lost received
0x56E received sequence, 0x572 sent sequence
Member links: 2 active, 0 inactive (max 255, min not set)
Se0/1, since 01:32:05
Se1/2, since 01:31:31
No inactive multilink interfaces

We can see that the physical interfaces, Se0/1 and Se1/1, are members of the logical interface bundle Multilink 1. So now we’ll verify the status of the interface Multilink1 on the Corp router:

Corp#show int Multilink1
Multilink1 is up, line protocol is up
Hardware is multilink group interface
Internet address is 10.1.1.1/24
MTU 1500 bytes, BW 1544 Kbit/sec, DLY 20000 usec,
reliability 255/255, txload 1/255, rxload 1/255
Encapsulation PPP, LCP Open, multilink Open
Open: IPCP, CDPCP, loopback not set
Keepalive set (10 sec)
[output cut]

Eninam BAGNABANA     |         |     bagnadavid@outlook.fr     |