Linux
設置具有 2 個 WAN 和多個子網的路由器
我正在嘗試將 Debian 盒子設置為辦公室的路由器。我需要在 LAN 中有 3 個子網和 2 個 WAN 連接,並且我希望其中一個子網始終使用 WAN 1,而另一個子網始終使用 WAN 2(無負載平衡)。
例如,我想要這三個子網: - 10.1.1.0/24 - 10.1.2.0/24 - 10.1.3.0/24
我希望 10.1.1.0/24 使用 ISP #1 和 10.1.2.0/24 和 10.1.3.0/24 使用 ISP #2 上網。
還有一秒的複雜性:ISP #2 是具有動態 IP 地址的 DSL 連接。
我認為這應該很容易實現,但是我以前從未這樣做過,也無法在網上找到範例。我一直在閱讀lartc,但我無法將它們提供的範例用於我想做的事情。
我會很感激任何線索!
你可以和朋友一起做這個
ip rule
(關鍵字:基於源的路由)。首先,您需要建構另一個路由表。讓我們稱之為wan2。將其添加到/etc/iproute2/rt_tables
幸運的是 ip route 的輸出與輸入的格式相同。您可以這樣做來複製表(沒有預設路由)
ip route show table main | grep -Ev "^default" | while read ROUTE; do ip route add table wan2 $ROUTE done
然後添加預設路由
ip route add table wan2 default via 1.2.3.4 dev ethX
完成後可以使用
ip rule
命令建構規則來選擇對應的路由表:ip rule add from 10.1.2.0/24 table wan2
我在網際網路的某個地方找到了這個腳本,但忘記了在哪裡。您可以將其用作模板
#!/bin/sh set -e MARK=100 TABLE_NAME=wan2 DEV=eth2 GATEWAY=192.168.4.1 IPTABLES=/sbin/iptables IP=/sbin/ip $IP route flush table $TABLE_NAME $IP route show table main | grep -Ev "^default" | while read ROUTE; do $IP route add table $TABLE_NAME $ROUTE done $IP route add table $TABLE_NAME default dev $DEV via $GATEWAY while true; do ip rule del table $TABLE_NAME 2>/dev/null || break done $IP rule add from 10.1.2.0/24 table $TABLE_NAME .... $IP route flush cache