summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSander Klein <github@roedie.nl>2022-12-17 18:06:44 +0100
committerSander Klein <github@roedie.nl>2022-12-17 18:06:44 +0100
commit6a8306598218824ef48d302f6095ae8e854bdd95 (patch)
tree9e119beeee1e64ca30b953542dd7d31272540559
parent0cbd24fb4a73c7a7cab6243830fcff7c5ae6bcf1 (diff)
downloadvyos-1x-6a8306598218824ef48d302f6095ae8e854bdd95.tar.gz
vyos-1x-6a8306598218824ef48d302f6095ae8e854bdd95.zip
T4809: radvd: Allow the use of AdvRASrcAddress
This add the AdvRASrcAddress configuration option to configure a source address for the router advertisements. The source address still must be configured on the system. This is useful for VRRP setups where you want fe80::1 on the VRRP interface for cleaner VRRP failovers.
-rw-r--r--data/templates/router-advert/radvd.conf.tmpl7
-rw-r--r--interface-definitions/service_router-advert.xml.in13
2 files changed, 20 insertions, 0 deletions
diff --git a/data/templates/router-advert/radvd.conf.tmpl b/data/templates/router-advert/radvd.conf.tmpl
index 88d066491..17869e318 100644
--- a/data/templates/router-advert/radvd.conf.tmpl
+++ b/data/templates/router-advert/radvd.conf.tmpl
@@ -43,6 +43,13 @@ interface {{ iface }} {
};
{% endfor %}
{% endif %}
+{% if iface_config.source_address is defined %}
+ AdvRASrcAddress {
+{% for source_address in iface_config.source_address %}
+ {{ source_address }}
+{% endfor %}
+ };
+{% endif %}
{% if iface_config.prefix is defined and iface_config.prefix is not none %}
{% for prefix, prefix_options in iface_config.prefix.items() %}
prefix {{ prefix }} {
diff --git a/interface-definitions/service_router-advert.xml.in b/interface-definitions/service_router-advert.xml.in
index 0f4009f5c..a15ce8b8f 100644
--- a/interface-definitions/service_router-advert.xml.in
+++ b/interface-definitions/service_router-advert.xml.in
@@ -276,6 +276,19 @@
</leafNode>
</children>
</tagNode>
+ <leafNode name="source-address">
+ <properties>
+ <help>Use IPv6 address as source address. Useful with VRRP.</help>
+ <valueHelp>
+ <format>ipv6</format>
+ <description>IPv6 address to be advertized (must be configured on interface)</description>
+ </valueHelp>
+ <constraint>
+ <validator name="ipv6-address"/>
+ </constraint>
+ <multi/>
+ </properties>
+ </leafNode>
<leafNode name="reachable-time">
<properties>
<help>Time, in milliseconds, that a node assumes a neighbor is reachable after having received a reachability confirmation</help>