Die Situation

Die Situation

Die Situation

Raspbian Stretch ist drahtlos über wlan0 (Modell RT5370) mit einem privaten Subnetz 10.0.0.0/16 verbunden. Ohne weitere Modifikationen hat Raspbian Stretch Internetzugang und DNS funktioniert. PS: Ich habe keinen physischen Zugriff auf den Router, der die Verbindung zum Internet herstellt – nur drahtlos.

Ich habe eine weitere RT5370-Netzwerkkarte als WLAN1 hinzugefügt und sie mit hostapd als drahtlosen Zugriffspunkt eingerichtet.

Da ich den Adressbereich des DHCP-Servers des Routers nicht kenne, möchte ich wlan0 keine statische Adresse hinzufügen.

Ich habe eine statische IPv4-Adresse auf WLAN1 192.168.0.1/28 (16 Hostadressen) konfiguriert und dnsmasq als DHCP-Server für dieses Netzwerk eingerichtet.

Das Problem

Eigentlich sollte es ziemlich einfach sein.

Raspbian Stretch kann entweder 1) auf das Internet zugreifen oder 2) als WAP fungieren, um Clients zu verbinden. Das Problem ist, dass beide Funktionen nicht gleichzeitig funktionieren.

Ich habe Anleitungen gesehen, in denen die Internetverbindung über Kupfer statt über Funkwellen hergestellt wird, aber ich verstehe nicht, warum es einen Unterschied macht, ob die mit dem Internet verbundene Schnittstelle drahtlos statt kabelgebunden ist. Wie auch immer …

Was ich versucht habe

Bei einem Neustart kann ich google.com und 8.8.8.8 erfolgreich anpingen.

Nach der Überprüfung kann ich sowohl WLAN0 als auch WLAN1 sehen ifconfigund sie scheinen ordnungsgemäß eingerichtet zu sein.

Hier ist die Ausgabe von route.

Kernel IP routing table
Destination Gateway     Genbask         Flags Metric Ref Use Iface
default     10.0.0.36   0.0.0.0         UG    303    0     0 wlan0
default     192.168.0.1 0.0.0.0         UG    304    0     0 wlan1
10.0.0.0    0.0.0.0     255.255.0.0     U     303    0     0 wlan0
192.168.0.0 0.0.0.0     255.255.255.240 U     303    0     0 wlan1

Ich weiß nicht, warum es so aussieht, als wären zwei Standard-Gateways vorhanden, obwohl eine einzelne Standardroute angemessener erscheint, aber das Internet funktioniert, also mache ich weiter …

Nachdem ich nachgewiesen habe, dass Raspbian Stretch über Internetzugang verfügt, versuche ich:

root@computer:/# hostapd /etc/hostapd/hostapd.conf

Und hol dir das:

Configuration file: /etc/hostapd/hostapd.conf
nl80211: Could not configure driver mode
nl80211: deinit ifname=wlan1 disabled_11b_rates=0
nl80211: driver initialization failed.
wlan1: interface state UNINITIALIZED->DISABLED
wlan1: AP-DISABLED
hostapd_free_hapd_data: Interface wlan1 wasn't started

Und nun, interessanterweise, nachdem ich das getan habe:

root@computer:/# killall wpa_supplicant
root@computer:/# hostapd /etc/hostapd/hostapd.conf &

Ich bekomme Folgendes:

Configuration file: /etc/hostapd/hostapd.conf
Using interface wlan1 with hwaddress aa:bb:cc:11:22:33 and ssid "myssid"
wlan1: interface state UNINITIALIZED->ENABLED
wlan1: AP-ENABLED

Dadurch kann ich Client-Rechner erfolgreich über WLAN1 mit myssid verbinden, aber jetzt kann ich weder google.com noch 8.8.8.8 anpingen und mir ist aufgefallen, dass WLAN0 nicht in ifconfig angezeigt wird und meine Routing-Tabelle nun folgendermaßen aussieht:

Kernel IP routing table
Destination Gateway     Genbask         Flags Metric Ref Use Iface
192.168.0.0 0.0.0.0     255.255.255.240 U     303    0     0 wlan1

Um wlan0 wieder zum Laufen zu bringen, mache ich Folgendes:

root@computer:/# service dhcpcd restart
root@computer:/# sysctl daemon-reload

Jetzt werden wlan0 und wlan1 in ifconfig angezeigt, Raspbian Stretch kann google.com und 8.8.8.8 anpingen, aber mit wlan1 verbundene Clients haben keinen Internetzugriff.

An diesem Punkt sieht meine Routing-Tabelle folgendermaßen aus:

Kernel IP routing table
Destination Gateway     Genbask         Flags Metric Ref Use Iface
default     10.0.0.36   0.0.0.0         UG    303    0     0 wlan0
10.0.0.0    0.0.0.0     255.255.0.0     U     303    0     0 wlan0
192.168.0.0 0.0.0.0     255.255.255.240 U     304    0     0 wlan1

Wenn ich nur WLAN1-Clients den Internetzugang ermöglichen könnte, wäre das alles vorbei :)

Antwort1

Da es keine Route vom Internet-Gateway-Router zum an WLAN1 angeschlossenen Netzwerk (192.168.0.0/28) gibt, habe ich letztendlich einfach dynamisches NAT mit PAT-Überlastung zwischen WLAN0 und WLAN1 eingerichtet.

iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE

Mission erfüllt!

Wenn ich Zugriff auf den Internet-Gateway-Router hätte, könnte ich wahrscheinlich eine statische Route von der WLAN0-Adresse von Raspbian Stretch zum Netzwerk 192.168.0.0/28 hinzufügen, aber 1) ich habe keinen Zugriff auf diesen Router und 2) ich müsste auch entweder a) eine DHCP-Reservierung auf dem DHCP-Server (auf den ich ebenfalls keinen Zugriff habe) oder b) eine statische IP-Adresse auf WLAN0 von Raspbian Stretch einrichten – wenn ich Änderungen vermeiden möchte, wenn die WLAN0-DHCP-Berechtigung abläuft. Eine statische Route funktioniert in diesem Fall also nicht.

Wie dem auch sei, dies ist der erste funktionierende Router/Firewall, den ich gesehen oder von dem ich gehört habe, derNICHTVerwenden Sie eine kabelgebundene Verbindung zum WANODERdas LAN.

Dies kann problemlos in einem offenen, kostenlosen WLAN-Netzwerk anstelle eines VPN- oder SOCKS-Proxys verwendet werden (sofern Sie genug über iptables wissen, um Ihre Verbindung zu sichern).

verwandte Informationen