Contents
Dieses Howto beschreibt wie man auf einem OpenWrt BarrierBraker 14.07 eine public IP konfiguriert.
Voraussetzungen
- Der Router ist bereits mit Barrier Braker geflasht
- olsr ist installiert und Zugriff aufs FF-Netz ist vorhanden
- Das FF-Interface ist der WAN Zone in der Firewall zugeordnet
- Man erreicht das Internet über das NAT-Gateway
- Kenntnisse im Umgang mit LuCI
- Kenntniss wie man mittels ssh Dateien am Router editiert
Notwendige Pakete
Die folgenden Pakete müssen installiert werden (System -> Software)
kmod-ipip
- Kernel modules for IP-in-IP encapsulation
ip
- Routing control utility (Minimal)
Konfiguration
Im Webinterface unter Network -> Interfaces -> Add new interface...
Name of the new interface public
Protocol of the new interface unmanaged
Custom interface public
Jetzt unter Network -> Interfaces das neue public interface editieren.
Unter Firewall Settings eine Firewall-Zone mit dem Name public anlegen
Unter Network -> Firewall jetzt die lan Zone editieren und forward nach public erlauben
Jetzt unter Network -> Firewall
Die default policy für public von accept -> reject setzen
ACHTUNG: Das ist sehr wichtig, da wir damit per default verhindern, dass man sich aus dem Internet zum Router verbinden darf. Sollte man Server betreiben wollen, ist es besser später nur die Ports zu öffnen, die auch wirklich offen sein sollen.
Masquerading und MSS Clamping wie im Screenshot gezeigt setzen.
Unter Network -> Firewall -> Traffic Rules -> Source Nat eine neue Source NAT rule anlegen
Name zum Beispiel SNAT 4 public
Source zone lan
Destination zone WAN
To source ip <hier die public IP auswählen>
ACHTUNG: Aufgrund eines Bugs scheint die Source zone lan nicht zu funktionieren. Deshalb muss die SNAT Regel jetzt noch mal editiert werden und unter Source IP address die lan range mittels custom eingetragen werden. Verwendet man z.B. das Netz 192.168.1.0 mit einer netmask von 255.255.255.0 trägt man hier 192.168.1.0/24 ein.
Unter Services -> OLSR IPv4 -> HNA announcments mittels Add die public IP hinzufügen (netmask 255.255.255.255)
Jetzt mittels ssh zum router verbinden und die Datei /etc/config/osrd editieren. Im Abschnit config olsrd Die folgenden zwei Einträge hinzufügen:
option RtTable '111' option RtTableDefault '112'
Abschließend noch die unten angefügte Datei unter System -> Startup in das Textfeld unter local startup einfügen und die richtige public IP eintragen.
PUBLIC_IP=xxx.xxx.xxx.xxx #Hier die zugewiesene public IP eintragen PUBLIC_GW=10.12.34.56 ip tunnel add public mode ipip remote $PUBLIC_GW local $PUBLIC_IP ttl 255 ip link set public up ip addr add $PUBLIC_IP dev public ip route add default dev public table default ip rule add from all lookup 111 pref 20000 ip rule add from all lookup main pref 30000 ip rule del pref 32766 source /lib/functions/network.sh i=0 while iface="$( uci -q get olsrd.@Interface[$i].interface )"; do case "$( uci -q get olsrd.@Interface[$i].ignore )" in 1|on|true|enabled|yes) # is disabled ;; *) if network_get_device device "$iface"; then ip rule add iif $device pref $(( i + 32000 )) lookup 112 else echo "Warning: device for OLSR Interface '$interface' not found, skipped" fi ;; esac i=$(( $i + 1 )) done exit 0
Jetzt sollte die Public IP für Verbindungen die vom LAN aufgebaut werden funktionieren. Zum testen z.B. http://whatismyip.com öffnen.