First-Hop Gateway Configuration Templates

This document describes First-Hop Gateway configuration module implementation details.

Configuration Template Boilerplate

  • If your device supports device-wide shared (anycast) MAC addresses, use node gateway.anycast.mac parameter to set the shared virtual router MAC address.

{% if gateway.anycast.mac is defined %}
ip virtual-router mac-address {{ gateway.anycast.mac }}
{% endif %}
  • Iterate over interfaces and select only those that have gateway.protocol set

  • Based on the value of gateway.protocol configure the desired FHRP protocol. You might want to use included files for clarity.

{% for intf in interfaces if intf.gateway.protocol is defined %}
interface {{ intf.ifname }}
{%   if intf.gateway.protocol == 'anycast' %}
### anycast configuration
{%   endif %}
{% endfor %}

Configuring Anycast Gateways

When configuring anycast gateway on an interface, use the following interface parameters:

  • gateway.protocol must be set to anycast.

  • gateway.ipv4 must be set to a valid IPv4 address (string)

  • gateway.anycast.mac could be set to a link-specific shared MAC address. Ignore this parameter if your platform cannot support link-specific virtual router MAC addresses.

{% for intf in interfaces if intf.gateway.protocol is defined %}
interface {{ intf.ifname }}
{%   if intf.gateway.protocol == 'anycast' %}
  ip virtual-router address {{ intf.gateway.ipv4 }}
{%   endif %}
{% endfor %}