Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 14 Aug 2024 16:38:04 -0700
From:      Alex Arslan <ararslan@comcast.net>
To:        "Rodney W. Grimes" <freebsd-rwg@gndrsh.dnsmgr.net>
Cc:        Bakul Shah <bakul@iitbombay.org>, FreeBSD Hackers <freebsd-hackers@freebsd.org>
Subject:   Re: Diagnosing virtual machine network issues
Message-ID:  <08AA87E3-D631-4EA1-AA30-37B4709630CB@comcast.net>
In-Reply-To: <202408141829.47EITc7B080532@gndrsh.dnsmgr.net>
References:  <202408141829.47EITc7B080532@gndrsh.dnsmgr.net>

next in thread | previous in thread | raw e-mail | index | archive | help

--Apple-Mail=_92F98D39-DE38-40D3-865E-5B5E24DB9BDC
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=utf-8


> On Aug 14, 2024, at 11:29=E2=80=AFAM, Rodney W. Grimes =
<freebsd-rwg@gndrsh.dnsmgr.net> wrote:
>=20
>>>=20
>>> On Aug 13, 2024, at 9:15?AM, Bakul Shah <bakul@iitbombay.org> wrote:
>>>=20
>>> This weird 127. address seems like a systemd feature/bug thing: =
https://unix.stackexchange.com/questions/612416/why-does-etc-resolv-conf-p=
oint-at-127-0-0-53
>>>=20
>>> This behavior seems like some strange interaction between systemd =
assumptions and freebsd?s, or something not being set up quite right on =
the linux side when the vm is running freebsd.=20
>>=20
>> Could libvirt be a factor here, do you think? For example, perhaps =
the
>> network should be configured differently than the default when the =
host
>> is using systemd-resolved and/or when the guest is FreeBSD. In the =
network
>> XML format for libvirt (https://libvirt.org/formatnetwork.html), =
there is
>> a `domain` element with a `localOnly` attribute that I have seen set =
by
>> some virtualization projects. As far as I can tell, our setup isn't =
using
>> the `domain` element at all.
>=20
> Having a /etc/resolv.conf entry of 127.0.0.53 is indeed something
> out of the normal on a freebsd box.  You need to find where that
> is coming from and why that value is used.

The 127.0.0.53 entry in /etc/resolv.conf is on the Linux host machine,
not on the FreeBSD VM. The host is using `systemd-resolved` for managing
its /etc/resolv.conf. In the VM, /etc/resolv.conf has the host IP by
default, and we added 8.8.8.8 so that it wouldn't take a full 30 seconds
to report a domain resolution failure.

>>=20
>>>=20
>>>> On Aug 13, 2024, at 8:46 AM, Alex Arslan <ararslan@comcast.net> =
wrote:
>>>>=20
>>>> ?
>>>> Hi Rodney,
>>>>=20
>>>>> On Aug 10, 2024, at 9:11?AM, Rodney W. Grimes =
<freebsd-rwg@gndrsh.dnsmgr.net> wrote:
>>>>>=20
>>>>>>=20
>>>>>>=20
>>>>>>> On Aug 2, 2024, at 5:58?PM, Bakul Shah <bakul@iitbombay.org> =
wrote:
>>>>>>>=20
>>>>>>> On Aug 2, 2024, at 3:52?PM, Alex Arslan <ararslan@comcast.net> =
wrote:
>>>>>>>>=20
>>>>>>>>> Just a comment and a name server line:
>>>>>>>>>=20
>>>>>>>>> $ cat /etc/resolv.conf
>>>>>>>>> # Generated by resolvconf
>>>>>>>>> nameserver 192.168.122.1
>>>>>>>>=20
>>>>>>>> I believe that is the host IP, so I guess the VM is using the =
host for DNS
>>>>>>>> resolution? Interestingly, if I add `nameserver 8.8.8.8` below =
the line
>>>>>>>> with the host IP, it takes 10 seconds rather than 30 to reach =
the expected
>>>>>>>> domain resolution failure. If I put 8.8.8.8 above the host IP, =
the domain
>>>>>>>> resolution failure is instantaneous.
>>>>>>>=20
>>>>>>> What does your host use as a namesever?
>>>>>>=20
>>>>>> The nameserver is 127.0.0.53. It sets options edns0 and trust-ad, =
and
>>>>>> includes a search entry as well.
>>>>>=20
>>>>> First, is that a typo and you mean 127.0.0.1:53?
>>>>=20
>>>> No, the host's /etc/resolv.conf has `nameserver 127.0.0.53`, I just =
went
>>>> back and rechecked to be sure.
>>>>=20
>>>>> Second, is that name server locked to 127.0.0.1, or is it
>>>>> actually listinging on *:53?  If it is LOCKED you have no name =
server
>>>>> running on 192.168.122.1 to be reached by the VM, if it is NOT =
locked
>>>>> can the guest ping 192.168.122.1, and can it reach dns at that IP =
on
>>>>> port 53?   Can the host send a packet BACK to the guest?
>>>>=20
>>>> I apologize but I don't really know enough about these things to =
know how
>>>> to answer your question. I did post the output of tcpdump on the VM =
and
>>>> the host a while back but that was for the invalid request, so that
>>>> probably doesn't capture what you're describing.
>>>>=20
>>>>> Third you can "fix" the "nameserver 192.168.122.1" entry in =
/etc/resolv.conf
>>>>> by configuring the DHCP server that handed out the lease to the VM =
to send
>>>>> a namserver entry of 8.8.8.8.
>>>>=20
>>>> If I understand correctly, that is indeed what we've done as a =
Band-Aid fix
>>>> for the time being: I added the line `prepend_nameservers=3D8.8.8.8` =
to
>>>> /etc/resolvconf.conf.
>>>>=20
>>>>>>=20
>>>>>>>=20
>>>>>>>> Not a particularly satisfying conclusion to this saga as I =
don't understand
>>>>>>>> why it's happening but at least I have a workaround that should =
hopefully
>>>>>>>> do the job. I really appreciate everyone's help and input thus =
far!
>>>>>>>>=20
>>>>>>>> What's the best way to add `nameserver 8.8.8.8` to =
/etc/resolv.conf as
>>>>>>>> part of the VM's configuration?
>>>>>>>=20
>>>>>>> You should diagnose the problem of the nameserver at =
192.168.122.1
>>>>>>> and fix it to act properly. I don't use vm (just bhyve) so can't =
help
>>>>>>> you with its config.
>>>>>>=20
>>>>>> I do still plan to try to figure out what the actual issue is, =
but I also
>>>>>> now have a path forward in the meantime. :)
>>>>>>=20
>>>>>>=20
>>>>>=20
>>>>> --=20
>>>>> Rod Grimes                                                 =
rgrimes@freebsd.org =
<mailto:rgrimes@freebsd.org><mailto:rgrimes@freebsd.org>
>>=20
>=20
> --=20
> Rod Grimes                                                 =
rgrimes@freebsd.org <mailto:rgrimes@freebsd.org>

--Apple-Mail=_92F98D39-DE38-40D3-865E-5B5E24DB9BDC
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html;
	charset=utf-8

<html><head><meta http-equiv=3D"content-type" content=3D"text/html; =
charset=3Dutf-8"></head><body style=3D"overflow-wrap: break-word; =
-webkit-nbsp-mode: space; line-break: =
after-white-space;"><br><div><blockquote type=3D"cite"><div>On Aug 14, =
2024, at 11:29=E2=80=AFAM, Rodney W. Grimes =
&lt;freebsd-rwg@gndrsh.dnsmgr.net&gt; wrote:</div><br =
class=3D"Apple-interchange-newline"><div><meta =
charset=3D"UTF-8"><blockquote type=3D"cite" style=3D"font-family: =
Helvetica; font-size: 12px; font-style: normal; font-variant-caps: =
normal; font-weight: 400; letter-spacing: normal; orphans: auto; =
text-align: start; text-indent: 0px; text-transform: none; white-space: =
normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; =
text-decoration: none;"><blockquote type=3D"cite"><br =
class=3D"Apple-interchange-newline">On Aug 13, 2024, at 9:15?AM, Bakul =
Shah &lt;bakul@iitbombay.org&gt; wrote:<br><br>This weird 127. address =
seems like a systemd feature/bug thing: =
https://unix.stackexchange.com/questions/612416/why-does-etc-resolv-conf-p=
oint-at-127-0-0-53<br><br>This behavior seems like some strange =
interaction between systemd assumptions and freebsd?s, or something not =
being set up quite right on the linux side when the vm is running =
freebsd.<span =
class=3D"Apple-converted-space">&nbsp;</span><br></blockquote><br>Could =
libvirt be a factor here, do you think? For example, perhaps =
the<br>network should be configured differently than the default when =
the host<br>is using systemd-resolved and/or when the guest is FreeBSD. =
In the network<br>XML format for libvirt =
(https://libvirt.org/formatnetwork.html), there is<br>a `domain` element =
with a `localOnly` attribute that I have seen set by<br>some =
virtualization projects. As far as I can tell, our setup isn't =
using<br>the `domain` element at all.<br></blockquote><br =
style=3D"caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: =
12px; font-style: normal; font-variant-caps: normal; font-weight: 400; =
letter-spacing: normal; text-align: start; text-indent: 0px; =
text-transform: none; white-space: normal; word-spacing: 0px; =
-webkit-text-stroke-width: 0px; text-decoration: none;"><span =
style=3D"caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: =
12px; font-style: normal; font-variant-caps: normal; font-weight: 400; =
letter-spacing: normal; text-align: start; text-indent: 0px; =
text-transform: none; white-space: normal; word-spacing: 0px; =
-webkit-text-stroke-width: 0px; text-decoration: none; float: none; =
display: inline !important;">Having a /etc/resolv.conf entry of =
127.0.0.53 is indeed something</span><br style=3D"caret-color: rgb(0, 0, =
0); font-family: Helvetica; font-size: 12px; font-style: normal; =
font-variant-caps: normal; font-weight: 400; letter-spacing: normal; =
text-align: start; text-indent: 0px; text-transform: none; white-space: =
normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; =
text-decoration: none;"><span style=3D"caret-color: rgb(0, 0, 0); =
font-family: Helvetica; font-size: 12px; font-style: normal; =
font-variant-caps: normal; font-weight: 400; letter-spacing: normal; =
text-align: start; text-indent: 0px; text-transform: none; white-space: =
normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; =
text-decoration: none; float: none; display: inline !important;">out of =
the normal on a freebsd box. &nbsp;You need to find where that</span><br =
style=3D"caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: =
12px; font-style: normal; font-variant-caps: normal; font-weight: 400; =
letter-spacing: normal; text-align: start; text-indent: 0px; =
text-transform: none; white-space: normal; word-spacing: 0px; =
-webkit-text-stroke-width: 0px; text-decoration: none;"><span =
style=3D"caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: =
12px; font-style: normal; font-variant-caps: normal; font-weight: 400; =
letter-spacing: normal; text-align: start; text-indent: 0px; =
text-transform: none; white-space: normal; word-spacing: 0px; =
-webkit-text-stroke-width: 0px; text-decoration: none; float: none; =
display: inline !important;">is coming from and why that value is =
used.</span><br style=3D"caret-color: rgb(0, 0, 0); font-family: =
Helvetica; font-size: 12px; font-style: normal; font-variant-caps: =
normal; font-weight: 400; letter-spacing: normal; text-align: start; =
text-indent: 0px; text-transform: none; white-space: normal; =
word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: =
none;"></div></blockquote><div><br></div><div><div><div>The 127.0.0.53 =
entry in /etc/resolv.conf is on the Linux host machine,</div><div>not on =
the FreeBSD VM. The host is using `systemd-resolved` for =
managing</div><div>its /etc/resolv.conf. In the VM, /etc/resolv.conf has =
the host IP by</div><div>default, and we added 8.8.8.8 so that it =
wouldn't take a full 30 seconds</div><div>to report a domain resolution =
failure.</div></div><div><br></div></div><blockquote =
type=3D"cite"><div><blockquote type=3D"cite" style=3D"font-family: =
Helvetica; font-size: 12px; font-style: normal; font-variant-caps: =
normal; font-weight: 400; letter-spacing: normal; orphans: auto; =
text-align: start; text-indent: 0px; text-transform: none; white-space: =
normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; =
text-decoration: none;"><br><blockquote type=3D"cite"><br><blockquote =
type=3D"cite">On Aug 13, 2024, at 8:46 AM, Alex Arslan =
&lt;ararslan@comcast.net&gt; wrote:<br><br>?<br>Hi =
Rodney,<br><br><blockquote type=3D"cite">On Aug 10, 2024, at 9:11?AM, =
Rodney W. Grimes &lt;freebsd-rwg@gndrsh.dnsmgr.net&gt; =
wrote:<br><br><blockquote type=3D"cite"><br><br><blockquote =
type=3D"cite">On Aug 2, 2024, at 5:58?PM, Bakul Shah =
&lt;bakul@iitbombay.org&gt; wrote:<br><br>On Aug 2, 2024, at 3:52?PM, =
Alex Arslan &lt;ararslan@comcast.net&gt; wrote:<br><blockquote =
type=3D"cite"><br><blockquote type=3D"cite">Just a comment and a name =
server line:<br><br>$ cat /etc/resolv.conf<br># Generated by =
resolvconf<br>nameserver 192.168.122.1<br></blockquote><br>I believe =
that is the host IP, so I guess the VM is using the host for =
DNS<br>resolution? Interestingly, if I add `nameserver 8.8.8.8` below =
the line<br>with the host IP, it takes 10 seconds rather than 30 to =
reach the expected<br>domain resolution failure. If I put 8.8.8.8 above =
the host IP, the domain<br>resolution failure is =
instantaneous.<br></blockquote><br>What does your host use as a =
namesever?<br></blockquote><br>The nameserver is 127.0.0.53. It sets =
options edns0 and trust-ad, and<br>includes a search entry as =
well.<br></blockquote><br>First, is that a typo and you mean =
127.0.0.1:53?<br></blockquote><br>No, the host's /etc/resolv.conf has =
`nameserver 127.0.0.53`, I just went<br>back and rechecked to be =
sure.<br><br><blockquote type=3D"cite">Second, is that name server =
locked to 127.0.0.1, or is it<br>actually listinging on *:53? &nbsp;If =
it is LOCKED you have no name server<br>running on 192.168.122.1 to be =
reached by the VM, if it is NOT locked<br>can the guest ping =
192.168.122.1, and can it reach dns at that IP on<br>port 53? =
&nbsp;&nbsp;Can the host send a packet BACK to the =
guest?<br></blockquote><br>I apologize but I don't really know enough =
about these things to know how<br>to answer your question. I did post =
the output of tcpdump on the VM and<br>the host a while back but that =
was for the invalid request, so that<br>probably doesn't capture what =
you're describing.<br><br><blockquote type=3D"cite">Third you can "fix" =
the "nameserver 192.168.122.1" entry in /etc/resolv.conf<br>by =
configuring the DHCP server that handed out the lease to the VM to =
send<br>a namserver entry of 8.8.8.8.<br></blockquote><br>If I =
understand correctly, that is indeed what we've done as a Band-Aid =
fix<br>for the time being: I added the line =
`prepend_nameservers=3D8.8.8.8` =
to<br>/etc/resolvconf.conf.<br><br><blockquote type=3D"cite"><blockquote =
type=3D"cite"><br><blockquote type=3D"cite"><br><blockquote =
type=3D"cite">Not a particularly satisfying conclusion to this saga as I =
don't understand<br>why it's happening but at least I have a workaround =
that should hopefully<br>do the job. I really appreciate everyone's help =
and input thus far!<br><br>What's the best way to add `nameserver =
8.8.8.8` to /etc/resolv.conf as<br>part of the VM's =
configuration?<br></blockquote><br>You should diagnose the problem of =
the nameserver at 192.168.122.1<br>and fix it to act properly. I don't =
use vm (just bhyve) so can't help<br>you with its =
config.<br></blockquote><br>I do still plan to try to figure out what =
the actual issue is, but I also<br>now have a path forward in the =
meantime. :)<br><br><br></blockquote><br>--<span =
class=3D"Apple-converted-space">&nbsp;</span><br>Rod Grimes =
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a =
href=3D"mailto:rgrimes@freebsd.org">rgrimes@freebsd.org</a>&lt;<a =
href=3D"mailto:rgrimes@freebsd.org">mailto:rgrimes@freebsd.org</a>&gt;<br>=
</blockquote></blockquote></blockquote><br></blockquote><br =
style=3D"caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: =
12px; font-style: normal; font-variant-caps: normal; font-weight: 400; =
letter-spacing: normal; text-align: start; text-indent: 0px; =
text-transform: none; white-space: normal; word-spacing: 0px; =
-webkit-text-stroke-width: 0px; text-decoration: none;"><span =
style=3D"caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: =
12px; font-style: normal; font-variant-caps: normal; font-weight: 400; =
letter-spacing: normal; text-align: start; text-indent: 0px; =
text-transform: none; white-space: normal; word-spacing: 0px; =
-webkit-text-stroke-width: 0px; text-decoration: none; float: none; =
display: inline !important;">--<span =
class=3D"Apple-converted-space">&nbsp;</span></span><br =
style=3D"caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: =
12px; font-style: normal; font-variant-caps: normal; font-weight: 400; =
letter-spacing: normal; text-align: start; text-indent: 0px; =
text-transform: none; white-space: normal; word-spacing: 0px; =
-webkit-text-stroke-width: 0px; text-decoration: none;"><span =
style=3D"caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: =
12px; font-style: normal; font-variant-caps: normal; font-weight: 400; =
letter-spacing: normal; text-align: start; text-indent: 0px; =
text-transform: none; white-space: normal; word-spacing: 0px; =
-webkit-text-stroke-width: 0px; text-decoration: none; float: none; =
display: inline !important;">Rod Grimes =
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><=
a href=3D"mailto:rgrimes@freebsd.org" style=3D"font-family: Helvetica; =
font-size: 12px; font-style: normal; font-variant-caps: normal; =
font-weight: 400; letter-spacing: normal; orphans: auto; text-align: =
start; text-indent: 0px; text-transform: none; white-space: normal; =
widows: auto; word-spacing: 0px; -webkit-text-stroke-width: =
0px;">rgrimes@freebsd.org</a></div></blockquote></div><br></body></html>=

--Apple-Mail=_92F98D39-DE38-40D3-865E-5B5E24DB9BDC--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?08AA87E3-D631-4EA1-AA30-37B4709630CB>