Re: IPv6 networking stops on FreeBSD some time after boot

From: Farooq Karimi Zadeh <hapu_at_riseup.net>
Date: Wed, 23 Sep 2026 19:57:48 UTC
<!DOCTYPE html>
<html style="direction: ltr;">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <style id="bidiui-paragraph-margins" type="text/css">body p { margin-bottom: 0cm; margin-top: 0pt; } </style>
  </head>
  <body bidimailui-charset-is-forced="true"
    bidimailui-detected-decoding-type="UTF-8" style="direction: ltr;">
    <div class="moz-cite-prefix">On 9/23/26 22:34, Dmitry Salychev
      wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:86mrt73i20.fsf@paladin.salychev.org">
      <pre wrap="" class="moz-quote-pre">Farooq Karimi Zadeh <a class="moz-txt-link-rfc2396E" href="mailto:hapu@riseup.net">&lt;hapu@riseup.net&gt;</a> writes:

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">Hello

I've got a VPS running 15.1-RELEASE-p1 which has got a network interface "vtnet0" and the provider supports both IPv4 and IPv6. IPv4 works
fine on the machine all the time. However, IPv6 stops

working some time after boot(10-20 minutes).

The IPv6 gateway from the provider is fe80::1. This is "netstat -rn6":

Routing tables

Internet6:
Destination                       Gateway                       Flags         Netif Expire
::/96                             link#2                        URS             lo0
default                           fe80::1%vtnet0                UGS          vtnet0
::1                               link#2                        UHS             lo0
::ffff:0.0.0.0/96                 link#2                        URS             lo0

XXXX:XXX:X:XXX::/64               link#1                        U            vtnet0
XXXX:XXX:X:XXX::1                 link#2                        UHS             lo0
fe80::%lo0/10                     link#2                        URS             lo0
fe80::%vtnet0/64                  link#1                        U            vtnet0
fe80::be24:11ff:febd:184b%lo0     link#2                        UHS             lo0
fe80::%lo0/64                     link#2                        U               lo0
fe80::1%lo0                       link#2                        UHS             lo0
ff02::/16                         link#2                        URS             lo0

This is "ifconfig vtnet0":

vtnet0: flags=1008843&lt;UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST,LOWER_UP&gt; metric 0 mtu 1500
       
options=ec07bb&lt;RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,JUMBO_MTU,VLAN_HWCSUM,TSO4,TSO6,LRO,VLAN_HWTSO,LINKSTATE,RXCSUM_IPV6,TXCSUM_IPV6,HWSTATS&gt;

        ether bc:24:11:bd:18:4b
        inet xxx.xxx.xxx.xxx netmask 0xffffff80 broadcast xxx.xxx.xxx.xxx
        inet6 fe80::be24:11ff:febd:184b%vtnet0 prefixlen 64 scopeid 0x1
        inet6 XXXX:XXX:X:XXX::1 prefixlen 64
        media: Ethernet autoselect (10Gbase-T &lt;full-duplex&gt;)
        status: active
        nd6 options=21&lt;PERFORMNUD,AUTO_LINKLOCAL&gt;

And "cat /etc/rc.conf | grep ipv6":

ifconfig_vtnet0_ipv6="inet6 XXXX:XXX:X:XXX::1/64"
ipv6_defaultrouter="fe80::1%vtnet0"

"ping6 example.com" works for few minutes after a boot.

Any hint appreciated. And let me know if more information is needed.

BR,

Farooq.
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
Could you show /etc/rc.conf (don't forget to strip off all the sensitive
info)? Do you still have the default IPv6 route when you cannot ping
anything? Can you do both `drill -4 example.com` and `drill -6
example.com`?

Regards,
Dmitry

</pre>
    </blockquote>
    <p><br>
    </p>
    <p><br>
    </p>
    <p><font face="Vazir">This is "netstat -rn6" when it doesn't work:</font></p>
    <p><font face="Vazir"><br>
      </font></p>
    <p><font face="Vazir"><br>
        Internet6:<br>
        Destination                       Gateway                     
         Flags         Netif Expire<br>
        ::/96                             link#2                       
        URS             lo0<br>
        default                           fe80::1%vtnet0               
        UGS          vtnet0<br>
        ::1                               link#2                       
        UHS             lo0<br>
        ::ffff:0.0.0.0/96                 link#2                       
        URS             lo0<br>
        XXXX:XXX:X:XXX::/64               link#1                       
        U            vtnet0<br>
        XXXX:XXX:X:XXX::1                 link#2                       
        UHS             lo0<br>
        fe80::%lo0/10                     link#2                       
        URS             lo0<br>
        fe80::%vtnet0/64                  link#1                       
        U            vtnet0<br>
        fe80::be24:11ff:febd:184b%lo0     link#2                       
        UHS             lo0<br>
        fe80::%lo0/64                     link#2                       
        U               lo0<br>
        fe80::1%lo0                       link#2                       
        UHS             lo0<br>
        ff02::/16                         link#2                       
        URS             lo0</font></p>
    <p><font face="Vazir"><br>
      </font></p>
    <p><font face="Vazir">I posted IPv6 configuration in /etc/rc.conf,
        however, here is all of it:</font></p>
    <p><font face="Vazir"><br>
      </font></p>
    <p><font face="Vazir">clear_tmp_enable="YES"<br>
        hostname="XXX"<br>
        ifconfig_vtnet0="inet </font><font face="Vazir">XXX.XXX.XXX.XXX</font><font
        face="Vazir"> netmask 255.255.255.128"<br>
        ifconfig_vtnet0_ipv6="inet6 XXXX:XXX:X:XXX::1/64"<br>
        defaultrouter="XXX.XXX.XXX.XXX"<br>
        ipv6_defaultrouter="fe80::1%vtnet0"<br>
        sshd_enable="YES"<br>
        moused_nondefault_enable="NO"<br>
        # Set dumpdev to "AUTO" to enable crash dumps, "NO" to disable<br>
        dumpdev="NO"<br>
        nginx_enable="YES"<br>
        grafana_enable="NO"<br>
        wstunnel_enable="NO"<br>
        headscale_enable="YES"<br>
        tailscaled_enable="YES"<br>
        transmission_enable="YES"<br>
        pf_enable="no"<br>
        pflog_enable="no"<br>
        pflog_logfile="/var/log/pflog"<br>
        pflog_flags=""<br>
        pf_flags=""<br>
        pf_rules="/etc/pf.conf"<br>
        gateway_enable="no"<br>
        tor_enable="YES"<br>
        dnstt_enable="YES"<br>
        socks_proxy_enable="YES"<br>
        snowflake_enable="YES"</font></p>
    <p><font face="Vazir"><br>
      </font></p>
    <p><font face="Vazir">Output of "drill -4 example.com":</font></p>
    <p><font face="Vazir"><br>
      </font></p>
    <p><font face="Vazir">;; -&gt;&gt;HEADER&lt;&lt;- opcode: QUERY,
        rcode: NOERROR, id: 52119<br>
        ;; flags: qr rd ra ; QUERY: 1, ANSWER: 2, AUTHORITY: 0,
        ADDITIONAL: 0 <br>
        ;; QUESTION SECTION:<br>
        ;; example.com. IN      A<br>
        <br>
        ;; ANSWER SECTION:<br>
        example.com.    300     IN      A       104.20.23.154<br>
        example.com.    300     IN      A       172.66.147.243<br>
        <br>
        ;; AUTHORITY SECTION:<br>
        <br>
        ;; ADDITIONAL SECTION:<br>
        <br>
        ;; Query time: 15 msec<br>
        ;; SERVER: 8.8.8.8<br>
        ;; WHEN: Wed Sep 23 23:22:08 2026<br>
        ;; MSG SIZE  rcvd: 61</font></p>
    <p><font face="Vazir"><br>
      </font></p>
    <p><font face="Vazir">Output of "drill -6 example.com":</font></p>
    <p><font face="Vazir"><br>
      </font></p>
    <p><font face="Vazir">Error: error sending query: No (valid)
        nameservers defined in the resolver</font></p>
    <p><font face="Vazir"><br>
      </font></p>
    <p><font face="Vazir">"drill example.com AAAA" gives
        2606:4700:10::ac42:93f3 and then pinging it doesn't work and al
        packets are lost.</font></p>
    <p><font face="Vazir"><br>
      </font></p>
    <p><font face="Vazir">Output of "ndp -a":</font></p>
    <p><font face="Vazir"><br>
      </font></p>
    <p><font face="Vazir">Neighbor                             Linklayer
        Address  Netif Expire    S Flags<br>
        fe80::1%vtnet0                       xx:xx:xx:xx:xx:xx vtnet0
        34s       R R<br>
        XXXX:XXX:X:XXX::1                    xx:xx:xx:xx:xx:xx vtnet0
        permanent R <br>
        fe80::be24:11ff:febd:184b%vtnet0     xx:xx:xx:xx:xx:xx vtnet0
        permanent R </font></p>
    <p><font face="Vazir"><br>
      </font></p>
    <p><font face="Vazir">Will send output of ndisc6 tomorrow, God
        willing.</font></p>
  </body>
</html>