[posix] update Posix::Resolver to support RDNSS-discovered recursive DNS servers (#11342)

Key Changes:
* Server Prioritization: RDNSS-discovered servers are prioritized
  based on their advertised lifetime. Servers with longer lifetimes
  are preferred.
* Recursive DNS Server List: The resolver maintains a list of
  recursive DNS servers, which now includes servers learned via RDNSS.
* DNS Query Integration: The resolver uses the RDNSS-learned servers
  when forwarding DNS queries upstream.
* Border Routing Integration: The RDNSS callback is registered to the
  border routing module.

Minor Changes:
* The unused function `Transaction *GetTransaction(int aFd)` is
  removed.
This commit is contained in:
Yang Song
2025-03-24 23:29:15 +08:00
committed by GitHub
parent a8fef54bf6
commit a41490ea40
6 changed files with 268 additions and 88 deletions
+22
View File
@@ -4145,6 +4145,28 @@ EOF
""" % (prefix,))
self._start_radvd_and_verify()
def start_rdnss_radvd_service(self, dns_server_address):
self.bash(f"""cat >/etc/radvd.conf <<EOF
interface eth0
{{
AdvSendAdvert on;
AdvReachableTime 20;
AdvRetransTimer 20;
AdvDefaultLifetime 180;
MinRtrAdvInterval 120;
MaxRtrAdvInterval 180;
AdvDefaultPreference low;
RDNSS {dns_server_address}
{{
AdvRDNSSLifetime 1800;
}};
}};
EOF
""")
self._start_radvd_and_verify()
def stop_radvd_service(self):
self.bash('service radvd stop')