Zeile 36: | Zeile 36: | ||
= Automatische IPv4 Konfiguration = | = Automatische IPv4 Konfiguration = | ||
Dies funktioniert grundsätzlich nach dem gleichen Prinzip wie IPv6 nur das der Router hier sich nur eine einzelne Adresse per mqtt geben lässt, als /32 konfiguriert und für Clients das Subnetz 192.168.0.1/16 verwendet, welches auf die einzelne Adresse geNATtet wird. Prinzipiell machen wir hier cgnat wie es große Provider auch machen. | Dies funktioniert grundsätzlich nach dem gleichen Prinzip wie IPv6 nur das der Router hier sich nur eine einzelne Adresse per mqtt geben lässt, als /32 konfiguriert und für Clients das Subnetz 192.168.0.1/16 verwendet, welches auf die einzelne Adresse geNATtet wird. Prinzipiell machen wir hier cgnat wie es große Provider auch machen. Als Topic wird hier statt /ipv6 dann /ipv4 verwendet. |
Version vom 28. Dezember 2020, 12:44 Uhr
Hier möchte ich mal kurz beschreiben was ich mir grob unter autol3 vorstelle:
Ziele
- Die komplette Konfiguration soll im WebUI ermöglicht werden, kein SSH mehr nötig
- Der Router soll auf Wunsch vollkommen automatisch konfiguriert werden und als Layer 3 Router funktionieren
- Es soll jederzeit manuell eingegriffen werden können und auch nur Teile manuell konfiguriert werden können z.b.:
- VLAN Settings default laden aber IPv4 und IPv6 manuell konfigurieren
- IPv4 und IPv6 automatisch konfigurieren aber VLAN Settings manuell anpassen
- VLAN und IPv4/IPv6 automatisch konfigurieren aber einen manuellen wireguard Tunnel anlegen
- Prinzipiell ist die Idee jede Kombination schon von grundauf zu ermöglichen so das kein geschlossenes System, wie es bei der aktuellen Node Firmware ist, entsteht und jeder manuell dort eingreifen kann wo er es für nötig hält aber Sachen automatisch konfigurieren lassen kann die selbst (noch) nicht verstanden werden.
- Standardmässig soll immer eine manuelle Konfiguration vorgegeben sein, das autol3 muss explizit aktiviert werden.
Automatische IPv6 Konfiguration
Wird der Haken gesetzt wird das package fff-autoconfig-v6 aktiv. Per Cronjob wird der Router per mqtt eine Nachricht versenden an /ipv6/asknew und als Inhalt seine MAC Adresse. Nun können viele Leute antworten mit "ich hab hier eine IP Adresse nutzt diese" dies geschieht auf dem Topic IPv6/usethis/$MAC/$ASSIGNER mit einer kleinen json als Inhalt:
{
"assigner": "$ASSIGNER",
"ip": "ipv6 Adresse mit Subnetzangaben z.b. 2001:db8::/64"
}
was der Router nach seinem asknew abhört. In der aktuellen Version wird einfach die erste Antwort verwendet und die IP Adresse konfiguriert und sich in der /etc/config/fff gemerkt woher die Adresse stammt und welche verwendet wird.
Alle 5 Minuten fragt der Router nun nach, ob er die Adresse noch verwenden darf. Dazu prüft er erst ob er eine Adresse hat und wenn das der Fall ist sendet er an das Topic /ipv6/canusethis/$ASSIGNER eine JSON mit folgenden Inhalt:
{
"mac":"$MAC",
"ip":"$IP"
}
er erwartet innerhalb von 5 Sekunden eine Antwort auf dem Topic /ipv6/canusethisanswer/$MAC (aktuell wird als Inhalt ein ack versendet, prinzipiell wird aber nur geprüft ob eine Antwort kommt). Sollte keine Antwort kommen, wird die aktuelle IPv6 Konfiguration komplett verworfen und wieder mit asknew von vorne angefangen.
Automatische IPv4 Konfiguration
Dies funktioniert grundsätzlich nach dem gleichen Prinzip wie IPv6 nur das der Router hier sich nur eine einzelne Adresse per mqtt geben lässt, als /32 konfiguriert und für Clients das Subnetz 192.168.0.1/16 verwendet, welches auf die einzelne Adresse geNATtet wird. Prinzipiell machen wir hier cgnat wie es große Provider auch machen. Als Topic wird hier statt /ipv6 dann /ipv4 verwendet.