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 - 15:33] – [Wie funktionier das ganze?] 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 32: | Zeile 33: | ||
Mode = switch | Mode = switch | ||
- | name = gw< | + | 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 | ||