It Has Been Zero Days...
…since i recompiled the Linux Kernel?
So sagt es zumindest dieses Shirt von Jeff Geerling (redshirtjeff.com). Und ich habe das nie so richtig verstanden, bis jetzt.
Eine Reise nach OpenWrt-Land
Herzlich Willkommen bei OpenWrt, einer Linux-Distribution, die in Image-Form arschklein ist und auf jeden noch so erdenklich schwachen Prozessor draufgehauen werden kann. Warum? OpenWrt ist speziell für Router und andere Netzwerkhardware gebaut. Wenn man sich da mal die Kompatibilitätsliste reinzieht, ist da wirklich jeder Scheiß mit dabei: Consumer Hardware von AVM und Telekom, aber auch Prosumer Hardware von den Ciscos und Extremes dieser Welt.
Let’s flash
Also schnell auf https://firmware-selector.openwrt.org gegangen und das richtige Gerät eingegeben, Image runterladen, in irgendeinen bootloader booten und das Image (meist über ftp) auf die richtige Partition schreiben und dann rebooten. Zack, einmal OpenWrt zum mitnhemen, bitte!
Und jetz?
Jetzt gibt es ganz viel Unix-Software zum installieren. dnsmasq
, bind
, openssl
, wireguard
, openvpn
; alles ist dabei. Bei mir hieß es erst einmal wireguard-Tunnel konfigurieren und bird2
installieren, damit ich ein bisschen peeren kann. Dazu noch ein 5GHz Netzwerk aufgespannt (mein Gerät ist nämlich ein Access Point mit 2 Antennen) und schon kann man los-internetten (oder so)
BGP - das B steht für bitch
Und nun kommen wir zu dem recompile-Teil: Ich hatte wieder special-Dinge vor und wollte meine BGP-Sessions mit MD5-Auth absichern (so wie es jede gute Netzwerker:in tut). Aber nope – kein kernel-support. Es geht lediglich um die CONFIG_TCP_MD5SIG
-Flag, die OpenWrt beim compilen einfach nicht setzt standardmäßig.
Also: ~200MB repo geklont, einmal make menuconfig
mit alles und scharf, richtigen Prozessor angewählt und dann make kernel_menuconfig
, um die Flag zu aktivieren.
Heilige Scheiße: Der Bruder frisst 10GB an temporären Daten, bevor ich überhaupt gebaut habe!
Jetzt war mir alles egal: Einmal make
ausgeführt und nach 30min und einem flash später festgestellt, dass ich weder luci
(die Weboberfläche) noch irgendwelche anderen essentiellen Systempakete mitgegeben habe 🤦. Also nochmal ein paar make menuconfig
-Minuten später, einmal bitte mit make
backen, flashen und dann erstrahle meine BGP-Session mit MD5!
DIY or BUY?
..also lieber OpenWrt selberbauen oder die “vanilla”-Variante von den releases nehmen?
Ehrlich gesagt, wer Ahnung von Linux und der Kommandozeile hat und ein Grundverständnis von make und C
mitbringt, navigiert sich durch die DIY-Variante spielend leicht durch. Wer aber gerne einfach einen Router haben möchte, auch wenn das ein oder andere Feature nicht mit eingebaut ist, soll bitte zur vorgebauten Variante greifen. Es ist wie so oft eine Frage von Ziel und Prioritäten: Will ich mich mit Netzwerkthemen beschäftigen und mir ist die Linux-Welt dahinter erst einmal egal, dann möchte ich ein Image haben, was schon vorgebaut ist. Habe ich Bock, auch mal ein Linux selbst zu bauen oder mich mit der Materie “Linux-Kernel” auseinandersetzen, dann ist OpenWrt wirklich eine coole Methode, ein paar Customizations in die Distribution seiner Wahl einzubauen.
Oke, Tschüss!