当前设置:
br0| |-- tun10 -pipe-tun0(192.240.240.1) |-- tun11 -pipe-tun1(192.240.240.2) |-- tun12 -pipe-tun2(192.240.240.3)
pipe道程序是一个自定义程序,用于在两个tun接口之间转发数据backback。
这个想法是把.2和.3中的2个程序放在当前机器的本地接口中。 主要的问题是我想通过.1和br0路由数据包到.2和.3,但是由于它们是本地接口,所以内核忽略了任何路由指令,它只是将数据包传送到适当的接口。
试过iptables,但是nat表甚至没有看到这些ifaces的ping数据包。 一个“ping 192.240.240.2”提供了一个icmp数据包的源和目标.2到tun1,理想情况下,它应该通过tun0-br0-tun1提供一个来源.1 dest.2在tun1
任何提示?
这里输出一些命令:
产量
所以你想让程序使用不同于系统的“主”IP地址的IP地址,但是这些程序实际上是在这个系统上运行的? 你希望你的盒子以外的其他计算机能够直接访问你的程序吗?
我很确定你的tun / pipe / tun安排不会把你带到那里。 我不明白你为什么希望数据包出现通过一个虚拟IP地址路由到另一个。
而不是所有那些tun或tap接口,你可以创build一个虚拟接口:
modprobe dummy ifconfig dummy0 192.240.240.2 ifconfig dummy0:1 192.240.240.3
现在,软件可以将tcp或udp端口绑定到这些IP地址中的任何一个。 其他计算机将需要一个路由(指向eth0的地址)到达这些IP地址。
但为什么tap10 / 11/12没有预先configurationip地址? 当你将IP地址分配给接口时,你将能够ping通它们。