Nehmen Sie dauerhafte Änderungen in der Routing-Tabelle vor

10

Ich habe ein Raspberry PI 2 Modell B mit der Raspbian-Version Jessie und versuche, das Internet von meinem PC auf die Raspberry zu bringen. Ich habe 2 Netzwerkschnittstellen zwischen ihnen, eine ist über Ethernet und die andere ist über Wifi. Ich habe die Ethernet-IP-Adresse in der Himbeere statisch konfiguriert, da ich zu Hause ein kleines Computernetzwerk mit statischen IP-Adressen habe und möchte, dass die Himbeere Teil davon ist. Da mein Internet sehr langsam ist (ich verwende ein DFÜ-Modem), möchte ich dieses langsame Internet nicht über die Ethernet-Schnittstelle teilen, da nicht alle mit diesem Netzwerk verbundenen Computer meine Internetgeschwindigkeit beeinträchtigen sollen. Da ich nur beabsichtige, das Internet auf die Himbeere zu bringen, habe ich auf meinem PC einen WLAN-Hotspot erstellt, der meiner Himbeere dynamisch eine IP-Adresse zuweist (die Hotspot-Software verfügt über eine Art DHCP).

Aber dann beginnt mein Problem. Standardmäßig stellt die Himbeere nach dem Einschalten (oder wenn ich die Verbindung trenne und wieder herstelle) keine Verbindung zum Internet her. Durch Eingabe ifconfigbekomme ich:

eth0     
Link encap:Ethernet  HWaddr b8:27:eb:4e:35:65  
inet addr:100.100.100.25  Bcast:100.100.100.255  Mask:255.255.255.0
inet6 addr: fe80::ba27:ebff:fe4e:3565/64 Scope:Link
UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

wlan0     
Link encap:Ethernet  HWaddr 74:da:38:55:f3:a2  
inet addr:192.168.137.201  Bcast:192.168.137.255  Mask:255.255.255.0
inet6 addr: fec0::12:c4f1:c3fc:eb1e:3153/64 Scope:Site
inet6 addr: 2002:be0f:9cea:12:1bc0:1969:c17d:f854/64 Scope:Global
inet6 addr: fe80::bdca:7255:2e27:8341/64 Scope:Link
UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

Wenn ich tippe, route -nbekomme ich:

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         100.100.100.1   0.0.0.0         UG    202    0        0 eth0
0.0.0.0         192.168.137.1   0.0.0.0         UG    303    0        0 wlan0
100.100.100.0   0.0.0.0         255.255.255.0   U     202    0        0 eth0
192.168.137.0   0.0.0.0         255.255.255.0   U     303    0        0 wlan0

Hier können Sie sehen, wie die Metrik meines statischen Ethernet-Verbindungsgateways (100.100.100.1) kleiner ist als die Metrik meines DHCP-WLAN-Verbindungsgateways (192.168.137.1), sodass mein Raspberry versucht, das Internet über die falsche Schnittstelle zu erhalten

nachdem ich getippt habe:

sudo route delete  default gateway 192.168.137.1 

und dann :

sudo route add  default gateway 192.168.137.1

Meine Routing-Tabelle ist festgelegt auf:

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.137.1   0.0.0.0         UG    0      0        0 wlan0
0.0.0.0         100.100.100.1   0.0.0.0         UG    202    0        0 eth0
100.100.100.0   0.0.0.0         255.255.255.0   U     202    0        0 eth0
192.168.137.0   0.0.0.0         255.255.255.0   U     303    0        0 wlan0

und die Himbeere kann auf das Internet zugreifen.

Meine Fragen sind:

  1. Gibt es eine Möglichkeit, diesen Vorgang zu automatisieren, damit ich ihn nicht jedes Mal manuell ausführen muss, wenn ich die Himbeere einschalte?
  2. Gibt es eine Möglichkeit, es so zu automatisieren, dass es immer erkennt, dass das Internet vom WLAN unabhängig vom IP-Bereich, den der Hotspot DCHP für diese Schnittstelle bereitstellt, abgerufen werden muss?
  3. Warum wurde die niedrigere Metrik automatisch der Ethernet-Schnittstelle zugewiesen?

Ich habe die Lösung bereits unter Wie kann ich eine Änderung an der Routing-Tabelle vornehmen? Aber das funktioniert bei mir nicht, weil Sie in Raspbian Jessie das nicht direkt bearbeiten, /etc/network/interfacessondern das bearbeiten /etc/dhcpcd.conf, um die statische IP-Adresse zu erhalten

VMMF
quelle

Antworten:

10

Gibt es eine Möglichkeit, diesen Vorgang zu automatisieren, damit ich ihn nicht jedes Mal manuell ausführen muss, wenn ich die Himbeere einschalte?

Das wird nicht benötigt, wenn Frage 2 gelöst werden kann - und es kann ...

Gibt es eine Möglichkeit, es so zu automatisieren, dass es immer erkennt, dass das Internet vom WLAN unabhängig vom IP-Bereich, den der Hotspot DCHP für diese Schnittstelle bereitstellt, abgerufen werden muss?

Zusätzlich /etc/dhcpcd.confhinzufügen

interface wlan0;
metric 200;

interface eth0
metric 300;

Dadurch wird der WLAN-Schnittstelle die niedrigere Metrik zugewiesen, sodass eine für Internetanfragen ausgewählt wird.

Warum wurde die niedrigere Metrik automatisch der Ethernet-Schnittstelle zugewiesen?

Denn so werden Metriken gemäß man dhcpcd.conf (5) zugewiesen :

 metric metric
         Metrics are used to prefer an interface over another one, lowest
         wins.  dhcpcd will supply a default metric of 200 +
         if_nametoindex(3).  An extra 100 will be added for wireless
         interfaces.
Thomas Weller
quelle
+1 Vielen Dank, ich hatte noch keine Antwort. Ich habe jedes Mal ein manuelles Skript ausgeführt, wenn ich dies tun musste
VMMF
Beachten Sie, dass dies bei Nicht-DHCP-Verbindungen nicht funktioniert. Wenn Sie eine statische Verbindung in / etc / network / interfaces haben, können Sie die Gateway-Metrik festlegen, indem Sie das Gateway xxx.xxx.xxx.xxx durch die Up-Route ersetzen. Fügen Sie die Standard-Metrik gw xxx.xxx.xxx.xxx hinzu. ###
Sameer Puri
0

Was ich tue, ist einfach, es beim Booten laufen zu lassen.

Fügen Sie sudo route delete defaultund sudo route add default gateway 192.168.137.1in dieser bestimmten Reihenfolge Ihre /etc/init.d/rc.localDatei hinzu.

Ich habe vergessen, ob es /etc/init.d/rc.localfür Jessie sofort funktioniert oder ob Sie es anfassen sollten oder nicht, aber es sollte trivial sein, eine andere Lösung zu finden (das habe ich bereits getan) .

Und das löst # 1.


Für die Priorisierung von Verbindungen empfehle ich die Installation ifmetric. Dann priorisieren Sie einfach Ihre Verbindungen in/etc/network/interfaces

Die höchste Priorität ist 0, die nächste ist 1, dann 2 und so weiter.

iface eth0 inet dhcp
 metric 1

iface wlan0 inet static
 address 192.168.0.1
 netmask 255.255.255.0
 network 192.168.0.0
 metric 0

iface eth1 inet dhcp
 metric 2

Und das war's für # 2.


Ich denke, # 3 ist passiert, weil die Entwickler dachten, WiFi habe in bäuerlichen Nicht-Poweruser-Umgebungen Priorität . Ich konnte nur spekulieren, da ich keine Informationen dazu finden kann.

PNDA
quelle