Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
| technik:gateways:routing [20.09.2015 - 17:16] – lamdo | technik:gateways:routing [28.04.2019 - 11:38] (aktuell) – Externe Bearbeitung 127.0.0.1 | ||
|---|---|---|---|
| Zeile 3: | Zeile 3: | ||
| Um nicht auf jedem Gateway zwingend alle Segmente als L2 vorhalten zu müssen, ist ein L3-Routing zwischen den Segmenten erforderlich. Da statische Routen schlecht skalieren, kommt OSPF als Routing-Protokoll zum Einsatz. Die L3-Verbindung erfolgt über ein Tinc-VPN. | Um nicht auf jedem Gateway zwingend alle Segmente als L2 vorhalten zu müssen, ist ein L3-Routing zwischen den Segmenten erforderlich. Da statische Routen schlecht skalieren, kommt OSPF als Routing-Protokoll zum Einsatz. Die L3-Verbindung erfolgt über ein Tinc-VPN. | ||
| + | https:// | ||
| ===== Konfiguration ===== | ===== Konfiguration ===== | ||
| ==== Vorbereitung: | ==== Vorbereitung: | ||
| - | Tinc, VLAN-Support | + | Tinc und bridge-utils installieren: |
| < | < | ||
| - | apt-get install tinc vlan bridge-utils | + | apt-get install tinc bridge-utils |
| </ | </ | ||
| Zeile 15: | Zeile 16: | ||
| < | < | ||
| cd /etc/tinc | cd /etc/tinc | ||
| - | mkdir ffsVPN | + | mkdir ffsbb |
| - | mkdir ffsVPN/hosts/ | + | mkdir ffsbb/hosts/ |
| </ | </ | ||
| Zeile 33: | Zeile 34: | ||
| name = $HOST | name = $HOST | ||
| - | |||
| - | # Kommentare ARE: | ||
| - | #Mode = switch | ||
| - | #Forwarding = off | ||
| - | # | ||
| - | #DirectOnly = yes | ||
| </ | </ | ||
| - | In ''/ | + | In ''/ |
| Die Schlüsseldatei generieren | Die Schlüsseldatei generieren | ||
| < | < | ||
| - | tincd -n ffsVPN | + | tincd -n ffsbb -K 4096 |
| </ | </ | ||
| - | und die Addresse ergänzen, z.B. ''/ | + | und die Addresse ergänzen, z.B. ''/ |
| < | < | ||
| Cipher = blowfish | Cipher = blowfish | ||
| Address = gw10.freifunk-stuttgart.de | Address = gw10.freifunk-stuttgart.de | ||
| + | Port = 11100 | ||
| + | PMTUDiscovery = yes | ||
| + | Digest = sha256 | ||
| + | ClampMSS = yes | ||
| -----BEGIN RSA PUBLIC KEY----- | -----BEGIN RSA PUBLIC KEY----- | ||
| MIICCgKCAgEA4G/ | MIICCgKCAgEA4G/ | ||
| Zeile 67: | Zeile 65: | ||
| </ | </ | ||
| - | Das tinc-Interface konfigurieren (''/ | + | Das tinc-Interface konfigurieren (''/ |
| < | < | ||
| - | allow-hotplug | + | allow-hotplug |
| - | auto ffsVPN | + | auto ffsbb |
| - | iface ffsVPN | + | iface ffsbb inet static |
| - | | + | |
| - | | + | |
| - | | + | |
| - | post-down ifconfig $IFACE down | + | |
| - | + | ||
| - | auto ffsVPN.100 | + | |
| - | allow-hotplug ffsVPN.100 | + | |
| - | iface ffsVPN.100 inet static | + | |
| address 10.191.255.< | address 10.191.255.< | ||
| netmask 255.255.255.0 | netmask 255.255.255.0 | ||
| broadcast 10.191.255.255 | broadcast 10.191.255.255 | ||
| - | vlan-raw-device ffsVPN | + | post-up |
| - | post-up | + | pre-down |
| - | pre-down | + | |
| </ | </ | ||
| Zeile 91: | Zeile 83: | ||
| Routing-Tabellen anlegen, dazu zwei Zeilen zu ''/ | Routing-Tabellen anlegen, dazu zwei Zeilen zu ''/ | ||
| < | < | ||
| - | 70 ffs | + | 70 stuttgart |
| + | 71 nodefault | ||
| 42 icvpn | 42 icvpn | ||
| - | </ | ||
| - | |||
| - | Um das VPN automatisch zu starten, den entsprechenden Eintrag zu ''/ | ||
| - | < | ||
| - | ffsVPN | ||
| </ | </ | ||
| Zeile 109: | Zeile 97: | ||
| </ | </ | ||
| - | Da FFS z.Z. noch keinen IPv6-Upstream hat, erfolgt die Einrichtung zuerst nur für IPv4, weshalb zunächst nur der IPv4-Daemon benötigt und der IPv6-Daemon daher deaktivert wird: | + | Die Konfiguration von bird erfolgt über den Generator https://github.com/freifunk-stuttgart/ |
| - | < | + | |
| - | systemctl disable bird6 | + | |
| - | </ | + | |
| - | + | ||
| - | Die Konfiguration von bird erfolgt über '' | + | |
| < | < | ||
| router id 10.191.255.< | router id 10.191.255.< | ||
| + | |||
| + | # Define a route filter... | ||
| + | filter ffs_filter { | ||
| + | if net ~ 172.21.0.0/ | ||
| + | if net ~ 10.190.0.0/ | ||
| + | else reject; | ||
| + | } | ||
| protocol kernel { | protocol kernel { | ||
| Zeile 123: | Zeile 113: | ||
| scan time 20; # Scan kernel routing table every 20 seconds | scan time 20; # Scan kernel routing table every 20 seconds | ||
| export all; # Default is export none | export all; # Default is export none | ||
| + | import all; | ||
| kernel table 70; # Kernel table to synchronize with (default: main) | kernel table 70; # Kernel table to synchronize with (default: main) | ||
| export filter { # Propagate routes with low metric into kernel table | export filter { # Propagate routes with low metric into kernel table | ||
| Zeile 128: | Zeile 119: | ||
| accept; | accept; | ||
| }; | }; | ||
| - | |||
| } | } | ||
| Zeile 143: | Zeile 133: | ||
| ecmp no; # Kein Equal-Cost-Multipath, | ecmp no; # Kein Equal-Cost-Multipath, | ||
| # Uplinks aus dem Weg zu gehen | # Uplinks aus dem Weg zu gehen | ||
| - | import | + | import |
| - | export filter | + | export filter |
| - | accept; | + | |
| - | }; | + | |
| area 0.0.0.0 { # Backbone-Area | area 0.0.0.0 { # Backbone-Area | ||
| external{ | external{ | ||
| Zeile 152: | Zeile 141: | ||
| }; | }; | ||
| - | | + | |
| cost 100; | cost 100; | ||
| hello 10; | hello 10; | ||
| Zeile 164: | Zeile 153: | ||
| }; | }; | ||
| - | interface " | + | # interface " |
| - | stub yes; | + | # cost 1000; |
| - | }; | + | # stub yes; |
| + | # }; | ||
| + | # | ||
| + | # cost 1000; | ||
| + | # stub yes; | ||
| + | # }; | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| }; | }; | ||
| }; | }; | ||
| Zeile 177: | Zeile 176: | ||
| Bird ist so konfiguriert, | Bird ist so konfiguriert, | ||
| - | - Statische Kernel-Routen in der FFS-Tabelle. Hierüber können andere Gateways den lokalen Uplink (egal, ob per VPN oder über lokale Ausleitung realisiert) nutzen, ohne dass das auf den anderen GWs konfiguriert werden muss. | + | - Statische Kernel-Routen in der stuttgart-Tabelle. Hierüber können andere Gateways den lokalen Uplink (egal, ob per VPN oder über lokale Ausleitung realisiert) nutzen, ohne dass das auf den anderen GWs konfiguriert werden muss. |
| - Lokal auf den Interfaces br* konfigurierte Netze. Hierüber werden die am lokalen GW vorhandenen Segmente netzweit propagiert | - Lokal auf den Interfaces br* konfigurierte Netze. Hierüber werden die am lokalen GW vorhandenen Segmente netzweit propagiert | ||