我在 2 个 Internet Access 后面有一台服务器。其 IP 如下:
-服务器:192.168.0.1
-ISP 1:192.168.0.253
-ISP 2:192.168.0.254
我希望来自 ISP 1 的数据包使用 ISP 1 作为网关接收响应,而来自 ISP 1 的数据包使用 ISP 2 接收响应。
有人知道我该怎么做吗?
非常感谢您的帮助。
程序
答案1
如果你有
-ISP 1 : 192.168.1.253 eth0 - default gateway
-ISP 2 : 192.168.0.254 eth1
以下命令通过 eth1 为带有标记 1 的数据包创建备用路由表
ip rule add fwmark 1 table 1
ip route add 127.0.0.0/0 table 1 dev lo
ip route add 0.0.0.0/0 table 1 dev eth1
另一半工作是识别必须获得标记 1 的数据包,用非默认路由接口的地址替换 192.168.0.254:
iptables -t mangle -A OUTPUT -m conntrack --ctorigdst 192.168.0.254 -j MARK --set-mark 1
以下内容不需要使用 ipfilter 进行任何数据包标记。传出(回复)数据包将具有最初用于连接到第二个接口的 IP 地址作为传出数据包上的源(发件)地址。
echo 200 isp2 >> /etc/iproute2/rt_tables
ip rule add from 192.168.0.254 dev eth1 table isp2
ip route add default via <gateway_IP> dev eth1 table isp2