Frage Bridging wlan0 zu eth0


Auf Arch Linux hätte ich gerne eth0 (verbunden mit Bridged Router) teilen die Verbindung von wlan0 erhalten, habe ich Tutorials gelesen, aber ich bin nicht Befehl savvy wie andere Benutzer sind und nicht vollständig verstehen.


22
2018-06-18 03:44


Ursprung


Bitte stellen Sie "[gelöst]" nicht in die Frage oder den Titel, eine Antwort zu akzeptieren ist der richtige Weg zu zeigen, dass ein Problem gelöst wurde. Es ändert die Art und Weise, wie die Frage in der Hauptliste angezeigt wird, sowie das grüne Häkchen bei der Antwort, die Sie als richtig markiert haben. - Zypher
Ich würde es schätzen, wenn niemand mit dieser Seite versaut würde. Wenn Sie irgendwelche Probleme haben, kontaktieren Sie mich. Vielen Dank. - dbdii407
serverfault.com/faq Speziell die Überschrift "Andere Leute können meine Sachen bearbeiten" - Zypher
@Zypher Die URL, auf die Sie verlinken, existiert nicht mehr. Ist der relevante Absatz an anderer Stelle verschoben worden? - kasperd
@ Kasperd serverfault.com/help/editing - Zypher


Antworten:


AKTUALISIEREN

Es ist nicht möglich, zwischen drahtlosen (Client-Station-Station-Modus) und drahtgebundenen Schnittstellen zu überbrücken nach diesem Thread auf linux-ath5k-devel.

Richten Sie NAT ein

Man sollte stattdessen NAT einrichten:

echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE

Zuweisen einer IP

Dann müssen Sie sich selbst IP-Adressen zuweisen:

ifconfig eth0 10.0.0.1 netmask 255.255.255.0 up

Installieren Sie DHCP-Daemon

Installieren Sie einen DHCP-Server und fügen Sie der Konfigurationsdatei den folgenden Text hinzu (in /etc/dhcpd.conf oder etwas Ähnliches)

subnet 10.0.0.0 netmask 255.255.255.0 {
    range 10.0.0.100 10.0.0.120;
    option routers 10.0.0.1;
    option domain-name-servers the-ip-address-you-have-in-etc-resolv.conf;
}

Starten Sie dhcpd

Starten Sie dann /etc/init.d/dhcpd start

Und das ist es!

Lesen Sie weiter unten, wenn Sie sich für das nicht funktionierende Bridging-Setup interessieren


brctl addbr mybridge
brctl addif mybridge eth0
brctl addif mybridge wlan0

Zuerst erstellen Sie eine Bridge-Schnittstelle Ich wähle einen beliebigen Namen Mybridge Fügen Sie dann Schnittstellen hinzu.

Sie sollten eine neue IP-Adresse anfordern (Diese wird nur benötigt, wenn Sie eine gültige IP für das Überbrückungsgerät selbst erhalten möchten):

dhclient -d mybridge

21
2018-06-18 09:44



Sie benötigen keine IP-Adresse für die Bridge-Schnittstelle, damit die Überbrückung funktioniert. - Massimo
kann wlan0 nicht hinzufügen, um mybridge zu überbrücken: Operation wird nicht unterstützt - dbdii407
@Massimo: Ja, das stimmt. Die gültige IP wird benötigt, um vom "Überbrückungsgerät" auf das Netz zuzugreifen. - cstamas
NAT ist etwas völlig anderes als Bridging. Bridging ist Schicht zwei, NAT ist Schicht drei und IPv4-spezifisch. Ich verstehe nicht, warum das eine akzeptierte Antwort ist. - WhyNotHugo
@Hugo IP NAT ist Layer 3, MAC NAT ist Layer 2. Für WiFi Bridging können Sie 4addr, WDS, MAC NAT verwenden oder Sie können etwas auf Layer 3 (wie IP NAT) tun. - David Schwartz


Zu Brücke wifi Schnittstelle, die Sie verwenden können iw Werkzeug zu aktiviere 4addr Gleichfalls:

# iw dev <wifiInterface> set 4addr on

zB:

# brctl addif <bridgename> <wifiInterface>
can't add <wifiInterface> to bridge <bridgename>: Operation not supported

# iw dev <wifiInterface> set 4addr on
# brctl addif <bridgename> <wifiInterface>

Jetzt sollte es funktionieren. Sie können Brücken anzeigen mit:

# brctl show

21
2017-11-13 10:48



Wofür ist diese Einstellung und warum schlagen Sie speziell vor, sie in diesem Szenario zu verwenden? - hakre
Dies ist eine Lösung für den Fehler "Operation nicht erlaubt", wenn versucht wird, die wlan0-Schnittstelle zur Brückenschnittstelle hinzuzufügen. Danach müssen Sie die Bridge-Schnittstelle in / etc / network / interfaces angeben, um nach dem Start hochgefahren zu werden. - Str82DHeaD
@hakre Die 4addr Modus machen WiFi so verhalten wie verdrahtete Ethernet, dass Bridging funktioniert. Ohne es funktioniert Bridging nicht ohne NAT. - David Schwartz
4addr erfordert, dass beide Seiten einer drahtlosen Verbindung es unterstützen (vorausgesetzt, Sie versuchen, einen WLAN-Extender zu implementieren) - nhed


Hängt davon ab, wie gemein der AP für dich ist:

1) Vielleicht möchten Sie nur Pakete von Ihnen sehen, mit Ihrer bekannten Link-Layer-Adresse (und somit nicht von Bridge-Paketen) 2) Es könnte sogar noch schlauer sein und wissen, welche IP-Adresse zu welcher Link-Layer-Adresse gehören sollte (weil es DHCP kennt und es inspiziert)

Wenn 1 + 2 beide wahr sind, brauchst du in der Tat sowas wie IP NAT, DHCP, ..

Aber wenn nur 1) der Fall ist, können Sie die Link-Layer-Adresse fälschen und umgekehrt auf die rechte in der anderen Richtung wie hier beschrieben abbilden:

https://wiki.debian.org/BridgeNetworkConnections#Bridging_with_a_wireless_NIC


2
2018-04-15 12:53



Das ist wirklich chaotisch. Außerdem müssen Sie jedes Mal, wenn Sie einen neuen Computer hinzufügen, zusätzliche Einstellungen vornehmen. - Michael Hampton♦


4addr wie in anderen Antworten beschrieben ist sicherlich der beste Weg, wenn der Adapter / Treiber unterstützt, aber nicht alle von ihnen. NAT kann für einige Dinge funktionieren, aber eine ordnungsgemäße Kommunikation beider Wege auf dem LAN wird problematisch (zB Anschließen eines Druckers oder Zugriff auf andere IoT-Geräte auf der anderen Seite des NAT). Alles, was auf Broadcast / Multicast (zB Auto-Discovery, Bonjour) angewiesen ist, wird durch das NAT fehlschlagen.

Die Alternative besteht darin, einen ARP-Proxy (parprouted) zu verwenden, wie in beschrieben https://wiki.debian.org/BridgeNetworkConnectionsProxyArp. Ich habe dies auf einem Raspberry Pi für einen Drucker eingerichtet und es funktioniert wie ein Charme (Ich habe einen 10 Sekunden Schlaf in der post-up Befehle, damit es zuerst eine IP-Adresse bekommt, vielleicht hat es mit der Langsamkeit meines alten RPi zu tun ...)


1
2017-07-20 12:16





Zu Brücke wifi Schnittstelle, die Sie verwenden können iw Werkzeug zu aktiviere 4addr Gleichfalls:

# iw dev <wifiInterface> set 4addr on

zB:

# brctl addif <bridgename> <wifiInterface>
# can't add <wifiInterface> to bridge <bridgename>: Operation not supported

# iw dev <wifiInterface> set 4addr on
# brctl addif <bridgename> <wifiInterface>

Jetzt sollte es funktionieren. Sie können überprüfen mit:

# brctl show

Es funktioniert möglicherweise nicht, wenn iw selbst einen Fehler meldet, wie "Befehl fehlgeschlagen: Operation nicht unterstützt (-95)" (gesehen auf Raspbian). Nicht alle Treiber implementieren das Feature anscheinend.


0



Während dies ermöglicht Ihnen eine Wifi-Schnittstelle zu einer Brücke wird es auch die Verbindung zu dieser Wi-Fi-Schnittstelle zu brechen. Ich denke, das könnte mit gelöst werden iptables oder route, aber ich habe nicht genug Ahnung von diesen Tools, um das Problem zu beheben. - RoraΖ