Layer3Firmware
Allgemeine Informationen
Die Gatewayfirmware kann sehr einfach mithilfe des Skripts configuregateway auf Basis von Hoodfile (/www/hood/keyxchangev2data) und der Gatewaykonfiguration (/etc/config/gateway) konfiguriert werden.
Das Skript konfiguriert den Router entsprechend der /etc/config/gateway und Hoodfile und muss bei Änderungen erneut ausgeführt werden. configuregateway wird nie automatisch ausgeführt, entsprechend verliert der Router bei einem Update alle Einstellungen!
ACHTUNG: Unbekannte Einstellungen werden möglicherweise entfernt!
ULA und Wifi bezieht das Skript aus der Hoodfile, den Rest aus /etc/config/gateway.
Hostname und Position müssen aktuell manuell in /etc/config/fff eingetragen werden, das Webinterface ist aus $Gründen kaputt.
Die Gatewayfirmware wird aktuell größtenteils hier entwickelt: https://github.com/fblaese/firmware/tree/l3
Fertige Builds gibt es entsprechend den Tags aus dem o.g. Repository hier: http://fw.sgstbr.de/gateway/
Eine Bespielkonfiguration mit einem direkten Peer und einem Wireguardpeer gibts hier: https://gist.github.com/fblaese/ca4d903b20b4d7033553f48625b93ca6
configuregateway
Folgende Parameter können übergeben werden:
- -c: Konfiguriert das Gateway mit uci. Kein commit, kein Anwenden der Einstellungen!
- -t: Startet alle Dienste neu, damit werden die Einstellungen aus -c angewendet. Skript wartet bis zu 200s darauf, dass es beendet wird (Strg + c wenn ssh nicht verloren geht, ansonsten kill(all)). Wird das Skript in dieser Zeit nicht beendet, werden die Einstellungen zurückgesetzt und die Dienste erneut neu gestartet.
- -a: Applied die Änderungen (uci commit), startet Dienste neu.
- -r: Revert changes.
/etc/config/gateway
gateway
Name | Type | Required | Description |
---|---|---|---|
name | string | no | |
peer_ip | IPv4 Adresse | no | IPv4 Adresse für Peerings |
peer_ip6 | IPv6 Adresse | no | IPv6 Adresse für Peerings |
vlan
Name | Type | Required | Description |
---|---|---|---|
comment | string | no | |
port | list | no | Ports auf dem Standard-Switch |
client
Name | Type | Required | Description |
---|---|---|---|
iface | interface | no | Clientnetz auf Interface legen |
vlan | number | no | Clientnetz auf VLAN mit angegebener IP auf dem Standard-Switch legen (Alternativ zu iface!!) |
ipaddr | IPv4 Adresse | no | Router-IP im Client-Netz (CIDR Notation) |
ip6addr | IPv6 Adresse | no | Router-IP im Client-Netz (CIDR Notation) |
dhcp_start | IPv4 Adresse | no | DHCP Startadresse |
dhcp_limit | number | no | Maximale Anzahl an DHCP-Leases |
dns
Name | Type | Required | Description |
---|---|---|---|
server | list | no | DNS-Server, auf den geforwarded wird |
batman
Name | Type | Required | Description |
---|---|---|---|
iface | interface | no | Batman auf physikalisches auf Interface legen |
vlan | number | no | Batman auf VLAN mit angegebener IP auf dem Standard-Switch legen (Alternativ zu iface!!) |
babelpeer
Name | Type | Required | Description |
---|---|---|---|
iface | interface | no | Babel auf physikalisches Interface legen |
vlan | number | no | Babel auf VLAN mit angegebener IP auf dem Standard-Switch legen (Alternativ zu iface!!) |
type | babel-type | no | Babel Verbindungstyp (z.B. wired, tunnel, ..) |
wireguardpeer
Name | Type | Required | Description |
---|---|---|---|
endpoint_host | host oder ip | yes | |
endpoint_port | port | yes | |
persistent_keepalive | seconds | no | |
public_key | wireguard pubkey | yes | |
private_key | wireguard privkey | no | automatically generated if unspcified |