如何路由网络流量,使数据包通过它们进入的同一接口发出?
解决方案已验证 - 已更新2019年七月4日00:57 -
环境
- 红帽企业Linux
- 系统通过不同网络/ ISP上的多个网络接口连接到Internet
- 系统通过多个网络接口连接到同一子网
问题
- 如何将网络数据包转发到它来自的相同网络接口?
- 两个接口都连接到互联网,由不同的ISP提供。如何使网络数据包通过它们来自的接口返回?
- 如何为具有两个不同子网(两个不同网关)的两个NIC分配两个IP。如何在一台计算机上添加两个网关。
决议
- 注意:以下步骤可帮助您获得所需的结果,但这仅供参考和参考之用。设计和实现基于自定义策略的路由“ 超出了范围
可以使用基于策略的路由(源路由)来实现此功能。该iproute软件包提供的工具(/ sbin目录/ IP)进行配置。
- 示例:服务器有2个带IP地址的接口。
eth0 - > inet addr:10.66.1.51 Bcast:10.66.255.255 eth1 - > inet addr:10.67.1.51 Bcast:10.67.255.255
- 设置另外2个具有不同表ID的路由表; 10.66.255.254是eth0的网关,10.67.255.254是eth1的网关。我们还为直连网络添加路由:
ip route add 10.66.0.0/16 dev eth0 table 1 ip route add default via 10.66.255.254 dev eth0 table 1 ip route add 10.67.0.0/16 dev eth1 table 2 ip route add default via 10.67.255.254 dev eth1 table 2
上面的命令创建了2个路由表。
- 创建规则以转发通过特定NIC进入的所有数据包,以输出相应的路由表。
ip rule add iif eth0 table 1 ip rule add iif eth1 table 2
- 创建规则以转发数据包以输出特定的路由表。
ip rule add from 10.66.1.51 table 1 ip rule add from 10.67.1.51 table 2
- 如果要添加更多路由记录,请遵循以下命令格式
ip route add to 192.168.100.0 via 10.66.0.203 dev eth0 table 1