Angeschlossene Computer im Freifunknetz erreichbar machen

Sind eigene Computer über die LAN oder die WAN-Schnittstelle mit dem Router verbunden (siehe Einbinden des Freifunkrouters ins eigene Netzwerk), dann sind diese aus dem Freifunknetz heraus nicht direkt erreichbar. Möchte man auf diesen nun Dienste (siehe: Eigene Dienste anbieten anbieten, auf die aus dem Freifunknetz zugegriffen werden kann, dann muss der Freifunkrouter entsprechend umkonfiguriert werden.

Einzelne Dienste mit Portforwarding verfügbar machen

Das ist der einfachste Weg, der keine Eingriffe ins Netzwerk an sich erfordert. Es wird eine (oder auch mehrere) Regel für Portforwarding erstellt. Portforwarding funktioniert dabei so, dass Zugriffe auf den Port einer externen Adresse auf einen Rechner hinter dem Freifunkrouter weitergeleitet werden.

Zum Einrichten von Portforwards siehe Port Forwarding. Als Externe Zone ist in diesem Fall Freifunk zu wählen, schliesslich sollen ja Pakete die an einen Port der Freifunk- Schnittstelle(n) gerichtet sind weitergeleitet werden.

Rechner oder Netzwerke mit HNA ankündigen

Mit HNA (Host Network Announcement) kann auf dem Node ein verfügbarer IP-Bereich oder auch nur eine einzelne Adresse im Netzwerk bekannt gemacht werden. Dadurch wird ein angeschlossener Rechner direkt im Mesh erreichbar, muss jedoch selbst nicht OLSR nutzen.

Um einen Rechner im WAN oder LAN (siehe Einbinden des Freifunkrouters ins eigene Netzwerk) per HNA erreichbar zu machen, benötigt man ein eigenes kleines Netzwerk aus dem Bereich der eigenen Freifunk Community und sollte dieses Netzwerk (bzw. darin liegende einzelne IPs registrieren, siehe IP-Adresse(n) registrieren. Soll nur ein einzelner Rechner per HNA angekündigt werden, dann reicht es ein Netzwerk mit der Netzmaske /30 zu registrieren. Sollen es mehr Rechner werden dann dieses Netz entsprechend grösser wählen (z.B. /29 für 6 Rechner oder /28 für 14 Rechner).

Hinweis

Um Rechner über HNA erreichbar zu machen müssen die IP-Adressen auf dem Freifunkrouter und auf dem Rechner angepasst werden.

Beispiel

Im Augsburger Freifunknetz, das als Mesh-Netzwerk 10.11.0.0/18 benutzt soll ein am LAN des Freifunkrouters angeschlossener Rechner per HNA verfügbar gemacht werden. Dazu wird zunächst das Netzwerk 10.11.9.0/30, also die IPs 10.11.9.0 bis 10.11.9.3 reserviert. Das ergibt 2 nutzbare IPs:

  • 10.11.9.1 soll als Alias-IP (also zusätzliche IP) für LAN auf dem Freifunkrouter verwendet werden
  • 10.11.9.2 soll die IP-Adresse des angeschlossenen Rechners werden.

Einrichtung eines HNA-Netzwerks in LuCI

Gehe zu Administration ‣ Netzwerk ‣ Schnittstellen und klicke unten auf Neue Schnittstelle hinzufügen.... Es öffnet sich nun eine Seite zum konfigurieren der neuen Schnittstelle:

Alias Interface für die LAN Schnittstelle anlegen

Trage dort bei Name der neuen Schnittstelle (1) einen Namen ein. Da wir hier ein HNA-Alias-Interface für LAN anlegen wollen verwenden wir als Namen lanhna. Wähle unten bei Die folgende Schnittstelle abdecken Benutzerdefinierte Schnittstelle aus und trage in das Feld hinten @lan ein, damit die neue Schnittstelle als Alias-Interface der LAN-Schnittstelle erzeugt wird.

Hinweis

Ist der Rechner statt an den LAN-Buchsen am WAN des Freifunkrouters angeschlossen gibst du hier @wan statt @lan ein.

Klicke abschliessend auf Absenden um zu einer weiteren Konfigurationsseite zu kommen:

Tab Allgemeine Einstellungen für das Alias Interface

Trage hier bei IPv4-Adresse (1) eine Adresse ein, in unserem Beispiel also 10.11.9.1. Bei IPv4 Netzmaske wird die Netzmaske des Netzwerks eingetragen. In unserem Beispiel wäre das 255.255.255.252.

Wechsle danach zum Tab Firewall Einstellungen:

Tab Firewall Einstellungen für das Alias Interface

Wähle hier bei Firewallzone anlegen / zuweisen die Freifunk Zone aus und beende das Anlegen des Interfaces durch einen Klick auf Speichern & Anwenden.

Als nächstes muss noch ein HNA-Eintrag für OLSR angelegt werden. Gehe dafür zu Administration ‣ Dienste ‣ OLSR ‣ HNA-Ankündigungen und klicke dort in der Sektion Hna4 auf Hinzufügen. Trage hier bei Netzwerkadresse (1) die Startadresse des Alias-Netzwerks ein, in unserem Beispiel 10.11.9.0. Bei Netzmaske (2) trage die Netzmaske dieses Netzwerks ein, hier ist das 255.255.255.252.

HNA4 in der OLSR Konfiguration anlegen

Klicke anschliessend auf Speichern & Anwenden.

Einrichtung eines HNA-Netzwerks auf der Shell

1. Alias Interface anlegen

Zunächst muss ein Alias-Interface angelegt werden. Dazu wird am Ende von /etc/config/network folgendes eingefügt:

config interface 'lanhna'
option proto 'static'
option ifname '@lan'
option ipaddr '10.11.9.1'
option netmask '255.255.255.252'

Alternativ kann das auch mit uci erledigt werden:

uci set network.lanhna='interface'
uci set network.lanhna.proto='static'
uci set network.lanhna.ifname='@lan'
uci set network.lanhna.ipaddr='10.11.9.1'
uci set network.lanhna.netmask='255.255.255.252'

2. Alias Schnittstelle zur Firewallzone ``freifunk` hinzufügen

In /etc/config/firewall muss die freifunk-Zone bearbeitet und dort das eben angelegte Alias-Interface lanhna für option network hinzugefügt werden.

config zone 'zone_freifunk'
     option name 'freifunk'
     option input 'REJECT'
     option forward 'REJECT'
     option output 'ACCEPT'
     option masq '1'
     list masq_src 'lan'
     list masq_src 'wireless0dhcp'
     list masq_src 'wireless0ahdhcp'
     option network 'wireless0 wireless0dhcp lanhna'

Auch das ist wiederum mit uci direkt möglich:

net="$(uci get firewall.zone_freifunk.network)"
uci set firewall.zone_freifunk.network="$network lanhna"
uci commit firewall

Warnung

Bei uci müssen wir hier den Weg gehen, zunächst herauszufinden, welche Netze bereits zur Zone gehören (Die Variable network aus der ersten Zeile).

3. HNA Eintrag in der OLSR-Konfiguration erstellen

Um einen HNA-Eintrag zu Erstellen muss am Ende von /etc/config/olsrd folgendes eingefügt werden:

config Hna4 'lanhna'
     option netaddr '10.11.9.0'
     option netmask '255.255.255.252'

oder alternativ wieder mit uci:

uci set olsrd.lanhna='Hna4'
uci set olsrd.lanhna.netaddr='10.11.9.0'
uci olsrd.lanhna.netmask='255.255.255.252'
uci commit olsrd

4. Dienste neu starten

/etc/init.d/network restart
/etc/init.d/olsrd restart

Konfiguration des angeschlossenen Rechners

Der per HNA angeschlossene Rechner muss eine IP-Adresse aus dem Bereich verwenden, der per HNA angekündigt wird. Dies kann die primäre IP des Rechners, aber auch eine Alias-IP sein. In unserem Beispiel wäre die IP des Rechners 10.11.9.2 und die Netzmaske 255.255.255.252.

Rechner der selbst OLSR benutzt

Indem ein Rechner/Server selbst OLSR “spricht” kann er direkt aus dem Mesh erreicht werden.

Auf dem Freifunkrouter soll daher ein Alias-Netz eingerichtet werden, das auf LAN zusätzlich zur LAN-IP eine IP-Adresse aus dem IP-Bereich der jeweiligen Community hat. Der anzuschliessende Rechner braucht ebenfalls eine IP aus diesem IP-Bereich. Siehe IP-Adresse(n) registrieren. Zusätzlich muss auf beiden, Freifunkrouter und angeschlossener PC OLSR für die jeweilige Schnittstelle eingerichtet werden.

Hinweis

Wenn du schon vorher weisst dass entweder per LAN oder WAN ein oder mehrere Rechner per OLSR angeschlossen werden sollen, dann kannst du auch im Meshkit beim erstellen des Images direkt OLSR als Protokoll für dieses Netzwerk wählen. Das betreffende Netzwerk wird dann direkt für OLSR-Betrieb konfiguriert. Es gibt dann kein Alias, d.h. die urprüngliche Funktionalität wird nicht erhalten. Siehe: Konfiguration von LAN im Meshkit bzw. Konfiguration von WAN im Meshkit.

Beispiel für diese Konfiguration

Der Freifunkrouter soll die IP 10.11.9.100 bekommen, der Rechner die IP 10.11.9.101. Als Netzmaske wird /18, also 255.255.192.0 verwendet.

Einrichtung eine Alias-Schnittstelle für OLSR unter LuCI

Gehe zu Administration ‣ Netzwerk ‣ Schnittstellen und klicke unten auf Neue Schnittstelle hinzufügen.... Es öffnet sich nun eine Seite zum konfigurieren der neuen Schnittstelle:

Alias Interface für die LAN Schnittstelle anlegen

Trage dort bei Name der neuen Schnittstelle (1) einen Namen ein. Da wir hier ein OLSR-Alias-Interface für LAN anlegen wollen verwenden wir als Namen lanolsr. Wähle unten bei Die folgende Schnittstelle abdecken Benutzerdefinierte Schnittstelle aus und trage in das Feld hinten @lan ein, damit die neue Schnittstelle als Alias-Interface der LAN-Schnittstelle erzeugt wird.

Hinweis

Ist der Rechner statt an den LAN-Buchsen am WAN des Freifunkrouters angeschlossen gibst du hier @wan statt @lan ein.

Klicke abschliessend auf Absenden um zu einer weiteren Konfigurationsseite zu kommen:

Tab Allgemeine Einstellungen für das Alias Interface

Trage hier bei IPv4-Adresse (1) eine Adresse ein, in unserem Beispiel also 10.11.9.100. Bei IPv4 Netzmaske wird die Netzmaske des Netzwerks eingetragen. In unserem Beispiel wäre das 255.255.192.0.

Wechsle danach zum Tab Firewall Einstellungen:

Tab Firewall Einstellungen für das Alias Interface

Wähle hier bei Firewallzone anlegen / zuweisen die Freifunk Zone aus und beende das Anlegen des Interfaces durch einen Klick auf Speichern & Anwenden.

Jetzt muss noch OLSR für diese neu angelegte Schnittstelle aktiviert werden. Verwende dabei lanolsr als Netzwerk. Siehe: Ein Interface für OLSR konfigurieren.

Einrichtung eine Alias-Schnittstelle für OLSR auf der Shell

1. Alias Interface anlegen

Zunächst muss ein Alias-Interface angelegt werden. Dazu wird am Ende von /etc/config/network folgendes eingefügt:

config interface 'lanolsr'
option proto 'static'
option ifname '@lan'
option ipaddr '10.11.9.100'
option netmask '255.255.192.0'

Alternativ kann das auch mit uci erledigt werden:

uci set network.lanolsr='interface'
uci set network.lanolsr.proto='static'
uci set network.lanolsr.ifname='@lan'
uci set network.lanolsr.ipaddr='10.11.9.100'
uci set network.lanolsr.netmask='255.255.192.0'

2. Alias Schnittstelle zur Firewallzone ``freifunk` hinzufügen

In /etc/config/firewall muss die freifunk-Zone bearbeitet und dort das eben angelegte Alias-Interface lanolsr für option network hinzugefügt werden.

config zone 'zone_freifunk'
     option name 'freifunk'
     option input 'REJECT'
     option forward 'REJECT'
     option output 'ACCEPT'
     option masq '1'
     list masq_src 'lan'
     list masq_src 'wireless0dhcp'
     list masq_src 'wireless0ahdhcp'
     option network 'wireless0 wireless0dhcp lanolsr'

Auch das ist wiederum mit uci direkt möglich:

net="$(uci get firewall.zone_freifunk.network)"
uci set firewall.zone_freifunk.network="$network lanolsr"
uci commit firewall

Warnung

Bei uci müssen wir hier den Weg gehen, zunächst herauszufinden, welche Netze bereits zur Zone gehören (Die Variable network aus der ersten Zeile).

3. OLSR für das Interface aktivieren

Jetzt muss noch OLSR für diese neu angelegte Schnittstelle aktiviert werden. Verwende dabei lanolsr als Netzwerk. Siehe: Ein Interface für OLSR konfigurieren.

4. Dienste neu starten

/etc/init.d/network restart
/etc/init.d/olsrd restart

Konfiguration des angeschlossenen Rechners

Der angeschlossene Rechner muss eine IP aus dem Mesh-Netzwerk der eigenen Community verwenden. Siehe IP-Adresse(n) registrieren.

Zudem muss OLSR auf dem Rechner konfiguriert und gestartet werden.

Hinweis

Auf dem Freifunkrouter findet man auf der Seite Freifunk ‣ OLSR unter Konfiguration herunterladen die auf dem Router aktive OLSR Konfiguration. Diese kann sehr gut als Ausgangsbasis für die OLSR-Konfiguration auf dem Rechner verwendet werden.