Wie kann ich die AP-Isolation in Linux bridge deaktivieren?

611
sid

Kontext : Ich versuche, einen WLAN-Hotspot auf einem Raspberry Pi einzurichten, indem ich meine Ethernet-Verbindung brücke.

Frage : Wie deaktiviere ich die AP-Isolierung oder die Client-Isolierung?

Vorarbeit : Hier ist was ich bisher gemacht habe.

  1. Installieren Sie die folgenden Module.

    apt-get install hostapd bridge-utils 
  2. Stoppen Sie den Hostapd-Dienst.

    systemctl stop hostapd 
  3. Verhindern Sie, dass eth0 / wlan0-Ports von DHCP zugewiesen werden.

    vi /etc/dhcpcd.conf 
  4. Fügen Sie die folgenden Zeilen am Ende der Datei hinzu, jedoch über den Schnittstellenblöcken.

    denyinterfaces wlan0 denyinterfaces eth0 
  5. Fügen Sie die Brücke hinzu.

    brctl addbr br0 
  6. Verbinden eth0mit br0.

    brctl addif br0 eth0 
  7. Fügen Sie Schnittstellen hinzu.

    vi /etc/network/interfaces auto br0 iface br0 inet manual bridge_ports eth0 wlan0 
  8. Zugangspunkt konfigurieren

    vi /etc/hostapd/hostapd.conf interface=wlan0 ssid=wifi-ssid hw_mode=g channel=7 wmm_enabled=0 macaddr_acl=0 auth_algs=1 ignore_broadcast_ssid=0 wpa=2 wpa_passphrase=passphrase wpa_key_mgmt=WPA-PSK wpa_pairwise=TKIP rsn_pairwise=CCMP 
  9. Punktesystem, um diese Datei zu verwenden.

    vi /etc/default/hostapd DAEMON_CONF="/etc/hostapd/hostapd.conf" 
  10. Starten Sie neu

    systemctl start hostapd reboot 
2
Zu Ihrer Information: Verwenden Sie zum Erstellen von Codeabschnitten in einer Liste 2 * 4 = 8 Leerzeichen vor dem Code. zx485 vor 6 Jahren 1
Danke, dass Sie es auch bearbeitet haben! sid vor 6 Jahren 0

1 Antwort auf die Frage

1
dirkt

Betrachtet man hostapd.conf, heißt es

# Client isolation can be used to prevent low-level bridging of frames between # associated stations in the BSS. By default, this bridging is allowed. #ap_isolate=1 

Daher ist die Clientisolation (WLAN-Clients auf demselben AP können miteinander kommunizieren) standardmäßig deaktiviert. Sofern Ihr Builder nicht hostapdstandardmäßig aktiviert ist, sollten die Clients miteinander kommunizieren können. Wenn dies der Fall ist, aktivieren Sie es in der Konfigurationsdatei.

Wie haben Sie festgestellt, dass WLAN-Clients nicht miteinander kommunizieren können und die Clientisolation aktiviert ist? Haben zwei WLAN-Clients einen Ping?

Falls Ihre Frage nicht die Isolation des Kunden betrifft, sondern die Brücke zwischen eth0und wlan0nicht funktioniert: Wie haben Sie erneut getestet, dass dies nicht funktioniert? Haben ein Host im LAN und ein Host im WLAN einen Ping? Haben Sie die IP-Konfiguration auf jedem dieser Hosts überprüft? Wie erhalten die Hosts ihre IP-Adressen (von welchem ​​DHCP-Server oder statisch?) Haben Sie die Routen überprüft? Sie können tcpdump -ni interface_namefür jedes wichtige Interface in einem Terminalfenster debuggen und sehen, wo Ihre Pakete hängen bleiben.

Um LAN tatsächlich vom WLAN zu trennen, werden normalerweise ebtablesRegeln verwendet, und es ist unwahrscheinlich, dass Sie versehentlich die richtigen eingefügt haben. So ziemlich sicher, dass etwas in Ihrem Setup nicht funktioniert.

Es ist sinnvoll, dass die Clientisolation standardmäßig deaktiviert ist. sid vor 6 Jahren 0
Vollständige Offenlegung - eines der Geräte ist ein Cast-Lautsprecher und das andere ist ein Telefon. Ich habe versucht, das Gerät und das Telefon zu koppeln, und es wurde eine Fehlermeldung angezeigt, dass der Sprecher nicht sprechen konnte. Sie haben die Frage richtig verstanden. Es war eine Klientenisolierung. Hosts werden IPs über DHCP zugewiesen. sid vor 6 Jahren 0
Zu testende Dinge: (1) Verbinden Sie zwei vollständig von Ihnen kontrollierte Geräte wie zwei Laptops mit dem AP und prüfen Sie, ob sie sich gegenseitig pingen können. (2) Führen Sie wireshark auf "wlan0" auf dem AP aus, um den "Pairing" -Versuch zu debuggen. Ich kann mich nicht erinnern, ob die Kommunikation zwischen Clients auftaucht. Wenn dies nicht der Fall ist, ersetzen Sie (3a) ein Gerät durch ein Gerät, das Sie steuern, und führen Sie auf diesem Gerät Wireshark aus, um mindestens die Hälfte des "Pairings" zu debuggen, oder (3b) verwenden Sie zwei über LAN gebündelte APs, wenn Sie die Hardware haben Wireshark am LAN-Port. Mein Geld bezieht sich auf das "Pairing", indem ich Annahmen mache, die nicht angegeben wurden, wie Link-lokale IP-Adresse oder Multicast-Daten. dirkt vor 6 Jahren 0
Ich konnte herausfinden, dass der Lautsprecher keine Verbindung zum Hotspot herstellen konnte. Deshalb konnten das Telefon und der Sprecher nicht miteinander sprechen. Ich habe einen Hotspot von meinem Windows-Laptop aus eingerichtet und konnte die Dinge richtig einrichten. Aber ich wollte, dass der Hotspot vor dem Raspberry Pi läuft. Also suchte ich nach anderen Betriebssystemen, die Hotspots nativ unterstützten, anstatt Hostapd manuell zu verwenden. Ich habe Ubuntu MATE installiert und es funktioniert jetzt. sid vor 5 Jahren 0
Ich wette, Ubuntu MATE verwendet auch hostapd, nur mit einer anderen Konfiguration und möglicherweise anderen WLAN-Treibern. An Ihrer Stelle und um etwas zu lernen, würde ich genau hinschauen, was Ubuntu MATE anders macht. "Ich werde einfach ein anderes" Betriebssystem "installieren (eher Distributionen), bis eines funktioniert", wird getroffen oder verpasst, da alle Distributionen mehr oder weniger dieselbe Software verwenden, die nur ein wenig anders konfiguriert ist. dirkt vor 5 Jahren 0