From 88686ab939e2886c1ee317240b112088b3d0c63e Mon Sep 17 00:00:00 2001 From: Timotej Lazar Date: Thu, 31 Jul 2025 17:49:37 +0200 Subject: [PATCH] access: set IPv6 management address for D-Link switches Also default route. --- roles/access/templates/config-d-link.j2 | 35 ++++++++++++++----------- 1 file changed, 20 insertions(+), 15 deletions(-) diff --git a/roles/access/templates/config-d-link.j2 b/roles/access/templates/config-d-link.j2 index 9d0281d..1a4b3b5 100644 --- a/roles/access/templates/config-d-link.j2 +++ b/roles/access/templates/config-d-link.j2 @@ -1,3 +1,5 @@ +{% set mgmt_iface = interfaces | selectattr('mgmt_only') | first -%} + terminal length default 0 no ip http server line console @@ -19,7 +21,6 @@ interface {{ iface.name }} {% endfor %} {# access interfaces #} -{%- set mgmt = namespace(ip=false, gw=false) %} {%- for iface in interfaces | rejectattr('lag') %} interface {{ iface.name }} {# common setup for user-facing interfaces #} @@ -73,16 +74,6 @@ interface {{ iface.name }} {% endif %} -{# store management address and gateway for later #} -{%- if iface.mgmt_only and iface.ip_addresses %} -{% set mgmt.ip = iface.ip_addresses[0].address %} -{% set subnet = mgmt.ip | ipaddr('subnet') %} -{% set prefix = prefixes | selectattr('prefix', '==', subnet) | first %} -{% if prefix.custom_fields.gateway %} -{% set mgmt.gw = prefix.custom_fields.gateway.address %} -{% endif %} -{% endif %} - {% if iface.name in ifaces_dhcp | default([]) %} ip dhcp snooping trust {% else %} @@ -91,10 +82,14 @@ interface {{ iface.name }} {% endfor %} {# management VLAN #} -{%- if mgmt.ip %} interface Vlan1 - ip address {{ mgmt.ip | ipaddr('address') }} {{ mgmt.ip | ipaddr('netmask') }} +{% for address in mgmt_iface.ip_addresses %} +{% if address.family.value == 4 %} + ip address {{ address.address | ipaddr('address') }} {{ address.address | ipaddr('netmask') }} +{% else %} + ipv6 address {{ address.address | upper }} {% endif %} +{% endfor %} voice vlan mac-address 2C-3E-CF-00-00-00 FF-FF-FF-00-00-00 description Cisco voice vlan mac-address 3C-0E-23-00-00-00 FF-FF-FF-00-00-00 description Cisco @@ -127,8 +122,18 @@ ip dhcp snooping no ip dhcp snooping {% endif %} -{% if mgmt.gw %} -ip route 0.0.0.0 0.0.0.0 {{ mgmt.gw | ipaddr('address') }} primary +{% for address in mgmt_iface.ip_addresses %} +{% set subnet = address.address | ipaddr('subnet') %} +{% set prefix = prefixes | selectattr('prefix', '==', subnet) | first %} +{% if prefix.custom_fields.gateway %} +{% set gateway = prefix.custom_fields.gateway %} +{% if gateway.family.value == 4 %} +ip route 0.0.0.0 0.0.0.0 {{ gateway.address | ipaddr('address') }} primary +{% else %} +ipv6 route default vlan1 {{ gateway.address | ipaddr('address') | upper }} primary {% endif %} +{% endif %} +{% endfor %} + no ddp