Browse Source

Bird: Add protocol to import mesh prefixes for all sites configured.

Signed-off-by: Maximilian Wilhelm <max@rfc2324.org>
Maximilian Wilhelm 7 years ago
parent
commit
2460b71817
2 changed files with 43 additions and 0 deletions
  1. 27 0
      bird/init.sls
  2. 16 0
      bird/mesh_routes.conf

+ 27 - 0
bird/init.sls

@@ -307,7 +307,34 @@ bird6-configure:
       - file: /etc/bird/bird6.d
     - require_in:
       - service: bird6
+
+/etc/bird/bird.d/mesh_routes.conf:
+  file.managed:
+    - source: salt://bird/mesh_routes.conf
+    - template: jinja
+    - watch_in:
+      - cmd: bird-configure
+    - require:
+      - file: /etc/bird/bird.d
+    - require_in:
+      - service: bird
+
+/etc/bird/bird6.d/mesh_routes.conf:
+  file.managed:
+    - source: salt://bird/mesh_routes.conf
+    - template: jinja
+    - watch_in:
+      - cmd: bird6-configure
+    - require:
+      - file: /etc/bird/bird6.d
+    - require_in:
+      - service: bird6
+
 {% else %}
 /etc/bird/bird6.d/ravd.conf:
   file.absent
+/etc/bird/bird.d/mesh_routes.conf:
+  file.absent
+/etc/bird/bird6.d/mesh_routes.conf:
+  file.absent
 {% endif %}

+ 16 - 0
bird/mesh_routes.conf

@@ -0,0 +1,16 @@
+#
+# Learn mesh prefixes (Salt managed)
+#
+
+{% for site in salt['pillar.get']('nodes:' ~ grains['id'] ~ ':sites', []) %}
+protocol direct mesh_{{ salt['ffho.re_replace']('-', '_', site) }} {
+	interface "br-{{ site }}";
+	check link yes;
+
+	import all;
+	# TODO Add filter to enable/disable import of prefix per site
+	# according to gateway status (announced / not announced) to
+	# prevent prefix from beein announced when mesh is broken or
+	# something like this.
+}
+{% endfor %}