我在 Ubiquiti EdgeMAX 路由器后面有一台 Server 2008 R2 机器。路由器已配置为 NAT,所有 GRE 流量以及 TCP 控制端口 (1723) 都已转发到内部 RRAS 服务器。
之前,我使用 Cisco 2621 路由器进行了同样的设置,并设置了相同的 NAT/防火墙。该设置没有出现任何问题。
使用 Ubiquiti 设备,我可以将远程客户端顺利连接到 VPN 服务器,直到客户端在 GRE 隧道上丢失数据吞吐量,直到最终超时。服务器看到同样的效果,连接正常,RRAS 日志显示连接因客户端关闭请求而关闭。这表明当客户端超时时,服务器实际上正在从客户端接收超时断开数据包。
我在服务器和客户端都运行了 Wireshark。当服务器在 VPN 控制端口 (1723) 上向客户端发送 RST 数据包时,两个设备都丢失了数据连接。在客户端发送超时关闭数据包之前,该端口上没有其他看似相关的 TCP 流量。此事务中未识别出任何 FIN 数据包。
我已经排除了路由器上的防火墙问题,看来路由器在看到来自服务器的 RST 数据包时会丢弃 GRE 隧道。检查客户端和服务器上的日志,我似乎找不到发送 RST 数据包的原因,而这似乎是隧道关闭的主要原因。
我首先在 ubnt 论坛上提出了这个问题,您可以在这里看到我对 Ubnt 代表的回复:
http://community.ubnt.com/t5/EdgeMAX/PPTP-VPN-Passthrough/mp/666797#U666797
我到处寻找有类似问题的人,但其他人似乎遇到了不同配置的问题。
有人有办法解决这个问题吗?