多接口:将数据包路由到特定接口

多接口:将数据包路由到特定接口

我的网络上有 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 转发 -i eth1 -j 接受
iptables -A 转发 -i eth2 -j 接受

使用路由表:

内核 IP 路由表
目标网关 Genmask 标志 指标参考使用 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但发现它无法工作......

答案1

路由决策基于目标地址。如果要根据源地址路由流量,则需要配置基于策略的路由。请看:

http://www.linuxhorizo​​n.ro/iproute2.html

几周前我回答过这些类似的问题:

如何通过协议将不同的流量路由到不同的接口(路由)?

使用 iptables 通过特定接口转发发往特定 IP 的流量

相关内容