GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Verdrahtet zu drahtloser Brücke in Linux

Brücken leicht gemacht:

Es gibt ein Projekt auf Sourceforge, das speziell für Ihre Situation erstellt wurde. http://sourceforge.net/projects/bridger/ Es kommt sogar als Deb-Paket.

In Bezug auf das 'Verwerfen' von Paketen:

  1. Haben Sie überprüft, ob iptables auf Standard-Drop eingestellt ist? sudo iptables --list sollte für eine Box dieses Typs "AKZEPTIEREN, AKZEPTIEREN, AKZEPTIEREN" lauten. Wenn das das Problem ist, schalten Sie es aus.

  2. Leitest du die Pakete überhaupt weiter, Bruder? Stellen Sie sicher, dass die Zeile „net.ipv4.ip_forward=1“ in /etc/sysctl.conf NICHT kommentiert ist (das ist standardmäßig der Fall), und starten Sie dann Ihr Netzwerk neu.

  3. Promiscuous-Modus wird nicht unterstützt durch Ihren drahtlosen Dongle. (was bedeutet, dass es keine Pakete annehmen kann, die nicht für es bestimmt sind)

Pure Bridge vs. Shared Bridge:

  1. iface br0 inet dhcp zeigt ein gemeinsames an bridge, was bedeutet, dass die Bridge selbst eine IP erhält und ein Endpunkt für den Datenverkehr sein kann.

  2. Eine reine Brücke erhält keine IP-Adresse und leitet den Datenverkehr nur zwischen den beiden Schnittstellen weiter

  3. Geteilte Brücke Beispiel für eine /etc/network/interfaces-Konfigurationsdatei (Debian/Ubuntu)

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# Bridge between eth0 and wlan0
auto br0
iface br0 inet dhcp
  pre-up ip link set eth0 down
  pre-up ip link set wlan0 down
  pre-up brctl addbr br0
  pre-up brctl addif br0 eth0 wlan0
  pre-up ip addr flush dev eth0
  pre-up ip addr flush dev wlan0
  post-down ip link set eth0 down
  post-down ip link set wlan0 down
  post-down ip link set br0 down
  post-down brctl delif br0 eth0 wlan0
  post-down brctl delbr br0

Starten Sie das Netzwerk neu:sudo /etc/init.d/networking restart Nachdem Sie komplexe Änderungen an der Netzwerkkonfiguration vorgenommen haben, ist es einfacher, einfach neu zu starten, anstatt sicherzustellen, dass beim Neustart alles ordnungsgemäß neu gestartet wird.

Sie glauben, dass Sie Routing-Probleme haben:

  1. DNS als Ursache beseitigen durch Testen mit ping 8.8.8.8 . Wenn dies funktioniert, liegt wahrscheinlich ein DNS-Problem in Ihrem Netzwerk vor.

  2. Überprüfen Sie Ihr Gateway mit sudo ip route hoffentlich sehen Sie default via 192.168.1.1 dev br0 proto dhcp (vorausgesetzt, Ihr Gateway ist 192.168.1.1). Wenn es fehlt oder falsch ist, korrigieren Sie es sudo ip route add default via 192.168.1.1 . Nochmals testen:ping 8.8.8.8

  3. Erneuern Sie Ihre gemeinsame Bridge-IP mit dhclient br0 und erneut mit ping 8.8.8.8 testen

  4. Überprüfen Sie Ihre 'Slave'-Schnittstellen mit ifconfig und stellen Sie sicher, dass eth0 und wlan0 KEINE IP-Adressen haben. Sie sind jetzt ein Teil der Brücke. Wenn dies der Fall ist, stellen Sie sicher, dass Sie sie aus allen Konfigurationsdateien entfernen, sie auf statisch 0.0.0.0 oder so setzen.

Wenn KEINES davon funktioniert, versuchen Sie diese Debian-Bridging-App, und wenn das nicht funktioniert, unterstützt Ihr drahtloser Dongle keinen Promiscuous-Modus. (siehe oben)

Wenn es hier zu irgendeinem Zeitpunkt funktioniert, starten Sie es neu und stellen Sie sicher, dass es immer noch funktioniert.


Ich habe einige drahtlose Brücken, die unter Debian Linux und Openwrt arbeiten, daher bin ich mit diesem Problem sehr vertraut.

Sie haben einen wichtigen Befehl verpasst:Sie haben vergessen, Ihrem Wireless-Treiber mitzuteilen, dass er 4-Adress-Frames (manchmal falsch/historisch WDS genannt) übertragen soll, was für 802.11/Wireless-Bridging erforderlich ist. Tun Sie dies mit dem Befehl „iw dev wlan0 set 4addr on“. Verwenden Sie eine „pre-up“-Anweisung in Ihrer Debian-Schnittstellendatei auf der Brücke, um sie anzuwenden, bevor Sie die Brücke hochfahren. Beachten Sie, dass der 4-Adressen-Frame-Modus Treiberunterstützung erfordert und einige alte beschissene 802.11-Treiber oder -Hardware dies möglicherweise nicht unterstützen.

Ich vermute auch stark, dass Ihre Probleme möglicherweise durch einen Fehler im Linux-Kernel kompliziert wurden, der speziell überbrückte Schnittstellen betrifft. Ich bin selbst auf diesen Fehler gestoßen und musste meinen eigenen wpa_supplicant aus den Quellen kompilieren, da die Version in Debian alt und betroffen ist. wpa_supplicant und hostapd teilen sich eine gemeinsame Codebasis, aber ich bin mir nicht ganz sicher, ob dies sowohl hostapd als auch wpa_supplicant betrifft.

Es gibt hier einen Workaround-Commit für das Problem:

https://w1.fi/cgit/hostap/commit/?id=e6dd8196e5daf39e4204ef8ecd26dd50fdca6040

Ich habe den Eindruck, dass dies in der 2.5-Version enthalten ist, und ich weiß, dass es in der aktuellen 2.6-Quelle enthalten ist. Die aktuelle Debian-Version ist 2.4, die kaputt ist. Bitte belästigen Sie das Debian-Projekt, damit es seine wpasupplicant- und hostapd-Pakete aktualisiert.

Hier ist eine Beispielkonfiguration für einen drahtlosen Bridge-Client, der WPA/WPA2 mit einer drahtlosen Bridge zwischen den Schnittstellen wlan0 und eth0 verwendet, wobei der Host eine DHCP-Adresse auf der br0-Schnittstelle erhält (ersetzen Sie „dhcp“ durch „manual“ für keine IP-Adresse). Für eine Situation, in der Sie der AP sein möchten, fügen Sie die Befehle interface=und bridge=in hostapd.conf ein und lassen Sie die wpa-*-Befehle unten weg.

In Ihrer Datei /etc/network/interfaces:

allow-auto br0
iface br0 inet dhcp
    bridge_ports wlan0 eth0
    bridge_stp off
    bridge_waitport 5
    bridge_fd 0
    wpa-ssid mynetwork
    wpa-psk abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123
    wpa-iface wlan0
    wpa-bridge br0
    pre-up iw dev wlan0 set 4addr on
    post-down iw dev wlan0 set 4addr off

Und stellen Sie sicher, dass Ihr wpa_supplicant Version 2.5 oder höher ist. Es funktioniert nicht mit wpa_supplicant 2.4 und aktuellen Kernel-Versionen.

Ich sollte auch beachten, dass es derzeit einen Race-Bug in ifup gibt, bei dem Bridge-Schnittstellen beim Booten möglicherweise nicht angezeigt werden, aber das ist ein ganz anderes Problem.


Sie scheinen eine IP-Weiterleitung zu benötigen.

versuchen Sie es mit cat /proc/sys/net/ipv4/ip_forward

Wenn es 0 ist Ausgabe:echo 1 > /proc/sys/net/ipv4/ip_forward


Linux
  1. So konfigurieren Sie eine Linux-Bridge so, dass sie als Hub statt als Switch fungiert

  2. Linux-mv-Befehl

  3. Linux-Du-Befehl

  4. Stellen Sie fest, ob eine Netzwerkschnittstelle drahtlos oder kabelgebunden ist

  5. Verwenden von Bridge-Dienstprogrammen, um zwei Computer über Linux zu verbinden

W-Befehl unter Linux

Bei Befehl unter Linux

Installieren Sie den WLAN-Treiber in AlmaLinux / Rocky Linux 8

Einrichten von Sun Java Wireless Toolkit unter Linux Mint

Linux gegen Unix

10 Beispiele für Linux-brctl-Befehle für die Ethernet-Netzwerkbrücke