Explorar el Código

Refactor peering role, move host vars to inventory, update inventory

Markus Lindenberg hace 9 años
padre
commit
2da6495205
Se han modificado 34 ficheros con 133 adiciones y 96 borrados
  1. 1 1
      Makefile
  2. 2 0
      inventories/dortmund/group_vars/all/peering.yml
  3. 4 0
      inventories/dortmund/host_vars/map.ffdo.de/mesh.yml
  4. 2 0
      inventories/dortmund/host_vars/snode01-1.ffdo.de/dhcp.yml
  5. 4 0
      inventories/dortmund/host_vars/snode01-1.ffdo.de/mesh.yml
  6. 21 0
      inventories/dortmund/host_vars/snode01-1.ffdo.de/peering.yml
  7. 2 0
      inventories/dortmund/host_vars/snode01-2.ffdo.de/dhcp.yml
  8. 4 0
      inventories/dortmund/host_vars/snode01-2.ffdo.de/mesh.yml
  9. 2 0
      inventories/dortmund/host_vars/snode02-1.ffdo.de/dhcp.yml
  10. 4 0
      inventories/dortmund/host_vars/snode02-1.ffdo.de/mesh.yml
  11. 21 0
      inventories/dortmund/host_vars/snode02-1.ffdo.de/peering.yml
  12. 2 0
      inventories/dortmund/host_vars/snode02-2.ffdo.de/dhcp.yml
  13. 4 0
      inventories/dortmund/host_vars/snode02-2.ffdo.de/mesh.yml
  14. 8 0
      inventories/dortmund/hosts
  15. 0 8
      inventory/dortmund
  16. 0 22
      playbooks/group_vars/all/supernodes.yml
  17. 0 9
      playbooks/group_vars/all/uplinks.yml
  18. 1 1
      playbooks/supernode.yml
  19. 2 2
      roles/internal/ffdo.bird/templates/bird.conf.j2
  20. 2 2
      roles/internal/ffdo.bird/templates/bird6.conf.j2
  21. 0 5
      roles/internal/ffdo.gre-uplink/tasks/debian.yml
  22. 0 14
      roles/internal/ffdo.gre-uplink/templates/bird.conf.j2
  23. 0 23
      roles/internal/ffdo.gre-uplink/templates/uplink_interfaces.j2
  24. 0 0
      roles/internal/ffdo.peering/README.md
  25. 0 0
      roles/internal/ffdo.peering/defaults/main.yml
  26. 0 0
      roles/internal/ffdo.peering/handlers/main.yml
  27. 0 0
      roles/internal/ffdo.peering/meta/main.yml
  28. 4 0
      roles/internal/ffdo.peering/tasks/debian.yml
  29. 4 4
      roles/internal/ffdo.gre-uplink/tasks/main.yml
  30. 14 0
      roles/internal/ffdo.peering/templates/bird.conf.j2
  31. 5 5
      roles/internal/ffdo.gre-uplink/templates/bird6.conf.j2
  32. 20 0
      roles/internal/ffdo.peering/templates/peering_interfaces.j2
  33. 0 0
      roles/internal/ffdo.peering/templates/supernode.sysctl.j2
  34. 0 0
      roles/internal/ffdo.peering/vars/main.yml

+ 1 - 1
Makefile

@@ -1,4 +1,4 @@
-ANSIBLE=ansible-playbook -i inventory
+ANSIBLE=ansible-playbook -i inventories/dortmund
 
 .PHONY: setup test update manage-users check-playbooks
 

+ 2 - 0
inventories/dortmund/group_vars/all/peering.yml

@@ -0,0 +1,2 @@
+as: '65403'
+routerid: "{{mesh_ipv4|ipaddr('address')}}"

+ 4 - 0
inventories/dortmund/host_vars/map.ffdo.de/mesh.yml

@@ -0,0 +1,4 @@
+mesh_ip_v4: 10.42.0.1/16
+mesh_ip_v6: fdec:16a3:681b:865c::1/64
+mesh_mac: 00:16:3e:07:46:d1
+bat_mac: 00:16:3e:27:8f:11

+ 2 - 0
inventories/dortmund/host_vars/snode01-1.ffdo.de/dhcp.yml

@@ -0,0 +1,2 @@
+dhcp_range_start: 10.42.9.1
+dhcp_range_end: 10.42.15.254

+ 4 - 0
inventories/dortmund/host_vars/snode01-1.ffdo.de/mesh.yml

@@ -0,0 +1,4 @@
+mesh_mac: 00:16:3e:7f:3b:9e
+bat_mac: 00:16:3e:04:49:a2
+mesh_ipv4: 10.42.8.1/16
+mesh_ipv6: fdec:16a3:681b:865c::8/64

+ 21 - 0
inventories/dortmund/host_vars/snode01-1.ffdo.de/peering.yml

@@ -0,0 +1,21 @@
+peers:
+  - name: ffrg-25
+    as: '65079'
+    source_ip4: 10.0.6.2
+    peer_ip4: 10.0.6.1
+    source_ip6: 2a03:2260:50:5a::2
+    peer_ip6: 2a03:2260:50:5a::1
+    gre:
+      ip: 10.0.6.2/30
+      ip6: 2a03:2260:50:5a::2/64
+      endpoint: 5.39.121.115
+  - name: ffrg11
+    as: '65079'
+    source_ip4: 10.0.6.6
+    peer_ip4: 10.0.6.5
+    source_ip6: 2a03:2260:50:5b::2
+    peer_ip6: 2a03:2260:50:5b::1
+    gre:
+      ip: 10.0.6.6/30
+      ip6: 2a03:2260:50:5b::2/64
+      endpoint: 85.14.244.128

+ 2 - 0
inventories/dortmund/host_vars/snode01-2.ffdo.de/dhcp.yml

@@ -0,0 +1,2 @@
+dhcp_range_start: 10.42.25.1
+dhcp_range_end: 10.42.31.254

+ 4 - 0
inventories/dortmund/host_vars/snode01-2.ffdo.de/mesh.yml

@@ -0,0 +1,4 @@
+mesh_mac: 00:16:3e:2d:30:c6
+bat_mac: 00:16:3e:33:6a:1f
+mesh_ipv4: 10.42.24.1/16
+mesh_ipv6: fdec:16a3:681b:865c::24/64

+ 2 - 0
inventories/dortmund/host_vars/snode02-1.ffdo.de/dhcp.yml

@@ -0,0 +1,2 @@
+dhcp_range_start: 10.42.17.1
+dhcp_range_end: 10.42.23.254

+ 4 - 0
inventories/dortmund/host_vars/snode02-1.ffdo.de/mesh.yml

@@ -0,0 +1,4 @@
+mesh_mac: 00:16:3e:22:e1:93
+bat_mac: 00:16:3e:17:85:15
+mesh_ipv4: 10.42.16.1/16
+mesh_ipv6: fdec:16a3:681b:865c::16/64

+ 21 - 0
inventories/dortmund/host_vars/snode02-1.ffdo.de/peering.yml

@@ -0,0 +1,21 @@
+peers:
+  - name: ffrg25
+    as: '65079'
+    source_ip4: 10.0.6.10
+    peer_ip4: 10.0.6.9
+    source_ip6: 2a03:2260:50:5c::2
+    peer_ip6: 2a03:2260:50:5c::1
+    gre:
+      ip: 10.0.6.10/30
+      ip6: 2a03:2260:50:5c::2/64
+      endpoint: 5.39.121.115
+  - name: ffrg11
+    as: '65079'
+    source_ip4: 10.0.6.14
+    peer_ip4: 10.0.6.13
+    source_ip6: 2a03:2260:50:5d::2
+    peer_ip6: 2a03:2260:50:5d::1
+    gre:
+      ip: 10.0.6.14/30
+      ip6: 2a03:2260:50:5d::2/64
+      endpoint: 85.14.244.128

+ 2 - 0
inventories/dortmund/host_vars/snode02-2.ffdo.de/dhcp.yml

@@ -0,0 +1,2 @@
+dhcp_range_start: 10.42.33.1
+dhcp_range_end: 10.42.39.254

+ 4 - 0
inventories/dortmund/host_vars/snode02-2.ffdo.de/mesh.yml

@@ -0,0 +1,4 @@
+mesh_mac: 00:16:3e:06:8e:ce
+bat_mac: 00:16:3e:16:3c:54
+mesh_ipv4: 10.42.32.1/16
+mesh_ipv6: fdec:16a3:681b:865c::32/64

+ 8 - 0
inventories/dortmund/hosts

@@ -0,0 +1,8 @@
+[supernodes]
+snode01-1.ffdo.de
+snode01-2.ffdo.de
+snode02-1.ffdo.de
+snode02-2.ffdo.de
+
+[mapservers]
+map.ffdo.de

+ 0 - 8
inventory/dortmund

@@ -1,8 +0,0 @@
-[supernodes]
-node01-1.do.freifunk.ruhr
-node01-2.do.freifunk.ruhr
-node02-1.do.freifunk.ruhr
-node02-2.do.freifunk.ruhr
-
-[mapservers]
-map.do.freifunk.ruhr

+ 0 - 22
playbooks/group_vars/all/supernodes.yml

@@ -1,22 +0,0 @@
-supernode_top_domain: ff.test
-supernodes:
-  - name: node02
-    public_ip: 192.168.77.22/24
-    mesh_ip_v4: 10.42.0.16/16
-    mesh_ip_v6: fdec:16a3:681b:865c::16/64
-    mesh_mac: c2:e1:c6:e5:68:4c
-    bat_mac: 1e:f5:dc:71:bb:5f
-    dhcp_range_start: 10.42.6.2
-    dhcp_range_end: 10.42.8.254
-    public_interface: eth1
-    #uplink_tunnel_ip: 172.16.43.2/30
-    #uplink_tunnel_ip_v6: fd30:db1d:2377:4144::2/64
-  - name: map
-    public_ip: 192.168.77.29/24
-    mesh_ip_v4: 10.42.0.128/16
-    mesh_ip_v6: fdec:16a3:681b:865c::80/64
-    mesh_mac: 12:78:92:f8:1b:42
-    bat_mac: f6:9c:fe:9d:d4:da
-    public_interface: eth1
-
-supernode_as: '65403'

+ 0 - 9
playbooks/group_vars/all/uplinks.yml

@@ -1,9 +0,0 @@
-uplinks:
-- name: uplink01
-  public_ip: 192.178.77.31/24
-  as: '65079'
-  public_interface: eth1
-  tunnel:
-  - tunnel_ip: 172.16.42.1/30
-    address_v6: fd30:db1d:2377:4143::1/64
-    supernode: "{{supernodes[0]}}"

+ 1 - 1
playbooks/supernode.yml

@@ -5,5 +5,5 @@
   roles:
   - ffdo.batman
   - ffdo.mesh-interfaces
-  - ffdo.gre-uplink
+  - ffdo.peering
   - ffdo.supernode

+ 2 - 2
roles/internal/ffdo.bird/templates/bird.conf.j2

@@ -3,7 +3,7 @@
 #
 
 log syslog all;
-router id {{mesh_ipv4|ipaddr('address')}};
+router id {{routerid}};
 
 include "/etc/bird.d/*.cfg"
 
@@ -23,7 +23,7 @@ protocol device {
 };
 
 template bgp ibgp {
-        local as {{supernode_as}};
+        local as {{as}};
         import all;
         export all;
         next hop self;

+ 2 - 2
roles/internal/ffdo.bird/templates/bird6.conf.j2

@@ -3,7 +3,7 @@
 #
 
 log syslog all;
-router id {{mesh_ipv4|ipaddr('address')}};
+router id {{routerid}};
 
 include "/etc/bird6.d/*.cfg"
 
@@ -30,8 +30,8 @@ protocol device {
 }
 
 template bgp ibgp {
+        local as {{as}};
         source address {{mesh_ipv6|ipaddr('address')}};
-        local as {{supernode_as}};
         import all;
         export all;
         next hop self;

+ 0 - 5
roles/internal/ffdo.gre-uplink/tasks/debian.yml

@@ -1,5 +0,0 @@
-
-
-- name: Restart network
-  when: network_template_installed|changed
-  shell: "ifdown --exclude=lo --exclude={{supernode_public_interface}} -a && ifup --exclude=lo --exclude={{supernode_public_interface}} -a"

+ 0 - 14
roles/internal/ffdo.gre-uplink/templates/bird.conf.j2

@@ -1,14 +0,0 @@
-#
-# This file is managed by ansible. Do not edit by hand!
-#
-
-{% if supernode_uplinks is defined %}
-{% for uplink in supernode_uplinks %}
-protocol bgp {{uplink.name}} from ibgp {
-        source address {{uplink.address}};
-        neighbor {{uplink.dstaddr}} as {{uplink.as}};
-        default bgp_med 2;
-};
-
-{% endfor %}
-{% endif %}

+ 0 - 23
roles/internal/ffdo.gre-uplink/templates/uplink_interfaces.j2

@@ -1,23 +0,0 @@
-## Uplink-Tunnel zum FFRG/FFRL-Backbone
-
-{% if supernode_uplinks is defined %}
-{% for uplink in supernode_uplinks %}
-{% if uplink.comment is defined %}
-# {{uplink.comment}}
-{% endif %}
-auto {{uplink.name}}
-iface {{uplink.name}} inet tunnel
-    mode gre
-    address {{uplink.address}}
-    dstaddr {{uplink.dstaddr}}
-    netmask {{uplink.netmask}}
-    local {{supernode_local_ip|ipaddr('address')}}
-    endpoint {{uplink.endpoint}}
-    mtu 1400
-    ttl 64
-
-iface {{uplink.name}} inet6 static
-    address {{uplink.address_v6}}
-
-{% endfor %}
-{% endif %}

roles/internal/ffdo.gre-uplink/README.md → roles/internal/ffdo.peering/README.md


roles/internal/ffdo.gre-uplink/defaults/main.yml → roles/internal/ffdo.peering/defaults/main.yml


roles/internal/ffdo.gre-uplink/handlers/main.yml → roles/internal/ffdo.peering/handlers/main.yml


roles/internal/ffdo.gre-uplink/meta/main.yml → roles/internal/ffdo.peering/meta/main.yml


+ 4 - 0
roles/internal/ffdo.peering/tasks/debian.yml

@@ -0,0 +1,4 @@
+---
+- name: Restart network
+  when: network_template_installed|changed
+  shell: "ifdown --exclude=lo --exclude={{ansible_default_ipv4.alias}} -a && ifup --exclude=lo --exclude={{ansible_default_ipv4.alias}} -a"

+ 4 - 4
roles/internal/ffdo.gre-uplink/tasks/main.yml

@@ -19,13 +19,13 @@
     dest: "/etc/network/interfaces.d/{{item.file}}"
     src: "{{item.template}}"
   with_items:
-  - file: uplink.cfg
-    template: uplink_interfaces.j2
+  - file: peering.cfg
+    template: peering_interfaces.j2
 
 - name: Install bird.conf
-  template: src=bird.conf.j2 dest=/etc/bird.d/uplinks.conf
+  template: src=bird.conf.j2 dest=/etc/bird.d/peering.conf
   notify: Restart bird daemons
 
 - name: Install bird6.conf
-  template: src=bird6.conf.j2 dest=/etc/bird6.d/bird6.conf
+  template: src=bird6.conf.j2 dest=/etc/bird6.d/peering6.conf
   notify: Restart bird daemons

+ 14 - 0
roles/internal/ffdo.peering/templates/bird.conf.j2

@@ -0,0 +1,14 @@
+#
+# This file is managed by ansible. Do not edit by hand!
+#
+
+{% if peers is defined %}
+{% for peer in peers %}
+protocol bgp {{peer.name}} from ibgp {
+        source address {{peer.source_ip4}};
+        neighbor {{peer.peer_ip4}} as {{peer.as}};
+        default bgp_med 2;
+};
+
+{% endfor %}
+{% endif %}

+ 5 - 5
roles/internal/ffdo.gre-uplink/templates/bird6.conf.j2

@@ -2,9 +2,8 @@
 # This file is managed by ansible. Do not edit by hand!
 #
 
-{% if supernode_uplinks is defined %}
 template bgp uplink {
-        local as {{supernode_uplinks[0].as}};
+        local as {{as}};
         import all;
         export all;
         next hop self;
@@ -12,9 +11,10 @@ template bgp uplink {
         multihop 64;
 }
 
-{% for uplink in supernode_uplinks %}
-protocol bgp {{uplink.name}} from uplink {
-        neighbor {{uplink.address_v6|ipaddr('address')}} as {{uplink.as}};
+{% if peers is defined %}
+{% for peer in peers %}
+protocol bgp {{peer.name}} from uplink {
+        neighbor {{peer.peer_ip6}} as {{peer.as}};
         default bgp_med 2;
 }
 

+ 20 - 0
roles/internal/ffdo.peering/templates/peering_interfaces.j2

@@ -0,0 +1,20 @@
+{% if peers is defined %}
+{% for peer in peers %}
+{% if peer.gre is defined %}
+auto gre-{{peer.name}}
+iface gre-{{peer.name}} inet tunnel
+    mode gre
+    address {{peer.gre.ip|ipaddr('address')}}
+    dstaddr {{peer.peer_ip4}}
+    netmask {{peer.gre.ip|ipaddr('netmask')}}
+    local {{ansible_default_ipv4.address}}
+    endpoint {{peer.gre.endpoint}}
+    mtu 1400
+    ttl 64
+
+iface gre-{{peer.name}} inet6 static
+    address {{peer.gre.ip6}}
+
+{% endif %}
+{% endfor %}
+{% endif %}

roles/internal/ffdo.gre-uplink/templates/supernode.sysctl.j2 → roles/internal/ffdo.peering/templates/supernode.sysctl.j2


roles/internal/ffdo.gre-uplink/vars/main.yml → roles/internal/ffdo.peering/vars/main.yml