biOS 0.4.0

Entwicklungsstand. Image bios-0.4.0-dev.20261101-generic-amd64.iso, gebaut aus Commit bdaf3082f, mit VPP 26.10 und Linux 7.3.

Standarddaten

Benutzer bios
Passwort bios
Hostname bios
Serielle Konsole ttyS0, 115200 Baud
Netzwerk keine Adressen, SSH aus
Routing-Backend BIRD, FRR als Fallback

Nach dem Start vom ISO mit install image auf die Platte installieren und das Passwort ändern:

configure
set system login user bios authentication plaintext-password <passwort>
commit
save

SSH einschalten:

set interfaces ethernet eth0 address <adresse>/<präfix>
set service ssh
commit
save

VPP braucht isolierte CPU-Kerne und Huge Pages, beides wirkt erst nach einem Neustart:

set system option kernel cpu isolate-cpus 2-3
set system option kernel memory hugepage-size 2M hugepage-count 1800
commit
save
reboot

Danach:

set vpp settings interface eth1
commit

Download

Neuestes Image https://bios.bosner.de/images/latest/bios-generic-amd64.iso
Für Programme https://bios.bosner.de/latest.json (Version, URL, Größe, SHA-256), https://bios.bosner.de/images.json
Dieser Bericht https://bios.bosner.de/report.html, als Text https://bios.bosner.de/report-0.4.0.md

SHA-256 des Images: 05ae80f680f3b62f22eee0c2c684039ee78ae6b265734e3818fd7f5553721180

Änderungen

VPP

Neue Konfiguration

Soft RSS verteilt Pakete per Software auf die Worker, für Verkehr, den die NIC nicht hashen kann. Braucht cpu-cores 2 oder mehr:

set vpp settings resource-allocation cpu-cores 2
set vpp settings interface eth1 soft-rss type 4-tuple    # 2-tuple, src-ip, dst-ip

WireGuard im Dataplane, die Schnittstelle erscheint für BIRD und FRR im Kernel:

set interfaces vpp wireguard vppwg0 address 10.255.0.1/30
set interfaces vpp wireguard vppwg0 source-address 192.0.2.1
set interfaces vpp wireguard vppwg0 port 51820
set interfaces vpp wireguard vppwg0 private-key <key>
set interfaces vpp wireguard vppwg0 peer site-b public-key <key>
set interfaces vpp wireguard vppwg0 peer site-b preshared-key <key>
set interfaces vpp wireguard vppwg0 peer site-b allowed-ips 10.255.0.2/32
set interfaces vpp wireguard vppwg0 peer site-b address 198.51.100.2
set interfaces vpp wireguard vppwg0 peer site-b port 51820

Firewall für weitergeleiteten Verkehr: set firewall ipv4|ipv6 forward filter wirkt jetzt auch auf das, was VPP weiterleitet, als ACLs des VPP-ACL-Plugins.

Werkzeuge

Testergebnisse

Smoketests

Lauf auf dem oben genannten Image, 11 VMs mit KVM, virtio-, e1000e- und vmxnet3-NICs:

Module 115, alle bestanden
Tests 1397, kein Fehler
Übersprungen 151: 147 Interface-Tests für Funktionen, die die jeweilige Interface-Familie nicht hat, 2 nur für arm64, 2 passen nicht zu IPoE
Darunter VPP test_vpp.py, 49 Tests
Dauer 18 Minuten

Einzelergebnisse je Modul: https://bios.bosner.de/results-0.4.0.json

Verkehr durch VPP

Drei VMs mit virtio-NICs: B – A (VPP) – C, in den WireGuard-Tests auch B mit VPP.

Test Ergebnis
Ping von B an den Router A über Linux-CP 3 von 3
Weiterleitung von B nach C durch VPP 4 von 5
Forward-Filter nur TCP: Ping von B nach C 0 von 3, verworfen wie konfiguriert
Derselbe Filter: Ping von B an den Router 3 von 3
Regel für ICMP ergänzt: Ping von B nach C 3 von 3
Ohne Regel in Gegenrichtung: Ping von C nach B 0 von 3, verworfen wie konfiguriert
BGP mit BIRD Established, Route im Kernel und in der VPP-FIB (lcp-rt-dynamic)
Neustart von A VPP, ACLs, BGP-Session und FIB-Route wieder da; danach 2 von 3 Pings
Neustart von VPP mit Firewall und Soft RSS ACLs wieder da, Soft RSS aktiv; kurz darauf 20 von 20
WireGuard mit Preshared Key je 5 von 5 in beide Richtungen, Handshake aufgebaut

Die einzelnen Paketverluste treten kurz nach Konfiguration oder Start auf. Die Ursache ist nicht untersucht, naheliegend ist die Auflösung der Nachbaradressen.

Protokolle: BGP und Neustart, WireGuard, Firewall und Soft RSS

Offen