Kabelgebundene Verbindung hat Vorrang vor kabelloser Verbindung

Kabelgebundene Verbindung hat Vorrang vor kabelloser Verbindung

Ich habe zwei Linux-Rechner miteinander verkabelt. Ein Rechner hat eine drahtlose Verbindung zu meinem Router, der andere nicht. Der Rechner ohne drahtlosen Zugriff (PC1) ist so konfiguriert, dass er eine eindeutige statische IP-Adresse hat und der andere Rechner (PC2) als sein Standard-Gateway festgelegt ist. PC2 ist so konfiguriert, dass er ebenfalls eine eindeutige IP-Adresse hat und den Router als Standard-Gateway verwendet. Wenn ich die kabelgebundene Verbindung aktiviere, kann PC1 mit den Schnittstellen eth0 und wlan0 von PC2 kommunizieren, und PC2 kann mit PC1 kommunizieren. Leider kann PC2 bei aktivierter kabelgebundener Verbindung nicht mit dem Router kommunizieren und PC1 somit auch nicht. Grundsätzlich können kabelgebundene und drahtlose Verbindungen von PC2 nicht gleichzeitig funktionieren.

PC2 (HINWEIS: route-nist gleich, unabhängig davon, ob die Verkabelung aktiviert ist oder nicht)

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         10.0.0.138      0.0.0.0         UG    0      0        0 wlan0
10.0.0.0        0.0.0.0         255.255.255.0   U     1      0        0 eth0
10.0.0.0        0.0.0.0         255.255.255.0   U     9      0        0 wlan0
172.17.0.0      0.0.0.0         255.255.0.0     U     0      0        0 docker0

docker0   Link encap:Ethernet  HWaddr 56:84:7a:fe:97:99  
          inet addr:172.17.42.1  Bcast:0.0.0.0  Mask:255.255.0.0
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

eth0      Link encap:Ethernet  HWaddr 60:a4:4c:62:ee:86  
          inet addr:10.0.0.140  Bcast:10.0.0.255  Mask:255.255.255.0
          inet6 addr: fe80::62a4:4cff:fe62:ee86/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:155 errors:0 dropped:0 overruns:0 frame:0
          TX packets:7744 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:12554 (12.5 KB)  TX bytes:1509568 (1.5 MB)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:2179347 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2179347 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:217854881 (217.8 MB)  TX bytes:217854881 (217.8 MB)

wlan0     Link encap:Ethernet  HWaddr c0:4a:00:66:58:98  
          inet addr:10.0.0.103  Bcast:10.0.0.255  Mask:255.255.255.0
          inet6 addr: fe80::c24a:ff:fe66:5898/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1605422 errors:0 dropped:0 overruns:0 frame:0
          TX packets:669649 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:1405768536 (1.4 GB)  TX bytes:83997471 (83.9 MB)

PC1 (HINWEIS: Ich kann die ifconfig von PC1 nicht abrufen)

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         10.0.0.139      0.0.0.0         UG    0      0        0 eth0
10.0.0.0        0.0.0.0         255.255.255.0   U     1      0        0 eth0

Antwort1

Das aktuelle Setup der PC2-Routingtabelle ist Ihr Problem. Ich habe es hier reproduziert, wobei ich unwichtige Spalten entfernt und von der Netzmaske in die CIDR-Notation konvertiert habe:

Destination     Gateway         Metric Iface
0.0.0.0/0       10.0.0.138      0      wlan0
10.0.0.0/24     0.0.0.0         1      eth0
10.0.0.0/24     0.0.0.0         9      wlan0

Die erste Zeile bedeutet im Klartext: „Der Datenverkehr zu allen anderen Sites wird über das Gateway 10.0.0.138 gesendet.“

Die zweite und dritte Zeile liefern dasselbe Ziel, daher gewinnt die niedrigere Metrik. Zeile 3 könnte genauso gut gar nicht vorhanden sein. Bedeutet im Klartext: „Um das Gateway 10.0.0.138 und alle anderen 10.0.0.*-Peers zu erreichen, senden Sie über eth0.“

Zusammen führt dies dazu, dass der für das Internet bestimmte Datenverkehr über eth0 läuft und es daher zu keiner Konnektivität kommt.

Das Problem entsteht, weil Sie dasselbe Subnetz in zwei verschiedenen Bridging-Domänen im selben Netzwerk verwenden, was nicht zulässig ist. Hören Sie damit auf!

Ändern Sie die Netzmaske der eth0-Schnittstelle von PC2 in 255.255.252.0 und geben Sie ihr eine IP-Adresse, die weiter vom Router entfernt ist. Dadurch wird die Routing-Tabelle geändert (zum Beispiel erhält PC2 eth0 10.0.0.21 und PC1 eth0 10.0.0.22).

Destination     Gateway         Metric Iface
0.0.0.0/0       10.0.0.138      0      wlan0
10.0.0.20/30    0.0.0.0         1      eth0
10.0.0.0/24     0.0.0.0         9      wlan0

Jetzt stimmt der Datenverkehr zum Gateway 10.0.0.138 überhaupt nicht mit der zweiten Zeile überein und verwendet korrekt die dritte Zeile.

Noch besser wäre es, einen nicht überlappenden Bereich für die kabelgebundene Verbindung zu verwenden, zum Beispiel 10.0.1.x

Damit der Internetzugang auch für PC1 funktioniert, muss Ihr Router den für PC1 bestimmten Datenverkehr über PC2 senden. Dies können Sie auf zwei Arten einrichten: Ändern Sie die Routing-Tabelle des Routers oder konfigurieren Sie PC2 so, dass er Proxy-ARP ausführt.

Antwort2

Ich denke, dass einige Dinge die Ursache für Ihre Probleme sein könnten:

  1. Sie geben an, dass PC1 PC2 als Standard-Gateway verwendet, die Routing-Tabelle zeigt jedoch tatsächlich PC1 10.0.0.139als Standard-Gateway an und nicht die eth0-Schnittstelle von PC2.10.0.0.140
  2. Wenn PC2 für das Routing des Datenverkehrs von PC1 verantwortlich ist, haben Sie die IP-Weiterleitung auf PC2 aktiviert? Ich glaube nicht, dass dies in Linux standardmäßig aktiviert ist. Prüfen Sie mit cat /proc/sys/net/ipv4/ip_forward. Wenn der Wert 0 ist, verwirft PC2 den gesamten routingfähigen Datenverkehr, der von PC1 an ihn gesendet wird.Anleitung, wenn Sie es einschalten müssen.
  3. Wenn die IP-Weiterleitung auf PC2 tatsächlich aktiviert ist, wurde iptables so konfiguriert, dass es Datenverkehr akzeptiert, der seine Weiterleitungskette erreicht? iptables -nvLÜberprüfen Sie die Regeln für die Weiterleitungskette.

verwandte Informationen