From 74ea0bb60ca9a9744a589f23a570d1d32cb30018 Mon Sep 17 00:00:00 2001 From: RyanJHamby Date: Tue, 14 Jul 2026 13:19:15 -0400 Subject: [PATCH 1/2] docs: fix DNS lookup delay from IPv6 resolver stall MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The getting-started guide only configures IPv4 networking for the guest, but glibc's resolver still attempts parallel A/AAAA lookups by default. If the host has IPv6 connectivity, the guest's IPv6 query stalls until timeout before falling back to IPv4, adding several seconds to every DNS lookup (see #5512). Setting 'single-request-reopen' in resolv.conf makes the resolver issue A and AAAA queries sequentially over separate sockets, avoiding the stall. Tested with ./tools/devtool checkstyle — all style/markdown checks passed, including test_markdown_style and test_markdown_internal_links. Signed-off-by: RyanJHamby --- docs/getting-started.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/docs/getting-started.md b/docs/getting-started.md index 532a6741df4..23f17a440aa 100644 --- a/docs/getting-started.md +++ b/docs/getting-started.md @@ -322,6 +322,14 @@ ssh -i $KEY_NAME root@172.16.0.2 "ip route add default via 172.16.0.1 dev eth0" # Setup DNS resolution in the guest ssh -i $KEY_NAME root@172.16.0.2 "echo 'nameserver 8.8.8.8' > /etc/resolv.conf" +# This guide only configures IPv4 networking for the guest. If the host has +# IPv6 connectivity, glibc's resolver will attempt parallel A/AAAA lookups by +# default, and the IPv6 attempt will stall until it times out before falling +# back to IPv4, adding several seconds of delay to every DNS lookup. Setting +# `single-request-reopen` makes the resolver perform the A and AAAA queries +# sequentially over separate sockets instead, avoiding the stall. +ssh -i $KEY_NAME root@172.16.0.2 "echo 'options single-request-reopen' >> /etc/resolv.conf" + # SSH into the microVM ssh -i $KEY_NAME root@172.16.0.2 From f16275e4fa0850fd4bcfa7e55db26c0b88a4e603 Mon Sep 17 00:00:00 2001 From: RyanJHamby Date: Fri, 17 Jul 2026 21:24:30 -0400 Subject: [PATCH 2/2] docs: shorten resolver comment per review feedback MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Shortens the inline comment explaining the single-request-reopen fix per review feedback on #6033, and softens 'will stall until it times out' to 'can stall', since the behavior is intermittent and kernel dependent rather than guaranteed. Tested with ./tools/devtool checkstyle — all style/markdown checks passed, including test_markdown_style and test_markdown_internal_links. Signed-off-by: RyanJHamby --- docs/getting-started.md | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/docs/getting-started.md b/docs/getting-started.md index 23f17a440aa..a0a32297c24 100644 --- a/docs/getting-started.md +++ b/docs/getting-started.md @@ -322,12 +322,8 @@ ssh -i $KEY_NAME root@172.16.0.2 "ip route add default via 172.16.0.1 dev eth0" # Setup DNS resolution in the guest ssh -i $KEY_NAME root@172.16.0.2 "echo 'nameserver 8.8.8.8' > /etc/resolv.conf" -# This guide only configures IPv4 networking for the guest. If the host has -# IPv6 connectivity, glibc's resolver will attempt parallel A/AAAA lookups by -# default, and the IPv6 attempt will stall until it times out before falling -# back to IPv4, adding several seconds of delay to every DNS lookup. Setting -# `single-request-reopen` makes the resolver perform the A and AAAA queries -# sequentially over separate sockets instead, avoiding the stall. +# glibc resolves A/AAAA in parallel; on an IPv6-connected host the AAAA query +# can stall on host NAT, adding seconds per lookup. ssh -i $KEY_NAME root@172.16.0.2 "echo 'options single-request-reopen' >> /etc/resolv.conf" # SSH into the microVM