Benutzer:PeterPhilipp: Unterschied zwischen den Versionen
(→Der Test Router: Vielen Dank Robert!) |
(→GRE konfigurieren mit pf trick: erklärung was das ist) |
||
Zeile 42: | Zeile 42: | ||
=== GRE konfigurieren mit pf trick === | === GRE konfigurieren mit pf trick === | ||
Von meiner /etc/hostname.gre0 datei: | |||
rdomain 5 | rdomain 5 |
Version vom 9. Mai 2021, 21:37 Uhr
Ich war von 2014-2018 aktiv. Dann eine Pause. Ich will 2021 wieder aktiv werden.
Good to knows:
Ein Backup Gateway auf OpenBSD basis
Ich hab ein halbes dutzend Hobbies, und viele basieren rund um dem Betriebssystem OpenBSD. OpenBSD ist jetzt in der version 6.9. Um 6.8 rum bekam es wireguard support. Rola und ich haben versucht eine cloud instanz von mir bei Hetzner die OpenBSD ist umzubauen das es ein backup gateway werden kann. Was wir jetzt haben ist eine test-loesung. Wir hatten drei oder vier reibungspunkte wo wir nicht sicher waren das OpenBSD diese erfüllen konnten.
- GRE tunnel (muss kompatibel zu Linux sein)
- Babeld muss funktionieren auf OpenBSD (wir benutzten 1.10 version)
- wireguard um den FFF Router einen tunnel zu geben
- ip tables oder kompatibel. Wir benutzten rdomain(4).
Mehr hierzu ein wenig spaeter (fuer die details):
OpenBSD
Ich benutzte OpenBSD 6.9 mit patch 001 auf dem system. Der VPS steht bei Hetzner Online in Nürnberg.
rdomains
Ein rdomain ist ein routing tree in einem routing forest von wo es bis zu 254 routing trees (auch tables genannt) im OpenBSD system gibt. rdomain 0 ist die default route auf dem VPS und kann nicht für FFF benutzt werden. Ich habe rdomain 5 benutzt da ich andere netzwerke schon auf 3 und 4 hatte (1 und 2 hab ich garnicht benutzt). Ein route tree in seinem rdomain ist isoliert auf diesem rdomain und wenn die rdomains nicht durch drivers oder dem pf firewall system verbunden werden kommt nichts auf rdomain 0 oder anderen rdomains raus. Das ist so wie die fff routing table geschichte mit den Linux systemen.
wireguard konfigurieren
Ich habe bisher nur ein wg (wg2) hier ist die /etc/hostname.wg2 datei (zensiert)
rdomain 5 wgport ZENSIERT wgkey ZENSIERT2 wgpeer ZENSIERT3 wgaip ::/0 inet6 fe80::1234:5678:90ab:cdef%wg2 64 inet 10.83.252.xxx/32 up
Hier musste ich die eui64 selber eintragen da in OpenBSD "inet6 eui64" einen fehler auf wg(4) macht.
GRE konfigurieren mit pf trick
Von meiner /etc/hostname.gre0 datei:
rdomain 5 inet6 eui64 inet 10.83.252.xxx/32 tunnel 2a01:ZENSIERT1 2a01:ZENSIERT2 up
Dieses konfiguriert den GRE tunnel, aber wenn pf auf dem system ist (wird immer da sein bei default) muss man IPv6 Destination Options durchlassen und zwar ungefähr so:
anchor "gre" { pass in on vio0 inet6 proto 47 from 2a01:ZENSIERT1 to 2a01:ZENSIERT2 allow-opts pass out on vio0 inet6 proto 47 from 2a01:ZENSIERT2 to 2a01:ZENSIERT1 allow-opts }
Siehe das "allow-opts" das ist benötigt da Linux GRE ein extra header im IPv6 reinfügt. Im IPv4 modus hab ich's nie ausprobiert obwohl Rola es bereit gemacht hat. Der debug für diese allow-opts hat mich einige Stunden zurückgesetzt, aber am ende hab ichs gefunden. Es ist erwähnt im pf.conf(5) manual page.
Die lo5 Schnittstelle
Wird angelegt sobald eine rdomain 5 schnittstelle angelegt wird. Ich habe es dann doch konfiguriert in der datei /etc/hostname.lo5:
rdomain 5 inet 127.0.0.1/8 inet6 ::1/128 up
Wie jedes /etc/hostname.if kann man es gleich aktivieren mit
sh /etc/netstart lo5
Die anderen schnittstellen hab ich auch so (um)konfiguriert (sh /etc/netstart gre0 # z.B.)
babeld
Die änderungen die ich an babeld vollzogen habe sind hier https://github.com/pbug44/fff-obsd-babeld/commit/8b05ac09e0f31f903cf24100954024143c0568da.
Ich hab /etc/rc.local geändert das babeld automatisch nach boot gestartet wird:
# babeld /sbin/route -T 5 exec /usr/local/sbin/babeld -D
Ich muss route benutzen um in den rdomain 5 zu gehen.
Die /etc/babeld.conf hab ich angepasst aus (hier raus: Freifunk-Gateway_aufsetzen/Babel) und sie sieht so aus:
# babeld config for openbsd skip-kernel-setup true default type tunnel max-rtt-penalty 128 interface gre0 interface lo5 type wired rxcost 4096 interface wg2 redistribute local ip 10.50.0.0/16 redistribute local ip 10.83.0.0/16 redistribute local ip fd43:5602:29bd::/48 redistribute local deny redistribute ip 10.50.0.0/16 redistribute ip 10.83.0.0/16 redistribute ip fd43:5602:29bd::/48 local-port 33123 log-file /dev/null
Babel Routen im rdomain 5
Wenn babeld gestartet wird, muss sicher gemacht werden das keine statische routen existieren. Es ist alles Dynamisches routing. Hier zeigt die routen im rdomain 5 auf OpenBSD:
job# netstat -nr -T 5 | wc -l 2110 job# netstat -nrfinet6 -T5 | wc -l 1261 job# netstat -nrfinet -T5 | wc -l 850
Gute 2K routes das babeld eingeführt hat, eine babel route hat eine '2' flagge angehängt.
Der Test Router
Der test router heisst zrd01 und steht in Schweinfurt. https://monitoring.freifunk-franken.de/routers/17104
Vielen Dank!
Vielen Dank an Robert (rola) der sehr sehr viel geduld mit mir hatte. Wir haben einen Babel gateway aufgesetzt erst für Privat und dann als Backup für die FFF Region Schweinfurt vielleicht? Mal sehen, der nächste Schritt ist die Community zu fragen ob sie Robert ablöst damit ein echt redundantes Netzwerk entsteht. Ich werde die ML bald anfragen.
TODO
IPSEC für den GRE vielleicht. Feedback aus der Community wird auch helfen.