You are here: Archiv » InternetzMe

Internetz.me

Transportnetz

Wir nutzen das 192.168.42.0/24 Netz als Transportnetz!

Auf dem Supernode

Vorraussetzungen

  • WICHTIG : Routing-Tabelle 42 muss für das Routing des Freifunk-Traffics ausgewählt sein! SONST LEITEST DU IN DEUTSCHLAND AUS!!!!
  • tunnel-check-Skript muss installiert sein

/etc/fastd/internetz-me/fastd.conf

Diese Datei muss unter /etc/fastd/internetz-me/fastd.conf liegen [1] . Fastd wird hier im Layer 3 "tun-Modus" betrieben. Diese Datei ist *nicht zu verwechseln mit der /etc/fastd/ffh-mesh-vpn/fastd.conf für das freifunk-interne Mesh-VPN.

Achte darauf die x zu ersetzen.

log to syslog level debug2;

mode tun;
interface "internetz-me";

include "../secret.conf"; # Pfad zum secret (gleiches wie beim MeshVPN)

secure handshakes yes;
method "salsa2012+umac";

mtu 1448;

peer "internetz-me" {
  remote ipv4 "freifunk1.internetz.me" port 1000x;                          # Konvention gw nummer
  key "b116ed8f7483438f488edc05d70bf43ebcec443e655e4bead9132af596315255";
} on up "
  /sbin/ip link set internetz-me up
  /sbin/ip addr add 192.168.42.x1/31 dev internetz-me                       # Konvention gw nummer
  /usr/sbin/service dnsmasq restart
";

service fastd start internetz-me  # TODO: systemd syntax hier einfügen

[1] Tipp von Idioten für Idioten: wer den Pfad mit vim öffnet um die .conf Datei zu schreiben, möge darauf achten die darüberliegende Verzeichnisstruktur vorher zu erstellen… (Tipp für Idioten: Emacs kann das smile

"exit"-git

Liegt im gitolite: git@217.14.119.158:exit: Hier muss der Supernode mit seinem Public-Key eingepflegt werden (falls noch nicht geschehen). Wir haben uns entschlossen hier keine Remote-Adressen einzutragen. So bauen immer die Supernodes die Verbindung zum Exit auf (und nicht andersherum).

So kannst du deinen Public-Key anzeigen:

fastd -c /etc/fastd/internetz-me/fastd.conf --show-key

Nicht vergessen zu committen wink

/etc/iptables/rules.v4

Folgende zeile muss in der *nat-Tabelle hinzugefügt werden um das NAT/Masquerading zu aktivieren:

-A POSTROUTING -o internetz-me -j MASQUERADE

Danach:

iptables-restore /etc/iptables/rules.v4

Auf dem Exitnode

/etc/fastd/gwXX/fastd.conf

Für jeden Supernode muss auf dem Exitnode eine eigene fastd-Instanz erstellt werden, da die Layer 3 Verbindungen Point-to-Point sind. Hier ist die Config für /etc/fastd/gwXX/fastd.conf (selbstverständlich mit entferntem Private-Key). Der Private-Key ist bei uns allerdings für alle Fastd-Instanzen auf dem Exitnode gleich. Er muss also einfach aus einer bestehenden Config kopiert werden.

log level warn;
log to syslog level debug;

hide ip addresses yes;

bind 0.0.0.0:1000x;                                                         # GW-Nummer ersetzen

mode tun;
interface "fastd-tun-gw0x";                                                 # GW-Nummer ersetzen

secure handshakes yes;
method "salsa2012+umac";

include "../secret.conf";

mtu 1448;

include peer "/var/lib/gateway-peers/gw0x";                                 # GW-Nummer ersetzen

on up "
  ip link set fastd-tun-gw0x up                                             # GW-Nummer ersetzen
  ip addr add 192.168.42.x0/31 dev fastd-tun-gw0x                           # 2x GW-Nummer ersetzen
";

Notiz: Die Ippensener Config weicht etwas von den Konventionen ab (Port: 11337, Transport-Subnetz: 192.168.42.0/31, Interface-Name: fastd-tun-ipp01, Name im exit-git: ipp01).

/var/lib/gateway-peers

In diesem Ordner liegt unser "exit"-git aus dem gitolite. Hier muss ggf. noch folgendes durchgeführt werden.

cd /var/lib/gateway-peers
git pull

Debugging-Werkzeuge

Auf dem Supernode

Routing-Tabelle

Das tunnel-check-Skript prüft in regelmäßigen Abständen, ob die Adresse 8.8.8.8 über das internetz-me interface erreichbar ist. Falls nicht, wechselt es auf sein Fallback-Interface (falls das Fallback auch tot ist, existiert keine Route mehr).

Die Routing-Tabelle kann so angezeigt werden:

ip route show table 42

Sie sollte in etwa so ausschauen:

default dev internetz-me  scope link

Falls nicht: Gehe zum nächsten Punkt.

Läuft das tunnel-check?

ps -aux | grep tunnel

Falls nicht:

service tunnel-check start

Jetzt nochmal gucken, ob es läuft!

Falls ja: gehe zum nächsten Punkt.

Ping zu 8.8.8.8

Um sich selbst zu vergewissern, dass der Tunnel steht:

ping -I internetz-me 8.8.8.8

Falls dieser Google-Typ gestorben ist ;-p

ping -I internetz-me $ANDERE_NICHT_TOTE_IP$

Falls kein Ping durchgeht: gehe zum nächsten Punkt.

Ping zu 192.168.42.x0

ping 192.168.42.x0  # wobei das x durch deine gw-nummer ersetzt werden muss

Falls kein Ping durchgeht, ist der Tunnel nicht richtig aufgebaut. Checke ob fastd läuft und ein Handshake zustande gekommen ist…

Falls der Ping doch durchgeht, renne schreiend im Kreis.. Jetzt weiß ich nämlich gerade auch nicht weiter :O
Impressum -- Copyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.