3

为什么当我将 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
4

2 回答 2

13

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

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

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

幸运的是,netperf 有一个命令行开关,可以为 UDP_STREAM 测试重新打开路由。添加 -R 1 on 作为测试特定选项,一切都开始工作。例如,

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

我没有专门用 OpenVPN 测试过这个,但是我用路由网络测试过它,它修复了 UDP_STREAM 测试的错误消息。

于 2014-06-13T18:10:11.610 回答
0

这个问题似乎与服务器端和客户端的 netperf 版本有关。如果在两边,我们使用相同版本的netperf,这个问题就可以解决了。

于 2012-11-17T13:40:28.947 回答