aboutsummaryrefslogtreecommitdiff
path: root/os/config/roles/network
diff options
context:
space:
mode:
authorQuentin Dufour <quentin@deuxfleurs.fr>2020-10-22 17:57:02 +0200
committerQuentin Dufour <quentin@deuxfleurs.fr>2020-10-22 17:57:02 +0200
commit6858f17766fcd6fd0f05c43393188b79d29be5e5 (patch)
treebd8225399059557be803302d0c45e3f62010ad55 /os/config/roles/network
parent5c31fbf0b12632b32912fa92be3d53b6e3902b91 (diff)
downloadinfrastructure-6858f17766fcd6fd0f05c43393188b79d29be5e5.tar.gz
infrastructure-6858f17766fcd6fd0f05c43393188b79d29be5e5.zip
Rework Ansible to support ipv6
Diffstat (limited to 'os/config/roles/network')
-rw-r--r--os/config/roles/network/files/rules.v612
-rw-r--r--os/config/roles/network/tasks/main.yml7
-rw-r--r--os/config/roles/network/templates/en.network9
-rw-r--r--os/config/roles/network/templates/rules.v4 (renamed from os/config/roles/network/templates/rules.v4.j2)8
-rw-r--r--os/config/roles/network/templates/rules.v638
5 files changed, 56 insertions, 18 deletions
diff --git a/os/config/roles/network/files/rules.v6 b/os/config/roles/network/files/rules.v6
deleted file mode 100644
index 17ff71c..0000000
--- a/os/config/roles/network/files/rules.v6
+++ /dev/null
@@ -1,12 +0,0 @@
-# WARNING!! When rules.{v4,v6} are changed, the whole iptables configuration is reloaded.
-# This creates issues with Docker, which injects its own configuration in iptables when it starts.
-# In practice, most (all?) containers will break if rules.{v4,v6} are changed,
-# and docker will have to be restared.
-
-
-*filter
-:INPUT DROP [0:0]
-:FORWARD DROP [0:0]
-:OUTPUT ACCEPT [0:0]
-COMMIT
-
diff --git a/os/config/roles/network/tasks/main.yml b/os/config/roles/network/tasks/main.yml
index 1443e0c..caa6bff 100644
--- a/os/config/roles/network/tasks/main.yml
+++ b/os/config/roles/network/tasks/main.yml
@@ -1,8 +1,11 @@
- name: "Deploy iptablesv4 configuration"
- template: src=rules.v4.j2 dest=/etc/iptables/rules.v4
+ template: src=rules.v4 dest=/etc/iptables/rules.v4
- name: "Deploy iptablesv6 configuration"
- copy: src=rules.v6 dest=/etc/iptables/rules.v6
+ template: src=rules.v6 dest=/etc/iptables/rules.v6
+
+- name: "Deploy systemd-networkd configuration"
+ template: src=en.network dest=/etc/systemd/network/en.network
- name: "Activate IP forwarding"
sysctl:
diff --git a/os/config/roles/network/templates/en.network b/os/config/roles/network/templates/en.network
new file mode 100644
index 0000000..b9b52e9
--- /dev/null
+++ b/os/config/roles/network/templates/en.network
@@ -0,0 +1,9 @@
+[Match]
+Name={{ interface }}
+
+[Network]
+Address={{ ipv4 }}/24
+Address={{ ipv6 }}/64
+Gateway=192.168.1.254
+DNS={{ ipv4 }}
+DNS={{ dns_server }}
diff --git a/os/config/roles/network/templates/rules.v4.j2 b/os/config/roles/network/templates/rules.v4
index a446139..159f5f7 100644
--- a/os/config/roles/network/templates/rules.v4.j2
+++ b/os/config/roles/network/templates/rules.v4
@@ -3,15 +3,15 @@
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]
+# Debug
+-A INPUT -p icmp -j ACCEPT
+
# Administration
-A INPUT -p tcp --dport 22 -j ACCEPT
# Cluster
--A INPUT -s 192.168.1.254 -j ACCEPT
--A INPUT -s 82.253.205.190 -j ACCEPT
{% for selected_host in groups['cluster_nodes'] %}
--A INPUT -s {{ hostvars[selected_host]['public_ip'] }} -j ACCEPT
--A INPUT -s {{ hostvars[selected_host]['private_ip'] }} -j ACCEPT
+-A INPUT -s {{ hostvars[selected_host]['ipv4'] }} -j ACCEPT
{% endfor %}
# Local
diff --git a/os/config/roles/network/templates/rules.v6 b/os/config/roles/network/templates/rules.v6
new file mode 100644
index 0000000..7365b8a
--- /dev/null
+++ b/os/config/roles/network/templates/rules.v6
@@ -0,0 +1,38 @@
+*filter
+:INPUT DROP [0:0]
+:FORWARD DROP [0:0]
+:OUTPUT ACCEPT [0:0]
+
+# Debug
+-A INPUT -p icmp -j ACCEPT
+
+# Administration
+-A INPUT -p tcp --dport 22 -j ACCEPT
+
+# Cluster
+{% for selected_host in groups['cluster_nodes'] %}
+-A INPUT -s {{ hostvars[selected_host]['ipv6'] }} -j ACCEPT
+{% endfor %}
+
+# Local
+-A INPUT -i docker0 -j ACCEPT
+-A INPUT -s ::1/128 -j ACCEPT
+-A INPUT -m conntrack --cstate ESTABLISHED,RELATED -j ACCEPT
+
+COMMIT
+
+*nat
+:PREROUTING ACCEPT [0:0]
+:INPUT ACCEPT [0:0]
+:OUTPUT ACCEPT [0:0]
+:POSTROUTING ACCEPT [0:0]
+COMMIT
+
+*mangle
+:PREROUTING ACCEPT [0:0]
+:INPUT ACCEPT [0:0]
+:FORWARD ACCEPT [0:0]
+:OUTPUT ACCEPT [0:0]
+:POSTROUTING ACCEPT [0:0]
+COMMIT
+