Wie man ein privates Netz hinter einem Freifunkrouter aufbaut
Wenn man ein privates Netz hinter dem Freifunk betreiben will, kann man einen Open Wrt-Router (mit dem WAN-Port) an den LAN-Port eines Freifunk-Routers anschließen.
- Für IPv4 nutzt man ganz normales NAT.
- Für IPv6 macht man Proxy NDP. Open Wrt übernimmt dann automatisch auch das Proxying der Router Advertisements, wenn man das Proxy NDP aktiviert. Dadurch sind die Freifunk-Addressen auch im LAN verfügbar. Die Firewall ist natürlich trotzdem aktiv.
Dazu aktiviert man im br-lan-Interface unter Network/Interfaces den Relay-Mode für alle IPv6-Dienste (DHCP Server/IPv6 settings, siehe Screenshot). Das Interface ist jedoch
nicht der Master; das wird das WAN6-Interface.

Anschließend klickt man beim WAN6-Interface auf "Edit", um dort die IPv6-Einstellungen anzupassen. Hier muss man jetzt etwas tricksen, weil die DHCP-Servereinstellungen in
LuCI normalerweise nicht angezeigt werden, wenn das Interface im DHCPv6-Client-Modus ist: Unter "Protocol" wählt man "Static address" aus,
jedoch ohne auf "Switch protocol" oder "Save" zu klicken. Der Reiter "DHCP Server" erscheint trotzdem. Hier klickt man zunächst auf "Setup DHCP Server", wählt in "General Setup" "Ignore Interface" um IPv4 zu deaktivieren und wechselt dann in die "IPv6 Settings". Dort müssen ebenfalls alle Dienste auf "relay mode" gesetzt und das Interface als
"Master" markiert werden.
Nicht speichern! Erst zurück in die "General Settings" gehen, das Interface wieder in den DHCPv6-Client-Modus bringen, dann "Save" und auf der Interface-Seite "Save & Apply" klicken.
Dann hat man allerdings noch das Problem, dass es zwei RA-Quellen gibt. Die Supernodes und FF-Router selbst. Dadurch, dass der FF-Router keine Default-Route anbietet, entsteht dann ein Problem, dass zeitweise die Verbindung unterbricht. Das Betriebssystem des Clients kann durch das Proxying nicht mehr auseinander halten, dass es eigentlich zwei unterschiedliche RA-Quellen sind und löscht zeitweise einfach die Default-Route wieder.
Dies kann man auf dem Open Wrt-Gerät unterbinden, in dem man folgende Firewall-Regel installiert -- entweder, indem man sie in /etc/config/firewall hinzufügt oder über das Webinterface (Network/Firewall/Traffic Rules) zusammenklickt.
config rule
list icmp_type 'router-advertisement'
option src 'wan'
option name 'Block RA from local FF-Router'
option target 'REJECT'
list proto 'icmp'
list src_ip 'fe80::1441:95ff:fe40:f8dc'
Die Source-IP (src_ip) muss man auf die
local-node-fe80-Adresse des angeschlossenen Freifunk-Routers anpassen. Dazu per SSH auf dem Freifunk-Router einbuchen, "ip a" ausführen und die fe80-Adresse des Interfaces local-node@local-port kopieren.
Dadurch werden die RA vom Freifunk-Router geblockt. Es werden dann nur noch die RA vom Supernode geproxied.
Wichtig ist noch, dass die Regel vor der allgemeinen "Akzeptiere alle ICMP RA" eingetragen wird. Entweder in der Reihenfolge der Config-Datei oder durch hochziehen über den Button im Webinterface. Sonst hat die andere Regel vorrang und alle RA werden akzeptiert.
--
LeMoer - 12 Aug 2021
-- Ergänzungen zu den
ProxyNDP -Einstellungen in
OpenWrt - ctandi - 13. Aug 2021