Re: IPv6 networking problems in 14.3

From: Chris Ross <cross+freebsd_at_distal.com>
Date: Sun, 14 Sep 2025 02:39:00 UTC

> On Sep 13, 2025, at 17:55, Keehole <pusateri@keehole.org> wrote:
> 
> Also, it’s not typical to run a VLAN on the upstream interface to your provider so that config is what I’m curious about.

I’ll cover this first.  All of the interfaces on my router are vlans.  There is a trunk to the ethernet switch(es), and the Verizon ONT is the only other thing on the VLAN dedicated to that purpose.  The packets to Verizon are not tagged.

>> On Sep 13, 2025, at 5:52 PM, Keehole <pusateri@keehole.org> wrote:
>> 
>> Sending a copy of the relevant portions of /etc/rc.conf, the output of “ifconfig”, and “netstat -nra”, and the dhcpcd config file would be helpful to determine next steps.

What is “relevant” is not totally clear, but I think this is most of it:

ifconfig_ix0="up"
#ifconfig_ix0_ipv6="inet6 accept_rtadv"
create_args_vlan0="vlan 6"
ifconfig_vlan0="SYNCDHCP"
ifconfig_vlan0_ipv6="-ifdisabled accept_rtadv”
# Eight internal interfaces, all about this same:
create_args_int1="vlan 33"
ifconfig_int1="inet A.B.C.1/27”
#[ 7 more interfaces like above ]

# Lastly, note that we are a gateway.
gateway_enable="YES"
ipv6_gateway_enable=“YES"

# DHCPv6 client daemon - requests IPv6 allocation from ISP and delegates
# network space (/64) to each internal interface
dhcpcd_enable="YES"
dhcpcd_flags="-6 -d -j /var/log/dhcpcd.log"
# IPv6 Router Advertisments
rtadvd_enable="YES"
rtadvd_interfaces=$internal_interfaces
# Enable PF
pf_enable="YES"
pflog_enable="YES"
# ISC dhcpd
dhcpd_enable="YES"                              # dhcpd enabled?
dhcpd_flags="-4 -q"                             # command option(s)
dhcpd_ifaces=$internal_interfaces               # ethernet interface(s)

For above, “internal_interfaces” does not include vlan0.  ISC dhcpd is IPv4 only, and dhcpcd is IPv6 only.  The vlan0 interface is configured not to accept rtadv, at the kernel level, because dhcpcd handles that.

The output all of of ifconfig is very long and I’d have to filter out lots of PII.  If you need/want more, I can send it off list, but vlan0 is:

vlan0: flags=1008843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST,LOWER_UP> metric 0 mtu 1500
        options=4600703<RXCSUM,TXCSUM,TSO4,TSO6,LRO,RXCSUM_IPV6,TXCSUM_IPV6,MEXTPG>
        ether a4:53:0e:79:b9:82
        inet A.B.C.D netmask 0xffffff00 broadcast A.B.C.255
        inet6 fe80::6e8:e675:f359:3465%vlan0 prefixlen 64 scopeid 0x4
        groups: vlan
        vlan: 6 vlanproto: 802.1q vlanpcp: 0 parent interface: ix0
        media: Ethernet autoselect (1000baseT <full-duplex>)
        status: active
        nd6 options=1<PERFORMNUD>

Similarly, the entirety of netstat -rn output and the entirety of dhcpcd.conf are too much information.  I have 8 internal networks with their own addresses and purposes.
A piece of netstat -rna output is:

Internet6:                                                                                                                
Destination                       Gateway                       Flags         Netif Expire                                
::/96                             link#3                        URS             lo0                                       
default                           fe80::3e8a:b0ff:fe3e:4dce%vlan0 UG          vlan0                                       
::1                               link#3                        UHS             lo0                                       
::ffff:0.0.0.0/96                 link#3                        URS             lo0                                       

But, as noted earlier, that gateway has no MAC, because I’m never getting the response to the NS.

% ndp -an | grep 'fe80::3e8a:b0ff:fe3e:4dce'
fe80::3e8a:b0ff:fe3e:4dce%vlan0      (incomplete)       vlan0 expired   I 

My dhcpcd.conf that filtered w.r.t. internal networks, and many comments removed, are:
----------
duid
vendorclassid
option classless_static_routes
option rapid_commit
require dhcp_server_identifier
slaac private
debug
noipv6rs
noipv4
noipv4ll
allowinterfaces vlan0
interface vlan0
  ipv6only
  # In theory one can get an address with IA_NA, but Verion FiOS doesn't
  # provide an address like that.  Try ipv6rs
  ipv6rs
  #ia_na 0
  ipv6ra_autoconf
  # Request a /56, then from that allocate the following subnets as noted
  # 12  14  17  A4  DD  72  0F 66
  ia_pd 0/::/56 int1/18 int2/20 int3/23 int4/164 int5/221 int6/114 int7/15 int8/102
-----------

“intN” replacements and different IPv6 subnets, but the above is what I have in effect.

Thanks.  Apologies to anyone who isn’t deeply involved for the long message.  :-)

      - Chris