wip address cr

Catalin-Emil Fetoiu committed Aug 24, 2023 at 17:02 UTC 2aedc74cb8d2d2758fa58f58148c973953617bb2
4 files changed +105 -94
diagnostics/networking.bat deleted
-57
@@ -1,57 +0,0 @@
1 -@echo off
2 -:: Note: This script terminates WSL. Save your work before running it.
3 -
4 -:: Check for administrator privileges.
5 -net session >nul 2>&1 || goto :admin
6 -
7 -:: Validate that required files are here.
8 -if not exist wsl_networking.wprp (echo wsl_networking.wprp not found && exit /b 1)
9 -if not exist networking.sh (echo networking.sh not found && exit /b 1)
10 -
11 -:: Capture the store WSL version
12 -echo "WSL version (Might be help text if store WSL is not installed):"
13 -wsl.exe --version
14 -
15 -:: List installed Windows features.
16 -echo Windows features:
17 -powershell.exe -NoProfile "Get-WindowsOptionalFeature -Online | ? State -eq Enabled | select FeatureName"
18 -
19 -:: List all HNS objects.
20 -echo HNS objects:
21 -hnsdiag list all -df
22 -
23 -:: Print the Windows routing table.
24 -echo Routing table:
25 -netstat.exe -rn
26 -
27 -:: The WSL HNS network is created once per boot. Resetting it to collect network creation logs.
28 -echo Deleting HNS network
29 -powershell.exe -NoProfile "Get-HnsNetwork | Where-Object {$_.Name -eq 'WSL'} | Remove-HnsNetwork"
30 -
31 -:: Stop WSL.
32 -net.exe stop WslService || net.exe stop LxssManager
33 -
34 -:: Start packet capture.
35 -powershell.exe -NoProfile "New-NetEventSession HnsPacketCapture -CaptureMode SaveToFile -LocalFilePath %cd%\\packets.etl" || goto :fail
36 -powershell.exe -NoProfile "Add-NetEventPacketCaptureProvider -Level 5 -SessionName HnsPacketCapture -CaptureType BothPhysicalAndSwitch " || goto :fail
37 -powershell.exe -NoProfile "Start-NetEventSession HnsPacketCapture" || goto :fail
38 -
39 -:: Collect WSL logs.
40 -wpr -start wsl_networking.wprp -filemode || goto :fail
41 -wsl.exe tr -d "\r" ^| bash < ./networking.sh
42 -
43 -wpr -stop wsl.etl || goto :fail
44 -powershell -NoProfile "Stop-NetEventSession HnsPacketCapture; Remove-NetEventSession HnsPacketCapture" || goto :fail
45 -
46 -exit /b 0
47 -
48 -:: Error message if the WSL logs fail to collect.
49 -:fail
50 -echo Failed to collect WSL logs.
51 -powershell -NoProfile "Stop-NetEventSession HnsPacketCapture; Remove-NetEventSession HnsPacketCapture"
52 -exit /b 1
53 -
54 -:: Error message if the user does not have administrative privileges.
55 -:admin
56 -echo This script needs to run with administrative privileges.
57 -exit /b 1
diagnostics/networking.sh
-25
@@ -1,10 +1,4 @@
1 #! /bin/bash
2 -if (($(id -u) != 0))
3 -then
4 - printf "If you see 'ping: socket: Operation not permitted' errors, "
5 - printf "run this command as root.\n"
6 -fi
7 -
2 set -xu
3
4 # Gather distro & kernel info.
@@ -17,24 +11,5 @@ ip route show table all
11 ip neighbor
12 ip link
13
20 -# Validate that the gateway is responsive and can route ICMP correctly.
21 -if gateway=$(ip route show | awk '/default/ { print $3 }'); then
22 - ping -c 4 "$gateway"
23 -else
24 - echo 'No gateway found.'
25 -fi
26 -
27 -ping -c 4 1.1.1.1
28 -
29 -# Validate that the default route is working (won't work if traceroute isn't installed).
30 -traceroute 1.1.1.1
31 -
14 # Display the DNS configuration.
15 cat /etc/resolv.conf
34 -
35 -# Validate that everything is functioning correctly.
36 -if type curl >/dev/null 2>&1; then
37 - curl -m 5 -v https://microsoft.com
38 -else
39 - wget -T 5 -v https://microsoft.com
40 -fi
diagnostics/networking_diagnostics.bat
+35 -12
@@ -1,13 +1,31 @@
1 +:: Check for administrator privileges.
2 +net session >nul 2>&1 || goto :admin
3 +
4 +:: Validate that required files are here.
5 +if not exist wsl_networking.wprp (echo wsl_networking.wprp not found && exit /b 1)
6 +if not exist networking.sh (echo networking.sh not found && exit /b 1)
7 +
8 set networking_folder=".\networking_logs"
9 set neworking_logs_zip=".\WslNetworkingLogs.zip"
10
11 mkdir %networking_folder%
12
6 -wsl.exe tr -d "\r" ^| bash < ./networking.sh > %networking_folder%\wsl_network_configuration_before.log
7 -powershell Get-NetRoute > %networking_folder%\get_netroute.log
13 +cd %networking_folder%
14 +
15 +IF "%1"=="--stop-wsl" (
16 + :: The WSL HNS network is created once per boot. Resetting it to collect network creation logs.
17 + echo Deleting HNS network
18 + powershell.exe -NoProfile "Get-HnsNetwork | Where-Object {$_.Name -eq 'WSL'} | Remove-HnsNetwork"
19 +
20 + :: Stop WSL.
21 + net.exe stop WslService || net.exe stop LxssManager
22 +)
23
9 -powershell invoke-expression 'cmd /c start powershell -Command { .\collect-wsl-logs.ps1 }'
10 -powershell invoke-expression 'cmd /c start powershell -Command { "wsl.exe sudo tcpdump -n -i any > tcpdump.log" }'
24 +wsl.exe tr -d "\r" ^| bash < ../networking.sh > wsl_network_configuration_before.log
25 +powershell Get-NetRoute > get_netroute.log
26 +
27 +powershell invoke-expression 'cmd /c start powershell -Command { ..\collect-wsl-logs.ps1 }'
28 +powershell invoke-expression 'cmd /c start powershell -Command { "wsl.exe -u root sudo tcpdump -n -i any > tcpdump.log" }'
29
30 wpr -start .\wsl_networking.wprp -filemode -instanceName wpr_networking
31 pktmon start -c --flags 0x1A
@@ -16,22 +34,27 @@ netsh wfp capture start
34 pause
35
36 :: allow some time for the user to stop logs in all the spawned shells
19 -:: (particularly the shell running collect-wsl-logs.ps1 will take a bit to stop)
37 timeout 20
38
39 netsh wfp capture stop
40 pktmon stop
24 -wpr -stop %networking_folder%\wsl_networking.etl -instanceName wpr_networking
41 +wpr -stop wsl_networking.etl -instanceName wpr_networking
42
26 -wsl.exe tr -d "\r" ^| bash < ./networking.sh > %networking_folder%\wsl_network_configuration_after.log
43 +wsl.exe tr -d "\r" ^| bash < ../networking.sh > wsl_network_configuration_after.log
44
28 -move tcpdump.log %networking_folder%
29 -move PktMon.etl %networking_folder%
30 -move wfpdiag.cab %networking_folder%
31 -move "*zip" %networking_folder%
45 +cd ..
46
47 +del %neworking_logs_zip%
48 powershell Compress-Archive -Path %networking_folder% -DestinationPath %neworking_logs_zip%
49
50 rmdir /s /q %networking_folder%
51
37 -echo "Finished log collection"
\ No newline at end of file
52 +echo "Finished log collection - please collect the zip archive from the path below"
53 +powershell Resolve-Path %neworking_logs_zip%
54 +
55 +exit /b 0
56 +
57 +:: Error message if the user does not have administrative privileges.
58 +:admin
59 +echo This script needs to run with administrative privileges.
60 +exit /b 1
\ No newline at end of file
diagnostics/wsl_networking.wprp
+70
@@ -9,17 +9,62 @@
9 <EventProvider Id="lxcore_kernel" Name="0CD1C309-0878-4515-83DB-749843B3F5C9"/>
10 <EventProvider Id="lxcore_user" Name="D90B9468-67F0-5B3B-42CC-82AC81FFD960"/>
11 <EventProvider Id="lxcore_service" Name="B99CDB5A-039C-5046-E672-1A0DE0A40211"/>
12 + <EventProvider Id="wsl_devicehost" Name="9d6c7b9e-2581-4d8a-b8c5-b90b4a17094a"/>
13 + <EventProvider Id="wslclient" Name="8cbb7724-7223-5d6f-8137-564dac45104d"/>
14 <EventProvider Id="vm_chipset" Name="de9ba731-7f33-4f44-98c9-6cac856b9f83"/>
15 <EventProvider Id="vmcompute_dll" Name="AF7FD3A7-B248-460C-A9F5-FEC39EF8468C"/>
16 <EventProvider Id="vmcompute" Name="17103E3F-3C6E-4677-BB17-3B267EB5BE57"/>
17 <EventProvider Id="vmmm" Name="6066F867-7CA1-4418-85FD-36E3F9C0600C"/>
18 <EventProvider Id="vmwp" Name="51DDFA29-D5C8-4803-BE4B-2ECB715570FE"/>
19 <EventProvider Id="9p" Name="e13c8d52-b153-571f-78c5-1d4098af2a1e"/>
20 + <EventProvider Id="9p_errors" Name="06C601B3-6957-4F8C-A15F-74875B24429D" />
21 <EventProvider Id="p9rdr" Name="bb1d36f0-e0e0-48cc-9493-fef0e3d0b28c" />
22 <EventProvider Id="mup" Name="20c46239-d059-4214-a11e-7d6769cbe020" />
23 <EventProvider Id="rfsmon" Name="51734B23-5B7E-4892-BA8E-45BC110B735C" />
24 <EventProvider Id="hyperv_storage" Name="c7ad62c6-5c99-5a1b-bbc4-0821ae5b765e" />
25 <EventProvider Id="hns" Name="0c885e0d-6eb6-476c-a048-2457eed3a5c1" />
26 + <EventProvider Id="netmgmt" Name="93f693dc-9163-4dee-af64-d855218af242" />
27 + <EventProvider Id="EventProvider_Microsoft.Windows.Mobile.Provisioning.AppDownload" Name="0BBE6221-EF09-4A3F-82EE-BE00DBB6A98A" />
28 + <EventProvider Id="EventProvider_Microsoft.Windows.Mobile.Provisioning.Datastore" Name="42C60CEA-0FE7-4541-A86B-9E11F95BD9BF" />
29 + <EventProvider Id="EventProvider_Microsoft.Windows.Mobile.Provisioning.PhoneProvisioner" Name="B876B1FC-C7F1-443E-9012-86677F7DE580" />
30 + <EventProvider Id="EventProvider_Microsoft.Windows.Mobile.Provisioning.PPOEM" Name="7EDBED09-1FF7-4FEE-B8C3-5DB694420830" />
31 + <EventProvider Id="EventProvider_Microsoft.Windows.Provisioning.API" Name="82ADD491-01D7-4B85-9EAD-192C3CAACA23" />
32 + <EventProvider Id="EventProvider_Microsoft.Windows.Provisioning.CSP" Name="16E12400-A2D8-44B7-9479-004568EC7819" />
33 + <EventProvider Id="EventProvider_Microsoft.Windows.Provisioning.Engine" Name="A6A847B7-4429-49AA-BBA6-2AD8C191AC8C" />
34 + <EventProvider Id="EventProvider_Microsoft.Windows.Provisioning.Handlers" Name="0383D92C-2337-4F25-A0B5-A51767F04746" />
35 + <EventProvider Id="EventProvider_Microsoft.Windows.Provisioning.Migration" Name="A0AF985E-83F9-4E1A-B658-338DCFE27893" />
36 + <EventProvider Id="EventProvider_Microsoft.Windows.Provisioning.Operations" Name="7F99598F-B2C1-4371-9911-63DEE13B9EB1" />
37 + <EventProvider Id="EventProvider_Microsoft.Windows.Provisioning.Platform" Name="B1F30020-8BC3-4888-BB1B-4DD681F24209" />
38 + <EventProvider Id="EventProvider_Microsoft.Windows.Provisioning.Plugin.Engine" Name="55239D60-0EB6-495B-874E-15DE5D5F9A70" />
39 + <EventProvider Id="EventProvider_Microsoft.Windows.Provisioning.Plugin.RemovableMedia" Name="B55883E6-6C45-45C2-AB9D-800BB7B66B13" />
40 + <EventProvider Id="EventProvider_Microsoft.Windows.Provisioning.ProvTool" Name="2BF4B6BA-556E-4D05-8534-CAFEDF19FED8" />
41 + <EventProvider Id="EventProvider_Microsoft.Windows.Provisioning.CommandCsp" Name="00BB69FC-60BC-4502-9438-25608F375CCB" />
42 + <EventProvider Id="EventProvider_Microsoft.Windows.Provisioning.ProvLaunch" Name="08FACCFA-125D-4ED6-B0B7-B4A1A912E693" />
43 + <EventProvider Id="EventProvider_Microsoft.Windows.EMPS.Enrollment" Name="E74EFD1A-B62D-4B83-AB00-66F4A166A2D3" />
44 + <EventProvider Id="EventProvider_Microsoft.Windows.EnterpriseManagement.Enrollment" Name="F9E3B648-9AF1-4DC3-9A8E-BF42C0FBCE9A" />
45 + <EventProvider Id="virtdisk_wpp" Name="e14dcdd9-d1ec-4dc3-8395-a606df8ef115" Level="4">
46 + <Keywords>
47 + <Keyword Value="0xFFFFFFFFFFFFFFFF" />
48 + </Keywords>
49 + </EventProvider>
50 +
51 + <EventProvider Id="virtdisk" Name="4D20DF22-E177-4514-A369-F1759FEEDEB3" Level="4">
52 + <Keywords>
53 + <Keyword Value="0xFFFFFFFFFFFFFFFF" />
54 + </Keywords>
55 + </EventProvider>
56 +
57 + <EventProvider Id="vhdmp" Name="E2816346-87F4-4F85-95C3-0C79409AA89D" NonPagedMemory="true" Level="4">
58 + <Keywords>
59 + <Keyword Value="0xFFFFFFFFFFFFFFFD" />
60 + </Keywords>
61 + </EventProvider>
62 +
63 + <EventProvider Id="vhdmp_wpp" Name="3c70c3b0-2fae-41d3-b68d-8f7fcaf79adb" NonPagedMemory="true" Level="5">
64 + <Keywords>
65 + <Keyword Value="0xFFFFFFFFFFFFFFFF" />
66 + </Keywords>
67 + </EventProvider>
68 <EventProvider Id="LsaAudit_WPP" Name="DAA76F6A-2D11-4399-A646-1D62B7380F15" />
69 <EventProvider Id="Microsoft_Windows_ResourceManager_WPP" Name="4180C4F7-E238-5519-338F-EC214F0B49AA" />
70 <EventProvider Id="Microsoft_Windows_Security_NGC_KeyCredMgr_WPP" Name="34646397-1635-5D14-4D2C-2FEBDCCCF5E9" />
@@ -170,17 +215,42 @@
215 <EventProviderId Value="lxcore_kernel"/>
216 <EventProviderId Value="lxcore_user"/>
217 <EventProviderId Value="lxcore_service"/>
218 + <EventProviderId Value="wsl_devicehost"/>
219 + <EventProviderId Value="wslclient"/>
220 <EventProviderId Value="vm_chipset"/>
221 <EventProviderId Value="vmcompute_dll"/>
222 <EventProviderId Value="vmcompute"/>
223 <EventProviderId Value="vmmm"/>
224 <EventProviderId Value="vmwp"/>
225 <EventProviderId Value="9p"/>
226 + <EventProviderId Value="9p_errors"/>
227 <EventProviderId Value="p9rdr"/>
228 <EventProviderId Value="mup"/>
229 <EventProviderId Value="rfsmon"/>
230 <EventProviderId Value="hyperv_storage"/>
231 <EventProviderId Value="hns"/>
232 + <EventProviderId Value="netmgmt"/>
233 + <EventProviderId Value="EventProvider_Microsoft.Windows.Mobile.Provisioning.AppDownload"/>
234 + <EventProviderId Value="EventProvider_Microsoft.Windows.Mobile.Provisioning.Datastore"/>
235 + <EventProviderId Value="EventProvider_Microsoft.Windows.Mobile.Provisioning.PhoneProvisioner"/>
236 + <EventProviderId Value="EventProvider_Microsoft.Windows.Mobile.Provisioning.PPOEM"/>
237 + <EventProviderId Value="EventProvider_Microsoft.Windows.Provisioning.CSP"/>
238 + <EventProviderId Value="EventProvider_Microsoft.Windows.Provisioning.Engine"/>
239 + <EventProviderId Value="EventProvider_Microsoft.Windows.Provisioning.Migration"/>
240 + <EventProviderId Value="EventProvider_Microsoft.Windows.Provisioning.Platform"/>
241 + <EventProviderId Value="EventProvider_Microsoft.Windows.Provisioning.Operations"/>
242 + <EventProviderId Value="EventProvider_Microsoft.Windows.Provisioning.Plugin.Engine"/>
243 + <EventProviderId Value="EventProvider_Microsoft.Windows.Provisioning.Plugin.RemovableMedia"/>
244 + <EventProviderId Value="EventProvider_Microsoft.Windows.Provisioning.ProvTool"/>
245 + <EventProviderId Value="EventProvider_Microsoft.Windows.Provisioning.Operations"/>
246 + <EventProviderId Value="EventProvider_Microsoft.Windows.Provisioning.CommandCsp"/>
247 + <EventProviderId Value="EventProvider_Microsoft.Windows.Provisioning.ProvLaunch"/>
248 + <EventProviderId Value="EventProvider_Microsoft.Windows.EMPS.Enrollment"/>
249 + <EventProviderId Value="EventProvider_Microsoft.Windows.EnterpriseManagement.Enrollment"/>
250 + <EventProviderId Value="virtdisk"/>
251 + <EventProviderId Value="virtdisk_wpp"/>
252 + <EventProviderId Value="vhdmp"/>
253 + <EventProviderId Value="vhdmp_wpp"/>
254 <EventProviderId Value="LsaAudit_WPP"/>
255 <EventProviderId Value="Microsoft_Windows_ResourceManager_WPP"/>
256 <EventProviderId Value="Microsoft_Windows_Security_NGC_KeyCredMgr_WPP"/>