From 6a624b354adca1174d8a6703d43f4fd67cccae0a Mon Sep 17 00:00:00 2001 From: Thomas Schneider <thomas@fsmpi.rwth-aachen.de> Date: Fri, 12 May 2023 12:37:40 +0200 Subject: [PATCH] networkd: Configure Network.LinkLocalAddressing --- networkd/defaults/main.yml | 3 +++ networkd/templates/20-wired-dhcp.network.j2 | 3 +++ networkd/templates/20-wired-routed.network.j2 | 3 +++ networkd/templates/20-wired-static.network.j2 | 1 + networkd/templates/bond.network.j2 | 1 + networkd/templates/bridge.network.j2 | 3 ++- networkd/templates/vlan.network.j2 | 3 ++- 7 files changed, 15 insertions(+), 2 deletions(-) diff --git a/networkd/defaults/main.yml b/networkd/defaults/main.yml index 38d6196..6c23bf2 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 3737690..b806811 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 9a7673c..6161bd2 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 024d387..5824c6a 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 fa6b046..bd9a66a 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 2fbc73c..491c6b7 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 fda8a92..6b7c90f 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 %} -- GitLab