diff --git a/networkd/defaults/main.yml b/networkd/defaults/main.yml index 38d6196259a22d27bcfe27acd32204f886ec1eb8..6c23bf28cb2629f3069bc2c6f9bcd07911cba7e5 100644 --- a/networkd/defaults/main.yml +++ b/networkd/defaults/main.yml @@ -10,11 +10,13 @@ # networkd: # - type: 'dhcp' +# link_local_addressing: "no" # - type: 'static' # address: '10.10.10.10/24' # gateway: '10.10.10.1' # - type: 'routed' # identifier: 'file-name' +# link_local_addressing: "ipv4" # interfaces: # - 'eth0' # addresses: @@ -76,6 +78,7 @@ networkd_bond_vlans: name: storage bridge: false address: 10.10.10.10/24 + link_local_addressing: "no" - id: 42 name: public bridge: true diff --git a/networkd/templates/20-wired-dhcp.network.j2 b/networkd/templates/20-wired-dhcp.network.j2 index 373769005fe787c3d897c0b2cd57920e4cb28d3d..b806811b77ba80655020ee08d6691b3efdb31361 100644 --- a/networkd/templates/20-wired-dhcp.network.j2 +++ b/networkd/templates/20-wired-dhcp.network.j2 @@ -6,6 +6,9 @@ DHCP=ipv4 {% if networkd_ipfwd %} IPForward=yes {% endif %} +{% if network.link_local_addressing is defined %} +LinkLocalAddressing={{ network.link_local_addressing }} +{% endif %} {% for custom in network.custom|default([]) %} [{{ custom.category }}] diff --git a/networkd/templates/20-wired-routed.network.j2 b/networkd/templates/20-wired-routed.network.j2 index 9a7673ca10e9dc6f483bd83a58408186cb935f2e..6161bd248d2bec5b0f632da75947eced71a9dc96 100644 --- a/networkd/templates/20-wired-routed.network.j2 +++ b/networkd/templates/20-wired-routed.network.j2 @@ -10,6 +10,9 @@ Name={{ network.interfaces|default([network.interface])|join(' ') }} Address={{ addr }} {% endfor %} {% endif %} +{% if (network.link_local_addressing|default(none)) is not none %} +LinkLocalAddressing={{ network.link_local_addressing }} +{% endif %} {% for server in network.nameservers|default(nameservers) %} DNS={{ server }} {% endfor %} diff --git a/networkd/templates/20-wired-static.network.j2 b/networkd/templates/20-wired-static.network.j2 index 024d3872cc904ff1198304a388958a9ac302e172..5824c6a87863c39660958c557b1653050cb9747e 100644 --- a/networkd/templates/20-wired-static.network.j2 +++ b/networkd/templates/20-wired-static.network.j2 @@ -2,5 +2,6 @@ 'interface': item.1.interface|default(networkd_interface|default(ansible_default_ipv4.interface)), 'addresses': item.1.addresses|default([item.1.adress|default(networkd_address)]), 'gateway': item.1.gateway|default(networkd_gateway), + 'link_local_addressing': item.1.link_local_addressing|default(None) } %} {% include "20-wired-routed.network.j2" %} diff --git a/networkd/templates/bond.network.j2 b/networkd/templates/bond.network.j2 index fa6b046650cd0db5935c04f273e979d2bd283b9c..bd9a66ac6a095630e2e09eedc5a3b95fe046bd5a 100644 --- a/networkd/templates/bond.network.j2 +++ b/networkd/templates/bond.network.j2 @@ -6,3 +6,4 @@ Name={{ bond.bond|default(networkd_bond) }} VLAN=vl-{{ vlan.name }} {% endfor %} BindCarrier={{ bond.interfaces|default(networkd_bond_devices)|join(' ') }} +LinkLocalAddressing=no diff --git a/networkd/templates/bridge.network.j2 b/networkd/templates/bridge.network.j2 index 2fbc73c95121008eee961753415642348274c02f..491c6b7aa49b2f262d58419beee6331a28c9114b 100644 --- a/networkd/templates/bridge.network.j2 +++ b/networkd/templates/bridge.network.j2 @@ -2,6 +2,7 @@ 'interface': 'vmbr-' + item.name, 'addresses': [item.address] if item.address is defined else [], 'nameservers': [], - 'routes': [{'gateway': item.gateway}] if item.gateway is defined else [] + 'routes': [{'gateway': item.gateway}] if item.gateway is defined else [], + 'link_local_addressing': item.link_local_addressing|default(None) } %} {% include "20-wired-routed.network.j2" %} diff --git a/networkd/templates/vlan.network.j2 b/networkd/templates/vlan.network.j2 index fda8a92cc8bf56887f7d6dab62ca09bda9d3c441..6b7c90f0c527a78b4175a1af7f280a205aae62cd 100644 --- a/networkd/templates/vlan.network.j2 +++ b/networkd/templates/vlan.network.j2 @@ -9,7 +9,8 @@ Bridge=vmbr-{{ item.name }} 'interface': 'vl-' + item.name, 'addresses': item.addresses|default([item.address] if item.address is defined else []), 'nameservers': item.nameservers|default([]), - 'routes': item.routes|default([{'gateway': item.gateway}] if item.gateway is defined else []) + 'routes': item.routes|default([{'gateway': item.gateway}] if item.gateway is defined else []), + 'link_local_addressing': item.link_local_addressing|default(None) } %} {% include "20-wired-routed.network.j2" %} {% endif %}