Mar*_*idi 0 udp openvpn performance-testing
为什么当我使用带有示例配置文件的OpenVPN并想要使用netperf UDP_STREAM来衡量性能时,我收到此错误:
$ netperf -H 10.8.0.1 -t UDP_STREAM
MIGRATED UDP STREAM TEST from 0.0.0.0 () port 0 AF_INET to 10.8.0.1 () port 0 AF_INET
send_data: data send error: errno 101
netperf: send_omni: send_data failed: Network is unreachable
Run Code Online (Sandbox Code Playgroud)
小智 9
原始问题中的错误似乎是由netperf中未记录的"功能"与openvpn示例配置中的默认接口设置之间的交互引起的.我不确定为什么OP能够通过改变netperf的版本来解决问题,除非他们改变的那个中没有'feature'.不过,这是我对问题和解决方案的解释.
根据netperf邮件列表中的这条消息,netperf的开发人员在运行UDP_STREAM测试时可以自由禁用IP路由.这意味着如果您在同一子网上的两台主机之间运行UDP_STREAM测试,它将起作用.但是,只要您尝试在不同网络上的两台主机之间运行它,它就会失败并显示OP报告的消息.这是一个令人困惑的问题,因为这个"特征"没有记录在我能找到的任何地方,并且因为所有其他测试都像正常一样工作.
在默认的OpenVPN配置中,适配器是后来的3 tun适配器.您的远程主机将位于与本地主机不同的网络上.因此,触发了此netperf行为,并且您获得错误而不是结果.
幸运的是,netperf有一个命令行开关来重新打开UDP_STREAM测试的路由.添加-R 1作为测试特定选项,一切都开始工作.例如,
netperf -H 10.8.0.1 -t UDP_STREAM -- -R 1
Run Code Online (Sandbox Code Playgroud)
我没有专门用OpenVPN对此进行测试,但我已经使用路由网络对其进行了测试,并修复了UDP_STREAM测试的错误消息.