Browse Source

configure, rename, and address interfaces

master
Marek Isalski 3 years ago
parent
commit
e490c57d8b
1 changed files with 54 additions and 11 deletions
  1. +54
    -11
      includes/routeros-v7-aggregation-router/interfaces.j2

+ 54
- 11
includes/routeros-v7-aggregation-router/interfaces.j2

@ -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 %}

Loading…
Cancel
Save