Linux 作为路由器 - 如何确定使用哪条路由(取决于不同的源地址)

Linux 作为路由器 - 如何确定使用哪条路由(取决于不同的源地址)

我有一台 Linux 服务器,我将它用作路由器,它有两个网络接口。

我使用 eth0(10.76.8.60/24, 10.76.8.50/24, router: 10.76.8.1) 连接网络,eth1(192.168.1.1/24) 连接局域网交换机,使用 SNAT 将数据包从 eth1 转发到 eth0。

问题是我想将数据包从指定客户端(比如192.168.1.8,SNAT到10.76.8.60)转发到10.76.8.111(不是默认网关:10.76.8.1,SNAT到10.76.8.50),但其他客户端的数据包仍然被转发到默认网关。

我尝试使用 IP 路由表来解决这个问题,但是失败了:

ip 路由刷新表测试
ip 路由通过 10.76.8.111 src 10.76.8.60 表测试添加默认

我不知道该怎么办,请帮忙。谢谢。

答案1

你要基于策略的 路由. 与发行版无关的快速示例:

echo 200 custom >> /etc/iproute2/rt_tables
ip rule add from 192.168.1.8 lookup custom
ip route add default via 10.76.8.50 dev eth0 table custom

相关内容