From 7572453d44cd69062cadbe1b77daf911daa5e1cc Mon Sep 17 00:00:00 2001 From: Ansible Admin Date: Mon, 21 Dec 2015 00:20:51 +0100 Subject: [PATCH] Change back to l2tp Backbone --- files/l2tp_backbone.sh.j2 | 56 +++++++++++++++++++++++++++++++++++++++ install.sn.yml | 10 ++++--- l2tp_backbone.sh | 56 +++++++++++++++++++++++++++++++++++++++ 3 files changed, 118 insertions(+), 4 deletions(-) create mode 100644 files/l2tp_backbone.sh.j2 create mode 100755 l2tp_backbone.sh diff --git a/files/l2tp_backbone.sh.j2 b/files/l2tp_backbone.sh.j2 new file mode 100644 index 0000000..41925c7 --- /dev/null +++ b/files/l2tp_backbone.sh.j2 @@ -0,0 +1,56 @@ +#!/bin/sh +# Version 5 +# Der servername muss mit einer einstelligen Zahl aufhoeren!!!!! +communityname="troisdorf" +#server="troisdorf0 troisdorf1 troisdorf2 troisdorf3 troisdorf4 troisdorf5 troisdorf6 troisdorf7 troisdorf8 troisdorf9 " +server="troisdorf0 {{ sn_hostname }}" +domain="freifunk-troisdorf.de" +mtu=1400 +# community MAC address, without the last Byte (:)! +communitymacaddress="a2:8c:ae:6f:f6" +tunnelPrefix=10 +sessionPrefix=1 +# Netzwerkteil des Netzes, ohne abschliessenden Punkt +communitynetwork="10.188" +# IPv6 network +communitynetworkv6="fda0:747e:ab29:7405:255::" +# Drittes Octet des serverbereichs +octet3rd="255" +# CIDR muss /16 sein +localserver=$(/bin/hostname) +batadv=/usr/local/sbin/batadv-vis +alfred=/usr/local/sbin/alfred +batctl=/usr/local/sbin/batctl +ip=/sbin/ip +dig=/usr/bin/dig + +for i in $server; do +( + for j in $server; do + if [ $i != $j ]; then + if [ $i = $localserver ]; then + ip l2tp add tunnel remote $($dig +short $j.$domain) local $(/bin/hostname -I | /usr/bin/cut -f1 -d' ') tunnel_id $tunnelPrefix${i#$communityname}${j#$communityname} peer_tunnel_id $tunnelPrefix${j#$communityname}${i#$communityname} encap udp udp_sport 300${i#$communityname}${j#$communityname} udp_dport 300${j#$communityname}${i#$communityname} + ip l2tp add session name l2tp-$j tunnel_id $tunnelPrefix${i#$communityname}${j#$communityname} session_id $sessionPrefix${i#$communityname}${j#$communityname} peer_session_id $sessionPrefix${j#$communityname}${i#$communityname} + #ip link set address $communitymacaddress:${i#$communityname}${j#$communityname} dev l2tp-$j + ip link set dev l2tp-$j mtu $mtu + ip link set up l2tp-$j + $batctl if add l2tp-$j + fi + fi + done +) +done + +# Rest starten +$ip link set address $communitymacaddress:0${localserver#$communityname} dev bat0 +#$ip link set address $communitymacaddress:ff dev bat0 +$ip link set up dev bat0 +$ip addr add $communitynetwork.$octet3rd.${localserver#$communityname}/16 broadcast $communitynetwork.255.255 dev bat0 +$ip -6 addr add $communitynetworkv6${localserver#$communityname}/64 dev bat0 + +/usr/bin/killall alfred +/usr/bin/killall batadv-vis +/bin/sleep 5 +$alfred -i bat0 > /dev/null 2>&1 & +/bin/sleep 15 +$batadv -i bat0 -s > /dev/null 2>&1 & diff --git a/install.sn.yml b/install.sn.yml index a6c1230..89a638b 100644 --- a/install.sn.yml +++ b/install.sn.yml @@ -9,7 +9,7 @@ user: root gather_facts: False vars: - snversion: master_v1.2 + snversion: master_v1.4 common_required_packages: - git - make @@ -37,6 +37,8 @@ - radvd - curl - htop + - psmisc + - dnsutils modules_required: - batman-adv - nf_conntrack_netlink @@ -189,11 +191,11 @@ - name: Copy dhcpd template file template: src=./files/dhcpd.conf.j2 dest=/etc/dhcp/dhcpd.conf owner=root group=root mode=0444 - name: Add cron backbone script - cron: name=backbone special_time=reboot job="/opt/freifunk/gre_backbone.sh" + cron: name=backbone special_time=reboot job="/opt/freifunk/l2tp_backbone.sh" - name: Add cron startup script cron: name=startup special_time=reboot job="/opt/freifunk/sn_startup.sh" - name: Copy backbone script - template: src=./files/gre_backbone.sh.j2 dest=/opt/freifunk/gre_backbone.sh owner=root group=root mode=0544 + template: src=./files/l2tp_backbone.sh.j2 dest=/opt/freifunk/l2tp_backbone.sh owner=root group=root mode=0544 - name: Collectd template file template: src=./files/collectd.conf.j2 dest=/etc/collectd/collectd.conf owner=root group=root mode=0444 register: collectd @@ -238,7 +240,7 @@ local_action: module: slack token: "{{ slack_token }}" - msg: "{{ inventory_hostname }} completed with branch testing" + msg: "{{ inventory_hostname }} completed with {{ snversion }}" channel: "#technik" username: "Ansible on {{ inventory_hostname }}" parse: 'none' diff --git a/l2tp_backbone.sh b/l2tp_backbone.sh new file mode 100755 index 0000000..c3fffb4 --- /dev/null +++ b/l2tp_backbone.sh @@ -0,0 +1,56 @@ +#!/bin/sh +# Version 5 +# Der servername muss mit einer einstelligen Zahl aufhoeren!!!!! +communityname="troisdorf" +#server="troisdorf0 troisdorf1 troisdorf2 troisdorf3 troisdorf4 troisdorf5 troisdorf6 troisdorf7 troisdorf8 troisdorf9 " +server="troisdorf0 troisdorf9" +domain="freifunk-troisdorf.de" +mtu=1400 +# community MAC address, without the last Byte (:)! +communitymacaddress="a2:8c:ae:6f:f6" +tunnelPrefix=10 +sessionPrefix=1 +# Netzwerkteil des Netzes, ohne abschliessenden Punkt +communitynetwork="10.188" +# IPv6 network +communitynetworkv6="fda0:747e:ab29:7405:255::" +# Drittes Octet des serverbereichs +octet3rd="255" +# CIDR muss /16 sein +localserver=$(/bin/hostname) +batadv=/usr/local/sbin/batadv-vis +alfred=/usr/local/sbin/alfred +batctl=/usr/local/sbin/batctl +ip=/sbin/ip +dig=/usr/bin/dig + +for i in $server; do +( + for j in $server; do + if [ $i != $j ]; then + if [ $i = $localserver ]; then + ip l2tp add tunnel remote $($dig +short $j.$domain) local $(/bin/hostname -I | /usr/bin/cut -f1 -d' ') tunnel_id $tunnelPrefix${i#$communityname}${j#$communityname} peer_tunnel_id $tunnelPrefix${j#$communityname}${i#$communityname} encap udp udp_sport 300${i#$communityname}${j#$communityname} udp_dport 300${j#$communityname}${i#$communityname} + ip l2tp add session name l2tp-$j tunnel_id $tunnelPrefix${i#$communityname}${j#$communityname} session_id $sessionPrefix${i#$communityname}${j#$communityname} peer_session_id $sessionPrefix${j#$communityname}${i#$communityname} + #ip link set address $communitymacaddress:${i#$communityname}${j#$communityname} dev l2tp-$j + ip link set dev l2tp-$j mtu $mtu + ip link set up l2tp-$j + $batctl if add l2tp-$j + fi + fi + done +) +done + +# Rest starten +$ip link set address $communitymacaddress:0${localserver#$communityname} dev bat0 +#$ip link set address $communitymacaddress:ff dev bat0 +$ip link set up dev bat0 +$ip addr add $communitynetwork.$octet3rd.${localserver#$communityname}/16 broadcast $communitynetwork.255.255 dev bat0 +$ip -6 addr add $communitynetworkv6${localserver#$communityname}/64 dev bat0 + +/usr/bin/killall alfred +/usr/bin/killall batadv-vis +/bin/sleep 5 +$alfred -i bat0 > /dev/null 2>&1 & +/bin/sleep 15 +$batadv -i bat0 -s > /dev/null 2>&1 &