virito net: revert to previous DNS behavior while we debug an issue with DNS over TCP (#14532)

Co-authored-by: Ben Hillis <benhill@ntdev.microsoft.com>

Ben Hillis committed Mar 25, 2026 at 13:30 UTC 7370bf2bb53ded977bfbc1302bae5f8d7f5d55f1
3 files changed +7 -41
src/windows/common/WslCoreConfig.cpp
+5 -9
@@ -474,19 +474,15 @@ void wsl::core::Config::Initialize(_In_opt_ HANDLE UserToken)
474 EnableVirtio9p = false;
475 }
476
477 - if (NetworkingMode != NetworkingMode::Nat && NetworkingMode != NetworkingMode::Mirrored && NetworkingMode != NetworkingMode::VirtioProxy)
477 + if (NetworkingMode != NetworkingMode::Nat && NetworkingMode != NetworkingMode::Mirrored)
478 {
479 - VALIDATE_CONFIG_OPTION(
480 - (NetworkingMode != NetworkingMode::Nat && NetworkingMode != NetworkingMode::Mirrored && NetworkingMode != NetworkingMode::VirtioProxy),
481 - EnableDnsTunneling,
482 - false);
479 + VALIDATE_CONFIG_OPTION((NetworkingMode != NetworkingMode::Nat && NetworkingMode != NetworkingMode::Mirrored), EnableDnsTunneling, false);
480 }
481
485 - if (!EnableDnsTunneling || NetworkingMode == NetworkingMode::VirtioProxy)
482 + if (!EnableDnsTunneling)
483 {
487 - VALIDATE_CONFIG_OPTION(!EnableDnsTunneling || NetworkingMode == NetworkingMode::VirtioProxy, BestEffortDnsParsing, false);
488 - VALIDATE_CONFIG_OPTION(
489 - !EnableDnsTunneling || NetworkingMode == NetworkingMode::VirtioProxy, DnsTunnelingIpAddress, std::optional<uint32_t>{});
484 + VALIDATE_CONFIG_OPTION(!EnableDnsTunneling, BestEffortDnsParsing, false);
485 + VALIDATE_CONFIG_OPTION(!EnableDnsTunneling, DnsTunnelingIpAddress, std::optional<uint32_t>{});
486 }
487
488 if (NetworkingMode != NetworkingMode::Mirrored)
src/windows/service/exe/WslCoreVm.cpp
+2 -5
@@ -520,7 +520,7 @@ void WslCoreVm::Initialize(const GUID& VmId, const wil::shared_handle& UserToken
520 message->MemoryReclaimMode = static_cast<LX_MINI_INIT_MEMORY_RECLAIM_MODE>(m_vmConfig.MemoryReclaim);
521 message->EnableDebugShell = m_vmConfig.EnableDebugShell;
522 message->EnableSafeMode = m_vmConfig.EnableSafeMode;
523 - message->EnableDnsTunneling = m_vmConfig.EnableDnsTunneling && m_vmConfig.NetworkingMode != NetworkingMode::VirtioProxy;
523 + message->EnableDnsTunneling = m_vmConfig.EnableDnsTunneling;
524 message->DefaultKernel = m_defaultKernel;
525 message->KernelModulesDeviceId = m_kernelModulesDeviceId;
526 message.WriteString(message->HostnameOffset, wsl::windows::common::filesystem::GetLinuxHostName());
@@ -578,7 +578,6 @@ void WslCoreVm::Initialize(const GUID& VmId, const wil::shared_handle& UserToken
578 {
579 wsl::core::VirtioNetworkingFlags flags = wsl::core::VirtioNetworkingFlags::Ipv6;
580 WI_SetFlagIf(flags, wsl::core::VirtioNetworkingFlags::LocalhostRelay, m_vmConfig.EnableLocalhostRelay);
581 - WI_SetFlagIf(flags, wsl::core::VirtioNetworkingFlags::DnsTunneling, m_vmConfig.EnableDnsTunneling);
581 m_networkingEngine = std::make_unique<wsl::core::VirtioNetworking>(
582 std::move(gnsChannel), flags, LX_INIT_RESOLVCONF_FULL_HEADER, m_guestDeviceManager, m_userToken);
583 }
@@ -1932,9 +1931,7 @@ bool WslCoreVm::InitializeDrvFsLockHeld(_In_ HANDLE UserToken)
1931
1932 bool WslCoreVm::IsDnsTunnelingSupported() const
1933 {
1935 - WI_ASSERT(
1936 - m_vmConfig.NetworkingMode == NetworkingMode::Nat || m_vmConfig.NetworkingMode == NetworkingMode::Mirrored ||
1937 - m_vmConfig.NetworkingMode == NetworkingMode::VirtioProxy);
1934 + WI_ASSERT(m_vmConfig.NetworkingMode == NetworkingMode::Nat || m_vmConfig.NetworkingMode == NetworkingMode::Mirrored);
1935
1936 return SUCCEEDED_LOG(wsl::core::networking::DnsResolver::LoadDnsResolverMethods());
1937 }
test/windows/NetworkTests.cpp
-27
@@ -5018,33 +5018,6 @@ class VirtioProxyTests
5018 VERIFY_IS_TRUE(std::regex_match(out, v6Pattern));
5019 }
5020
5021 - TEST_METHOD(DnsResolutionBasicDnsTunneling)
5022 - {
5023 - VIRTIOPROXY_TEST_ONLY();
5024 - DNS_TUNNELING_TEST_ONLY();
5025 -
5026 - m_config->Update(LxssGenerateTestConfig({.networkingMode = wsl::core::NetworkingMode::VirtioProxy, .dnsTunneling = true}));
5027 - NetworkTests::VerifyDnsResolutionBasic();
5028 - }
5029 -
5030 - TEST_METHOD(DnsResolutionDigDnsTunneling)
5031 - {
5032 - VIRTIOPROXY_TEST_ONLY();
5033 - DNS_TUNNELING_TEST_ONLY();
5034 -
5035 - m_config->Update(LxssGenerateTestConfig({.networkingMode = wsl::core::NetworkingMode::VirtioProxy, .dnsTunneling = true}));
5036 - NetworkTests::VerifyDnsResolutionDig();
5037 - }
5038 -
5039 - TEST_METHOD(DnsResolutionRecordTypesDnsTunneling)
5040 - {
5041 - VIRTIOPROXY_TEST_ONLY();
5042 - DNS_TUNNELING_TEST_ONLY();
5043 -
5044 - m_config->Update(LxssGenerateTestConfig({.networkingMode = wsl::core::NetworkingMode::VirtioProxy, .dnsTunneling = true}));
5045 - NetworkTests::VerifyDnsResolutionRecordTypes();
5046 - }
5047 -
5021 TEST_METHOD(DnsResolutionBasic)
5022 {
5023 VIRTIOPROXY_TEST_ONLY();