One way to share the load between two or more interfaces is trough the traffic control settings. This is not to be confused with high availability, as if you put down one of the cards it might take a while to adjust itself - I rather use bonding for that, to be explained in a future post.
Let's put the case we have a host Client1, with eth0 10.65.17.158 and eth1 10.65.17.118. We want to unify these two cards to work as one.
First, we need to load the module sch_teql using the command:
# modprobe sch_teql
Now we will add both interfaces to the TEQL device:
# tc qdisc add dev eth0 root teql0
# tc qdisc add dev eth1 root teql0
Now we turn up the teql0 device, and give it a valid ip:# ip link set dev teql0 upNow we can use the new IP 10.65.17.154 as a load share device between eth0 and eth1. Packets will arrive to the interfaces using a destination IP other than it's own, so would be discarded. To avoid this we can disable the rp_filter on each device:
# ip addr add dev teql0 10.65.17.154/24
That's all. For more info you can visit the official website for Linux Advanced Routing & Traffic Control
# echo 0 > /proc/sys/net/ipv4/conf/eth0/rp_filter # echo 0 > /proc/sys/net/ipv4/conf/eth1/rp_filter
No comments:
Post a Comment