technik:gateways:gateway-einrichten-segment

Dies ist eine alte Version des Dokuments!


Doku von Freifunk Mainz/Wiesbaden/Umgebung

Kurzanleitung für Ubuntu 14.04

 router id 10.191.255.17;      # z.B. 10.191.255.10
 
 # Filter definieren
 filter ffs_filter {
  krt_metric = 100;
  if net ~ [ fd21:b4dc:4b00::/56+ ] then accept;
  else reject;
 }
 
 protocol kernel {
      learn;                  # Learn all alien routes from the kernel
      persist no;
      scan time 20;           # Scan kernel routing table every 20 seconds
      import filter ffs_filter;
      kernel table 70;        # fuer table stuttgart
      export filter ffs_filter;   # Propagate routes with low metric into kernel table
      device routes;
 }
 
 # This pseudo-protocol watches all interface up/down events.
 protocol device {
      scan time 10;           # Scan interfaces every 10 seconds
 }
 
 protocol ospf ffsBackbone {
      preference 100;         # prio zahl
      rfc1583compat no;       # Metrik gem. OSPFv2, RFC 2328
      stub router no;         # Box macht ggf. auch Transit-Traffic
      tick 1;                 # Topologie-Berechnungen nur alle 1s
      ecmp no;                # Kein Equal-Cost-Multipath, um Problemen mit unterschiedlichen
                              # Uplinks aus dem Weg zu gehen
      import filter ffs_filter;
      export filter ffs_filter;
      area 0.0.0.0 {          # Backbone-Area
          external{
                  ::/0;
          };
 
         interface "ffsbb" {   # Run OSPF over VPN
              cost            100;
              hello           10;
              poll            20;
              retransmit      5;
              priority        10;
              wait            40;
              type            bcast;
         };
     };
 };

/etc/rc,local einfuegen

 /usr/local/bin/update-ff &

/usr/local/bin/update-ff

 #!/bin/sh
 wwwpfad="/var/www/html"
 vpns="vpn03"
 #       Endlosschleife
 while : ; do
   ## ffs Peers aktualisieren
   cd /etc/fastd/peers
   back=$( git pull )
   echo "fastd-peers: $back"
   /usr/local/bin/update_peers.py --repo /etc/fastd/peers
   ## ffsbb aktualisieren
   cd /root/tinc-ffsbb/
   back=$( git pull )
   echo "tinc-ffsbb: $back"
   tincd -n ffsbb -k HUP
   # Status veroeffentlichen
   for i in $vpns; do
     status.pl /var/run/fastd-$i.status | jq . | grep -v "\"address\": " >$wwwpfad/data/fastd-status-$i.json
   done
   echo "*** fertig ***"
   sleep 120
 done
  • Es wird ein Tinc Netz 10.191.255.0/24 erstellt auf jedem GW und den DHCP Servern, evtl. auch noch auf Servern die Dienste innerhalb Freifunk anbieten
  • 3 DHCP Server erhalten die IPs 10.191.255.251/24, 10.191.255.252/24, 10.191.255.253/24, diese werden bei den GWs als Relay Server eingetragen
  • die Gateways nutzen erhalten eine IP in 10-191.255.x/24.
  • Jeder GW macht in Tinc 3 VPN Connects zu den 3 DHCP Servern, diese fungieren als Zentralen des VPN Netzes.
  • IPv6 entsprechend einrichten
  • Das wars!

/etc/default/tinc einfügen (damit etwas mehr im Logfile/syslog steht)

 echo 'EXTRA="-d 2"' >> /etc/default/tinc
 mkdir -p /etc/tinc/ffsbb/hosts

/etc/tinc/ffsbb/tinc.conf erstellen

 Name = gw07n99
 ConnectTo = dhcp01
 ConnectTo = dhcp02
 ConnectTo = dhcp03
 Mode = switch
 Port = 6551
 #GraphDumpFile = /tmp/ffs.gv

/etc/tinc/ffsbb/tinc-up erstellen

 #!/bin/sh
 ip addr add 10.191.255.99/24 broadcast 10.191.255.255 dev $INTERFACE
 ip link set $INTERFACE up
 ip rule add iif $INTERFACE table stuttgart priority 7000
 ip route add 10.191.255.0/24 proto kernel scope link src 10.191.255.99 dev $INTERFACE table stuttgart
 ip addr add fd21:b4dc:4b00::a38:9900/64 dev $INTERFACE
 chmod +x /etc/tinc/ffsbb/tinc-up
 tincd -n ffsbb -K

2 x Return drücken

/etc/tinc/ffsbb/hosts/gw07n99 am Anfang hinzufügen:

 address = gw07n99.freifunk-stuttgart.de
 port = 6551
 echo ffsbb >> /etc/tinc/nets.boot
 service tinc restart

/etc/tinc/ffsbb/hosts/gw07n99 ins Git kopieren: https://github.com/freifunk-stuttgart/tinc-ffsbb

 git clone https://github.com/freifunk-stuttgart/tinc-ffsbb /root/tinc-ffsbb

Alte hosts umbenennen als Backup

 mv /etc/tinc/ffsbb/hosts /etc/tinc/ffsbb/hosts.1

Git Dateien verwenden

 ln -s /root/tinc-ffsbb/hosts /etc/tinc/ffsbb/hosts
 service tinc restart

Gateway sicher vom Netz nehmen

Wenn ein Gateway aus dem Netz raus soll, bitte wiefolgt vorgehen, damit es keine Ausfälle bei den Nodes und Clients gibt

  • batctl gw off
  • 1 Minute warten
  • DHCP Server deaktivieren, bei Dnsmasq die Datei /etc/dnsmasq.d/dhcp entfernen und dnsmasq neu starten
  • 10 Minuten warten, damit die Clients eine IP vom Alternativ-DHCP Server bekommen
  • fastd beenden

gw setup howto

  • technik/gateways/gateway-einrichten-segment.1502118654.txt.gz
  • Zuletzt geändert: vor 6 Jahren
  • (Externe Bearbeitung)