Where does this IPv6 come from?

Dear community,

My ubuntu laptop is sitting behind two routers.
Laptop –> One Router –> 5G Router –> Internet

For various reasons, I have disabled all IPv6 related config on both routers.
Dont ask why.

The “One Router” does not even have a WAN6.
The “5G Router” is leveraging the MBIM driver for 5G interface, and the PDP Type is IPv4 only.

How is it possible, that my laptop is getting a IPv6 assigned with a “random” IPv6 ULA Prefix?
I say “random” because that “fd52:1270:“ is configured nowhere.

Cheers, Frood

***************************************************************************************************

One Router Config

root@One:~# cat /etc/config/network 

config interface 'loopback'
	option device 'lo'
	option proto 'static'
	option ipaddr '127.0.0.1'
	option netmask '255.0.0.0'

config globals 'globals'
	option packet_steering '1'

config device
	option name 'br-lan'
	option type 'bridge'
	list ports 'eth1'

config interface 'lan'
	option device 'br-lan'
	option proto 'static'
	option ipaddr '192.168.1.1'
	option netmask '255.255.255.0'
	option delegate '0'

config interface 'wan'
	option device 'eth0'
	option proto 'dhcp'
	option peerdns '0'
	list dns '5.9.164.112'
	list dns '9.9.9.9'
	list dns '84.200.69.80'
	option delegate '0'
	option ipv6 '0'
root@One:~# cat /etc/config/dhcp 

config dnsmasq
	option domainneeded '1'
	option localise_queries '1'
	option rebind_protection '1'
	option rebind_localhost '1'
	option local '/lan/'
	option domain 'lan'
	option expandhosts '1'
	option cachesize '1000'
	option authoritative '1'
	option readethers '1'
	option leasefile '/tmp/dhcp.leases'
	option resolvfile '/tmp/resolv.conf.d/resolv.conf.auto'
	option localservice '1'
	option ednspacket_max '1232'
	option confdir '/tmp/dnsmasq.d'

config dhcp 'lan'
	option interface 'lan'
	option start '100'
	option limit '150'
	option leasetime '12h'
	option dhcpv4 'server'

config dhcp 'wan'
	option interface 'wan'
	option ignore '1'

config odhcpd 'odhcpd'
	option maindhcp '0'
	option leasefile '/tmp/hosts/odhcpd'
	option leasetrigger '/usr/sbin/odhcpd-update'
	option loglevel '4'

***************************************************************************************************

5G Router Config

root@fritz:~# cat /etc/config/network 

config interface 'loopback'
	option device 'lo'
	option proto 'static'
	option ipaddr '127.0.0.1'
	option netmask '255.0.0.0'

config globals 'globals'
	option packet_steering '1'

config device
	option name 'br-lan'
	option type 'bridge'
	list ports 'eth1'

config interface 'lan'
	option device 'br-lan'
	option proto 'static'
	option ipaddr '192.168.2.1'
	option netmask '255.255.255.0'

config interface 'wan'
	option device 'eth0'
	option proto 'dhcp'
	option auto '0'

config interface 'wan6'
	option device 'eth0'
	option proto 'dhcpv6'
	option auto '0'
	option reqaddress 'try'
	option reqprefix 'auto'
	option norelease '1'

config interface '5G_MODEM'
	option proto 'mbim'
	option device '/dev/cdc-wdm0'
	option apn 'internet.provider'
	option pincode '0911'
	option auth 'pap'
	option pdptype 'ipv4'
	option username 'provider'
	option password 'pm'
	option peerdns '0'
	list dns '5.9.164.112'
	list dns '9.9.9.9'
	list dns '84.200.69.80'
	option sourcefilter '0'
	option delegate '0'
	option ipv6 '0'

root@fritz:~# cat /etc/config/dhcp 

config dnsmasq
	option domainneeded '1'
	option boguspriv '1'
	option filterwin2k '0'
	option localise_queries '1'
	option rebind_protection '1'
	option rebind_localhost '1'
	option local '/lan/'
	option domain 'lan'
	option expandhosts '1'
	option nonegcache '0'
	option cachesize '1000'
	option authoritative '1'
	option readethers '1'
	option leasefile '/tmp/dhcp.leases'
	option resolvfile '/tmp/resolv.conf.d/resolv.conf.auto'
	option nonwildcard '1'
	option localservice '1'
	option ednspacket_max '1232'
	option filter_aaaa '0'
	option filter_a '0'

config dhcp 'lan'
	option interface 'lan'
	option start '100'
	option limit '150'
	option leasetime '12h'
	option dhcpv4 'server'

config dhcp 'wan'
	option interface 'wan'
	option ignore '1'

config odhcpd 'odhcpd'
	option maindhcp '0'
	option leasefile '/tmp/hosts/odhcpd'
	option leasetrigger '/usr/sbin/odhcpd-update'
	option loglevel '4'

*****************************************************************************************************

Ubuntu Laptop with anonymized 8888 IPv6

ifconfig wlp4s0
wlp4s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.1.184  netmask 255.255.255.0  broadcast 192.168.1.255
        inet6 fd52:1270:41f5:8888:8888:8888:8888:8888  prefixlen 64  scopeid 0x0<global>
        inet6 fd52:1270:41f5:8888:8888:8888:8888:8888  prefixlen 64  scopeid 0x0<global>
        inet6 fe80::5569:121:8888:8888  prefixlen 64  scopeid 0x20<link>
        ether 50:e0:85:17:f9:22  txqueuelen 1000  (Ethernet)
        RX packets 704473  bytes 916616052 (916.6 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 407599  bytes 563552786 (563.5 MB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

Checked the globals section of the network configuration?

There may be another device on the LAN sending router advertisements.

1 Like

yes, see “cat /etc/config/network“

config globals 'globals'
	option packet_steering '1'
1 Like

I dont fully understand.
All devices on LAN get such a IPv6, but I can see that my 5G_MODEM is not getting anything else than link local fe80.

So actually, I dont have an issue, I am just confused about the IPv6 addresses on the clients and the ULA prefix coming from nowhere!?

Run tcpdump on the Ubuntu machine:

tcpdump -v -n -e -p -i wlp4s0 '(icmp6 and ip6[40] == 134)’

If you see traffic that includes that ULA prefix, identify the MAC address sending it.

1 Like

I see it on the router itself. I would say: All clients do that.
Ok, so all clients do send RAs, but who is responding to that?

The config is:
option dhcpv4 'server'

but there is NO
option dhcpv6 'server'

On BOTH routers, the config is like:

The only devices sending Router Advertisements should be routers.

You can look inside the RA packets to see if a ULA prefix is being advertised. If it is, the other devices on the network are supposed to give themselves a SLAAC address inside that /64. This may be used for ad-hoc home automation stuff.

2 Likes

Those MAC addresses are all owned by Apple. Do you have one or more Apple TVs or other such Apple server-like appliances?

1 Like

Yes, those are a couple of HomePod Minis - which act as a border-router in the Thread network. Indeed, this is all based on IPv6.
Those and maybe an iPhone running the Home App must use IPv6.

So, are they also serving other clients on the Wifi network like an ubuntu laptop?

Any device that supports IPv6 is supposed to install an address and route when it receives an RA. Generally it will not try to reach the v6 Internet unless it has a GUA not just a ULA.

Yup, HomePod Minis are known to send IPv6 router advertisements, and I believe that’ll include ULA assigments.

https://community.ui.com/questions/Apple-Homepod-distributing-IPV6-Addresses/195fc9fd-863f-4f57-a821-d109663daca7#answer/9057553a-5b3e-457d-a517-dd23bd5665c7