windows11-pppoe-disconnect

win 11 系统pppoe 掉线

win11 系统在内网进行pppoe拨号,拨号完成大概3-10秒后会立即断开连接. 在BRAS 看上看到是下线原因为 User-request ,尝试使用win10,linux,未出现相同故障,判断为系统因素.

排查如下:

  1. 抓取数据包分析. 仅发现客户端主动发起PADT 报文.未见ppp 异常报文.
  2. 查看win 下的事件查看器,仅有 Rasclient 客户端已停止信息.
  3. 排查win11 pppoe 拨号模块, 确认拨号模块为 raspppoe.sys
  4. 尝试更换其他版本win raspppoe.sys 进行拨号,发现无法拨号.
  5. 怀疑win网络探测导致主动下线:
    查询win网络探测机制: NCSI active probes
  6. 尝试禁用该探测机制
  7. 不再出现拨号后掉线问题,确认win11 pppoe模块加入联网探测机制.

修复办法:

依据官网 NCSI active probes 相关注册表项目,写了一个简单bat脚本处理该问题.

下载下述文件运行
掉线修复

内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
@echo off
%1 mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c %~s0 ::","","runas",1)(window.close)&&exit ::以管理员的身份运行cmd,其中runas有提权的作用,成功后关闭退出

:main
cls ::清屏

reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NlaSvc\Parameters\Internet" /v EnableActiveProbing /t REG_DWORD /d "0" /f
reg add "HKLM\Software\Policies\Microsoft\Windows\NetworkConnectivityStatusIndicator" /v NoActiveProbe /t REG_DWORD /d "0" /f
reg add "HKLM\Software\Policies\Microsoft\Windows\NetworkConnectivityStatusIndicator" /v DisablePassivePolling /t REG_DWORD /d "0" /f

echo.-----------------------------------------------------------
echo.
echo.
echo 已修复掉线问题
echo.
goto end

:end
echo 请按任意键退出。
@Pause>nul ::>nul表示不显示前面命令的结果信息

ipconfig /flushdns

吐槽

win11 是真的烂,这么重要的变更居然官网找不到任何信息,排查的时候简直把人头都想秃了!