主服务器有 50x50 mbps 专用光纤 ISP。我们目前有一台 Netgear FVS336Gv3 有线路由器,WAN 到 LAN 的吞吐量额定值为 300 mbps。此设备执行从互联网到 openVPN 服务器的所有路由。openVPN 服务器运行在半专用 x64 dell 服务器上,该服务器运行 Ubuntu Server 14.04。我们有一个专用的 Ubuntu Server 14.04 x64 dell 盒,它是我们的主要文件服务器,共享通过 Samba 托管。
当远程 openVPN 客户端通过 VPN 隧道向主文件服务器传输文件时,它们永远无法接近导致客户端或服务器端的带宽饱和。
例如,客户端的下载速度为 20 mbps,但绝不会以 20 mbps 的速度通过 VPN 隧道传输文件,而理论上这是可能发生的,因为文件服务器的上传速度为 50 mbps。
我的问题是:将 Netgear FVS336Gv3 路由器废弃,而改用运行 pfSense 的专用 x64 盒是否会增加 VPN 隧道的吞吐量?
或者
VPN 隧道吞吐量不足是否是使用 Samba 托管文件共享的结果?
编辑:
我认为是后者,但希望听听其他人的意见。我们通过证书安全的 SSH 隧道将文件传输到远程 Ubuntu 服务器,我看到(Cacti 带宽图)远程下载连接以大约 20 mbps 的速度饱和,这非常接近 ISP 在远程站点提供的带宽。
Netgear 路由器的带宽图,您可以看到 7 月 8 日晚上出站带宽的峰值;这是我们对远程服务器的备份。在之前的工作周里,我们的出站带宽从未达到 2mbps,我知道大量文件是通过 Samba 和 openVPN 传输的。
谢谢。
答案1
TCP/IP 基础知识:
throughput <= TCP buffer size / RTT
我的问题是:将 Netgear FVS336Gv3 路由器废弃,而改用运行 pfSense 的专用 x64 盒是否会增加 VPN 隧道的吞吐量?
我对此表示怀疑,因为......
VPN 隧道吞吐量不足是否是使用 Samba 托管文件共享的结果?
绝对不是,你的问题是客户端和 OpenVPN 服务器(pfsense)之间的延迟,我的设置和你一样:
SMB Client -> OpenVPN -> WAN <- pfSense <- OpenVPN Server <- LAN -> Samba server.
我无法达到 50 mpbs(我的 Windows 7 工作站使用 SMB 2.x,吞吐量最大为 10-12mbps,而使用 SMB 3.x 升级的 Windows 8 和 10 使该结果翻倍),直到我添加(服务器配置):
sndbuf 393216
rcvbuf 393216
push "sndbuf 393216"
push "rcvbuf 393216"
在延迟更长的链接上,您可以使用更大的缓冲区,尝试使用 128KiB 步骤进行测试。
重新配置 Samba 以供使用;
socket options = TCP_NODELAY IPTOS_THROUGHPUT SO_RCVBUF=65536 SO_SNDBUF=65536
...也是个好主意。
我使用:UDP、lzo 和 tap 设备。务必至少verb 4
在 OpenVPN 配置文件中对其进行测试(设置套接字缓冲区)。查找:
Thu Jun 30 11:39:08 2016 us=90400 nsa310-tryskacze/88.199.144.161:60218 SENT CONTROL [nsa310-tryskacze]: 'PUSH_REPLY,sndbuf 524288,rcvbuf 524288,route-gateway 10.1.2.0,ping 10,ping-restart 30,ifconfig 10.1.2.19 255.255.255.0' (status=1)
如果你想了解这个问题:
https://community.openvpn.net/openvpn/ticket/461
https://www.lowendtalk.com/discussion/40099/why-openvpn-is-so-slow-cool-story
答案2
在这种情况下,大部分繁重的工作都是由 OpenVPN 服务器系统完成的,该系统似乎位于与 Netgear 不同的系统上。根据您的描述,Netgear 不太可能是导致速度变慢的原因,至少不是因为您超出了它的容量。请确认您没有在其上进行任何流量整形或 QoS 配置,这些配置会限制 VPN 外部部分的吞吐量。
pfSense 肯定会增加您可实现的最大吞吐量,但这似乎不是您 VPN 性能的原因。