- NM doesn't get notified about router advertisements and flag changes → we ask kernel upon any received route
- NM doesn't get notified about gateways when accept_ra_defrtr=0
- Kernel doesn't cache RDNSS and DNSSL, so we have to send router solicitation on NetworkManager start
- Kernel doesn't observe RDNSS and DNSSL expiration time, so we have to manually send router solicitations to renew it in some configurations
- NM can't trigger kernel router solicitation
- Manually sent router solicitations give EADDRNOTAVAIL (link-local is there according to netlink)
- Kernel doesn't treat dhcpv6 replies as ESTABLISHED, this is worked around by firewalld
- Kernel autoconfigures link-local (and possibly also global) IPv6 addresses for bridge/bond members (I haven't tested this)
NetworkManager can use dnsmasq for local DNS caching.
- NetworkManager doesn't work well with dnssec-trigger as unbound DNS server will not receive the list of recursive nameservers and will thus resolve using the global DNS systems. This is incompatible with VPNs with their own private DNS zones.
- dnssec-triggerd leaves broken /etc/resolv.conf on exit
NetworkManager supports firewall zones for firewalld.