在openvpn上运行netperf udp流时出错

在openvpn上运行netperf udp流时出错,udp,performance-testing,openvpn,Udp,Performance Testing,Openvpn,为什么当我将OpenVPN与示例配置文件一起使用,并希望使用netperf UDP_流测量性能时,会出现以下错误: $ 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

为什么当我将OpenVPN与示例配置文件一起使用,并希望使用netperf UDP_流测量性能时,会出现以下错误:

$ 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

这个问题似乎与服务器端和客户端的netperf版本有关。如果双方都使用相同版本的netperf,这个问题就可以解决

原始问题中的错误似乎是由netperf中未记录的“功能”与openvpn示例配置中的默认接口设置之间的交互引起的。我不确定OP为什么能够通过更改netperf版本来解决问题,除非他们更改的版本中没有“功能”。然而,以下是我对这个问题的解释和我的解决方案

根据netperf邮件列表中的消息,netperf的开发人员在运行UDP_流测试时擅自禁用了IP路由。这意味着,如果在同一子网上的两台主机之间运行UDP_流测试,它将正常工作。但是,一旦您尝试在不同网络上的两台主机之间运行它,它就会失败,并显示OP报告的消息。这让人倍感困惑,因为这个“特性”在我能找到的任何地方都没有文档记录,而且因为所有其他测试都像正常一样工作

在默认的OpenVPN配置中,适配器是更高版本的3TUN适配器。远程主机将位于与本地主机不同的网络上。因此,会触发此netperf行为,您会得到错误而不是结果

幸运的是,netperf有一个命令行开关,可以为UDP_流测试重新打开路由。添加-R1作为特定于测试的选项,一切都开始工作。比如说,

netperf -H 10.8.0.1 -t UDP_STREAM -- -R 1

我没有专门用OpenVPN对此进行测试,但我用路由网络对其进行了测试,它修复了UDP_流测试的错误消息。

如果不向我们显示您的OpenVPN配置,我们将无法帮助您。@plaisthos:我使用示例配置文件(server.conf和client.conf)存在于OpenVPN示例配置文件文件夹中。netperf.org(现在在GitHub上)的官方版本中没有-R标志。