Not sure if this is a good source but it had some history to recap, and it doesn't look pretty... https://www.reddit.com/r/networking/comments/ajb2ec/comment/...
[...] To be honest because of this hot mess if you want to reliably support any possible client you'll need to do both DHCPv6 and RDNSS for DNS information. [...]
It's basically no problem.
Even better: I can set my own ::/64 so personal servers at home can be ::d3ad:b33f and accessible from outside without NAT. It's beautiful. Firewall configuration is not hard either these days is it?
Every friends phone that wants to connect to my wifi needs manual setup?
That is a problem. To which the solution is IPv4?
You would only need to configure any of this if you want to allow external connections, which isn't much different than setting up port forwarding with IPv4 + NAT, except with IPv6 it's less complicated.
Fact: SLAAC does not do DNS. So, my question then is: how do you do DNS?
Answer: "The SLAAC should not change after the host has generated it during installation / first connection, as long as you don't reinstall the OS etc."
Since SLAAC does not do DNS that answer implies that you'd enter it during connection/installation to complete the config.
Windows, according to Wikipedia, doesn't support it, but if you want to please Microsoft there's stateless DHCPv6 (which does not maintain leases, configure addresses, or do anything else that SLAAC doesn't do already; it can be simple piece of software in comparison).
On the other hand, Android and ChromeOS don't support DHCPv6 for DNS server provisioning because of Google's opinion about all matters related to DHCPv6. A pain, but not impossible to overcome either.
As for unchanging addresses, SLAAC is bound to the device MAC address so a reinstall should give you the same IP. However, you are/should be running privacy extensions, which means your outgoing IP will rotate to prevent tracking (as your IP is based on your MAC address and using that would make tracking way too easy). You'll still have the same primary IP, though, unless you add a second device to the network with the same MAC address.
SLAAC is more than capable of sending DNS settings to devices. There's no manual configuration involved.
SLAAC does not do DNS. Clear as day?
Some older devices [1] do not support RDNSS. I haven't run into them, but if you're at all worried about it, you can run DHCPv6 in parallel just to hand out DNS settings.
Personally, I just use SLAAC (with RDNSS) and it just works.
[1]: https://en.wikipedia.org/wiki/Comparison_of_IPv6_support_in_...
Or you can run DHCPv6 just to hand out DNS settings (or anything else you want more control over), even if it's not handling addressing. But this isn't necessary for small deployments.
Personally, I've never had any problems with pure SLAAC (no DHCPv6) on my home network.
Sending DNS info is one of the options in SLAAC (just like how it is an option for DHCPv4).
You just configure your router to advertise DNS servers via SLAAC Router Advertisements (RAs) the same way you would via DHCP.
One of the benefits is that any configuration changes propagate almost immediately—you don’t have to wait for DHCP clients to renew their lease to get new DNS servers.
Also, you can (if you want) have the DNS server advertise itself using the same mechanism.
The only common clients that can’t use SLAAC-based DNS configuration are older (unsupported) versions of windows. Even then, setting up DHCPv6 (in unmanaged mode) to send DNS servers is easy.
https://doc.riot-os.org/group__net__gnrc__ipv6__auto__subnet...