diff --git a/interface-templates/vrrp/vrrp-group/node.tag/multicast-on-ipv6/node.def b/interface-templates/vrrp/vrrp-group/node.tag/multicast-on-ipv6/node.def new file mode 100644 index 0000000..be48df2 --- /dev/null +++ b/interface-templates/vrrp/vrrp-group/node.tag/multicast-on-ipv6/node.def @@ -0,0 +1,3 @@ +type: bool +help: Send multicasts over IPv6 instead of IPv4 +default: true diff --git a/interface-templates/vrrp/vrrp-group/node.tag/virtual-address/node.def b/interface-templates/vrrp/vrrp-group/node.tag/virtual-address/node.def index 676bf8d..f34ec69 100644 --- a/interface-templates/vrrp/vrrp-group/node.tag/virtual-address/node.def +++ b/interface-templates/vrrp/vrrp-group/node.tag/virtual-address/node.def @@ -1,5 +1,5 @@ multi: -type: ipv4,ipv4net +type: txt help: Virtual address [REQUIRED] syntax:expression: exec " @@ -7,3 +7,5 @@ syntax:expression: exec " val_help: ipv4; Virtual IP address (up to 20 per group) val_help: ipv4net; Virtual IP address with prefix (up to 20 per group) +val_help: ipv6; Virtual IPv6 address (up to 20 per group) +val_help: ipv6net; Virtual IPv6 address with prefix (up to 20 per group) diff --git a/scripts/vyatta-keepalived.pl b/scripts/vyatta-keepalived.pl index dadc429..4cd6a00 100755 --- a/scripts/vyatta-keepalived.pl +++ b/scripts/vyatta-keepalived.pl @@ -145,6 +145,11 @@ sub keepalived_get_values { next; } + my $multicast_on_ipv6 = 0; + if ($config->exists("multicast-on-ipv6")) { + $multicast_on_ipv6 = 1; + } + my $use_vmac = 0; my $transition_intf = $intf; if ( $config->exists("rfc3768-compatibility") ) { @@ -275,6 +280,9 @@ sub keepalived_get_values { $output .= "\tstate $init_state\n"; $output .= "\tinterface $intf\n"; $output .= "\tvirtual_router_id $group\n"; + if ($multicast_on_ipv6) { + $output .= "\tnative_ipv6\n"; + } if ($use_vmac) { $output .= "\tuse_vmac $intf"; $output .= "v";