Skip to content

Commit c2bb178

Browse files
committed
add mmfd + respondd
1 parent ea4c407 commit c2bb178

File tree

12 files changed

+93
-3
lines changed

12 files changed

+93
-3
lines changed

lib/hosts.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,7 @@ def host(self, id, hostname, **host_vars):
111111
vars.update(host_vars)
112112
vars.update({
113113
"vpn_id": id,
114+
"babel": self.babel,
114115
"batman_ipv4": self.calculate_address("ipv4_network", id),
115116
"batman_ipv6_global": self.calculate_address("ipv6_global_network", id),
116117
"batman_ipv6_local": self.calculate_address("ipv6_local_network", id),

playbooks/babelserver.yml

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,16 @@
11
---
22
- hosts: babelservers
3+
vars:
4+
mesh_announce_git_root: https://github.com/FreifunkBremen/mesh-announce
5+
mesh_announce_git_commit: babel
36
roles:
47
- apt
58
- openssh
69
- { role: babeld, tags: [ babeld, babel ] }
7-
- { role: l3roamd, tags: [ l3roamd, babel ] }
8-
- { role: wireguard, tags: [ wireguard, babel ] }
10+
# - { role: l3roamd, tags: [ l3roamd, babel ] }
11+
- { role: mmfd, tags: [ mmfd, babel ] }
12+
- { role: wireguard, tags: [ wireguard, vpn ] }
13+
- { role: mesh-announce, tags: respondd }
914
- system
1015
- tmpfs
1116
- tools

roles/babeld/templates/firewall.sh

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
1-
# babeld
1+
# babeld control
22
ipt -A INPUT -i lo -p tcp --dport 33123 -j ACCEPT
3+
4+
# babeld routing
35
{% for ifname in babel_interfaces %}
46
ipt6 -A INPUT -i {{ifname}} -p udp --dport 6696 -j ACCEPT
57
{% endfor %}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,8 @@
1+
# batman
12
ipt6 -A INPUT -i {{ main_bridge }} -p udp --dport 1001 -j ACCEPT
23
ipt6 -A INPUT -i vpn-{{ site_code }}-legacy -p udp --dport 1001 -j ACCEPT
34
ipt6 -A INPUT -i vpn-{{ site_code }} -p udp --dport 1001 -j ACCEPT
5+
6+
# babel
7+
ipt6 -A INPUT -i babel-ffhb -p udp --dport 1001 -j ACCEPT
8+
ipt6 -A INPUT -i mmfd0 -p udp --dport 1001 -j ACCEPT

roles/mesh-announce/templates/service

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,15 @@ Description=Respondd
44
After=network.target
55

66
[Service]
7+
{% if babel %}
8+
ExecStart=/opt/{{ site_code }}/mesh-announce/respondd.py -d /opt/{{ site_code }}/mesh-announce/providers -g ff05::2:1001 -i mmfd0 -ba [::]:33123
9+
{% else %}
710
{% if respondd_vpn %}
811
ExecStart=/opt/{{ site_code }}/mesh-announce/respondd.py -d /opt/{{ site_code }}/mesh-announce/providers -b {{ batman_interface }} -i {{ main_bridge }} -i vpn-{{ site_code }}-legacy -i vpn-{{ site_code }}
912
{% else %}
1013
ExecStart=/opt/{{ site_code }}/mesh-announce/respondd.py -d /opt/{{ site_code }}/mesh-announce/providers -b {{ ansible_default_ipv4.interface }} -i {{ ansible_default_ipv4.interface }}
1114
{% endif %}
15+
{% endif %}
1216

1317
[Install]
1418
WantedBy=multi-user.target

roles/mmfd/defaults/main.yml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
---
2+
mmfd_repository: "https://dl.ffm.freifunk.net/debian-packages/ sid main"
3+
mmfd_repository_key: 390BF305
4+
5+
babel_bridge: babel-{{ site_code }}
6+
babel_interfaces_vpn: []
7+
babel_interfaces: "{{ [babel_bridge] + babel_interfaces_vpn }}"

roles/mmfd/handlers/main.yml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
---
2+
- name: restart mmfd
3+
service: name=mmfd state=restarted
4+
5+
- name: reload systemd
6+
command: systemctl daemon-reload

roles/mmfd/tasks/main.yml

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
- name: Add repository key for babeld and utils
2+
apt_key: keyserver="{{ pgp_keyserver }}" id="{{mmfd_repository_key}}"
3+
4+
- name: Add repository for babeld and utils
5+
apt_repository: repo="deb {{mmfd_repository}}"
6+
7+
- name: Install mmfd (babel utils)
8+
apt: name="mmfd"
9+
10+
- name: Install interfaces file
11+
template: >
12+
src=interfaces
13+
dest=/etc/network/interfaces.d/babel-{{site_code}}-mmfd
14+
15+
- name: Configure firewall
16+
template: src=firewall.sh dest={{ firewall_path }}/35-babel-{{site_code}}-mmfd
17+
when: firewall_enabled
18+
notify: reload firewall
19+
20+
- name: Install mmfd service
21+
template: src=mmfd.service dest=/etc/systemd/system/mmfd.service
22+
notify:
23+
- reload systemd
24+
- restart mmfd
25+
26+
- name: Enable mmfd
27+
service:
28+
name: mmfd
29+
enabled: yes
30+
state: started
31+

roles/mmfd/templates/firewall.sh

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
# mmfd
2+
{% for ifname in babel_interfaces %}
3+
ipt -A INPUT -i {{ifname}} -p udp --dport 27275 -j ACCEPT
4+
{% endfor %}

roles/mmfd/templates/interfaces

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
# {{ ansible_managed }}
2+
3+
allow-hotplug mmfd0
4+
auto mmfd0
5+
iface mmfd0 inet6 static
6+
address fe80::1
7+
netmask 64
8+
post-up ip r add ff05::2:1001/128 dev mmfd0 table local

0 commit comments

Comments
 (0)