
我有兩個具有不同 ISP 的網關,其中一個定義為 LAN 用戶的預設網關,另一個 ISP 用作伺服器和 VPN 流量的預設網關。這是透過使用 DHCP 配置的常規路由表來完成的。
現在,我希望在使用大量上傳的 LAN 用戶筆記型電腦中安裝 Google 驅動器和其他一些軟體流量,以便始終使用未定義為預設閘道的其他 ISP。我怎樣才能做到這一點?
我最初的想法是使用 IPTABLES 或魷魚。
我一直在嘗試這個
iptables -t nat -A PREROUTING -d GOOGLE_IP -j DNAT --to-destination MY_SECOND_ISP
iptables -t nat -A POSTROUTING -s MY_SECOND_ISP -j SNAT --to-source GOOGLE_IP
iptables -t nat -A POSTROUTING -s MY_SECOND_ISP -j MASQUERADE
但它不起作用。當我測試它時,流量進入預設網關
知道如何使用 iptables、shorewall 或魷魚來做到這一點嗎?
答案1
假設 LAN 預設閘道 (GW1) LAN IP 為 192.168.1.1,伺服器預設 GW (GW2) LAN IP 為 192.168.1.2,即 LAN 看到兩個路由器位於同一網段。
您可以在 GW1 上設定靜態路由,將目標為 GOOGLE_IP 的流量指向下一跳 GW2 LAN IP 位址。
如果 GW1 是 Cisco: ip Route GOOGLE_IP 255.255.255.255 GW2_LAN_IP
如果 GW1 是 Linux: ip route add GOOGLE_IP/32 gw GW2_LAN_IP
這樣,當 LAN 上的任何主機向 GOOGLE_IP 發送流量時,流量都會流向 GW1。
然後GW1上的靜態路由會將流量轉送到GW2。
然後,GW2 會將流量轉送出其 WAN 介面。
從網際網路到 GW2 的回傳流量將會轉送到 LAN,並到達主機。
這樣,您就可以在 GW1 上建立一次路由,以便它適用於所有 LAN 主機。
答案2
由於像 Google Drive 這樣的服務都在雲端,它們的 IP 可能隨時發生變化,我相信你的方法遲早會停止運作。
還有另一種方法可以透過在來賓作業系統層級上進行 DSCP 標記來區分所需應用程式的流量。
DSCP 標記將「附加」在資料包本身上,這樣您就可以將這些資料包與路由器上的 iptables 進行匹配,並透過 VPN 或您喜歡的任何其他網關路由它們。
這樣你就可以說,例如 googledrive.exe(或任何你想要的應用程式)將始終透過 VPN 進行路由,無論它嘗試連接到哪裡。
以下是有關如何使用 Windows 設定自訂 DSCP 標記的一些說明 https://support.timso.com/index.php?/Knowledgebase/Article/View/24/3/windows-7-and-implementing-qos
您可以使用 iptables 的 --dscp 匹配選項來匹配 dscp 標記。
http://www.iptables.info/en/iptables-matches.html#DSCPMATCH
當然,以上所有內容都無法回答您原來的問題。您仍然需要使策略路由發揮作用。