Mainly so we can add IPv6 mgmt addresses and drop the gateway custom field from NetBox interfaces.
		
			
				
	
	
		
			31 lines
		
	
	
	
		
			1 KiB
		
	
	
	
		
			Django/Jinja
		
	
	
	
	
	
			
		
		
	
	
			31 lines
		
	
	
	
		
			1 KiB
		
	
	
	
		
			Django/Jinja
		
	
	
	
	
	
| auto mgmt
 | |
| iface mgmt
 | |
|     pre-up ip link add $IFACE type vrf table 100
 | |
|     up ip link set dev $IFACE up
 | |
|     post-down ip link del $IFACE
 | |
| 
 | |
| {% for iface in interfaces | selectattr('name', 'match', '^mgmt') %}
 | |
| auto {{ iface.name }}
 | |
| iface {{ iface.name }}
 | |
| {% if iface.vrf %}
 | |
|     requires {{ iface.vrf.name }}
 | |
|     pre-up ip link set $IFACE master {{ iface.vrf.name }}
 | |
| {% endif %}
 | |
|     pre-up sysctl -w net.ipv4.conf.$IFACE.forwarding=0
 | |
|     pre-up sysctl -w net.ipv6.conf.$IFACE.forwarding=0
 | |
| {% if iface.mtu %}
 | |
|     mtu {{ iface.mtu }}
 | |
| {% endif %}
 | |
| {% for addr in iface.ip_addresses %}
 | |
|     address {{ addr.address }}
 | |
| {% set subnet = addr.address | ipaddr('subnet') %}
 | |
| {% set prefix_match = prefixes | selectattr('prefix', '==', subnet) %}
 | |
| {% if prefix_match %}
 | |
| {% set prefix = prefix_match | first %}
 | |
| {% if prefix.custom_fields.gateway %}
 | |
|     up ip route add default via {{ prefix.custom_fields.gateway.address | ipaddr('address') }}{% if iface.vrf %} vrf {{ iface.vrf.name }}{% endif %}
 | |
| {% endif %}
 | |
| {% endif +%}
 | |
| {% endfor %}
 | |
| 
 | |
| {% endfor %}
 |