Ich habe ein System mit zwei Netzwerkkarten. Dieses Gerät und einige zugehörige Geräte werden verschoben und an verschiedene LANs angeschlossen, oder manchmal wird die Einwahl verwendet.
eth0:
- 10.x.x.x address space
- no internet gateway
- only a few devices
eth1 (when used):
- 172.16.x.x or 192.168.x.x or other address spaces
- access to the gateway from LAN to internet
ppp0 (when used):
- internet access through dialup using KPPP
Ich verwende ifconfig, um Schnittstellen nach oben oder unten zu bringen (außer mit ppp0, das von KPPP verwaltet wird).
Wenn ich eth1 zuerst aufrufe, erhält es eine Adresse von seinem DHCP und erhält das Gateway. Dies wird dem Routing hinzugefügt, sodass es keine Probleme gibt, das LAN und das Internet zu erreichen.
Wenn ich eth0 zuerst oder zweitens aufrufe, erhält es seine Adresse und setzt das Standard-Gateway auf innerhalb seines Adressraums (im Bereich 10.xxx). Wenn ich zuerst eth0 und dann eth1 aufrufe, bleibt das Standard-Gateway weiterhin im Bereich 10.xxx.
Egal was ich mache, eth0 überschreibt eth1 und "beansprucht" das Gateway im Routing.
Gibt es eine Möglichkeit, entweder zu verhindern, dass eth0 das Gateway beansprucht, oder sicherzustellen, dass eth1 (falls es als 2. aufgerufen wird) sein Gateway verwendet? Oder kann ich irgendwie eine Rangfolge priorisieren, bei der das Gateway der Schnittstelle gegenüber den anderen verwendet werden soll?
Grundsätzlich möchte ich sicherstellen, dass das Standard-Adressraum-Gateway von eth1 verwendet wird, wenn es aktiv ist. Wenn nicht, wird das Standard-Gateway von ppp0 verwendet. Ich möchte verhindern können, dass eth0 jemals das Standard-Gateway hat.
quelle
ifconfig
jede Art von DHCP-Interaktion verursachen würde. In der Regelifup
wird dies durch Starten erledigtdhclient
. Werden Ihre eth * -Schnittstellen möglicherweise beispielsweise durch den Systemstartprozess/etc/init.d/network
oder durch NetworkManager aufgerufen?Antworten:
Die DHCP-Serverkonfiguration ist falsch. Es darf keine Standard-Gateway-Option senden, wenn kein Routing für den Rest der Welt bereitgestellt werden kann. Wenn diese Option gesendet wird, kann jeder Client davon ausgehen, dass er Pakete für jedes Off-Link-Ziel an das angegebene Standard-Gateway senden kann.
Ihre Box verwendet also das Standard-Gateway von eth0, wenn dies von DHCP mitgeteilt wird. Die Lösung besteht darin, die fehlerhafte Option von Ihrem DHCP-Server zu entfernen.
quelle
Ich hatte ein ähnliches Problem mit Raspbian (ich nehme an, dass die folgende Lösung auch für Debian gilt). In Raspberry Pi 3 sind zwei Netzwerkkarten integriert: Wi-Fi und Ethernet. Ich benutze beide, sie sind wlan0 bzw. eth0. wlan0 ist mit meinem WLAN-Heimnetzwerk verbunden und der Internetzugang erfolgt über diese Schnittstelle. Es erhält seine Einstellungen über DHCP von meinem Heimrouter. eth0 ist direkt mit meinem Windows-PC verbunden und hat eine statische IP zugewiesen. Es war kein Internetzugang über eth0 verfügbar, da ich ihn nicht auf meinem Windows-PC konfiguriert habe.
In Raspbian ist der daemon dhcpcd für die Konfiguration der Netzwerkschnittstellen verantwortlich. Um die statische IP auf die eth0-Schnittstelle zu setzen, wurden am Ende von folgende Zeilen hinzugefügt
/etc/dhcpcd.conf
:Mit diesen Einstellungen erstellte dhcpcd zwei Standardrouten und die Route über eth0 hatte eine höhere Priorität als die über wlan0:
Ich hatte also keinen Internetzugang, weil das System versucht hat, ihn über eth0 zu routen, und es hatte keinen Internetzugang, wie ich oben erwähnt habe.
Um das Problem zu lösen, habe ich die
nogateway
Option in der/etc/dhcpcd.conf
for eth0-Schnittstelle verwendet. Die eth0-spezifische Konfiguration sah also folgendermaßen aus:Nach dem Speichern dieser Konfiguration und dem Neustart gab es keine Standardroute über eth0:
Der Internetzugang wurde angezeigt und das Problem behoben.
quelle
nogateway
ist der Weg in die neuesten Debian-DistributionenAuf RHEL6 / Fedora 22 wurde Folgendes getestet.
Fügen Sie in / etc / sysconfig / network-scripts / ifcfg-eth1 die folgende Zeile hinzu:
Ersetzen Sie eth1 durch den Namen der Schnittstelle, für die kein Standardrouting gewünscht wird.
Dies kann auch über die Benutzeroberfläche von Network Manager erfolgen, indem das Kontrollkästchen "Diese Verbindung nur für Ressourcen in seinem Netzwerk verwenden" unten auf der Registerkarte IPv4 aktiviert ist.
DEFROUTE = no verhindert das Hinzufügen der Standardroute (Ziel 0.0.0.0) zur Routing-Tabelle, wenn die Schnittstelle aktiviert ist. dh. Der folgende Eintrag wird nicht hinzugefügt.
quelle
OK, Sie möchten also, dass der Computer niemals ein Standard-Gateway aufruft, wenn er eth0 aufruft und seine Adresse über DHCP erhält.
Hier ist die Lösung:
Datei bearbeiten:
und bevölkern mit:
Vor:
nach ifdown eth0, ifup eth0:
quelle
Sie können die Datei dhcpclient.conf bearbeiten und keine Standardroute vom Remote-DHCP-Server anfordern.
Eine kleine Auswahl von dem, was ich getan habe und es funktioniert für meinen Fall
quelle