Benutzer:PeterPhilipp

Aus Freifunk Franken
Wechseln zu:Navigation, Suche

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

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.