通过 Windows 2008 L2TP 到 Windows 10 Pro 的 RDP 从未完美运行过。2018 年 9 月的第一次尝试需要将客户端 Cord.app 替换为 OS X 10.9.5 上的 Royal TSX。远程 Win10 机顶盒崩溃了,最近根据 2018 年 11 月 16 日的更新重新安装了所有最新和最好的 Windows,本地 Windows 2008 R2 SBS 机顶盒也崩溃了,它使用 L2TP 作为 VPN 路由器。 L2TP 客户端获得分配的二十几位 IPv4 地址(.21、.22 等)。
自 11 月 16 日起,即使使用 Royal TSX,我也无法通过隧道以及 Cord 与远程 Windows 10 Pro 机顶盒建立可用的 RDP 连接。当初始屏幕显示部分完成时,两种连接尝试都会停止: 大约 10 秒后,L2TP 连接终止。
Windows 2008 安全事件日志显示 ICMP 数据包被丢弃事件 ID 5152、任务 12809 和 EventData:
ProcessId 0
Application -
Direction %%14593 (=Outbound)
SourceAddress 10.0.0.37
SourcePort 0
DestAddress 10.0.0.22
DestPort 0
Protocol 1
FilterRTID 141619
LayerName %%14601 (=ICMP error)
LayerRTID 32
此事件记录了 6 次,消息 (1+2) 和 (3+4) 之间间隔 2 秒,消息 (3+4) 和 (5+6) 之间间隔 3 秒。差异是连续的 EventRecordID。XML 视图中没有其他差异。
回归
- 类似问题Windows 过滤平台阻止合法流量的数据包或者如何修复内置 Windows 防火墙,尽管配置了例外但仍阻止数据包?别给我任何线索。
- 这里不涉及虚拟化,所以我认为没有必要禁用 TCP NIC 卸载。
- 我创建了入站和出站防火墙规则,以允许从 10.0.0.0/24 到 10.0.0.0/24 的所有 ICMP 流量。通过 L2TP 进行 RDP 期间的 ICMP 数据包仍然被丢弃。
- auditpol 禁用日志记录不是解决方案。
- 将 MTU 减少到 1280 字节并不能改善
- 将客户端切换到 Mikrotik 路由器网络(从 Fritz!Box OS 06.83 家用路由器设备)确实有所改善两次,使用iPhone4 Wi-Fi或USB连接iPhone4作为GSM路由器并没有改善
- 升级到 Fritz!OS 7.01 并没有改善
- 与 Win10 机器位于同一网络中的 Windows 7 机器遇到相同的 RDP L2TP VPN 问题,启动 RDP 会话后约一分钟,数据包丢失并且 L2TP 链接断开连接。
在 Mikrotik 上(无断开连接问题,MTU 设置为自动):
$ ping -D -c 1 -s 1472 host.domain.nl (22-11-18 10:06)
PING host.domain.nl (1.4.6.2): 1472 data bytes
1480 bytes from 1.4.6.2: icmp_seq=0 ttl=32 time=98.001 ms
$ ping -D -c 1 -s 1473 host.domain.nl (22-11-18 10:06)
PING host.domain.nl (1.4.6.2): 1473 data bytes
ping: sendto: Message too long
在 Fritz!OS 7.01 上:ping 大小 1464 = OK,1465 = 需要 frag 且设置了 DF(MTU 1492)。
如何让 Windows 过滤平台 (WFP) 停止丢弃通过 Windows 路由引擎发送的经过身份验证的 L2TP 隧道的 ICMP 数据包?
答案1
在我看来,故障前的部分屏幕负载似乎是 MTU 大小不匹配。隧道的 MTU 通常小于 1500。
作为测试,暂时减少 RDP 客户端的配置 MTU,看看是否有影响。如果您的客户端运行的是 Windows,请参阅以下链接: https://becomethesolution.com/how-to-change-and-check-windows-mtu-size