Jeltz
9de88d0a28
- add prio to ensure idempotency when reloading the iface - add proto to ease route filtering in bird
67 lines
2.1 KiB
Django/Jinja
67 lines
2.1 KiB
Django/Jinja
{{ ansible_managed | comment }}
|
|
|
|
auto lo
|
|
iface lo
|
|
|
|
{% macro iface_common(iface, index=None) %}
|
|
{% for address in iface.addresses | default([]) %}
|
|
address {{ address | ipaddr }}
|
|
{% endfor %}
|
|
{% for gateway in iface.gateways | default([]) %}
|
|
gateway {{ gateway | ipaddr }}
|
|
{% endfor %}
|
|
{% if iface.forward | default(false) %}
|
|
ip-forward yes
|
|
ip6-forward yes
|
|
{% endif %}
|
|
{% if iface.goto_table is defined %}
|
|
{% set prio = ifupdown2__prio_base + 2 * index %}
|
|
pre-up ip rule add prio {{ prio }} iif $IFACE table {{ iface.goto_table }}
|
|
pre-up ip rule add prio {{ prio + 1 }} iif $IFACE blackhole
|
|
post-down ip rule del prio {{ prio }} iif $IFACE table {{ iface.goto_table }}
|
|
post-down ip rule del prio {{ prio + 1 }} iif $IFACE blackhole
|
|
{% endif %}
|
|
{% if iface.ipv6_addrgen is defined %}
|
|
ipv6-addrgen {{ iface.ipv6_addrgen
|
|
| ternary("yes", "no") }}
|
|
{% endif %}
|
|
{% endmacro %}
|
|
|
|
{% for name, iface in ifupdown2__interfaces.items() %}
|
|
auto {{ name }}
|
|
iface {{ name }}
|
|
{{ iface_common(iface) | indent(4) }}
|
|
{% if iface.bridge_ports is defined %}
|
|
bridge-ports {{ iface.bridge_ports | join(" ") }}
|
|
{% endif %}
|
|
{% if iface.bridge_vlan_aware is defined %}
|
|
bridge-vlan-aware {{ iface.bridge_vlan_aware
|
|
| ternary("yes", "no") }}
|
|
{% endif %}
|
|
{% if iface.bridge_vids is defined %}
|
|
bridge-vids {{ iface.bridge_vids | join(",") }}
|
|
{% endif %}
|
|
{% if iface.vlan_id is defined %}
|
|
vlan-id {{ iface.vlan_id | int }}
|
|
{% endif %}
|
|
{% if iface.vlan_raw_device is defined %}
|
|
vlan-raw-device {{ iface.vlan_raw_device }}
|
|
{% endif %}
|
|
{% if iface.bridge_disable_pvid | default(false) %}
|
|
bridge-pvid 0
|
|
post-up bridge vlan del dev {{ name }} vid 1 self
|
|
{% endif %}
|
|
|
|
{% endfor %}
|
|
|
|
{% for name, iface in ifupdown2__wireguard.items() | sort(attribute="0") %}
|
|
auto {{ name }}
|
|
iface {{ name }}
|
|
link-type wireguard
|
|
{{ iface_common(iface, index=loop.index) | indent(4) }}
|
|
pre-up wg setconf $IFACE /etc/wireguard/$IFACE.conf
|
|
{% for address in iface.peer_allowed_addresses | default([]) %}
|
|
post-up ip route add {{ address }} proto {{ ifupdown2__wireguard_proto }} dev $IFACE
|
|
{% endfor %}
|
|
|
|
{% endfor %}
|