Re: IPv6 networking stops on FreeBSD some time after boot

From: Farooq Karimi Zadeh <hapu_at_riseup.net>
Date: Thu, 24 Sep 2026 07:15:16 UTC
On 9/23/26 23:27, Farooq Karimi Zadeh wrote:
> On 9/23/26 22:34, Dmitry Salychev wrote:
>> Farooq Karimi Zadeh<hapu@riseup.net> writes:
>>
>>> 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<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST,LOWER_UP> metric 0 mtu 1500
>>>         
>>> options=ec07bb<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,JUMBO_MTU,VLAN_HWCSUM,TSO4,TSO6,LRO,VLAN_HWTSO,LINKSTATE,RXCSUM_IPV6,TXCSUM_IPV6,HWSTATS>
>>>
>>>          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 <full-duplex>)
>>>          status: active
>>>          nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
>>>
>>> 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.
>> 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
>>
> 
> 
> This is "netstat -rn6" when it doesn't work:
> 
> 
> 
> 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
> 
> 
> I posted IPv6 configuration in /etc/rc.conf, however, here is all of it:
> 
> 
> clear_tmp_enable="YES"
> hostname="XXX"
> ifconfig_vtnet0="inet XXX.XXX.XXX.XXX netmask 255.255.255.128"
> ifconfig_vtnet0_ipv6="inet6 XXXX:XXX:X:XXX::1/64"
> defaultrouter="XXX.XXX.XXX.XXX"
> ipv6_defaultrouter="fe80::1%vtnet0"
> sshd_enable="YES"
> moused_nondefault_enable="NO"
> # Set dumpdev to "AUTO" to enable crash dumps, "NO" to disable
> dumpdev="NO"
> nginx_enable="YES"
> grafana_enable="NO"
> wstunnel_enable="NO"
> headscale_enable="YES"
> tailscaled_enable="YES"
> transmission_enable="YES"
> pf_enable="no"
> pflog_enable="no"
> pflog_logfile="/var/log/pflog"
> pflog_flags=""
> pf_flags=""
> pf_rules="/etc/pf.conf"
> gateway_enable="no"
> tor_enable="YES"
> dnstt_enable="YES"
> socks_proxy_enable="YES"
> snowflake_enable="YES"
> 
> 
> Output of "drill -4 example.com":
> 
> 
> ;; ->>HEADER<<- opcode: QUERY, rcode: NOERROR, id: 52119
> ;; flags: qr rd ra ; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 0
> ;; QUESTION SECTION:
> ;; example.com. IN      A
> 
> ;; ANSWER SECTION:
> example.com.    300     IN      A       104.20.23.154
> example.com.    300     IN      A       172.66.147.243
> 
> ;; AUTHORITY SECTION:
> 
> ;; ADDITIONAL SECTION:
> 
> ;; Query time: 15 msec
> ;; SERVER: 8.8.8.8
> ;; WHEN: Wed Sep 23 23:22:08 2026
> ;; MSG SIZE  rcvd: 61
> 
> 
> Output of "drill -6 example.com":
> 
> 
> Error: error sending query: No (valid) nameservers defined in the resolver
> 
> 
> "drill example.com AAAA" gives 2606:4700:10::ac42:93f3 and then pinging 
> it doesn't work and al packets are lost.
> 
> 
> Output of "ndp -a":
> 
> 
> Neighbor                             Linklayer Address  Netif Expire    
> S Flags
> fe80::1%vtnet0                       xx:xx:xx:xx:xx:xx vtnet0 34s       R R
> XXXX:XXX:X:XXX::1                    xx:xx:xx:xx:xx:xx vtnet0 permanent R
> fe80::be24:11ff:febd:184b%vtnet0     xx:xx:xx:xx:xx:xx vtnet0 permanent R
> 
> 
> Will send output of ndisc6 tomorrow, God willing.
> 

I really apologize for sending HTML emails. I really thought I had 
configured Thunderbird to NOT send HTML emails.