knb:rpb4_wg

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
Letzte ÜberarbeitungBeide Seiten der Revision
knb:rpb4_wg [2022/01/08 20:29] – Modifiziert, um Missverständnisse zu vermeiden thegoliathknb:rpb4_wg [2022/08/16 10:40] – Updated: Image & B.A.T.M.A.N thegoliath
Zeile 35: Zeile 35:
 {{:knb:raspberry:19-06-26_14-06-10_2041.jpg?405|Bild: Raspberry 4 - Platine in Verpackung}} {{:knb:raspberry:19-06-26_14-06-10_2041.jpg?405|Bild: Raspberry 4 - Platine in Verpackung}}
  
-===== Ansible-Playbook gesteuerter Bau des Offloaders ===== 
-<WRAP center round tip 60%> 
-Wer nicht  die nachfolgenden gut dokumentierten Schritte per Hand ausführen möchte, kann sich auch mit Hilfe von **[[https://www.ansible.com/|Ansible]]** binnen 20 Minuten automatisiert einen Offloader Menü geführt und scriptiert erstellen lassen.  
  
-<html><center>Das entsprechende <b><a href="https://wiki.mailserver.guru/doku.php/centos:ansible:ffmuc-rpb4-ol" class="urlextern" target="_tab" title="https://wiki.mailserver.guru/doku.php/centos:ansible:ffmuc-rpb4-ol" rel="nofollow noopener">HOWTO</a></b> findet man in <b><a href="https://wiki.mailserver.guru" class="urlextern" target="_tab" title="https://wiki.mailserver.guru" rel="nofollow noopener">Djangos WIKI</a></b>.</center></html> 
-</WRAP> 
  
 ===== Raspberry Pi OS ===== ===== Raspberry Pi OS =====
Zeile 49: Zeile 44:
 ==== Download ==== ==== Download ====
 Wir laden uns also das betreffende ZIP-Archiv auf unseren Rechner. Wir laden uns also das betreffende ZIP-Archiv auf unseren Rechner.
-   $ wget https://downloads.raspberrypi.org/raspios_lite_armhf/images/raspios_lite_armhf-2020-08-24/2020-08-20-raspios-buster-armhf-lite.zip +   $ wget https://downloads.raspberrypi.org/raspios_lite_arm64/images/raspios_lite_arm64-2022-04-07/2022-04-04-raspios-bullseye-arm64-lite.img.xz{,.sha256}
- +
-Bevor wir nun das Archiv entpacken überprüfen wir noch die Integrität der heruntergeladenen DateiHierzu berechnen wir erst einmal die **SHA256**-Prüfsumme der Datei **raspbian_lite_latest**. +
-   $ sha256sum raspbian_lite_latest+
  
-  4522df4a29f9aac4b0166fbfee9f599dab55a997c855702bfe35329c13334668  2020-08-20-raspios-buster-armhf-lite.zip+Bevor wir nun das Archiv entpacken überprüfen wir noch die Integrität der heruntergeladenen Datei. 
 +   $ sha256sum --check 2022-04-04-raspios-bullseye-arm64-lite.zip.sha256
  
-Die Zeichenfolge überprüfen wir nun mit den Angaben auf der Seite: https://www.raspberrypi.org/downloads/raspbian/ +  2022-04-04-raspios-bullseye-arm64-lite.zipOK
-{{ :knb:raspberry:raspberry_pi_os_light.png?600 |Bild: Bildschirmhardcopy der Seite www.raspberrypi.org/software/operating-systems (Stand: 16.12.2020)}}+
  
-Da sich beide SHA-Werte **__nicht__** unterscheiden können wir das herunter geladene ZIP-Archiv nun entpacken.    +Da unser heruntergeladenes Archiv soweit okay ist, können wir dieses entpacken. 
-   $ unzip 2020-08-20-raspios-buster-armhf-lite.zip+   $ unzip 2022-04-04-raspios-bullseye-arm64-lite.zip
  
-<code>Archive:  2020-08-20-raspios-buster-armhf-lite.zip +<code>Archive:  2022-04-04-raspios-bullseye-arm64-lite.zip 
-  inflating: 2020-08-20-raspios-buster-armhf-lite.img+  inflating: 2022-04-04-raspios-bullseye-arm64-lite.img
 </code> </code>
  
Zeile 70: Zeile 62:
    # tail -f /var/log/messages    # tail -f /var/log/messages
 bzw. bzw.
-   $ sudo tail -f /var/log/syslog</code>+   $ sudo tail -f /var/log/syslog
  
 <code>Sep  5 21:10:57 BOFHs-X230 kernel: [12795.867603] mmc0: new high speed SDHC card at address aaaa <code>Sep  5 21:10:57 BOFHs-X230 kernel: [12795.867603] mmc0: new high speed SDHC card at address aaaa
Zeile 86: Zeile 78:
 Aus der zweiten Zeile ergibt sich, dass die MicroSD-Karte über die Gerätedatei **''/dev/mmcblk0''** angesprochen werden kann. Die nachfolgenden Zeilen zeigen an, wie das Linux-System den bestehenden Inhalt der Karte interpretiert - tut aber für unsere Zwecke nichts zur Sache, weil wir die Karte eh gleich überschreiben. Achtung: schließt man die MicroSD-Karte z.B. über einen USB-Adapter an, kann sie auch unter einem anderen Namen erscheinen, z.B. **''/dev/sde''**. Und hier ist Gefahr in Verzug, weil die System-Platte des Host-Rechners auch unter **''/dev/sd<irgendwas>''** erscheint, und es auch erfahrenen Benutzern passiert, die Buchstaben zu verwechseln, und beim nachfolgenden Schreibvorgang sein System zerschießt.  Aus der zweiten Zeile ergibt sich, dass die MicroSD-Karte über die Gerätedatei **''/dev/mmcblk0''** angesprochen werden kann. Die nachfolgenden Zeilen zeigen an, wie das Linux-System den bestehenden Inhalt der Karte interpretiert - tut aber für unsere Zwecke nichts zur Sache, weil wir die Karte eh gleich überschreiben. Achtung: schließt man die MicroSD-Karte z.B. über einen USB-Adapter an, kann sie auch unter einem anderen Namen erscheinen, z.B. **''/dev/sde''**. Und hier ist Gefahr in Verzug, weil die System-Platte des Host-Rechners auch unter **''/dev/sd<irgendwas>''** erscheint, und es auch erfahrenen Benutzern passiert, die Buchstaben zu verwechseln, und beim nachfolgenden Schreibvorgang sein System zerschießt. 
  
-Mit Hilfe der Gerätedatei können wir das heruntergeladene **[[#download|Debian Buster Image-Datei]]** auf die MicroSD-Karte kopieren. In der Regel hat der "normale Nutzer" keine Rechte um diese Gerätedatei anzusprechen, wir müssen also als Benutzer **root** oder mit den Rechten des Benutzers **root** den Kopiervorgang aufrufen: +Mit Hilfe der Gerätedatei können wir das heruntergeladene **[[#download|Debian Bullseye Image-Datei]]** auf die MicroSD-Karte kopieren. In der Regel hat der "normale Nutzer" keine Rechte um diese Gerätedatei anzusprechen, wir müssen also als Benutzer **root** oder mit den Rechten des Benutzers **root** den Kopiervorgang aufrufen: 
  
-   # dd if=~/2020-08-20-raspios-buster-armhf-lite.img of=/dev/mmcblk0  bs=4M status=progress conv=fsync+   # dd if=~/2022-01-28-raspios-bullseye-arm64-lite.img of=/dev/mmcblk0  bs=4M status=progress conv=fsync
 bzw. bzw.
-   $ sudo dd if=/home/django/Freifunk/2020-08-20-raspios-buster-armhf-lite.img of=/dev/mmcblk0 bs=4M status=progress conv=fsync</code>+   $ sudo dd if=/home/django/Freifunk/2022-01-28-raspios-bullseye-arm64-lite.img of=/dev/mmcblk0 bs=4M status=progress conv=fsync
  
 Wenn der Kopiervorgang abgeschlossen ist, Karte entfernen und wieder einstecken. Das System erkennt die beiden Partitions auf der Karte. Je nach Systemeinstellungen mountet sie die Partitions automatisch - in der Regel im Verzeichnis **''/run/media/''** oder auch **''/media/''**. Oder es erscheint in der Systemleiste ein Icon für einen neu erkannten Wechseldatenspeicher, den man dann per Mausklick mounten kann. Wer unsicher ist, kann  Wenn der Kopiervorgang abgeschlossen ist, Karte entfernen und wieder einstecken. Das System erkennt die beiden Partitions auf der Karte. Je nach Systemeinstellungen mountet sie die Partitions automatisch - in der Regel im Verzeichnis **''/run/media/''** oder auch **''/media/''**. Oder es erscheint in der Systemleiste ein Icon für einen neu erkannten Wechseldatenspeicher, den man dann per Mausklick mounten kann. Wer unsicher ist, kann 
Zeile 220: Zeile 212:
 <WRAP center round tip 60%> <WRAP center round tip 60%>
 Am Besten vergewissern wir uns noch vorab, welches die [[https://downloads.open-mesh.org/batman/releases/|aktuelle BATMAN Version]] ist.  Am Besten vergewissern wir uns noch vorab, welches die [[https://downloads.open-mesh.org/batman/releases/|aktuelle BATMAN Version]] ist. 
-Ende Dezember 2020 wäre dies die Version **[[https://downloads.open-mesh.org/batman/releases/batman-adv-2020.4/|2020.4]]**+Anfang August 2022 wäre dies die Version **[[https://downloads.open-mesh.org/batman/releases/batman-adv-2022.2/|2020.2]]**
 </WRAP> </WRAP>
  
Zeile 230: Zeile 222:
    $ sudo su -    $ sudo su -
  
-Nachdem wir uns eingeloggt haben, wechseln wir in das Zielverzeichnis **''/usr/src/''**, laden dort das aktuelle Archiv herunter und entpacken es anschließend an Ort uns Stelle.+Nachdem wir uns eingeloggt haben, wechseln wir in das Zielverzeichnis **''/usr/src/''**, laden dort das aktuelle B.A.T.M.A.N advanced Archiv herunter und entpacken es anschließend an Ort uns Stelle.
    # cd /usr/src/    # cd /usr/src/
  
-   # wget https://downloads.open-mesh.org/batman/releases/batman-adv-2020.4/batman-adv-2020.4.tar.gz+   # wget https://downloads.open-mesh.org/batman/releases/batman-adv-2022.2/batman-adv-2022.2.tar.gz{,.sha1} 
 + 
 +Bevor wir nun das Archiv entpacken überprüfen wir noch die Integrität der heruntergeladenen Datei. 
 +   $ sha1sum --check batman-adv-2022.2.tar.gz.sha1 
 + 
 +  batman-adv-2022.2.tar.gz.sha1: OK
  
-   # tar xzf batman-adv-2020.4.tar.gz+   # tar xzf batman-adv-2022.2.tar.gz
  
 ==== Kernelmodule ==== ==== Kernelmodule ====
Zeile 262: Zeile 259:
  
 Da nun alle nötigen vorbereitenden Installations- und Konfigurationsschritte abgearbeitet sind, machen wir uns an das Anlegen der für B.A.T.M.A.N. notwendigen Konfigurationsdatei **''dkms.conf''**. Da nun alle nötigen vorbereitenden Installations- und Konfigurationsschritte abgearbeitet sind, machen wir uns an das Anlegen der für B.A.T.M.A.N. notwendigen Konfigurationsdatei **''dkms.conf''**.
-   # cd ../batman-adv-2020.4/+   # cd ../batman-adv-2022.0/
  
    # vim dkms.conf    # vim dkms.conf
  
 Der Inhalt der dkms.conf sieht wie folgt aus: Der Inhalt der dkms.conf sieht wie folgt aus:
-<file bash /usr/src/batman-adv-2020.4/dkms.conf># Django : 2020-12-15+<file bash /usr/src/batman-adv-2022.2/dkms.conf># Django : 2020-12-15
 PACKAGE_NAME=batman-adv PACKAGE_NAME=batman-adv
-PACKAGE_VERSION=2020.4+PACKAGE_VERSION=2022.2
  
 DEST_MODULE_LOCATION=/extra DEST_MODULE_LOCATION=/extra
Zeile 283: Zeile 280:
  
 Nun sind wir mit unserer Konfiguration soweit, dass wir die B.A.T.M.A.N-Kernelmodule bauen können. Nun sind wir mit unserer Konfiguration soweit, dass wir die B.A.T.M.A.N-Kernelmodule bauen können.
-   # dkms add -m batman-adv -v 2020.4+   # dkms add -m batman-adv -v 2022.2
  
-   # dkms build -m batman-adv -v 2020.4+   # dkms build -m batman-adv -v 2022.2
  
-   # dkms install -m batman-adv -v 2020.4+   # dkms install -m batman-adv -v 2022.2
  
 Als nächstes müssen wir dafür sorgen, dass die beiden Kernelmodule **batman-adv** und **dummy** beim Booten des Systems auch geladen werden. Dazu müssen wir die Datei "/etc/modules-load.d/batman-adv.module.conf" wie folgt anpassen. Als nächstes müssen wir dafür sorgen, dass die beiden Kernelmodule **batman-adv** und **dummy** beim Booten des Systems auch geladen werden. Dazu müssen wir die Datei "/etc/modules-load.d/batman-adv.module.conf" wie folgt anpassen.
Zeile 315: Zeile 312:
 ==== Installation und Konfiguration von batctl ==== ==== Installation und Konfiguration von batctl ====
 Um BATMAN verwalten zu können müssen wir nun noch "batctl" installieren. Um BATMAN verwalten zu können müssen wir nun noch "batctl" installieren.
-   # apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-key 04EE7237B7D453EC+   # apt-key adv --keyserver hkps://keyserver.ubuntu.com --recv-key 04EE7237B7D453EC
  
-   # apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-key 648ACFD622F3D138+   # apt-key adv --keyserver hkps://keyserver.ubuntu.com --recv-key 648ACFD622F3D138
  
-   # echo "deb http://deb.debian.org/debian buster-backports main" | tee /etc/apt/sources.list.d/buster-backports.list+   # echo "deb http://deb.debian.org/debian bullseye-backports main contrib non-free" | tee /etc/apt/sources.list.d/bullseye-backports.list
  
    # apt update    # apt update
  
-   # apt-get -t buster-backports install batctl+   # apt-get -t bullseye-backports install batctl
  
 Anschließend überprüfen wir ob alles korrekt geladen wurde. Anschließend überprüfen wir ob alles korrekt geladen wurde.
Zeile 352: Zeile 349:
    # batctl -v    # batctl -v
  
-  batctl debian-2020.4-1~bpo10+1 [batman-adv: 2020.4]+  batctl debian-2022.2-1~bpo11+1 [batman-adv: 2022.2]
  
-Da beides in der Version **2020.4** vorliegt, können wir mit der weiteren Installation und Konfiguration wie gewohnt fortfahren.+Da beides in der Version **2022.2** vorliegt, können wir mit der weiteren Installation und Konfiguration wie gewohnt fortfahren.
  
 ==== Interface-Konfiguration ==== ==== Interface-Konfiguration ====
Zeile 696: Zeile 693:
  
 ==== WireGuard-Healthcheck ==== ==== WireGuard-Healthcheck ====
-Im Betrieb kann es ab und an passieren, dass der WireGuard-Tunnel zusammenbricht, weil z.B. die Netzwerkverbindung abgerissen sit, oder ein Rebot der Gateways notwendig war. Damit in einem solchen Fall unser Offloader nicht **__offload__** geht, müssen wir die Verfügbar- und Nutzzbarkeit deer Tunnelverbindung in regelmäßigen Abständen prüfen und ggf. einschreiten und die Verbindung neu aufbauen.+Im Betrieb kann es ab und an passieren, dass der WireGuard-Tunnel zusammenbricht, weil z.B. die Netzwerkverbindung abgerissen ist, oder ein Reboot der Gateways notwendig war. Damit in einem solchen Fall unser Offloader nicht **__offload__** geht, müssen wir die Verfügbar- und Nutzbarkeit der Tunnelverbindung in regelmässigen Abständen prüfen und ggf. einschreiten und die Verbindung neu aufbauen.
  
-Da wir das ntürlich nict manuell erledigen wollen und können, legen wir uns ein kleines bash-Script hierzu an.+Da wir das natürlich nicht manuell erledigen wollen und können, legen wir uns ein kleines bash-Script hierzu an.
    # vim /usr/local/bin/checkup    # vim /usr/local/bin/checkup
  
Zeile 728: Zeile 725:
    # chmod +x /usr/local/bin/checkup    # chmod +x /usr/local/bin/checkup
  
-Damit das Script nun münütlich ausgeführt wird, legen wir noch einen hierzu benötigten Eintrag in der **''/etc/crontab''** an. +Damit das Script nun minütlich ausgeführt wird, legen wir noch einen hierzu benötigten Eintrag in der **''/etc/crontab''** an. 
    # vim /etc/crontab    # vim /etc/crontab
  
Zeile 767: Zeile 764:
 Dec 16 19:40:18 rpb4-wg-ol checkuplink "Starting vxlan-meshing."</code> Dec 16 19:40:18 rpb4-wg-ol checkuplink "Starting vxlan-meshing."</code>
  
-===== Weiter geht es mit Mesh per vxlan =====+===== Mesh per vxlan =====
 ==== Hintergründe ==== ==== Hintergründe ====
 WireGuard selbst transportiert lediglich Layer-3-Verbindungen und keine Layer-2-Verbindungen, welches wir aber für das von uns eingesetzte Meshprotokoll, B.A.T.M.A.N.-Advanced batman-adv, benötigen. Hierzu transportieren wir nun durch den WireGuard-Tunnel ein Virtual eXtensible LAN (VXLAN, siehe **[[https://tools.ietf.org/html/rfc7348|RFC 7348]]**) und in diesem VXLAN läuft dann batman-adv.  WireGuard selbst transportiert lediglich Layer-3-Verbindungen und keine Layer-2-Verbindungen, welches wir aber für das von uns eingesetzte Meshprotokoll, B.A.T.M.A.N.-Advanced batman-adv, benötigen. Hierzu transportieren wir nun durch den WireGuard-Tunnel ein Virtual eXtensible LAN (VXLAN, siehe **[[https://tools.ietf.org/html/rfc7348|RFC 7348]]**) und in diesem VXLAN läuft dann batman-adv. 
Zeile 1014: Zeile 1011:
  
  
-===== Konfigurations-/Netzzwerkcheck =====+===== Konfigurations-/Netzwerkcheck =====
 Nun wollen wir auch prüfen welche Verbindungen unser Offloader hält. Nun wollen wir auch prüfen welche Verbindungen unser Offloader hält.
  
  • knb/rpb4_wg.txt
  • Zuletzt geändert: 2023/11/04 21:29
  • von django