Linux 中的 ip 路由策略

Linux 中的 ip 路由策略

我有一个带有两个网络接口的 Linux 系统(xxx0 中的 eth0 和 xxy0 中的 eth1)。是否可以添加一些路由策略将所有流量发送到网络 xxy0。我甚至希望将来自 eth0 的流量发送到 eth1 的网络。

我无法从路由表中删除直接连接的网络,因此来自 xxx0 网络的所有流量都会发送到 eth0。我想将所有流量发送到 eth1。

答案1

您需要设置一个仅包含默认路由的备用路由表,标记想要离开默认路由的数据包,然后将标记的数据包转移到备用路由表。

1)创建备用路由表:

 echo '1     DEFGW' >> /etc/iproute2/rt_tables
 ip route add default via 192.168.0.1 dev eth1 table DEFGW

这将创建一个名为的路由表DEFGW,其中仅包含默认路由。根据您的配置调整 IP 和接口。

2)安排标记的数据包进入备用表:

ip rule add fwmark 1 table DEFGW

3)标记应遵守我们规则的数据包。

iptables -t mangle -A PREROUTING -d x.x.x.0/255.255.255.0 -j MARK --set-mark 1

这将获取发往x.x.x.0/24地址的数据包,并对其加上标记 1,该标记会将其转移到表中DEFGW。根据您的配置调整 IP。我们在路由数据包之前对其进行标记,以便路由引擎知道使用备用表。

相关内容