单独一台机器测试OpenVPN加密隧道的问题和解决
有时候,为了节省机器,我希望在一台设备上模拟多个设备,当然,使用网络命名空间是可以的,但是我的内核版本不支持...所以我希望使用纯协议栈的方法来做到。此时需要解决的问题并不比程序员在编写多线程程序时要少。你要知道什么是共享的,什么是独享的,什么时候什么字段会被什么模块修改...诸如此类,不一而足...
先不谈OpenVPN,仅仅考虑一台机器上两个网卡的情况,如果你ping一个网卡上配置的地址,事实上结果是不会经过这个网卡的,因为在路由模块中,协议栈会发现这事实上是自己和自己通信,因此会直接bypass掉真实网卡。现在加入OpenVPN,我希望的是数据包通过下面这个图上所标示的路径发出去,但事实上没有,原因的注释也在图中:
上图所示,错误原因也已经给出了,一些额外的分析也做过了,那么正确的方式应该是什么样的呢?下图给出:
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。