Active DHCPv6 Leases - only 3 shown, others not on listed

I am using OpenWRT (version 21.02.3) on the Linksys WRT1200AC router. The Active DHCPv6 Leases list shows only 3 of all my connected devices. All the connected devices are correctly assigned their respective IPv6 addresses but are just not shown on this list. The missing devices are correctly appearing on the Active DHCP Leases list with their IPv4 addresses, though. They are a mix of Windows, iOS, iPadOS, TVOS, MacOS, Android and proprietary IoT systems. The 3 that do appear on the DHCPv6 list (and are present in the /tmp/hosts/odhcpd file) are a Windows PC, a Synology NAS and an Apple Air Capsule.

Why do I not see the other devices even though they have correctly received their DHCPv6 leases?

Do they get IPv6 from DHCP6 or from SLAAC? Android devices for example don't use DHCPv6.

1 Like

SLAAC is enabled. This is a screenshot from an Android device (Amazon Fire) which is not listed in the Active DHCPv6 Leases list:
Screenshot 2022-05-18 145444

In fact, none of the devices connected wirelessly (regardless of the OS) are listed.

Just verify that the other devices indeed use DHCP6. Android devices for sure don't.

The way they are connected is not relevant to whether they use DHCP6 or not.

Perhaps it might be, at least regarding the device's appearance in /tmp/hosts/odhcpd (and therefore in the Luci list from the heading of this post). The very same device, e.g. my Windows laptop, appears there when wired, but not when wireless. In both cases though, it does receive an IPv6 address. So, something is different.

Please run the following commands (copy-paste the whole block) and paste the output here, using the "Preformatted text </> " button:
grafik
Remember to redact passwords, MAC addresses and any public IP addresses you may have

ubus call system board; \
uci export network; uci export wireless; \
uci export dhcp; uci export firewall; \
head -n -0 /etc/firewall.user; ip6tables-save -c

Thanks a lot for your kind help!
Here goes, as requested:

{
        "kernel": "5.4.188",
        "hostname": "OpenWrt",
        "system": "ARMv7 Processor rev 1 (v7l)",
        "model": "Linksys WRT1200AC",
        "board_name": "linksys,wrt1200ac",
        "release": {
                "distribution": "OpenWrt",
                "version": "21.02.3",
                "revision": "r16554-1d4dea6d4f",
                "target": "mvebu/cortexa9",
                "description": "OpenWrt 21.02.3 r16554-1d4dea6d4f"
        }
}
package 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 ula_prefix 'fd31:d144:03e6::/48'

config device
        option name 'br-lan'
        option type 'bridge'
        list ports 'lan1'
        list ports 'lan2'
        list ports 'lan3'
        list ports 'lan4'

config interface 'lan'
        option device 'br-lan'
        option proto 'static'
        option netmask '255.255.255.0'
        option ipaddr '10.0.0.2'
        list dns '1.1.1.1'
        list dns '1.0.0.1'
        list dns '2606:4700:4700::1111'
        list dns '2606:4700:4700::1001'
        option ip6assign '64'

config device
        option name 'wan'
        option macaddr 'xxxxxxxxxxxxx'

config interface 'wan'
        option device 'wan'
        option proto 'dhcp'
        option ip6assign '64'

config interface 'wan6'
        option device 'wan'
        option proto 'dhcpv6'
        option reqprefix 'auto'
        option ip6assign '64'
        option reqaddress 'try'

config device 'guest_dev'
        option type 'bridge'
        option name 'br-guest'

config interface 'guest'
        option proto 'static'
        option device 'br-guest'
        option netmask '255.255.255.0'
        option ipaddr '10.0.3.1'
        list dns '1.0.0.1'
        list dns '1.1.1.1'
        list dns '2606:4700:4700::1001'
        list dns '2606:4700:4700::1111'
        option ip6assign '64'

package wireless

config wifi-device 'radio0'
        option type 'mac80211'
        option path 'soc/soc:pcie/pci0000:00/0000:00:01.0/0000:01:00.0'
        option band '5g'
        option channel '149'
        option cell_density '3'
        option country 'US'
        option htmode 'VHT80'
        option beacon_int '100'

config wifi-iface 'default_radio0'
        option device 'radio0'
        option network 'lan'
        option mode 'ap'
        option macaddr 'xxxxxxxxxxxx'
        option key 'xxxxxxxxxxxxxxxxxx'
        option ssid 'xxxxxxxxxxxxxxx'
        option ieee80211w '0'
        option encryption 'psk2+ccmp'

config wifi-device 'radio1'
        option type 'mac80211'
        option path 'soc/soc:pcie/pci0000:00/0000:00:02.0/0000:02:00.0'
        option band '2g'
        option htmode 'HT20'
        option channel '13'
        option country 'US'
        option txpower '14'
        option cell_density '3'

config wifi-iface 'default_radio1'
        option device 'radio1'
        option network 'lan'
        option mode 'ap'
        option macaddr 'xxxxxxxxxxxxxxxxx'
        option ssid 'xxxxxxxxxxxxxxxxxxx'
        option key 'xxxxxxxxxxxxxxxxxx'
        option ieee80211w '0'
        option encryption 'psk2+ccmp'

config wifi-iface 'guest'
        option device 'radio0'
        option mode 'ap'
        option network 'guest'
        option encryption 'psk2+ccmp'
        option key 'xxxxxxxxxxxxxxx'
        option disabled '1'
        option ssid 'IoT'

config wifi-iface 'wifinet3'
        option device 'radio1'
        option mode 'ap'
        option ssid 'IoT'
        option encryption 'psk2+ccmp'
        option network 'guest'
        option isolate '1'
        option key 'xxxxxxxxxxxxxxxxxxx'
        
package dhcp

config dnsmasq
        option domainneeded '1'
        option localise_queries '1'
        option rebind_protection '1'
        option rebind_localhost '1'
        option local '/lan/'
        option expandhosts '1'
        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'

config dhcp 'lan'
        option interface 'lan'
        option dhcpv4 'server'
        option start '10'
        option limit '50'
        option leasetime '12h'
        option ra 'hybrid'
        option dhcpv6 'hybrid'
        option ndp 'hybrid'
        list ra_flags 'other-config'
        list dns '2606:4700:4700::1001'
        list dns '2606:4700:4700::1111'

config dhcp 'wan'
        option interface 'wan'
        option ignore '1'
        list ra_flags 'none'

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

config dhcp 'guest'
        option interface 'guest'
        option netmask '255.255.255.0'
        option start '101'
        option limit '10'
        option leasetime '12h'
        option ra 'hybrid'
        option dhcpv6 'hybrid'
        option ndp 'hybrid'
        list ra_flags 'other-config'
        list dns '2606:4700:4700::1001'
        list dns '2606:4700:4700::1111'

package firewall

config defaults
        option input 'ACCEPT'
        option output 'ACCEPT'
        option synflood_protect '1'
        option forward 'REJECT'

config zone
        option name 'lan'
        option input 'ACCEPT'
        option output 'ACCEPT'
        option forward 'ACCEPT'
        list network 'lan'

config zone
        option name 'wan'
        option output 'ACCEPT'
        option masq '1'
        option mtu_fix '1'
        option input 'DROP'
        option forward 'DROP'
        list network 'wan'
        list network 'wan6'

config forwarding
        option src 'lan'
        option dest 'wan'

config rule
        option name 'Allow-DHCP-Renew'
        option src 'wan'
        option proto 'udp'
        option dest_port '68'
        option target 'ACCEPT'
        option family 'ipv4'

config rule
        option name 'Allow-Ping'
        option src 'wan'
        option proto 'icmp'
        option family 'ipv4'
        list icmp_type 'echo-request'
        option target 'DROP'

config rule
        option name 'Allow-IGMP'
        option src 'wan'
        option proto 'igmp'
        option family 'ipv4'
        option target 'DROP'

config rule
        option name 'Allow-DHCPv6'
        option src 'wan'
        option proto 'udp'
        option src_ip 'fc00::/6'
        option dest_ip 'fc00::/6'
        option dest_port '546'
        option family 'ipv6'
        option target 'ACCEPT'

config rule
        option name 'Allow-MLD'
        option src 'wan'
        option proto 'icmp'
        option family 'ipv6'
        list src_ip 'fe80::/10'
        option target 'DROP'

config rule
        option name 'Allow-ICMPv6-Input'
        option src 'wan'
        option proto 'icmp'
        option limit '1000/sec'
        option family 'ipv6'
        list icmp_type 'bad-header'
        list icmp_type 'destination-unreachable'
        list icmp_type 'echo-reply'
        list icmp_type 'echo-request'
        list icmp_type 'neighbour-advertisement'
        list icmp_type 'neighbour-solicitation'
        list icmp_type 'packet-too-big'
        list icmp_type 'router-advertisement'
        list icmp_type 'router-solicitation'
        list icmp_type 'time-exceeded'
        list icmp_type 'unknown-header-type'
        option target 'DROP'

config rule
        option name 'Allow-ICMPv6-Forward'
        option src 'wan'
        option dest '*'
        option proto 'icmp'
        option limit '1000/sec'
        option family 'ipv6'
        list icmp_type 'bad-header'
        list icmp_type 'destination-unreachable'
        list icmp_type 'echo-reply'
        list icmp_type 'echo-request'
        list icmp_type 'packet-too-big'
        list icmp_type 'time-exceeded'
        list icmp_type 'unknown-header-type'
        option target 'DROP'

config rule
        option name 'Allow-IPSec-ESP'
        option src 'wan'
        option dest 'lan'
        option proto 'esp'
        option target 'ACCEPT'

config rule
        option name 'Allow-ISAKMP'
        option src 'wan'
        option dest 'lan'
        option dest_port '500'
        option proto 'udp'
        option target 'ACCEPT'

config rule
        option name 'Support-UDP-Traceroute'
        option src 'wan'
        option dest_port '33434:33689'
        option proto 'udp'
        option family 'ipv4'
        option target 'REJECT'

config include
        option path '/etc/firewall.user'

config zone 'guest'
        option name 'guest'
        option network 'guest'
        option input 'REJECT'
        option output 'ACCEPT'
        option forward 'REJECT'

config forwarding 'guest_wan'
        option src 'guest'
        option dest 'wan'

config rule 'guest_dns'
        option name 'Allow-DNS-Guest'
        option src 'guest'
        option dest_port '53'
        option proto 'tcp udp'
        option target 'ACCEPT'

config rule 'guest_dhcp'
        option name 'Allow-DHCP-Guest'
        option src 'guest'
        option src_port '68'
        option dest_port '67'
        option proto 'udp'
        option family 'ipv4'
        option target 'ACCEPT'

# This file is interpreted as shell script.
# Put your custom iptables rules here, they will
# be executed with each firewall (re-)start.

# Internal uci firewall chains are flushed and recreated on reload, so
# put custom rules into the root chains e.g. INPUT or FORWARD or into the
# special user chains, e.g. input_wan_rule or postrouting_lan_rule.

# Generated by ip6tables-save v1.8.7 on Wed May 18 17:36:39 2022
*mangle
:PREROUTING ACCEPT [49611:6712649]
:INPUT ACCEPT [1079:102850]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [623:80366]
:POSTROUTING ACCEPT [626:80518]
[0:0] -A FORWARD -o wan -p tcp -m tcp --tcp-flags SYN,RST SYN -m comment --comment "!fw3: Zone wan MTU fixing" -j TCPMSS --clamp-mss-to-pmtu
[0:0] -A FORWARD -i wan -p tcp -m tcp --tcp-flags SYN,RST SYN -m comment --comment "!fw3: Zone wan MTU fixing" -j TCPMSS --clamp-mss-to-pmtu
COMMIT
# Completed on Wed May 18 17:36:39 2022
# Generated by ip6tables-save v1.8.7 on Wed May 18 17:36:39 2022
*filter
:INPUT ACCEPT [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]
:forwarding_guest_rule - [0:0]
:forwarding_lan_rule - [0:0]
:forwarding_rule - [0:0]
:forwarding_wan_rule - [0:0]
:input_guest_rule - [0:0]
:input_lan_rule - [0:0]
:input_rule - [0:0]
:input_wan_rule - [0:0]
:output_guest_rule - [0:0]
:output_lan_rule - [0:0]
:output_rule - [0:0]
:output_wan_rule - [0:0]
:reject - [0:0]
:syn_flood - [0:0]
:zone_guest_dest_ACCEPT - [0:0]
:zone_guest_dest_REJECT - [0:0]
:zone_guest_forward - [0:0]
:zone_guest_input - [0:0]
:zone_guest_output - [0:0]
:zone_guest_src_REJECT - [0:0]
:zone_lan_dest_ACCEPT - [0:0]
:zone_lan_forward - [0:0]
:zone_lan_input - [0:0]
:zone_lan_output - [0:0]
:zone_lan_src_ACCEPT - [0:0]
:zone_wan_dest_ACCEPT - [0:0]
:zone_wan_dest_DROP - [0:0]
:zone_wan_forward - [0:0]
:zone_wan_input - [0:0]
:zone_wan_output - [0:0]
:zone_wan_src_DROP - [0:0]
[27:3338] -A INPUT -i lo -m comment --comment "!fw3" -j ACCEPT
[1052:99512] -A INPUT -m comment --comment "!fw3: Custom input rule chain" -j input_rule
[0:0] -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -m comment --comment "!fw3" -j ACCEPT
[0:0] -A INPUT -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -m comment --comment "!fw3" -j syn_flood
[392:31088] -A INPUT -i br-lan -m comment --comment "!fw3" -j zone_lan_input
[659:68376] -A INPUT -i wan -m comment --comment "!fw3" -j zone_wan_input
[1:48] -A INPUT -i br-guest -m comment --comment "!fw3" -j zone_guest_input
[0:0] -A FORWARD -m comment --comment "!fw3: Custom forwarding rule chain" -j forwarding_rule
[0:0] -A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -m comment --comment "!fw3" -j ACCEPT
[0:0] -A FORWARD -i br-lan -m comment --comment "!fw3" -j zone_lan_forward
[0:0] -A FORWARD -i wan -m comment --comment "!fw3" -j zone_wan_forward
[0:0] -A FORWARD -i br-guest -m comment --comment "!fw3" -j zone_guest_forward
[0:0] -A FORWARD -m comment --comment "!fw3" -j reject
[27:3338] -A OUTPUT -o lo -m comment --comment "!fw3" -j ACCEPT
[596:77028] -A OUTPUT -m comment --comment "!fw3: Custom output rule chain" -j output_rule
[8:1024] -A OUTPUT -m conntrack --ctstate RELATED,ESTABLISHED -m comment --comment "!fw3" -j ACCEPT
[365:41572] -A OUTPUT -o br-lan -m comment --comment "!fw3" -j zone_lan_output
[174:25808] -A OUTPUT -o wan -m comment --comment "!fw3" -j zone_wan_output
[49:8624] -A OUTPUT -o br-guest -m comment --comment "!fw3" -j zone_guest_output
[0:0] -A reject -p tcp -m comment --comment "!fw3" -j REJECT --reject-with tcp-reset
[1:48] -A reject -m comment --comment "!fw3" -j REJECT --reject-with icmp6-port-unreachable
[0:0] -A syn_flood -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -m limit --limit 25/sec --limit-burst 50 -m comment --comment "!fw3" -j RETURN
[0:0] -A syn_flood -m comment --comment "!fw3" -j DROP
[49:8624] -A zone_guest_dest_ACCEPT -o br-guest -m comment --comment "!fw3" -j ACCEPT
[0:0] -A zone_guest_dest_REJECT -o br-guest -m comment --comment "!fw3" -j reject
[0:0] -A zone_guest_forward -m comment --comment "!fw3: Custom guest forwarding rule chain" -j forwarding_guest_rule
[0:0] -A zone_guest_forward -m comment --comment "!fw3: Zone guest to wan forwarding policy" -j zone_wan_dest_ACCEPT
[0:0] -A zone_guest_forward -m comment --comment "!fw3" -j zone_guest_dest_REJECT
[1:48] -A zone_guest_input -m comment --comment "!fw3: Custom guest input rule chain" -j input_guest_rule
[0:0] -A zone_guest_input -p tcp -m tcp --dport 53 -m comment --comment "!fw3: Allow-DNS-Guest" -j ACCEPT
[0:0] -A zone_guest_input -p udp -m udp --dport 53 -m comment --comment "!fw3: Allow-DNS-Guest" -j ACCEPT
[1:48] -A zone_guest_input -m comment --comment "!fw3" -j zone_guest_src_REJECT
[49:8624] -A zone_guest_output -m comment --comment "!fw3: Custom guest output rule chain" -j output_guest_rule
[49:8624] -A zone_guest_output -m comment --comment "!fw3" -j zone_guest_dest_ACCEPT
[1:48] -A zone_guest_src_REJECT -i br-guest -m comment --comment "!fw3" -j reject
[365:41572] -A zone_lan_dest_ACCEPT -o br-lan -m comment --comment "!fw3" -j ACCEPT
[0:0] -A zone_lan_forward -m comment --comment "!fw3: Custom lan forwarding rule chain" -j forwarding_lan_rule
[0:0] -A zone_lan_forward -m comment --comment "!fw3: Zone lan to wan forwarding policy" -j zone_wan_dest_ACCEPT
[0:0] -A zone_lan_forward -m comment --comment "!fw3" -j zone_lan_dest_ACCEPT
[392:31088] -A zone_lan_input -m comment --comment "!fw3: Custom lan input rule chain" -j input_lan_rule
[392:31088] -A zone_lan_input -m comment --comment "!fw3" -j zone_lan_src_ACCEPT
[365:41572] -A zone_lan_output -m comment --comment "!fw3: Custom lan output rule chain" -j output_lan_rule
[365:41572] -A zone_lan_output -m comment --comment "!fw3" -j zone_lan_dest_ACCEPT
[392:31088] -A zone_lan_src_ACCEPT -i br-lan -m conntrack --ctstate NEW,UNTRACKED -m comment --comment "!fw3" -j ACCEPT
[0:0] -A zone_wan_dest_ACCEPT -o wan -m conntrack --ctstate INVALID -m comment --comment "!fw3: Prevent NAT leakage" -j DROP
[174:25808] -A zone_wan_dest_ACCEPT -o wan -m comment --comment "!fw3" -j ACCEPT
[0:0] -A zone_wan_dest_DROP -o wan -m comment --comment "!fw3" -j DROP
[0:0] -A zone_wan_forward -m comment --comment "!fw3: Custom wan forwarding rule chain" -j forwarding_wan_rule
[0:0] -A zone_wan_forward -p ipv6-icmp -m icmp6 --icmpv6-type 4/0 -m limit --limit 1000/sec -m comment --comment "!fw3: Allow-ICMPv6-Forward" -j DROP
[0:0] -A zone_wan_forward -p ipv6-icmp -m icmp6 --icmpv6-type 1 -m limit --limit 1000/sec -m comment --comment "!fw3: Allow-ICMPv6-Forward" -j DROP
[0:0] -A zone_wan_forward -p ipv6-icmp -m icmp6 --icmpv6-type 129 -m limit --limit 1000/sec -m comment --comment "!fw3: Allow-ICMPv6-Forward" -j DROP
[0:0] -A zone_wan_forward -p ipv6-icmp -m icmp6 --icmpv6-type 128 -m limit --limit 1000/sec -m comment --comment "!fw3: Allow-ICMPv6-Forward" -j DROP
[0:0] -A zone_wan_forward -p ipv6-icmp -m icmp6 --icmpv6-type 2 -m limit --limit 1000/sec -m comment --comment "!fw3: Allow-ICMPv6-Forward" -j DROP
[0:0] -A zone_wan_forward -p ipv6-icmp -m icmp6 --icmpv6-type 3 -m limit --limit 1000/sec -m comment --comment "!fw3: Allow-ICMPv6-Forward" -j DROP
[0:0] -A zone_wan_forward -p ipv6-icmp -m icmp6 --icmpv6-type 4/1 -m limit --limit 1000/sec -m comment --comment "!fw3: Allow-ICMPv6-Forward" -j DROP
[0:0] -A zone_wan_forward -p esp -m comment --comment "!fw3: Allow-IPSec-ESP" -j zone_lan_dest_ACCEPT
[0:0] -A zone_wan_forward -p udp -m udp --dport 500 -m comment --comment "!fw3: Allow-ISAKMP" -j zone_lan_dest_ACCEPT
[0:0] -A zone_wan_forward -m comment --comment "!fw3" -j zone_wan_dest_DROP
[659:68376] -A zone_wan_input -m comment --comment "!fw3: Custom wan input rule chain" -j input_wan_rule
[0:0] -A zone_wan_input -s fc00::/6 -d fc00::/6 -p udp -m udp --dport 546 -m comment --comment "!fw3: Allow-DHCPv6" -j ACCEPT
[659:68376] -A zone_wan_input -s fe80::/10 -p ipv6-icmp -m comment --comment "!fw3: Allow-MLD" -j DROP
[0:0] -A zone_wan_input -p ipv6-icmp -m icmp6 --icmpv6-type 4/0 -m limit --limit 1000/sec -m comment --comment "!fw3: Allow-ICMPv6-Input" -j DROP
[0:0] -A zone_wan_input -p ipv6-icmp -m icmp6 --icmpv6-type 1 -m limit --limit 1000/sec -m comment --comment "!fw3: Allow-ICMPv6-Input" -j DROP
[0:0] -A zone_wan_input -p ipv6-icmp -m icmp6 --icmpv6-type 129 -m limit --limit 1000/sec -m comment --comment "!fw3: Allow-ICMPv6-Input" -j DROP
[0:0] -A zone_wan_input -p ipv6-icmp -m icmp6 --icmpv6-type 128 -m limit --limit 1000/sec -m comment --comment "!fw3: Allow-ICMPv6-Input" -j DROP
[0:0] -A zone_wan_input -p ipv6-icmp -m icmp6 --icmpv6-type 136 -m limit --limit 1000/sec -m comment --comment "!fw3: Allow-ICMPv6-Input" -j DROP
[0:0] -A zone_wan_input -p ipv6-icmp -m icmp6 --icmpv6-type 135 -m limit --limit 1000/sec -m comment --comment "!fw3: Allow-ICMPv6-Input" -j DROP
[0:0] -A zone_wan_input -p ipv6-icmp -m icmp6 --icmpv6-type 2 -m limit --limit 1000/sec -m comment --comment "!fw3: Allow-ICMPv6-Input" -j DROP
[0:0] -A zone_wan_input -p ipv6-icmp -m icmp6 --icmpv6-type 134 -m limit --limit 1000/sec -m comment --comment "!fw3: Allow-ICMPv6-Input" -j DROP
[0:0] -A zone_wan_input -p ipv6-icmp -m icmp6 --icmpv6-type 133 -m limit --limit 1000/sec -m comment --comment "!fw3: Allow-ICMPv6-Input" -j DROP
[0:0] -A zone_wan_input -p ipv6-icmp -m icmp6 --icmpv6-type 3 -m limit --limit 1000/sec -m comment --comment "!fw3: Allow-ICMPv6-Input" -j DROP
[0:0] -A zone_wan_input -p ipv6-icmp -m icmp6 --icmpv6-type 4/1 -m limit --limit 1000/sec -m comment --comment "!fw3: Allow-ICMPv6-Input" -j DROP
[0:0] -A zone_wan_input -m comment --comment "!fw3" -j zone_wan_src_DROP
[174:25808] -A zone_wan_output -m comment --comment "!fw3: Custom wan output rule chain" -j output_wan_rule
[174:25808] -A zone_wan_output -m comment --comment "!fw3" -j zone_wan_dest_ACCEPT
[0:0] -A zone_wan_src_DROP -i wan -m comment --comment "!fw3" -j DROP
COMMIT
# Completed on Wed May 18 17:36:39 2022

Remove these from lan and guest. If you need to use them as upstream nameservers, they need to be configured in wan and wan6 interfaces. If you need to advertise them to the lan and guest hosts, then use dhcp option 6.

Remove the ip6assigns from these 2 interfaces.

Change into server for lan and guest.
Other than that, ipv6 on guest will not work, due to firewall settings.
Finally, both wireless and wired ports of the lan bridge are treated in the same way at the firewall, so I don't see why DHCP6 won't work on wifi.

Thanks again!

Actually DHCP6 does work and the wifi clients get their IPv6 addresses just fine. They just do not appear in /tmp/hosts/odhcpd and Luci listing under Active DHCPv6 Leases. And that was my original question - why not?

because a certain google engineer thinks he knows better than international standards and thus devices use SLAAC instead. its marked as wont fix by google so forget getting DHCP6 for android devices.

https://issuetracker.google.com/issues/36949085

In my case my OpenWrt 22.03.3 device isn't showing any DHCPv6 leases at all even though there are plenty of devices that actually do receive a lease.


I happen to have several downstream networks, seperated by VLAN. Here is one config example.

config dhcp "insecure"
       option interface "insecure"
       option leasetime "48h"
       option start "70"
       option limit "20"
       list domain "mydomain.de"
       list ra_flags "managed-config"
       list ra_flags "other-config"
       option dhcpv6 "server"
       option ra "server"
       option ra_default "2"
       option ra_management "1"

Is this maybe broken someow?
Another question:
Is it somehow possible to select from a list of known duid when trying to create a static lease?
OpenWrt offers MAC addresses for v4 leases. I think it would be nice to get something alike for v6.

What is being said, is that Android devices use SLAAC which has the device generate their own IPv6 address and ignores the router. You can't set them as static.

I'm having similar issues that I can't seem to resolve. There should be a way to block/disable SLAAC and use DHCPv6 only, but I don't know it.

Edit: Btw, if you use LuCI and go to Status/Routing/IPv6 Routing, it should show you all IPv6 addresses passing through the router, even if it wasn't leased from.

There is a way

uci set dhcp.lan.ra_slaac='0'
uci commit dhcp
service odhcpd restart

I'm unfamiliar with the uci stuff. Is there a LuCI setting for that?
Heck, can I just go to "/etc/config/dhcp", add set dhcp.lan.ra_slaac='0' and reboot?

Also, doesn't that setting just disable local RA? Wouldn't the device still generate its own IPv6?
I'm looking to either force DHCPv6 or block SLAAC devices from even using IPv6. (Sorry, don't mean to go off topic.)

You don't need to be familiar with uci, just run these commands in cli. There is also a Luci way to do it.
It disables slaac as you want.

Please link. I've been googling Slaac & OpenWrt and cannot find anyone who has mentioned this.
I saw similar forum question, but it was for version 19 and the settings have changed since then. https://superuser.com/questions/1576349/turning-off-ipv6-slaac-in-openwrt-pros-and-cons-please

I'm hoping this is what the OP wants to know as well.

But again, doesn't that setting allow the device to contact a remote server for part of the IP address instead of the OpenWrt router?

Network, Interfaces, edit lan, DHCP server, IPv6 RA Settings.

Got it. That took me a moment.
Interface/DHCP Server/IPv6 RA Settings/Enable SLAAC

Set the autonomous address-configuration flag in the prefix information options of sent RA messages. When enabled, clients will perform stateless IPv6 address autoconfiguration.

It looks like RA-Service needs to be in Server Mode for the option to be available.

Will give it a spin. Thank you.

Anybody got some insights on this? DHCPv6 leases doesn't show up at all. There is no issue in the bugtracker about that. I think I will have to create one.

Do they receive a lease from DHCP6 or SLAAC? You won't see any logs of the latter.

1 Like