Linux

特定 src 埠的多網關路由

  • October 30, 2012

我有兩個網關可以訪問網際網路,不知何故我想對其進行負載平衡,到目前為止它的工作,但某些連接或服務需要使用持久網關 IP,因此客戶端一旦連接到 dest,就不應更改其網關。,我目前的實現似乎是循環或其他。

這是我的iproute

...
...
default
   nexthop via 192.168.1.1 dev eth0 weight 1
   nexthop via 192.168.1.2 dev eth0 weight 1

現在我想以某種方式修復它,客戶端將使用的網關是預先確定的,例如通過使用源埠,如果源埠是偶數我們使用 gw.1,奇數通過 gw.1,我們可以使用 ip路線?

*請注意,我這裡只有一個出站介面:eth0。

使用帶有標記數據包的策略路由。我不確定它是什麼配置格式,但你應該在你的發行版中檢查它。

在命令行中它應該看起來像(未經測試但應該可以工作)

iptables -A PREROUTING -t mangle -p tcp --dport 22 --set-mark 0x1 -j CONNMARK
echo "200 ssh" >> /etc/iproute2/rt_tables
ip rule add fwmark 1 table ssh
ip route add default dev eth0 via 192.168.1.2 table ssh

**編輯:**行

echo "200 ssh" >> /etc/iproute2/rt_tables

用名稱“ssh”命名路由表 200。它被保存在靴子之間。

引用自:https://unix.stackexchange.com/questions/1194