Ist es möglich, sowohl WLAN als auch Ethernet mit demselben Netzwerk zu verbinden?

Ist es möglich, sowohl WLAN als auch Ethernet mit demselben Netzwerk zu verbinden?

Ich verwende Arch Linux (auf einem Raspberry Pi 3) und habe versucht, sowohl Ethernet als auch WLAN mit demselben Netzwerk zu verbinden. routezeigt mir Folgendes:

$ route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         gateway         0.0.0.0         UG    1024   0        0 eth0
default         gateway         0.0.0.0         UG    1024   0        0 wlan0
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 wlan0
gateway         0.0.0.0         255.255.255.255 UH    1024   0        0 eth0
gateway         0.0.0.0         255.255.255.255 UH    1024   0        0 wlan0

ip addrzeigt mir folgendes an:

$ ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether b8:27:XX:XX:XX:XX brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.103/24 brd 192.168.1.255 scope global dynamic eth0
       valid_lft 85717sec preferred_lft 85717sec
    inet6 fe80::ba27:ebff:fee4:4f60/64 scope link
       valid_lft forever preferred_lft forever
3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether b8:27:YY:YY:YY:YY brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.102/24 brd 192.168.1.255 scope global dynamic wlan0
       valid_lft 85727sec preferred_lft 85727sec
    inet6 fe80::ba27:ebff:feb1:1a35/64 scope link
       valid_lft forever preferred_lft forever

Beide wlan0Schnittstellen eth0konnten eine IP-Adresse vom Router erhalten.

Es stellt sich jedoch heraus, dass immer nur eine dieser Schnittstellen funktioniert. Die andere Schnittstelle kann nicht angepingt werden und ist nicht verbindbar. Normalerweise funktioniert das Ethernet, manchmal aber auch das WLAN.

Was ist los? Was kann ich tun, damit es funktioniert?

Antwort1

Wie Sie festgestellt haben, ist es aus der Routing-Perspektive zwar möglich, aber nicht ideal, Adressen aus demselben Netzwerk in verschiedenen Schnittstellen zu haben.

Beim Routing wird für jede Schnittstelle ein anderes Netzwerk erwartet und da sie sich überschneiden, hat letztendlich eines davon beim Routing Vorrang vor dem anderen.

Wenn mehrere Schnittstellen mit demselben Netzwerk verbunden sind, wird empfohlen, sie in einer Bridge-Schnittstelle zusammenzufassen.

Die Bridge-Schnittstelle „besitzt“ die IP-Adresse und die tatsächlichen realen Schnittstellen werden als virtuelle Einzeleinheit unter gruppiert br0.

allow-hotplug eth0
iface eth0 inet manual

allow-hotplug wlan0
iface wlan0 inet manual

auto br0
iface br0 inet dhcp
    bridge_ports eth0 wlan0
    

Debian Linux: Netzwerkschnittstellen als Bridge/Netzwerk-Switch konfigurieren

Antwort2

Dies ist eher ein Nachtrag als eine vollständige Lösung. [Da ich nicht genügend „Reputationspunkte“ habe, um einen Kommentar abzugeben.]

Sie müssen zunächst dafür sorgen, dass beide Schnittstellen unabhängig voneinander funktionieren. Anschließend können Sie anstelle einer Überbrückung auch einen Lastenausgleich für ausgehende Verbindungen zwischen beiden Schnittstellen durchführen.

https://www.tldp.org/HOWTO/Adv-Routing-HOWTO/lartc.rpdb.multiple-links.html

Ich habe damit begonnen, zwei Geräte mit einer vom Netzwerkmanager konfigurierten Standardroute zum Internet:

❯ ip route
default via 192.168.0.1 dev eno1 proto dhcp metric 100 
default via 192.168.0.1 dev wlp4s0 proto dhcp metric 600 
169.254.0.0/16 dev wlp4s0 scope link metric 1000 
192.168.0.0/24 dev eno1 proto kernel scope link src 192.168.0.246 metric 100 
192.168.0.0/24 dev wlp4s0 proto kernel scope link src 192.168.0.213 metric 600 

Dann habe ich den Befehl verwendet, der hier unter Lastausgleich beschrieben ist:

https://www.tldp.org/HOWTO/Adv-Routing-HOWTO/lartc.rpdb.multiple-links.html

❯ P1=192.168.0.1
❯ P2=192.168.0.1
❯ IF1=eno1
❯ IF2=wlp4s0
❯ ip route add default scope global nexthop via $P1 dev $IF1 weight 1 \     
            nexthop via $P2 dev $IF2 weight 1

Voala! Ich bekomme über beide Geräte Verbindungen.

❯ ip route                                                                  
default 
    nexthop via 192.168.0.1 dev eno1 weight 1 
    nexthop via 192.168.0.1 dev wlp4s0 weight 1 
default via 192.168.0.1 dev eno1 proto dhcp metric 100 
default via 192.168.0.1 dev wlp4s0 proto dhcp metric 600 
169.254.0.0/16 dev wlp4s0 scope link metric 1000 
192.168.0.0/24 dev eno1 proto kernel scope link src 192.168.0.246 metric 100 
192.168.0.0/24 dev wlp4s0 proto kernel scope link src 192.168.0.213 metric 600 

Das könnte die Fehlerbehebung erschweren, wenn ich Verbindungsprobleme habe ;)

Und ich weiß noch nicht, wie ich die Konfiguration über Neustarts hinweg beibehalten kann, insbesondere in Kombination mit dem Netzwerkmanager.

verwandte Informationen