IPv6, Subnet, DNS with bad ISP


My main goal is to have IPv6 with my own DNS. But My ISP doesn't give me information IPv6 (can't replace the router, no prefix delegation,...)

Before using OpenWrt, i have

ISP Router
=> LAN1 directly connected
=> LAN2 with Honor Router3 + WIFI 6 + PiHole as DHCP+DNS

IPv6 works with magic

 DNS: xxxx:xxxx:xxxx:e802:0:ffff:c0a8:3fd
 Prefix: xxxx:xxxx:xxxx:e802::1
 Prefix length: 64
 DHCP: Disable

All clients get IPv4 and IPv6 with DNS i want

Now i try to reproduce this config with OpenWrt for LAN2.

=> /etc/config/network

config interface 'wan'
	option proto 'static'
	option device 'eth1'
	option ipaddr ''
	option gateway ''
	list dns ''
	list dns ''
	option netmask ''

config interface 'lan'
	option device 'br-lan'
	option proto 'static'
	option ipaddr ''
	option netmask ''
	list dns ''
	list dns ''
	option ip6assign '64'
	option ip6hint 'e803'
	list ip6class 'wan6'
	option delegate '0'

config interface 'wan6'
	option device 'eth1'
	option proto 'static'
	option ip6prefix 'xxxx:xxxx:xxxx:e803::1/64'
	list ip6addr 'xxxx:xxxx:xxxx:e801:20e:c6ff:fed9:c00f/64'
	option ip6gw 'xxxx:xxxx:xxxx:e801::1'
	list dns '2620:fe::fe'
	list dns '2620:fe::9'

=> /etc/config/dhcp

config dhcp 'lan'
	option interface 'lan'
	option leasetime '12h'
	option start '2'
	option limit '240'
	option ndp 'relay'
	option ra 'relay'
	option ndproxy_slave '1'

config dhcp 'wan6'
	option interface 'wan6'
	option ignore '1'
	option start '100'
	option limit '150'
	option leasetime '12h'
	option master '1'
	option ndp 'relay'
	option ra 'relay'

IPv6 is working and my Ubuntu laptop have

DNS6: xxxx:xxxx:xxxx:e801::1

To override my ISP DNS, do you think it's possible to advertise another IPv6 DNS on lan ?

I forget to say that i test to set

DHCPv6-Service: server mode

To have the settings Announced IPv6 DNS servers and Local IPv6 DNS server

If i configure my ubuntu to in IPv6 setting to Auto, DHCP Only the DNS are well received.

By default, DHCP on a lan is configured to advertise the router's local IPv4 and link-local IPv6 as the DNS server. Thus, lan clients are pointed at the dnsmasq DNS process running inside OpenWrt. If dnsmasq cannot find the result in its local cache, it consults an external DNS server.

The external server can be set to anything that is reachable on the wan with IPv6 or IPv4 (most DNS servers reached by IPv4 will also return AAAA IPv6 results). If not pulled automatically, the upstream DNS would be configured with list dns in the wan section. Do not put list dns in the lan section. If wan is statically configured, it won't recognize DNS that the ISP attempts to push via DHCP or pppoe. You can see the external DNS servers presently configured in the file /tmp/resolv.conf.d/resolv.conf.auto

You've redacted too much to see what is actually going on. Do you have a GUA IPv6 and prefix?

You probably want to remove your current 'list dns' entries under config interface 'lan'. Then you can add 'list dns' entries pointing to your router's local ipv4 and unique local address (ULA) ipv6 addresses to /etc/config/dhcp file, section config dhcp lan.

The ULA address starts most likely with fdxx.

Edit: I see that you have these options in your /etc/config/dhcp:

	option ndp 'relay'
	option ra 'relay'

I think with these options, you might need to re-write DNS addresses on the LAN interface, as explained here:

Basically IIUC, you need to replace these lines in /etc/config/network, section config interface 'lan'

	list dns ''
	list dns ''

with something like this

list dns ''
list dns 'fdxx....'