exit: determine uplink gateway address from interface address

So we can actually drop the gateway custom field from NetBox interfaces.
This commit is contained in:
Timotej Lazar 2025-03-27 11:31:40 +01:00
parent a2d7174829
commit 09eb030e32

View file

@ -11,8 +11,16 @@ service integrated-vtysh-config
# Route to the outside world.
vrf outside
ip route 0.0.0.0/0 {{ (interfaces | selectattr('name', '==', iface_uplink) | first).custom_fields.gateway.address | ipaddr('address') }} {{ iface_uplink }}
ipv6 route ::/0 fe80::2 {{ iface_uplink }}
{# Add default routes for IPv4 and IPv6. Both are over link-local addresses. #}
{% set uplink = interfaces | selectattr('name', '==', iface_uplink) | first %}
{% for address in uplink.ip_addresses %}
{% set gateway = address.address | ipmath(1) %}
{% if address.family.value == 4 %}
ip route 0.0.0.0/0 {{ gateway }} {{ iface_uplink }}
{% else %}
ipv6 route ::/0 {{ gateway }} {{ iface_uplink }}
{% endif %}
{% endfor %}
# Route installation into kernel fails (rarely) without this option.
# It is not documented anywhere and appears to be a Cumulus extension.