![选择性地将流量路由到接口](https://linux22.com/image/800194/%E9%80%89%E6%8B%A9%E6%80%A7%E5%9C%B0%E5%B0%86%E6%B5%81%E9%87%8F%E8%B7%AF%E7%94%B1%E5%88%B0%E6%8E%A5%E5%8F%A3.png)
我已经设置了单独的路由表(tovpn)
#echo 200 tovpn >> /etc/iproute2/rt_tables
现在我为它分配路线。
其中 10.0.0.1 是 tun2 PtP,10.0.0.2 是 inet
#ip route add 10.0.0.1 dev tun2 table tovpn
#ip route add default via 10.0.0.2 dev tun2 table tovpn
某些网络 172.20.20.0/24 有流量转发到该表
#ip rule add from 172.22.22.0/24 table tovpn
#iptables -t nat -A POSTROUTING -s 172.22.22.0/24 -o tun2 -j MASQUERADE
太好了,一切正常。
如何通过指定主机 IP 来指定要通过隧道的额外流量?
如果我想通过隧道将流量路由到 8.8.4.4,以下方法不起作用。
#ip rule add to 8.8.4.4/32 table tovpn
或者
#ip rule add to 8.8.4.4/32 lookup tovpn
任何帮助都将不胜感激,谢谢。
答案1
我的路由表设置不正确。正确的设置如下:
# ip route add $PTPADDR src $INETADDR proto kernel dev tun1 table tovpn
# ip route add default dev tun1 table tovpn
现在用标记
# iptables -t mangle -A PREROUTING -i $LANINTERFACE -d 8.8.8.8/32 -j MARK --set-mark 300