如何确保 Linux 中的出站流量与入站流量使用相同的接口?

如何确保 Linux 中的出站流量与入站流量使用相同的接口?

我有一个 Linux 机器,有两个接口:一个用于数据,另一个用于管理。如果两个接口都在同一个网络上,我会为两个接口添加路由。

想象一下路由表是:

192.168.132.0 255.255.255.0 eth0
192.168.132.0 255.255.255.0 eth1 ( management interface)

问题是,即使与管理 IP()发起了连接eth1,返回流量仍会打开eth0

如何确保连接上的返回流量使用与转发流量相同的接口?

答案1

理想情况下,两个接口都应该是不同 IP 子网的一部分,但如果您确信只需要这样走,那么您应该使用 Linux 分割访问路由。

Linux分割访问说明

Novell 的拆分访问示例

首先,创建两个路由表 T1 和 T2,用于发送到或来自这些 NIC 的数据包,方法是添加以下行

252 T1
251 T2

到 /etc/iproute2/rt_tables。

接下来,通过这些表设置路由规则来路由传入和传出的数据包:

ip route add 10.105.16.0/24 dev eth0 src 10.105.16.100 table T1
ip route add default via 10.105.16.2 dev eth0 src 10.105.16.100 table T1
ip rule add from 10.105.16.100 table T1

ip route add 10.105.16.0/24 dev eth1 src 10.105.16.101 table T2
ip route add default via 10.105.16.2 dev eth1 src 10.105.16.101 table T2
ip rule add from 10.105.16.101 table T2

相关内容