我想问你关于tun接口的问题,但没有OpenVPN。
我有两个隧道流量的应用程序: “sgsn userspace app”从tun接口“tun sgsn”读取IP数据包,将它们发送到“ggsn userspace app”,此应用程序将它们写入“tun ggsn”。 它的工作方式也相反,所以我可以使用ssh会话,复制文件等。
所以,数据包会这样:
scp客户端 - > sgsn tun interface --->隧道穿过我的应用程序-----> ggsn tun接口(在此处删除)----------> sshd
现在,我已尝试使用IPv4并且它可以工作,但是当我切换到IPv6时,IP数据包被写入“tun ggsn”并且IP堆栈丢弃它。我用dropwatch看过它,它说discard在ip_rcv + c0。
路由必须正确,否则数据包首先不会进入tun_sgsn。
我在CentOS 6.7和7.1中都尝试过这个结果。但是,在7.1中我只有一个主机,所以我用ip6tables到NAT地址做了一些技巧,所以每个用户空间应用程序(scp和sshd)的流量都通过tun接口。我说这只是从一开始就很明显,但是6.7我有两台机器而且没有NAT(我知道NAT在CentOS 6.7 for IPv6中不起作用)。我在tun ggsn接口中使用了tcpdump,IPv6数据报似乎没问题。
另一个提示:如果我直接scp到tun_ggsn接口,它可以工作,但我不认为这会丢弃任何与tun驱动程序,因为在同一台机器上,这意味着IP数据包不会下降到TCP / IP堆栈到达tun驱动程序(事实上,如果我这样做,tcpdump不捕获数据包)。
任何帮助将不胜感激,非常感谢您提前。