From cc60e0dcd491e606ac45241419a71e3a763f6ac1 Mon Sep 17 00:00:00 2001 From: Viacheslav Hletenko Date: Thu, 28 Mar 2024 12:16:31 +0000 Subject: T5832: VRRP allow set interface for exluded-address Ability to set interface for `excluded-address` The excluded-addresses are not listed in the VRRP packet (adverts packets). We have this ability for `address`, add the same feature for the excluded-address ``` set high-availability vrrp group GRP-01 excluded-address 192.0.2.202 interface 'dum2' set high-availability vrrp group GRP-01 excluded-address 192.0.2.203 interface 'dum3' ``` (cherry picked from commit 0daf445abcd00446da21fe0220d41d5fdde95ebd) --- .../templates/high-availability/keepalived.conf.j2 | 4 ++-- interface-definitions/high-availability.xml.in | 23 +++++++++++++++------- 2 files changed, 18 insertions(+), 9 deletions(-) diff --git a/data/templates/high-availability/keepalived.conf.j2 b/data/templates/high-availability/keepalived.conf.j2 index 240161748..c0d66ae54 100644 --- a/data/templates/high-availability/keepalived.conf.j2 +++ b/data/templates/high-availability/keepalived.conf.j2 @@ -138,8 +138,8 @@ vrrp_instance {{ name }} { {% endif %} {% if group_config.excluded_address is vyos_defined %} virtual_ipaddress_excluded { -{% for addr in group_config.excluded_address %} - {{ addr }} +{% for addr, addr_config in group_config.excluded_address.items() %} + {{ addr }}{{ ' dev ' + addr_config.interface if addr_config.interface is vyos_defined }} {% endfor %} } {% endif %} diff --git a/interface-definitions/high-availability.xml.in b/interface-definitions/high-availability.xml.in index 558404882..7108aa06c 100644 --- a/interface-definitions/high-availability.xml.in +++ b/interface-definitions/high-availability.xml.in @@ -294,25 +294,34 @@ #include - + Virtual address (If you need additional IPv4 and IPv6 in same group) + + ipv4net + IPv4 address and prefix length + + + ipv6net + IPv6 address and prefix length + ipv4 - IP address + IPv4 address ipv6 IPv6 address - - - + + - Virtual address must be a valid IPv4 or IPv6 address with prefix length (e.g. 192.0.2.3/24 or 2001:db8:ff::10/64) - + + #include + + Virtual router identifier -- cgit v1.2.3