It's been a while since I posted here. I searched on this and it's hard to find specific hits.
First, I read this from ZeroByte but it's pretty old:
I have had IPv6 working at my house for years now with various MikroTik routers connected directly to my cable modem. My router is getting a /56 from my ISP via DHCPv6 and that works fine. The router is given a list of DNS servers which all get populated into /ip dns (even though half are IPv6).
When I do SLAAC on this router with clients, everything works great with IPv6. No complaints. I can wireshark the IPv6 configuration process and I can see the router advertisement giving the client everything it needs, including a list of IPv6 DNS servers.
I have other MikroTik routers under my top router and I'm routing /64 networks to my other routers using a routing protocol and statically defined addresses from a /125 network I'm using from my /56. This all works just fine. Clients under these get a /64 prefix and also an IPv4 address. There are no IPv6 DNS servers defined on those clients from SLAAC. They only have an IPv4 DNS server defined. IPv6 seems to work only because the IPv4 DNS server that clients get is able to handle AAAA requests.
Under these "2nd tier" routers, I want SLAAC to work with clients and it doesn't work because the IPv6 DNS server is not being advertised in the router advertisement. I have confirmed this with Wireshark. And there seems to be no way to control this, correct?
I'm doing this same thing at work with a Juniper router and I'm able to control what information gets passed along in the router advertisement. But I can't control it on MikroTik manually. It only seems to work if the router gets it's info using DHCPv6, then it will pass it along in SLAAC. Is this the case? Why?