|
|
@ -1,11 +1,54 @@ |
|
|
|
/ip address |
|
|
|
add address=172.22.1.204/24 interface=ether1 network=172.22.1.0 |
|
|
|
add address=169.254.0.2/30 interface=vlan0666 network=169.254.0.0 |
|
|
|
add address=185.66.206.1 interface=loopback network=185.66.206.1 |
|
|
|
add address=169.254.0.2 interface=vlan0666 network=193.162.44.17 |
|
|
|
add address=185.66.206.2 interface=loopback network=185.66.206.2 |
|
|
|
add address=185.66.206.3 interface=loopback network=185.66.206.3 |
|
|
|
|
|
|
|
/ipv6 address |
|
|
|
add address=2a04:1840:1466::/48 advertise=no interface=loopback |
|
|
|
add address=2a10:f0c0:1::4:666:2004/112 advertise=no interface=vlan0666 |
|
|
|
{%- macro physical_interface_comment(interface) %}{% if interface.label %}{{ interface.label|replace('"','\\"') or "-" }}: {% endif %}{{ interface.description|replace('"','\\"') or "-" }}{% if interface.connected_endpoint %} ({{ interface.connected_endpoint.name|replace('"','\\"')|replace('.voneus.net','') }}{% if interface.connected_endpoint.device.name %} @ {{ interface.connected_endpoint.device.name|replace('.voneus.net','')|replace('"','\\"') }}{% endif %}){% endif %}{% if interface.cable %} via [{{ interface.cable.label.split("/")[-1] }}]{% endif %}{% if interface.link_peer %} to [{{ interface.link_peer.label or interface.link_peer.name }}{% if interface.link_peer.device %} @ {{ interface.link_peer.device.name.split("/")[-1]|replace('"','\\"')|replace('.voneus.net','') }}]{% endif %}{% endif %}{%- endmacro %} |
|
|
|
|
|
|
|
{%- macro virtual_interface_comment(interface) %}{% if interface.label %}{{ interface.label|replace('"','\\"') or "-" }}: {% endif %}{{ interface.description|replace('"','\\"') or "-" }}{%- endmacro %} |
|
|
|
|
|
|
|
{%- macro interface_addresses(device, interface, interface_context, interface_tags, mtu=False) %} |
|
|
|
{%- for address in interface|get_addresses %} |
|
|
|
{%- if address|ipv4 %} |
|
|
|
/ip address add interface="{{ interface.name }}" address={{ address.address }} comment="{{ address.description }}" |
|
|
|
{%- elif address|ipv6 %} |
|
|
|
/ipv6 address add interface="{{ interface.name }}" address={{ address.address }} comment="{{ address.description }}" |
|
|
|
{%- endif %} |
|
|
|
{%- endfor %} |
|
|
|
{%- endmacro %} |
|
|
|
|
|
|
|
{%- for interface, subinterfaces in device_interfaces|subinterfaces(".") %} |
|
|
|
{%- set interface_context = interface.tags|get_netbox_tags_contexts|contexts_merge_last %} |
|
|
|
|
|
|
|
{%- if interface.type.value == "25gbase-x-sfp28"%} |
|
|
|
/interface ethernet |
|
|
|
set [ find default-name=sfp28-{{ interface.name.split("/")[-1]|int }} ] name="{{ interface.name|safe_string }}" comment="{{ physical_interface_comment( interface ) }}" |
|
|
|
{%- elif interface.type.value == "10gbase-x-sfpp"%} |
|
|
|
/interface ethernet |
|
|
|
set [ find default-name=sfp-sfpplus{{ interface.name.split("/")[-1]|int }} ] name="{{ interface.name|safe_string }}" comment="{{ physical_interface_comment( interface ) }}" |
|
|
|
{%- elif interface.type.value == "1000base-t"%} |
|
|
|
/interface ethernet |
|
|
|
set [ find default-name=ether{{ interface.name.split("/")[-1]|int }} ] name="{{ interface.name|safe_string }}" comment="{{ physical_interface_comment( interface ) }}" |
|
|
|
{%- elif interface.type.value == "virtual" %} |
|
|
|
/interface bridge |
|
|
|
add name="{{ interface.name|safe_string }}" protocol-mode=none vlan-filtering=no comment="{{ virtual_interface_comment( interface ) }}" |
|
|
|
{%- elif interface.type.value == "bridge" %} |
|
|
|
/interface bridge |
|
|
|
add name="{{ interface.name|safe_string }}" protocol-mode=none vlan-filtering=yes comment="{{ virtual_interface_comment( interface ) }}" |
|
|
|
{%- endif %} |
|
|
|
|
|
|
|
{%- set subinterface_tags = [] %} |
|
|
|
{%- for tag in interface.tags %} |
|
|
|
{%- do interface_tags.append(tag.slug) %} |
|
|
|
{%- endfor %} |
|
|
|
{%- set interface_context = interface.tags|get_netbox_tags_contexts|contexts_merge_last %} |
|
|
|
|
|
|
|
{{ interface_addresses(device, interface, interface_context, interface_tags) }} |
|
|
|
|
|
|
|
{%- for unit, subinterface in subinterfaces %} |
|
|
|
{%- set subinterface_tags = [] %} |
|
|
|
{%- for tag in subinterface.tags %} |
|
|
|
{%- do subinterface_tags.append(tag.slug) %} |
|
|
|
{%- endfor %} |
|
|
|
{%- set subinterface_context = subinterface.tags|get_netbox_tags_contexts|contexts_merge_last %} |
|
|
|
/interface vlan |
|
|
|
add name="{{ subinterface.name }}" interface="{{ interface.name }}" vlan-id={% if subinterface.untagged_vlan %}{{ subinterface.untagged_vlan.vid }}{% elif unit|int %}{{ unit }}{% else %}0{% endif %} |
|
|
|
|
|
|
|
{{ interface_addresses(device, subinterface, subinterface_context, subinterface_tags) }} |
|
|
|
{%- endfor %} |
|
|
|
{%- endfor %} |