Public IP Setup auf Debian
Dieses Howto beschreibt das Public IP Setup für Debian/Ubuntu. Howtos für andere Firmware Images und grundsätzliche Informationen können auf der Seite ["PublicIP"] gefunden werden.
Vorbereitungen
Wie schon auf ["PublicIP"] beschrieben verwendet dieses Howto einen etwas anderen Ansatz als die anderen Public IP Howtos. Dafür muss der Router am Dach vorbereitet werden. Dieser Router benötigt aber weder unser Firmware Image noch eines der für den Public IP Betrieb gebauten Pakete. Da unser Firmware Image sich mit unkonfigurierter Public IP genau gleich verhält wie eine Standardfirmware kann sie allerdings genauso verwendet werden wie jede andere Funkfeuer fähige Firmware. Die Idee bei diesem Setup ist das man einfach ein zusätzliches kleines Subnetz zwischen dem Router am Dach und dem Rechner den man zb als Server betreiben will schaltet. Wenn man dieses Subnetz dann per OLSR announced wird der Server innerhalb des Funkfeuer Netzes direkt erreichbar. Dies befähigt ihn dazu direkt mit dem Gateway zu kommunizieren ohne selbst OLSR zu benötigen. Genau diese direkt Verbindung ist auch das einzige das nötig ist um eine Public IP zu benützen.
Wie man also schon erkennen kann ist ein zusätzliches Subnetz vonnöten und da es ja per OLSR announced werden soll muss ein passendes Subnetz von uns zugewiesen werden da ja genau wie bei allen anderen IP Adressen diese eindeutig innerhalb des Netzes sein muss. Also der erste Schritt besteht darin neben der Public IP auch noch ein kleines Subnetz bei uns zu holen. Danach kann mit der Konfiguration begonnen werden.
= Konfiguration =
OLSR Router
Im folgenden wird davon ausgegangen das der OLSR Router über dessen Lan Port mit Server verbunden ist. Sollte der Standort aus mehr als einen Router bestehen so muss bei diesem Router der WAN Port für die Verbindung zu den restlichen Routern des Standorts verwendet werden.
Zunächst muss man dem LAN Port des besagten Routers eine IP Adresse des von uns zugewiesenen Subnetzes konfigurieren. Wichtig ist dabei das die richtige Subnetzmaske verwendet wird und das als Protokoll statisch gewählt wird. Ausserdem müssen sowohl NAT als auch die Firewall ausgeschaltet sein. Da wir auf dem Interface nicht mit OLSR arbeiten (Protokoll = statisch) müssen OLSR dazu bringen das Subnetz dem restlichen Netz bekannt zu machen. Dies kann man per HNA machen. Konfigurieren kann man das im Menü unter OLSR. In die Zeile für HNA4 trögt man dafür das Subnetz ein. Dabei ist darauf zu achten das hier die CIDR Notation zu verwenden ist also anstatt der Netzmaske die Anzahl der '1' innerhalb der Neztmaske anzugeben ist. Beim umrechnen von IP Addresse und Netzmasek in die CIDR Notation hilft zb das Tool ipcalc:
# ipcalc 10.12.230.20 255.255.255.252 Address: 10.12.230.20 00001010.00001100.11100110.000101 00 Netmask: 255.255.255.252 = 30 11111111.11111111.11111111.111111 00 Wildcard: 0.0.0.3 00000000.00000000.00000000.000000 11 => Network: 10.12.230.20/30 00001010.00001100.11100110.000101 00 HostMin: 10.12.230.21 00001010.00001100.11100110.000101 01 HostMax: 10.12.230.22 00001010.00001100.11100110.000101 10 Broadcast: 10.12.230.23 00001010.00001100.11100110.000101 11 Hosts/Net: 2 Class A, Private Internet
in der Zeile die mit Netwok beginnt steht hier die Ausgabe des Netzes in CIDR Notation 10.12.230.20/30. Genau das muss in dem Feld im Webinterface eingetragen werden. Danach muss man den Router rebooten.
Server
Zunächst mal muss unter Debian das Paket iproute2 installiert sein. Sollte das nicht der Fall sein einfach installieren:
aptitude update aptitude install iproute2
Auf der Seite des Server kann man das Netzwerkinterface über die Datei /etc/network/interaces konfigurieren. Wichtig ist dabei das in der Datei kein gateway angegeben wird (auch bei keinem anderen Interface) denn genau diesen müssen wir später in etwas anderer Form selbst eintragen. Eine Besipielkonfiguration ist hier zu sehen:
# The loopback network interface auto lo iface lo inet loopbackq # The primary network interface # bridge for virtualbox auto eth0 iface eth0 inet static address <ip addr> netmask <netmask> up /etc/network/ff-public up down /etc/network/ff-public down
Die letzten beiden Zeilen zeigen auf ein Script das wir jetzt anlegen und editieren müssen. Also einfach mit dem Lieblingseditor folgendes reinkopieren:
# GATEWAY="10.10.10.10" PUBLIC_IP="<public ip einsetzen>" OLSR_ROUTER="<ip des olsr routers einsetzen>" case "$1" in up) ip tunnel add public mode ipip local $PUBLIC_IP remote $GATEWAY ttl 255 ip link set up dev public ip addr add dev pulic $PUBLIC_IP ip route add default dev public src $PUBLIC_IP ip route add 10.0.0.0/8 via $OLSR_ROUTER ip route add 193.33.150.0/23 via $OLSR_ROUTER ;; down) ip route del default dev public src $PUBLIC_IP ip route del 10.0.0.0/8 via $OLSR_ROUTER ip route del 193.33.150.0/23 via $OLSR_ROUTER ip tunnel del public ;; *) echo "Usage: $0 {up|down}" exit 1 ;; esac exit 0
danach kann mit
# ifup eth0
das Interface in Betrieb genommen werden. Danach muss man noch den Nameserver konfigurieren. Also in die Datei /etc/resolv.conf folgendes reinkopieren:
search graz.funkfeuer.at nameserver 10.12.0.10
Danach sollte das Setup funktionieren und er Server ist aus dem Internet unter dessen Public IP erreichbar.