情况:
eth0-具有互联网访问的默认网络 IP:192.168.2.1 默认网关:192.168.2.254
eth0:1 192.168.2.2 虚拟网卡,与 eth0 相同,但 IP 不同。相同的电缆 此 IP 具有不同的互联网访问权限
eth1:192.168.0.1
eth2:192.168.1.1
来自 eth1 和 eth2 的所有流量都使用 192.168.2.1 路由到 192.168.2.254
我需要将来自 eth2 的所有流量路由到 192.168.2.254,但使用辅助 ip 192.168.2.2
我尝试了很多不同的配置,但没有成功。
答案1
您需要的是源策略路由。有关配置源策略路由的说明,请参见Linux 高级路由和流量控制指南。
关键在于您要向系统添加一个新的路由表,名称类似 INET2(这些命令必须以 root 身份运行):
回显 200 INET2 >> /etc/iproute2/rt_tables
然后您要向主 IP 路由表添加一个源规则(我猜这是一个 /24 网络):
ip 规则从 192.168.1.0/24 表 INET2 添加
接下来,您需要为 INET2 表分配一个默认路由(您没有提到第二个连接的默认网关,所以我在这里猜测):
ip route 通过 192.168.2.253 dev eth0:1 表 INET2 添加默认
最后,您需要刷新系统上的路线缓存:
ip 路由刷新缓存
以这种方式创建的规则是短暂的,在系统重新启动时会消失(尽管 INET2 表会保留),因此您需要将规则放入网络接口的启动脚本中。具体如何执行此操作取决于您的特定 Linux 发行版,这实际上是另一个问题。