A few hours later and basic IPv6 is working:
-
Win10 reports 1 link-local address and 3 global IPv6 addresses being one temporary (IDK why 3 addresses and what this temporary means). One of them is the one reported on ipv6-test, so I have a valid global address working.
-
Win10 is able to trace route to OpenDNS and ISP's DNS addresses.
-
Ubuntu (where pi-hole runs) reports 5 global addresses and 1 link-local (scopeid 0x20).
-
It is also able to trace route said DNS and having ipv6-test's address.
As you can see below, DHCP for IPv4 is disabled on the router and enabled from IPv6 and using global prefix.
This is the VLAN edition page on the router:
As you can see, for IPv4 I have route's IP set and DHCP disabled.
IPv6 DHCP is enabled and using ISP's modem provided DHCP-PD global prefix. Doing so, I'm able to set range and DNS, which is using ISP's global prefix.
Here's where it gets tricky, I can't find where to set static IPv6 addr for my server.
Reading Use IPv6 ULA addresses for Pi-hole - #12 by DanSchaper, we are suggested to set fixed ULA address for pi-hole server, to avoid having its address changed every time ISP changes our global prefix, or use a script on cron from jpgpi250 to handle global prefix changes.
As you can see on the images, I have nowhere on router's DHCP to set ULA. I have to choose either a fixed prefix (IDK if it's link-local or ULA) or DHCP-PD from WAN.
I see some approaches from now, and would like advises on what to do.
-
Find some way for router to push its WAN DHCP-PD to pi-hole, disable router's IPv6 DHCP and enable pi-hole's. Based on what I read on that link, this seems to not be possible.
-
Keep router responsible for IPv6 DHCP as it is now, find out how to setup pi-hole as a second DHCP, responsible for ULA, and how to make each device get a global address from router and a ULA from pi-hole. Then setup router to point to pi-hole as DNS.
-
Setup fixed link-local addresses on each device, and have pi-hole resolve LAN names into these addresses.
-
Get jpgpi250's script working, and change all devices' address every time ISP changes my global prefix.
These 4 options seem troubling. If IPs change, every connection on LAN will fail until I find new ones and update everything. In example, I have Transmission Remote GUI on my Main PC connected to daemon on my Ubuntu server. I have putty connected to this server and to my NAS, I have SMB network mappings from NAS to Main PC, server, etc. If these IPs change, I'd need to update all settings with some being time consuming. Also, if pi-hole's IP changes and I have router's DHCP pointing to it, everybody will be unable to resolve names until I update router's config and it propagates. So option 4 must be discarded.
Option 2 seems also not possible, as my router seems unable to hande ULA addresses parallel to global prefix/DHCP-PD ones. I suppose it's not possible to have 2 IPv6 DHCP servers on the same LAN either, or it would have been suggested on that thread.
This leave me with option 3, and setup fixed link-local address on each device, and have pi-hole resolve LAN names into these addresses. But this solution is very ugly, as I don't have central setup of all addresses and some devices as Android phone doesn't seem to offer that.
Windows also offers option of obtaining address or setting it up, so I think if I try to set a link-local I'll lose global address.
I also need to reach my server from outside. I suppose I could setup no-ip client on it and hope it updates both IPv4 and IPv6 global addresses.
I really don't know what to do now. I apologize for being noob on IPv6 and thank any help I could get.