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();