Hello!
I just noticed some issues when trying to configure PVE (8.4.5) with a link-local DNS server.
#1 - PVE Host
I use a AdGuard Home LXC, and want to use it's link-local IPv6 address as DNS resolver for PVE, but I cannot get it to work through the Web GUI.
When I edit the DNS settings, and using 'fe80::1234:1234:1234:1234' as "DNS Server 1", the server is not reachable with, f.ex. dig:
It only starts working, when I add %vmbr0 to the link-local, buuut PVE won't let me add it to the setting:
Manually editing resolv.conf works fine too, but I suspect after a reboot / configuration change it will remove the interface again? Haven't tested it yet.
PVE should either automatically attach the main interface, or let us add a server with appending interface, as it should be.
#2 - LXC
Whenever I use 'host' DNS servers the IPv6 link-local server won't work too, because the interface is missing. Even when I manually edit /etc/resolv.conf on the PVE, and then reboot a LXC, it still only uses the link-local address without any interface, thus resulting in no connection
When using the 'host' setting, fe80::1234:1234:1234:1234%vmbr0 should get automatically be translated to the main interface in the LX container: fe80::1234:1234:1234:1234%eth0
I just noticed some issues when trying to configure PVE (8.4.5) with a link-local DNS server.
#1 - PVE Host
I use a AdGuard Home LXC, and want to use it's link-local IPv6 address as DNS resolver for PVE, but I cannot get it to work through the Web GUI.
When I edit the DNS settings, and using 'fe80::1234:1234:1234:1234' as "DNS Server 1", the server is not reachable with, f.ex. dig:
Code:
❯ dig @fe80::1234:1234:1234:1234 google.at
;; UDP setup with fe80::1234:1234:1234:1234#53(fe80::1234:1234:1234:1234) for google.at failed: invalid file.
;; no servers could be reached
;; UDP setup withfe80::1234:1234:1234:1234#53(fe80::1234:1234:1234:1234) for google.at failed: invalid file.
;; no servers could be reached
;; UDP setup with fe80::1234:1234:1234:1234#53(fe80::1234:1234:1234:1234) for google.at failed: invalid file.
;; no servers could be reached
❯ dig @fe80::1234:1234:1234:1234%vmbr0 google.at
; <<>> DiG 9.18.33-1~deb12u2-Debian <<>> @fe80::1234:1234:1234:1234%vmbr0 google.at
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 28405
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
;; QUESTION SECTION:
;google.at. IN A
;; ANSWER SECTION:
google.at. 1855 IN A 142.251.208.163
;; Query time: 0 msec
;; SERVER: fe80::1234:1234:1234:1234%4#53(fe80::1234:1234:1234:1234%vmbr0) (UDP)
;; WHEN: Mon Jul 28 19:23:33 CEST 2025
;; MSG SIZE rcvd: 54
It only starts working, when I add %vmbr0 to the link-local, buuut PVE won't let me add it to the setting:

Manually editing resolv.conf works fine too, but I suspect after a reboot / configuration change it will remove the interface again? Haven't tested it yet.
PVE should either automatically attach the main interface, or let us add a server with appending interface, as it should be.
#2 - LXC
Whenever I use 'host' DNS servers the IPv6 link-local server won't work too, because the interface is missing. Even when I manually edit /etc/resolv.conf on the PVE, and then reboot a LXC, it still only uses the link-local address without any interface, thus resulting in no connection
When using the 'host' setting, fe80::1234:1234:1234:1234%vmbr0 should get automatically be translated to the main interface in the LX container: fe80::1234:1234:1234:1234%eth0