technik:gateways:gateway-einrichten-segment

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
technik:gateways:gateway-einrichten-segment [07.08.2017 - 15:09] Roland Volkmanntechnik:gateways:gateway-einrichten-segment [28.04.2019 - 11:38] (aktuell) – Externe Bearbeitung 127.0.0.1
Zeile 2: Zeile 2:
  
  
-====== Kurzanleitung für Ubuntu 14.04 ====== 
- 
- 
- 
- 
- 
-==== VPN/Fastd einrichten (IPs anpassen!!!) ==== 
-   mkdir /etc/fastd/vpn05 
-   git clone https://github.com/freifunk-stuttgart/peers-ffs /etc/fastd/peers 
-   ln -s /etc/fastd/peers/vpn05/peers /etc/fastd/vpn05/peers 
- 
-/etc/fastd/vpn05/fastd.conf 
-   # error|warn|info|verbose|debug|debug2 
-   log level info; 
-   hide ip addresses yes; 
-   hide mac addresses yes; 
-   interface "vpn05"; 
-   method "salsa2012+umac";    # new method (faster) 
-   method "salsa2012+gmac"; 
-   # Bind von v4 and v6 interfaces 
-   bind 1.2.3.4:10045; 
-   bind [2001:1111:2222:3333::1]:10045; 
-   include "secret.conf"; 
-   mtu 1406; # 1492 - IPv4/IPv6 Header - fastd Header... 
-   include peers from "peers"; 
-   status socket "/var/run/fastd-vpn05.status"; 
- 
- 
-=== Key generieren, alternativ vorhandenen nehmen === 
-   fastd --generate-key > /etc/fastd/vpn05/gateway.key 
-   echo -n "secret" >/etc/fastd/vpn05/secret.conf 
-   cat /etc/fastd/vpn05/gateway.key | head -1 | awk '{print " \""$2"\";"}' >>/etc/fastd/vpn05/secret.conf  
-   cat /etc/fastd/vpn05/secret.conf  
-Ergebis sollte eine Zeile sein die so aussieht: 
-   secret "1234567890123456789012345678901234567890123456789012345678901234"; 
-  
- 
-==== dnsmasq konfigurieren ==== 
-/etc/dnsmasq.d/allgemein 
-   interface=br05 
-   interface=bat05 
-   interface=vpn05 
-   bind-interfaces 
-   log-facility=/var/log/dnsmasq.log 
- 
-/etc/dnsmasq.d/dhcp (IPs anpassen!!!) 
-   dhcp-authoritative 
-   #log-dhcp 
-   domain=freifunk-stuttgart.de 
-   dhcp-range=set:ffs05,10.191.48.21,10.191.55.253,255.255.192.0,5m 
-   dhcp-option=tag:ffs05,3,10.191.48.1 
-   dhcp-option=tag:ffs05,option:dns-server,10.191.48.1,10.191.56.1 
-   dhcp-option=tag:ffs05,option:ntp-server,10.191.48.1 
-   dhcp-range=set:ffs05v6,::,constructor:br05,slaac,ra-only,5m 
-   dhcp-option=tag:ffs05v6,option6:dns-server,fd21:b4dc:4b05::a38:57 
-   enable-ra 
-   ra-param=br05,low,60,0 
-       
-/etc/dnsmasq.d/dns 
-   no-resolv 
-   no-hosts 
-   cache-size=4096 
-   #log-queries 
-   # .ffs/ffstg.de Weiterleitung 
-   server=/ffs/172.21.2.60 
-   server=/ffstg.de/51.254.139.175 
-   # Forward DNS requests via wan-vpn 
-   server=85.214.20.141 #@tun0 # FoeBud 
-   server=213.73.91.35 #@tun0  # dnscache.berlin.ccc.de 
-   server=141.1.1.1 #@tun0  
-   server=8.8.8.8 #@tun0  # Google 
-   server=8.8.4.4 #@tun0  # Google 
- 
- 
-==== Openvpn Berlin (anderer Anbieter wie CyberGhost) ==== 
-/etc/openvpn/freifunk.conf 
-   # Datei von Berlin (xxxxxxx-udp.ovpn) rein kopieren oder umbenennen 
-   # folgende Zeilen am Anfang hinzufügen 
-   route-noexec 
-   script-security 2 
-   up "openvpn-up" 
-   down "openvpn-down" 
- 
-/etc/openvpn/openvpn-up 
-   #!/bin/sh 
-   ip rule add from $ifconfig_local table stuttgart priority 9970 
-   # Routen kopieren von Tabelle main 
-   ip route show table main | grep -v ^default | while read ROUTE ; do ip route add table stuttgart $ROUTE ; done 
-   # default route in table stuttgart 
-   ip route add 0.0.0.0/1 via $route_vpn_gateway dev $dev table stuttgart 
-   ip route add 128.0.0.0/1 via $route_vpn_gateway dev $dev table stuttgart 
-   # NAT aktivieren (2 Moeglichkeiten), wird benötigt wenn NICHT Berlin 
-   #iptables -t nat -A POSTROUTING -o $dev -j MASQUERADE 
-   #iptables -t nat -A POSTROUTING -o $dev -j SNAT --to-source $ifconfig_local 
-   #sysctl -w net.netfilter.nf_conntrack_max=500000 
-   exit 0 
-    
-/etc/openvpn/openvpn-down 
-   #!/bin/sh 
-   ip rule del from $ifconfig_local table stuttgart priority 9970 
-   # NAT deaktivieren, wird benötigt wenn NICHT Berlin 
-   #iptables -t nat -D POSTROUTING -o $dev -j MASQUERADE 
-   #iptables -t nat -D POSTROUTING -o $dev -j SNAT --to-source $ifconfig_local 
-   exit 0 
- 
-   chmod +x /etc/openvpn/openvpn-* 
- 
-   reboot 
- 
-==== Funktionstest kann beginnen ==== 
- 
- 
-==== Bird konfigurieren ==== 
-   Router id 10.191.255.17;      # eigene IP im tincbb 
-    
-   # Filter definieren 
-   filter ffs_filter { 
-    krt_metric = 100; 
-    if net ~ [ 172.21.0.0/16+ ] then accept; 
-    if net ~ [ 10.190.0.0/15+ ] 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.0.0.0/0; 
-            }; 
-    
-           interface "ffsbb" {   # Run OSPF over VPN 
-                cost            100; 
-                hello           10; 
-                poll            20; 
-                retransmit      5; 
-                priority        10; 
-                wait            40; 
-                type            bcast; 
-                authentication  cryptographic; 
-                password        "xxxyyyzzz"; 
-           }; 
-       }; 
-   }; 
- 
- 
-==== Bird6 konfigurieren ==== 
-   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; 
-           }; 
-       }; 
-   }; 
- 
- 
-==== Freifunk Aktualisierungen ==== 
- 
-/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 
- 
-===== Tinc VPN Layer 2 einrichten ===== 
-  * 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 
- 
-===== Tinc VPN Layer 2 einrichten Teil2, hosts Dateien aus Git holen ===== 
- 
-   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 
- 
- 
- 
- 
-{{tag>gw setup howto}} 
  
  • technik/gateways/gateway-einrichten-segment.1502118596.txt.gz
  • Zuletzt geändert: vor 6 Jahren
  • (Externe Bearbeitung)