Wheezy
Bevor der Kabel zu WLAN Router aufgebaut werden kann muss die WLAN Verbindung konfiguriert sein und funktionieren. Danach muss, um eine WLAN Router aufbauen zu können, das folgende zusätzliche Paket installiert werden:
Dann ist die Datei /etc/network/interfaces anzupassen. Dabei sind vier Dinge in den Konfigs den lokalen Gegebenheiten anzupassen:
1) Das WLAN Netz hat in der folgenden Konfig das Gateway 192.168.0.1 im Netz 192.168.0.0/24
2) Die Raspberry hat die IP Adresse 192.168.0.10
3) In der folgenden Konfig hat das Kabelnetz 192.168.3.0/24 mit der Netzwerkmaske 255.255.255.0.
4) Die IP Adressen die im Kabelnetz sind 192.168.3.10 bis 192.168.3.20, d.h es können sich nur 11 Clients über diese Verbindung anmelden.
5) Falls kein dhcp benutzt werden kann muss eine statische IP Adresse sowie die Netzwerkmaske und das Gateway manuell definiert werden. Dann darf die gewählte IP nicht zwischen 192.168.3.10 und 192.168.0.20 liegen, da sonst an ein anderes per dhcp angeschlossenes Gerät dieselbe IP Addresse vom dhcp vergeben bekommen kann. Ausserdem muss die Netzwerkmaske 255.255.255.0 sein und das Standardgateway muss die IP der Pi 192.168.3.1 sein.
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 192.168.3.1
netmask 255.255.255.0
gateway 192.168.0.1
allow-hotplug wlan0
iface wlan0 inet manual
wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
iface default inet dhcp
post-up /sbin/iptables -A FORWARD -o wlan0 -i eth0 -s 192.168.3.0/24 -m conntrack --ctstate NEW -j ACCEPT
post-up /sbin/iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
post-up /sbin/iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE
post-up /usr/sbin/dnsmasq -i eth0 -I wlan0 -F 192.168.3.10,192.168.3.20,infinite
Wenn man das am Etherneteingang angeschlossene Geraet öfter wechseln möchte deaktiviert ifplugd das WLAN interface. Deshalb muss der deinstalliert werden mit
apt-get remove ifplugd
Damit die per Kabel im 192.168.3.0/255.255.255.0 Netz angeschlossen Clients in Internet kommen muss noch folgendes machen.
1) Eine statische Route in den Nerkwerkeinstellungen des Heimrouters definieren sofern das unterstützt wird. Bei Fritzboxen ist das unterstützt. Dann definiert man, dass das Subnetz 192.168.3.0/255.255.255.0 zu erreichen ist über die Raspberry. Dazu muss man entweder in der Fritzbox definieren, dass die Raspi immer dieselbe IP erhalten soll und diese in der statischen Route definieren oder aber eine statische IP für die Raspberry in der /etc/network/interfaces vergeben und kein dhcp zu benutzen.
2) Auf jedem Rechner im lokalen Netz, der auf das Kabelnetz zugreifen will, eine statische Route zur Raspberry definieren (Annahme: Raspberry IP Adresse ist 192.168.0.10) für das Subnet 192.168.3.0/255.255.255.0
post-up route add -net 192.168.3.0 netmask 255.255.255.0 gw 192.168.0.10 post-down route del -net 192.168.3.0 netmask 255.255.255.0 gw 192.168.0.10
und in beiden Fällen noch folgende Zeile am Ende in die /etc/network/interfaces aufnehmen:
post-up /sbin/sysctl -w net.ipv4.ip_forward=1
Jessie und Stretch
Bevor der Kabel zu WLAN Router aufgebaut werden kann muss die WLAN Verbindung konfiguriert sein und funktionieren. Üblicherweise tut man das durch Einträge in der Datei /etc/wpa_supplicant/wpa_supplicant.conf. Anschliessend ist folgender Text am Ende von /boot/cmdline.txt anzufügen wobei er durch ein Leerzeichen von dem vorhergehenden Text getrennt werden muss. Dadurch bekommt die Netzwerkkarte den leichter zu merkenden Namen eth0.
net.ifnames=0
Bei den folgenden Konfigurationen sind vier Dinge den lokalen Gegebenheiten anzupassen:
1) Das WLAN Netz hat in der folgenden Konfig das Gateway 192.168.0.1 im Netz 192.168.0.0/24
2) Die Raspberry hat die IP Adresse 192.168.0.10
3) In der folgenden Konfig hat das Kabelnetz 192.168.3.0/24 mit der Netzwerkmaske 255.255.255.0.
4) Die IP Adressen die im Kabelnetz sind 192.168.3.10 bis 192.168.3.20, d.h es können sich nur 11 Clients über diese Verbindung anmelden.
Zuerst muss der dnsmasq Service installiert werden.
sudo apt-get dnsmasq
Um den Kabelanschluss zu konfigurieren müssen nun folgende Zeilen am Ende der Datei /etc/dhcpcd.conf angefügt werden:
interface eth0
static ip_address=192.168.3.1/24
und der dhcpcd Service wird mit
sudo service dhcpcd restart
neu gestartet.
Nun ist ein dns Server für das Kabelnetzwerk zu definieren. Die alte Datei /etc/dnsmasq.conf sollte man sichern und dann die neuen Datei /etc/dnsmasq.conf mit folgendem Inhalt erstellen:
interface=eth0
no-dhcp-interface=wlan0
dhcp-range=192.168.3.10,192.168.3.20,24h
dhcp-option=option:dns-server,192.168.0.1
und der dnsmasq Service wird mit
sudo service dnsmasq restart
neu gestartet.
Möchte man mal kurz testen ob ein ans Kabel angeschlossener Client eine IP Adresse erhält und die DNS Requests verfolgen muss man den laufenden dnsmasq Service stoppen, manuell starten und anschliessend wieder als Service starten:
sudo service dnsmasq stop
sudo dnsmasq -dd -C /etc/dnsmasq.conf
sudo service dnsmasq star
In der Datei /etc/sysctl.conf muss man folgende Zeile aktivieren damit die Raspberry als Router fungiert indem man das # Zeichen am Anfang der Zeile entfernt bzw die Zeile ohne # einfügt.
#net.ipv4.ip_forward=1
Nun sind noch Netzwerkregeln für das Routing zu definieren. Folgende Befehle sind dazu auszuführen:
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
sudo iptables -A FORWARD -i eth0 -o wlan0 -j ACCEPT
sudo iptables -A FORWARD -i wlan0 -o eth0 -j ACCEPT
Diese Regeln müssen abgespeichert werden damit sie jedesmal beim Neustart wieder aktiviert werden können. Dazu dient folgender Befehl:
iptables-save > /etc/network/iptables
Ausserdem muss folgende Datei /etc/network/if-pre-up.d/iptables mit folgendem Inhalt erstellt werden damit die Regeln bei jedem Neustart geladen werden:
#!/bin/sh
/sbin/iptables-restore < /etc/network/iptables
sowie
sudo chmod +x /etc/network/if-pre-up.d/iptables
Zuletzt muss noch das neue Subnetz im lokalen Netz allgemein bekannt gemacht werden.
1) Damit die per Kabel angeschlossenen Clients die im 192.168.3.0/255.255.255.0 Netz angeschlossen sind ins Internet über den lokalen Router kommen muss noch folgendes definiert werden:
Es muss eine statische Route in den Nerkwerkeinstellungen des Heimrouters definiert werden sofern das unterstützt wird. Bei Fritzboxen und den meisten anderen Routern ist das unterstützt. Dann definiert man, dass das Subnetz 192.168.3.0/255.255.255.0 zu erreichen ist über die Raspberry. Dazu muss man entweder in der Fritzbox definieren, dass die Raspi immer dieselbe IP erhalten soll (192.168.0.10) und diese in der statischen Route definieren oder aber eine statische IP für die Raspberry in der /etc/network/interfaces für das wlan Interface vergeben und dhcp dafür in der /etc/dhcpcd.conf deaktivieren. Wie eine statische Route bei einer Fritzbox 7390 zu definieren ist ist hier beschrieben. Wie man in der Fritzbox definiert, dass ein Client immer dieselbe IP erhält ist hier beschrieben.
2) Auf jedem Rechner im lokalen Netz, der auf das Kabelnetz zugreifen will, eine statische Route zur Raspberry definieren (Annahme: Raspberry IP Adresse ist 192.168.0.10) für das Subnet 192.168.3.0/255.255.255.0
Nach dem Reboot des Systems können nun an die Raspberry per Netzwerkkabel angeschlossene Geräte über das WLAN ins lokale Netz gelangen sowie auch ins Internet über den lokalen Internetrouter.
Wenn man das am Etherneteingang angeschlossene Geraet öfter wechseln möchte deaktiviert ifplugd das WLAN interface. Deshalb muss der deinstalliert werden mit
apt-get remove ifplugd
References
Raspberry Pi – Wifi repeater im Eigenbau

