Linux 多路對外線路(Multi WAN)

先在 /etc/iproute2/rt_tables 新增 table 名稱
#(table id / table name)
1 first
2 second
3 third

新增每張 table 的 route
# ip route add 1.2.3.0/24 dev eth1 src 1.2.3.4 table first
# ip route add default via 1.2.3.254 table first
# ip route add 3.4.5.0/24 dev eth2 src 3.4.5.6 table second
# ip route add default via 3.4.5.254 table second
# ip route add 6.7.8.0/24 dev eth3 src 6.7.8.9 table third
# ip route add default via 6.7.8.254 table third

再加上 ip rule,指定不同 ip 出去時的走不同的 table,就會照上面的 default route 跑
# ip rule add from 1.2.3.4 table first
# ip rule add from 3.4.5.6 table second
# ip rule add from 6.7.8.9 table third

這樣從不同 interface 進來的連線就會從自己的 route 回去了

 

如果還要讓自己主動外連時可以 平衡一下就再加入
ip route add default scope global nexthop via 1.2.3.254 dev eth1 weight 1 nexthop via 3.4.5.254 dev eth2 weight 1 nexthop via 6.7.8.254 dev eth3 weight 1