Linux - NetworkingThis forum is for any issue related to networks or networking.
Routing, network cards, OSI, etc. Anything is fair game.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
At the company I work for, we have two internet connections at each of our two branches. Each branch has a standard 1.544 Mbit T1 line and a 384/384 business class SDSL line.
I am planning to replace our current hardware routers with Linux machines. We are currently using Xincom XC-DPG603 Twin WAN series routers. They have a nifty feature that allows you to balance traffic on the two WAN interfaces. However, you can specify what amount of traffic goes through each. For instance, you can have 70%/30% by bytes [which is what we're using right now]. You can also do it per connections and so forth.
Basically, I am wondering if there is a way to do this using Linux traffic scheduling. I have been able to use the TEQL qdisc to do 50/50 balancing between two [VPN] interfaces on a local net, but I am much more interested in doing a non-symmetrical load balance. I have scoured the net and googled everything I could think of to no avail.
Note: if it's just possible to do it with point-to-point type links, such as a VPN, then that is fine. Our primary use of this system is redundancy for the inter-office VPN connections.
I hate to suggest a non-penguin solution, but being open source I guess it's ok. Using "PF" on OpenBSD is one of the most reliable things on earth, and amazingly configureable. Google it.
I am quite familiar with PF, though I never thought of it. Thank you for the suggestion.
As I'm sure this will probably come up again, I seem to have found a solution that works at least in theory. Assuming the kernel has multipath support [under advanced routing services], iproute supports weighted routes:
ip route add 10.0.1.0/16 nexthop via 10.254.0.2 weight 7 nexthop via 10.254.0.2 weight 3
This causes the kernel to choose the routes in a proportion of 7 to 3 when it does routing lookups. I have not been able to get it work as I'd hoped, however I have done only very preliminary testing. In the long run, however, when it has to re-look up the table, it should probably have an effect.
Cisco's EIGRP does unequal multipath routing, but it is [as far as I know] patented. In any case, there is no working implementation in the OSS world [i.e., as a part of Zebra or Quagga]. Cisco's specs don't go into any detail that would be useful for implementing it, either.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.