From 821330bf99f53b15c03f65f0cf9fac002b0c582a Mon Sep 17 00:00:00 2001
From: shirenn <shirenn@crans.org>
Date: Sat, 15 May 2021 14:27:36 +0200
Subject: [PATCH] [radvd] pep-crans

---
 group_vars/radvd.yml                | 23 +++++++++++++++++++++++
 plays/radvd.yml                     |  7 +++++++
 roles/radvd/templates/radvd.conf.j2 |  7 +++++--
 3 files changed, 35 insertions(+), 2 deletions(-)
 create mode 100644 group_vars/radvd.yml
 create mode 100755 plays/radvd.yml

diff --git a/group_vars/radvd.yml b/group_vars/radvd.yml
new file mode 100644
index 00000000..e89ae22e
--- /dev/null
+++ b/group_vars/radvd.yml
@@ -0,0 +1,23 @@
+glob_radvd:
+  subnets:
+    - name: infra
+      prefix: fd00:0:0:11::/64
+      no_gateway: yes
+      dnssl: infra.crans.org
+      dns:
+        - fd00::11:0:ff:fe00:9911
+    - name: adh
+      prefix: 2a0c:700:12::/64
+      dnssl: adh.crans.org
+      dns:
+        - 2a0c:700:12::ff:fe00:9912
+    - name: adh_nat
+      prefix: 2a0c:700:13::/64
+      dnssl: adh-nat.crans.org
+      dns:
+        - 2a0c:700:13::ff:fe00:9913
+    - name: federez
+      prefix: 2a0c:700:254::/64
+      dnssl: federez.net
+      dns:
+        - 2a0c:700:254::ff:fe00:99fe
diff --git a/plays/radvd.yml b/plays/radvd.yml
new file mode 100755
index 00000000..38f2416f
--- /dev/null
+++ b/plays/radvd.yml
@@ -0,0 +1,7 @@
+#!/usr/bin/env ansible-playbook
+---
+- hosts: crans_routeurs
+  vars:
+    radvd: "{{ glob_radvd | default({}) | combine(loc_radvd | default({})) }}"
+  roles:
+    - radvd
diff --git a/roles/radvd/templates/radvd.conf.j2 b/roles/radvd/templates/radvd.conf.j2
index d6bcaf33..b46e6815 100644
--- a/roles/radvd/templates/radvd.conf.j2
+++ b/roles/radvd/templates/radvd.conf.j2
@@ -1,7 +1,10 @@
-{% for subnet in subnets %}
+{% for subnet in radvd.subnets %}
 interface {{ interfaces[subnet.name] }} {
 	AdvSendAdvert on;
 	AdvDefaultPreference high;
+{% if subnet.no_gateway is defined and subnet.no_gateway %}
+	AdvDefaultLifetime 0;
+{% endif %}
 	MaxRtrAdvInterval 30;
 
 	prefix {{ subnet.prefix }} {
@@ -9,7 +12,7 @@ interface {{ interfaces[subnet.name] }} {
 	};
 
 	# La zone DNS
-	DNSSL {{ subnet.name | replace('_', '-') }}.crans.org {};
+	DNSSL {{ subnet.dnssl }} {};
 
 	# Les DNS récursifs
 {% for dns in subnet.dns %}
-- 
GitLab