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