windows连接L2TP Over IPSec后可以ping通服务器但无法访问web服务

操作系统版本:windows 10 21H2 LTSC

VPN: L2TP Over IPSec
故障描述:
前置条件: 建立VPN后,取消VPN生成默认路由(也可以不取消,不是造成故障的原因),手动添加目标网段的路由: 管理员cmd route add x.x.x.x mask x.x.x.x x.x.x.x
使用命令行终端 可以ping通多个不同系统版本的服务器,并确认有线以太网网段与VPN非同网段目标网段也非公网地址tracert也是通过VPN接口地址转发,但是使用浏览器访问服务器提供的web服务(使用IP地址的方式非域名)均不能打开网页。

环境对比测试:
1.已经确认内网PC可以访问WEB服务;
2.使用同一网络环境下的macOS系统终端拨入VPN后也可以访问WEB服务;
3.非同一网络环境非同一windows版本下的windows终端拨入VPN后也可以访问WEB服务;
4.相同PC终端,不使用有线连接,连接手机热点后拨入VPN,也可以访问WEB服务。

解决思路:

登录WEB服务器,tcpdump抓包查看到在PC终端与WEB服务器段在进行到HTTP报文传输请求后,随即出现大量TCP DUP ACKTCP Retransmission(即服务器的响应client未收到,需要服务端重新发送响应报文,但client始终未收到)。

对比正常访问WEB服务的client交付的报文,未出现TCP DUP ACK。随即猜测是否是服务器到Client之间的链路丢失了报文。结合既往经验,中间链路丢包极有可能是链路MTU限制导致,虽然有TCP协商MSS,但有可能是中间链路小于两端MTU,那样MSS就无法探测到最小值(猜测,知识原理掌握不够)。所以在发送ICMP包能够通,WEB业务请求时丢包的原因(WEB业务数据大于默认ICMP包size)。

通过ping x.x.x.x -l 1500来测试发现到达某个值果然就丢包了。
通过cmd命令查看各个接口的MTU值:netsh interface ipv4 show subinterfaces
可以看到如图(示例)

虽然VPN的MTU小于以太网的MTU,但是在添加了PPP的报头后,就超过了以太网的MTU,进而导致丢包。


解决办法:

使用命令:管理员CMD运行netsh interface ipv4 set subinterface "VPN连接名称" mtu=1280 store=persistent 永久修改VPN接口的MTU值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值