多 ISP 配置中按連接埠路由

多 ISP 配置中按連接埠路由

我正在使用 shorewall 防火牆並已成功配置多個 isp 來源。

目前,它平衡到兩個 ISP 的所有流量。我想要實現的是將 ssh 流量路由到 ISP1,將 www 流量路由到 ISP2。我怎樣才能做到這一點?

答案1

我認為您需要建立多個路由表。一個是用於正常流量的預設值,下一個是特殊的 SSH 表,其中僅包含您要使用的 ISP 連線的路由條目。

接下來,設定 iptables 來標記來自您的 IP 和偵聽 SSH 連接埠的封包。

最後,您可以設定 ip 規則條目以根據防火牆標記進行路由。

LARTC 文件中有很多資訊(但到目前為止您可能已經看到了):http://lartc.org/howto/lartc.rpdb.html

因此,舉個例子:

  1. 新增一個帶有名稱的新路由表。

    echo SSH 500 >>/etc/iproute2/rt_tables
    
  2. 將預設路由新增至另一個路由表以完成正確的任務。

    ip route add default via $ISP2_GW table SSH 
    
  3. 設定規則以使 fwmark 使用這個新表。

    ip rule add fwmark 0x0001 table SSH
    
  4. 最後設定 iptables 規則來標記您的資料包。

    iptables -I PREROUTING -t mangle -p tcp --sport 22 -j MARK --set-mark 0x0001
    iptables -I OUTPUT     -t mangle -p tcp --sport 22 -j MARK --set-mark 0x0001
    

希望這可以正確設定您想要的內容。您還需要確保此配置在重新啟動後仍然有效!但我把它留給你當作練習。

相關內容