Linux Networking/EQL - multiple line traffic equaliser

EQL - multiple line traffic equaliser


The EQL device name is `eql'. With the standard kernel source you may have only one EQL device per machine. EQL provides a means of utilizing multiple point to point lines such as PPP, slip or plip as a single logical link to carry tcp/ip. Often it is cheaper to use multiple lower speed lines than to have one high speed line installed.

Kernel Compile Options:

            Network device support  --->
                [*] Network device support
                <*> EQL (serial line load balancing) support

To support this mechanism the machine at the other end of the lines must also support EQL. Linux, Livingstone Portmasters and newer dial- in servers support compatible facilities.

To configure EQL you will need the eql tools which are available from:

Configuration is fairly straightforward. You start by configuring the eql interface. The eql interface is just like any other network device. You configure the IP address and mtu using the ifconfig utility, so something like:

            root# ifconfig eql mtu 1006

Next you need to manually initiate each of the lines you will use. These may be any combination of point to point network devices. How you initiate the connections will depend on what sort of link they are, refer to the appropriate sections for further information.

Lastly you need to associate the serial link with the EQL device, this is called `enslaving' and is done with the eql_enslave command as shown:

       root# eql_enslave eql sl0 28800
       root# eql_enslave eql ppp0 14400

The `estimated speed' parameter you supply eql_enslave doesn't do anything directly. It is used by the EQL driver to determine what share of the datagrams that device should receive, so you can fine tune the balancing of the lines by playing with this value. To disassociate a line from an EQL device you use the eql_emancipate command as shown:

            root# eql_emancipate eql sl0

You add routing as you would for any other point to point link, except your routes should refer to the eql device rather than the actual serial devices themselves, typically you would use:

            root# route add default eql

The EQL driver was developed by Simon Janes,