我有一个带有几个 IP 地址的隧道接口 tunl0,在同一个主机中有一个容器。
容器有一个接口eth0,里面有很多IP地址,容器的eth0接口里每个IP监听不同的应用程序。
所以当tunl0中的某个IP收到数据包时,应该将其发送给容器的某个IP。
例如:主机 -
tunl0@NONE: <NOARP,UP,LOWER_UP> mtu 1480 qdisc noqueue state UNKNOWN group default qlen 1000
link/ipip 0.0.0.0 brd 0.0.0.0
inet 1.1.1.1/32 scope link tunl0
valid_lft forever preferred_lft forever
inet 1.1.1.2/32 scope link tunl0
valid_lft forever preferred_lft forever
container -
eth0@if114: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default
link/ether 02:42:ac:11:00:02 brd ff:ff:ff:ff:ff:ff link-netnsid 0
inet 172.17.0.2/16 brd 172.17.255.255 scope global eth0
valid_lft forever preferred_lft forever
inet 172.17.0.4/32 scope global eth0
valid_lft forever preferred_lft forever
当数据包到达tunl的1.1.1.1时,它应该被路由到172.17.0.4。
我尝试了下面的 iptable 规则,但是没有作用。
iptables -t nat -A PREROUTING -d 1.1.1.1 -p tcp --dport 80 -j DNAT --to-destination 172.17.0.4:80
我也尝试过其他规则,但它们没有意义发布在这里。
如能得到任何帮助或指导我将非常感激!
谢谢