diff --git a/manifests/provider/systemd.pp b/manifests/provider/systemd.pp index b898d8a..1222223 100644 --- a/manifests/provider/systemd.pp +++ b/manifests/provider/systemd.pp @@ -44,6 +44,7 @@ 'interface' => $interface, 'addresses' => $addresses, 'routes' => $routes, + 'systemd_version' => Integer($facts['systemd_version']), } systemd::network { "${interface}.network": diff --git a/spec/fixtures/test_files/peers.network b/spec/fixtures/test_files/peers.network index c4c8e1f..6784e05 100644 --- a/spec/fixtures/test_files/peers.network +++ b/spec/fixtures/test_files/peers.network @@ -6,7 +6,8 @@ Name=as1234 [Network] DHCP=no IPv6AcceptRA=false -IPForward=yes +IPv4Forwarding=yes +IPv6Forwarding=yes # for networkd >= 244 KeepConfiguration stops networkd from # removing routes on this interface when restarting diff --git a/spec/fixtures/test_files/peers_routes.network b/spec/fixtures/test_files/peers_routes.network index 10b410b..2392673 100644 --- a/spec/fixtures/test_files/peers_routes.network +++ b/spec/fixtures/test_files/peers_routes.network @@ -6,7 +6,8 @@ Name=as1234 [Network] DHCP=no IPv6AcceptRA=false -IPForward=yes +IPv4Forwarding=yes +IPv6Forwarding=yes # for networkd >= 244 KeepConfiguration stops networkd from # removing routes on this interface when restarting diff --git a/templates/network.epp b/templates/network.epp index 8b89d28..145947f 100644 --- a/templates/network.epp +++ b/templates/network.epp @@ -2,6 +2,7 @@ Array[Hash] $addresses, String[1] $interface, Array[Hash[String[1], Variant[String[1], Boolean]]] $routes, + Integer $systemd_version, | -%> # THIS FILE IS MANAGED BY PUPPET # based on https://dn42.dev/howto/wireguard @@ -11,7 +12,12 @@ Name=<%= $interface %> [Network] DHCP=no IPv6AcceptRA=false +<%- if $systemd_version < 256 -%> IPForward=yes +<%- else -%> +IPv4Forwarding=yes +IPv6Forwarding=yes +<%- end -%> # for networkd >= 244 KeepConfiguration stops networkd from # removing routes on this interface when restarting