PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : RPi als Wifi Router



tucow
02.02.2013, 00:09
Hi,

als Erweiterung zu meiner vorherigen Anleitung das RPi als Wifi Access Point (https://www.roboternetz.de/community/threads/60788-RPi-als-Wifi-Access-Point) zu benutzen gibt es nun die Anleitung wie man das RPi als Router einsetzt :cool:
Die Idee dazu kam mir als ich feststellen musste das nach der Einrichtung des Access Points keine Verbindung mehr nach außen möglich war, das der Wifi Client nicht über das RPi hinweg kommt ist logisch (es gibt keine passenden static routes) aber selbst das RPi kam nicht mehr zu der Außenwelt durch.

Nun zur kurzen und schmerzlosen Anleitung!


1. wlan0 IP Adresse
Wir öffnen mal wieder die interfaces Datei:

sudo nano /etc/network/interfaces

Und passen diese entsprechend an:

auto lo


iface lo inet loopback
iface eth0 inet dhcp


## wifi ap settings
allow-hotplug wlan0
iface wlan0 inet static
address 10.0.0.254
netmask 255.255.255.0
post-up /etc/network/if-up.d/router.sh


iface default inet dhcp
Bei address sollte nun ein anderes Netz als das Heimnetz gewählt werden, die netmask bleibt gleich und zum Schluss kommt noch eine ganz neue Zeile hinzu "post-up /etc/network/if-up.d/router.sh" hiermit wird ein Script, das wir gleich anlegen gestartet sobald das wlan0 Interface gestartet wird, normalerweise braucht man diese Zeile nicht sondern kann das Script direkt in dem angegebenen Ordner ablegen und es startet automatisch aber wieso auch immer macht uns hier Raspbian wieder einen Strich durch die Rechnung!


2. IPv4 Weiterleitungen aktivieren


sudo nano /etc/sysctl.conf
Die Zeile #net.ipv4.ip_forward=1 suchen (Zeile 28) und aktivieren (die # löschen).


3. DNSMASQ konfigurieren


sudo nano /etc/dnsmasq/dnsmasq.conf
Hier fügen wir flgende Zeile ein:

dhcp-option=3,10.0.0.254
Die 3 besagt das DNSMASQ nun in der Router-Option arbeiten soll und das zweite Argument gibt die IP des Routers an, hier muss also die des wlan0 Interfaces unseres RPi eingetragen werden.

Dann muss noch die Zeile:

dhcp-range=10.1.1.1,10.1.1.253,255.255.255.0,12h

abgeändert werden damit sie dem neuen Netz entspricht:

dhcp-range=10.0.0.1,10.0.0.253,255.255.255.0,12h


4. router.sh Script anlegen

Damit unser RPi auch weiß von wo es den Traffic wohin weiterleiten soll müssen wir noch Regeln für die iptables anlegen, das geht am einfachsten mit einem Script das bei jedem Start des wlan0 Interfaces (wir erinnern uns an 1.) ausgeführt wird.

Die Datei anlegen und öffnen:

sudo nano /etc/network/if-up.d/router.sh

Script einfügen:

iptables -F
iptables -X


iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
iptables -A INPUT -i wlan0 -j ACCEPT
iptables -A OUTPUT -o wlan0 -j ACCEPT


iptables -A POSTROUTING -t nat -o eth0 -j MASQUERADE
iptables -A FORWARD -i wlan0 -j ACCEPT

Danach übergeben wir die Datei noch an den root Benutzer und machen das Script ausführbar:

sudo chown root:root /etc/network/if-up.d/router.sh
sudo chmod 775 /etc/network/if-up.d/router.sh


5. reboot


sudo reboot
Und schon ist der Wifi AP/Router fertig!



Denkt daran, spätestens jetzt solltet Ihr eine Verschlüsselung aktivieren! Stichwort Störerhaftung.
Viel Spaß mit Eurem RouterPi ;)

pinsel120866
02.02.2013, 08:43
AUch hier herzlichen Dank für diese Anleitung. Ich hatte bei deiner vorherigen Anleitung ebenfalls festgestellt, dass der RPi nicht mehr ins Internet gekommen ist. Dies wollte ich heute morgen posten, aber du bis mir mit deiner Anleitung zuvorgekommen. :-)

Diese Erweiterung macht absolut Sinn, um die WLAN AP Funtionalität bereitzustellen und trotzdem mit dem RPi bzw. seinen "Clients" ins Internet zu kommen.

Tolle Sache, genau das was ich wollte!
Ich finde, man sollte beide Anleitungen zusammenlegen.