Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
| fastd_und_batman_server [2014/08/12 19:46] – mwarning | fastd_und_batman_server [2023/06/04 11:32] (aktuell) – Externe Bearbeitung 127.0.0.1 | ||
|---|---|---|---|
| Zeile 2: | Zeile 2: | ||
| Dieses Howto ist für Leute gedacht die selber einen Server bereitstellen wollen der als Knotenpunkt und vielleicht auch als Gateway (Exit-Node/ | Dieses Howto ist für Leute gedacht die selber einen Server bereitstellen wollen der als Knotenpunkt und vielleicht auch als Gateway (Exit-Node/ | ||
| - | Die Anleitung ist definitiv für fortgeschrittene Nutzer gedacht und wurde für Debian-artige | + | Die Anleitung ist definitiv für fortgeschrittene Nutzer gedacht und wurde für Debian/ |
| + | Installation von einigen noch nötigen Programmen: | ||
| + | apt-get install bridge-utils tayga radvd | ||
| - | **Aufsetzen des Watchdog-Scriptes** | + | / |
| + | interface bat0 { | ||
| + | IgnoreIfMissing on; | ||
| + | AdvSendAdvert on; | ||
| + | AdvOtherConfigFlag off; | ||
| + | AdvDefaultLifetime 1800; | ||
| + | AdvLinkMTU 0; | ||
| + | AdvCurHopLimit 64; | ||
| + | AdvReachableTime 0; | ||
| + | MaxRtrAdvInterval 600; | ||
| + | MinRtrAdvInterval 198; | ||
| + | AdvDefaultPreference high; | ||
| + | AdvRetransTimer 0; | ||
| + | AdvManagedFlag off; | ||
| + | UnicastOnly on; #send RAs only as a request as unicast | ||
| + | |||
| + | prefix fdef: | ||
| + | AdvOnLink on; | ||
| + | AdvAutonomous on; | ||
| + | AdvRouterAddr on; | ||
| + | }; | ||
| + | prefix 2001: | ||
| + | AdvOnLink on; | ||
| + | AdvAutonomous on; | ||
| + | AdvRouterAddr on; | ||
| + | }; | ||
| + | RDNSS fdef: | ||
| + | }; | ||
| - | Das Watchdog-Script testet den OpenVPN Anschluss on Internet verfügbar ist und | + | / |
| - | gibt das im Freifunk-Netz bekannt. | + | tun-device nat64 |
| + | ipv4-addr 10.26.0.1 | ||
| + | prefix fdef: | ||
| + | dynamic-pool 10.26.0.0/ | ||
| + | data-dir / | ||
| - | Das Script bemötigt noch tunctl und brctl: | ||
| - | apt-get install uml-utilities | + | /root/setup.sh |
| - | apt-get install bridge-utils | + | #!/bin/sh |
| - | + | ||
| - | Dieses Script konfiguriert und startet die Dienste. | + | |
| - | + | ||
| - | #!/bin/bash | + | |
| | | ||
| - | exec >/ | ||
| - | date | ||
| - | | ||
| - | mac2ip() | ||
| - | { | ||
| - | #Get the IP of a node by MAC. | ||
| - | | ||
| - | mac=$1 | ||
| - | ff_subnet=29 | ||
| - | | ||
| - | [ -z " | ||
| - | echo " | ||
| - | exit 1 | ||
| - | } | ||
| - | | ||
| - | seed=0 | ||
| - | for x in $(echo $mac | tr ":" | ||
| - | seed=$((seed + 0x$x + (0x$x << 8) + (0x$x << 16))) | ||
| - | done | ||
| - | | ||
| - | addr_t=$((1900545 + (seed % 65278))) | ||
| - | addr_c=$(((addr_t & 0xff00) >> 8)) | ||
| - | addr_d=$(((addr_t & 0x00ff) >> 0)) | ||
| - | | ||
| - | echo " | ||
| - | } | ||
| - | | ||
| is_running() { | is_running() { | ||
| ps aux | grep -v grep | grep " | ps aux | grep -v grep | grep " | ||
| } | } | ||
| | | ||
| - | | + | |
| - | echo "(E) $1" | + | echo "(I) Start batman-adv." |
| - | | + | |
| - | | + | |
| | | ||
| - | if is_running "fastd"; then | + | if ! is_running "alfred"; then |
| - | echo "(I) Fastd supernode is running." | + | echo "(I) Start alfred." |
| - | else | + | |
| - | echo "(I) Start Fastd supernode." | + | |
| - | | + | |
| fi | fi | ||
| | | ||
| - | if batctl o &> /dev/null; then | + | if ! is_running " |
| - | echo " | + | echo " |
| - | else | + | |
| - | | + | fi |
| | | ||
| - | modprobe batman-adv | + | |
| - | + | echo " | |
| - | echo "(I) Detach all interfaces from batman-adv." | + | /etc/init.d/radvd start |
| - | batctl | + | |
| - | + | ||
| - | echo "(I) Add fastd_mesh to bat0." | + | |
| - | batctl if add fastd_mesh || echo " | + | |
| - | ip link set dev bat0 up | + | |
| - | | + | |
| - | echo " | + | |
| - | | + | |
| - | echo " | + | |
| - | echo " | + | |
| - | echo " | + | |
| | | ||
| - | | + | if ! is_running " |
| - | | + | |
| - | mesh_ip=`mac2ip " | + | /etc/init.d/tayga start |
| - | ifconfig bat0 " | + | |
| fi | fi | ||
| | | ||
| - | | + | |
| + | ip -6 addr add fdef: | ||
| + | ip -6 addr add 2001: | ||
| | | ||
| - | | + | #is_running |
| - | ping_servers() | + | |
| - | { | + | |
| - | echo "(I) Try to ping root servers on ' | + | |
| - | + | ||
| - | | + | |
| - | pick() | + | |
| - | { | + | |
| - | local n=$1; shift; | + | |
| - | local s="`echo \"$@\" | tr ' ' ' | + | |
| - | get() { shift $(($#-$1)); echo " | + | |
| - | get $n $s | + | |
| - | } | + | |
| - | + | ||
| - | #check if any root server can be reached via default gateway and wan interface | + | |
| - | IPCHECK=" | + | |
| - | for ip in `pick 3 $IPCHECK`; do | + | |
| - | echo -n "(I) Ping ' | + | |
| - | if ping $ip -c 1 -I $vpn_interface -q -W 1 > /dev/null 2>& | + | |
| - | echo "- success." | + | |
| - | return 0 | + | |
| - | else | + | |
| - | echo "- failed." | + | |
| - | fi | + | |
| - | done | + | |
| - | echo "(W) Cannot reach any tested IP." | + | |
| - | return 1 | + | |
| - | } | + | |
| - | + | ||
| - | if ifconfig " | + | |
| - | echo "(I) Internet access on ' | + | |
| - | batctl gw_mode server 8MBit/ | + | |
| - | else | + | |
| - | echo "(I) No Internet access on ' | + | |
| - | batctl gw_mode client | + | |
| - | fi | + | |
| - | + | ||
| - | echo "(I) Done." | + | |
| - | + | ||
| - | Dieses Script kann einmal nach dem Systemstart oder regelmäßig durch cron aufgerufen werden. | + | |
| - | Dafür muss folgende Zeile an die / | + | |
| - | + | ||
| - | < | + | |
| - | + | ||
| - | Wichig ist dabei, dass das Script ausführbar ist: | + | |
| - | + | ||
| - | chmod a+x freifunk_watchdog | + | |
| - | + | ||
| - | Ein Eintrag in /etc/hosts sorgt dafür das der Name " | + | |
| - | die jeder Router hat. Damit läßt sich der Router, mit dem man verbunden ist, bequemer finden. | + | |
| - | + | ||
| - | echo " | + | |