summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSander Klein <github@roedie.nl>2022-12-16 22:55:57 +0100
committerSander Klein <github@roedie.nl>2022-12-16 22:55:57 +0100
commit13071a4a534b2101120e0c007f0fbb5174b79052 (patch)
tree8dbabe65427ec2327711ba5b237abe94500e8ec5
parent28c7960b6cc9bb05fafb0f2b8659b169b13c0071 (diff)
downloadvyos-1x-13071a4a534b2101120e0c007f0fbb5174b79052.tar.gz
vyos-1x-13071a4a534b2101120e0c007f0fbb5174b79052.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.j27
-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.j2 b/data/templates/router-advert/radvd.conf.j2
index a464795ad..f4b384958 100644
--- a/data/templates/router-advert/radvd.conf.j2
+++ b/data/templates/router-advert/radvd.conf.j2
@@ -43,6 +43,13 @@ interface {{ iface }} {
};
{% endfor %}
{% endif %}
+{% if iface_config.source_address is vyos_defined %}
+ AdvRASrcAddress {
+{% for source_address in iface_config.source_address %}
+ {{ source_address }}
+{% endfor %}
+ };
+{% endif %}
{% if iface_config.prefix is vyos_defined %}
{% 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 87ec512d6..8b7364a8c 100644
--- a/interface-definitions/service-router-advert.xml.in
+++ b/interface-definitions/service-router-advert.xml.in
@@ -305,6 +305,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>