tucow
02.02.2013, 01: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 ;)
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 ;)