Networking

多個介面:將數據包路由到特定介面

  • June 22, 2016

我的網路上有 2 個網際網路連接。我的路由器正在執行 Debian。eth0 是我的網路(192.168.0.0/16)。eth1 和 eth2 連接到 2 個不同的網際網路提供商(使用動態 IP)。

這是我的配置的小圖

PC1 ---| |-eth1- DynIP 提供者 1
PC2 ---|-eth0- 路由器 --- |
PCn ---| |-eth2- DynIP 提供者 2

我正在嘗試將其配置如下:我希望所有數據包預設通過 eth1。來自地址為 192.168.2.0/24 的 PC 的所有數據包都通過 eth2 傳輸。

在尋找了一段時間並在其他論壇上發帖後,我已經有了以下內容(在我的 rc.local 文件中):

迴聲“1”> /proc/sys/net/ipv4/ip_forward

iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth2 -j MASQUERADE
iptables -A FORWARD -i eth1 -j 接受
iptables -A FORWARD -i eth2 -j 接受

帶路由表:

核心IP路由表
目標網關 Genmask 標誌 Metric Ref Use Iface
10.0.4.0 0.0.0.0 255.255.255.0 U 0 0 0 eth2
172.16.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth1
192.168.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0
0.0.0.0 172.16.1.50 0.0.0.0 UG 0 0 0 eth1
0.0.0.0 10.0.4.2 0.0.0.0 UG 0 0 0 eth2
0.0.0.0 192.168.0.1 0.0.0.0 UG 0 0 0 eth0

我試著玩,routeip route我找不到它工作……

路由決策基於目標地址。如果要根據源地址路由流量,則需要配置基於策略的路由。看一下:

http://www.linuxhorizon.ro/iproute2.html

幾週前我回答了這些類似的問題:

如何按協議通過不同的介面(路由)路由不同的流量?

使用 iptables 通過特定介面轉發發往特定 ip 的流量

引用自:https://serverfault.com/questions/472320