From 82d8ad823310a9250e7a2dc644984d5d23811072 Mon Sep 17 00:00:00 2001 From: Robert Navarro Date: Wed, 7 Oct 2026 15:28:03 -0700 Subject: router-advert: T9413: document no-remove-on-exit and no-flush-* options Document the three per-interface options added in vyos-1x for T9413, which keep radvd from sending zero-lifetime router, RDNSS and DNSSL advertisements on shutdown, and add an example of two routers sharing fe80::1 as the RA source address through VRRP. --- docs/configuration/service/router-advert.md | 90 +++++++++++++++++++++++++++++ 1 file changed, 90 insertions(+) diff --git a/docs/configuration/service/router-advert.md b/docs/configuration/service/router-advert.md index c796f3c3..c41bf30c 100644 --- a/docs/configuration/service/router-advert.md +++ b/docs/configuration/service/router-advert.md @@ -200,6 +200,27 @@ Example: set service router-advert interface eth0 source-address fe80::1 ``` +```{cfgcmd} set service router-advert interface \ no-remove-on-exit + +**On service shutdown, do not send a final RA with a Router Lifetime +of 0 on the specified interface.** + +By default, a final RA with a zero Router Lifetime is sent on shutdown +so that receiving hosts remove the router from their default router +lists immediately. + +When routers in a VRRP group send RAs from a shared `source-address`, +that final RA makes hosts drop their default route until the router +taking over sends its next RA. Set this option on every router in the +group to avoid the gap. See {ref}`router-advert-vrrp`. +``` + +Example: + +```none +set service router-advert interface eth0 no-remove-on-exit +``` + ```{cfgcmd} set service router-advert interface \ captive-portal \ **Advertise the captive-portal API URL in RAs on the specified @@ -283,6 +304,23 @@ Example: set service router-advert interface eth0 name-server-lifetime 1200 ``` +```{cfgcmd} set service router-advert interface \ no-flush-name-server + +**On service shutdown, do not advertise the configured name servers +with an RDNSS Lifetime of 0 on the specified interface.** + +By default, the name servers are advertised with a zero lifetime on +shutdown so that receiving hosts remove them from their resolver +lists. As with `no-remove-on-exit`, this is useful when routers in a +VRRP group share a `source-address`. +``` + +Example: + +```none +set service router-advert interface eth0 no-flush-name-server +``` + ```{cfgcmd} set service router-advert interface \ dnssl \ **Advertise a {abbr}`DNSSL (DNS Search List)` domain in RAs on the @@ -297,6 +335,23 @@ Example: set service router-advert interface eth0 dnssl example.com ``` +```{cfgcmd} set service router-advert interface \ no-flush-dnssl + +**On service shutdown, do not advertise the configured DNSSL domains +with a lifetime of 0 on the specified interface.** + +By default, the domains are advertised with a zero lifetime on +shutdown so that receiving hosts remove them from their DNS search +lists. As with `no-remove-on-exit`, this is useful when routers in a +VRRP group share a `source-address`. +``` + +Example: + +```none +set service router-advert interface eth0 no-flush-dnssl +``` + ### Advertising a prefix ```{cfgcmd} set service router-advert interface \ prefix \ @@ -614,3 +669,38 @@ set service router-advert interface eth0 name-server '2001:db8::1' set service router-advert interface eth0 name-server '2001:db8::2' set service router-advert interface eth0 other-config-flag ``` + +(router-advert-vrrp)= + +### Redundant routers with VRRP + +Two routers share the LAN attached to `eth0`. A VRRP group moves the +gateway address `2001:db8:100::1` and the link-local address `fe80::1` +between them, and both routers send RAs from `fe80::1`. RAs are only +sent while the router holds that address, so hosts see one default +router that stays the same across a failover. + +`no-remove-on-exit` and `no-flush-name-server` stop the router that is +shutting down from telling hosts to drop that default router and its +name server while the other router takes over. + +Configuration of the primary router: + +```none +set interfaces ethernet eth0 address '2001:db8:100::2/64' + +set high-availability vrrp group LANv6 interface 'eth0' +set high-availability vrrp group LANv6 vrid '10' +set high-availability vrrp group LANv6 priority '200' +set high-availability vrrp group LANv6 address '2001:db8:100::1/64' +set high-availability vrrp group LANv6 address 'fe80::1/64' + +set service router-advert interface eth0 prefix '2001:db8:100::/64' +set service router-advert interface eth0 name-server '2001:db8::1' +set service router-advert interface eth0 source-address 'fe80::1' +set service router-advert interface eth0 no-remove-on-exit +set service router-advert interface eth0 no-flush-name-server +``` + +The backup router uses the same configuration with its own interface +address, for example `2001:db8:100::3/64`, and a lower `priority`. -- cgit v1.2.3 From d569c5e017520d43b2fd29f139e0d7a15c3a73d9 Mon Sep 17 00:00:00 2001 From: Robert Navarro Date: Wed, 7 Oct 2026 15:28:10 -0700 Subject: router-advert: T9413: suppress linter on NAT64 well-known prefix examples The two nat64prefix examples use the well-known prefix 64:ff9b::/96, which the doc linter reports as outside the documentation ranges. Wrap them in stop/start_vyoslinter markers, as AGENTS.md describes for this prefix, so the page passes the linter. --- docs/configuration/service/router-advert.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/docs/configuration/service/router-advert.md b/docs/configuration/service/router-advert.md index c41bf30c..d76d63b1 100644 --- a/docs/configuration/service/router-advert.md +++ b/docs/configuration/service/router-advert.md @@ -600,10 +600,14 @@ Repeat the command to advertise multiple NAT64 prefixes. Example: +% stop_vyoslinter + ```none set service router-advert interface eth0 nat64prefix 64:ff9b::/96 ``` +% start_vyoslinter + ```{cfgcmd} set service router-advert interface \ nat64prefix \ valid-lifetime \<4-65528\> **Configure the Valid Lifetime, in seconds, advertised in RAs for the @@ -620,10 +624,14 @@ The default is 65528. Example: +% stop_vyoslinter + ```none set service router-advert interface eth0 nat64prefix 64:ff9b::/96 valid-lifetime 65528 ``` +% start_vyoslinter + ### Disabling advertisements ```{cfgcmd} set service router-advert interface \ no-send-advert -- cgit v1.2.3