Der Debian-Server verliert sporadisch das Standard-Gateway

7

Ich bin mir nicht sicher, was meine Instabilität verursacht, aber ich weiß Folgendes:

Auf dem Server wird Debian ohne GUI ausgeführt.

Ich habe eine statische IP-Adresse und / etc / network / interfaces ist mit einem Eintrag 'gateway xxx1' konfiguriert.

In regelmäßigen Abständen verliert mein Server die gesamte Internetverbindung, und wenn ich für den Zugriff darauf zugreifen kann, fehlt das Standard-Gateway in der Routing-Tabelle.

Da dieser Fehler den gesamten Datenverkehr auf meinem Server stoppt, habe ich einen Cronjob eingerichtet, um regelmäßig zu versuchen, "Standard-GW xxx1 hinzufügen", damit ich nicht ständig physisch zum Computer zurückkehren muss. Ich hätte gerne eine bessere Lösung ...

/ etc / network / interfaces:

auto lo
iface lo inet loopback

allow-hotplug eth0
iface eth0 inet static
address 192.168.0.121
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.0.255
gateway 192.168.0.1
up route add default gw 192.168.0.1
dns-nameservers 192.168.0.1
dns-search domain.com

Warum funktioniert der Eintrag: up route add default gw xxx1 nicht in / etc / network / interfaces, um das Gateway in der Routing-Tabelle zu halten? Sollte der Eintrag 'Gateway xxx1' nicht bereits sicherstellen, dass das Standard-Gateway in der Routing-Tabelle verbleibt?

Welche Protokolldateien sollte ich mir ansehen, um diesen wiederkehrenden Fehler aufzuspüren?

Nebenfrage: Könnte ein Angriff vom Typ DoS dazu führen, dass eth0 ausfällt?

Andrew Parker
quelle
1
Können Sie die vollständige Schnittstellendatei veröffentlichen? Wenn Sie öffentliche Adressen freigeben möchten, verwenden Sie einfach den RFC1918-Adressraum.
Zoredache
Das up route add default gw 192.168.0.1ist nutzlos und unnötig, wenn Sie einen "Gateway" -Eintrag haben.
Daff

Antworten:

6

Der ifconfigBefehl soll nichts anderes als die Schnittstelle selbst einrichten, daher ist kein Gateway beteiligt.

Wenn Sie ausführen ifconfig down, wird das Gateway vom Kernel entfernt, da es sieht, dass es nicht mehr gültig ist.

Wenn Sie ausführen ifconfig up, kann der Kernel nichts über das Gateway erraten.

Sie sollten Ihren distro-spezifischen Befehl für updie Schnittstelle verwenden (zum Beispiel bei Debian ifup eth0) oder den routeBefehl explizit verwenden .

Gregory MOUSSAT
quelle
Gibt es eine Möglichkeit, den Kernel auf die erforderliche Gateway-Einstellung aufmerksam zu machen? Ich dachte mir, dass / etc / network / interfaces das tun würde ... Außerdem bin ich mir nicht sicher, was das Problem verursacht. Ich brauche nur einen Weg, damit, wenn eth0 wieder hochkommt, die Gateway-Route damit einhergeht.
Andrew Parker
Ich habe gerade die Antwort geschrieben: Sie sollten Ihren distro-spezifischen Befehl verwenden. Zeitraum. Dies ist auch "ifip" und "ifdown" für RedHat.
Gregory MOUSSAT
Typ: ifup, nicht ifip
Gregory MOUSSAT
Ja, aber das sind Befehle. Ich gebe keine Befehle aus und meine Routing-Tabelle verliert immer noch ihre Route zum Gateway.
Andrew Parker
Sie müssen also Ihre Frage klären. Verwenden Sie dazu den Bearbeitungslink.
Gregory MOUSSAT
1

Ich bin mir bei Debian nicht sicher, aber für redhat müssen die sysconfig-Skripte konfiguriert werden, um die Gateway-Einstellungen beizubehalten. Ich bin mir nicht sicher, wie relevant dies für Debian ist, aber es hat mich verrückt nach Redhat gemacht.

DaffyDuc
quelle
Sie müssen GATEWAY=X.X.X.Xlediglich eine Zeile zu / etc / sysconfig / network hinzufügen. Das Betriebssystem kann das Gateway nicht automatisch erkennen, da es je nach Netzwerk unterschiedlich ist.
Devicenull
Das ist richtig. Ich bin nicht sicher, ob Debian das Netzwerk sysconfig verwendet. Scheint, als hätte ich nicht das letzte Mal damit gespielt.
DaffyDuc
1

Okay, zuerst einmal, warum benutzt du ifconfig? Auf einem normalen Server würden Sie das nur berühren, wenn Sie die IP-Adressen ändern.

Ich vermute, Sie haben irgendwo eine Kopie des DHCP-Clients. Ich habe solche zeitweiligen Probleme gesehen, als ich gegen dhclientEnde der Ablaufzeit des Mietvertrags aufwachte. Stellen Sie sicher, dass dies vollständig deaktiviert ist (Sie können es wahrscheinlich chmod -xsogar entfernen, da es auf Produktionsservern keinen wirklichen Zweck hat). Überprüfen Sie ps aux, ob Sie nichts in Bezug auf DHCP sehen.

Zuletzt hat ein DoS-Angriff keine Auswirkungen auf die Gateway-Adresse Ihres Systems. Es ist möglich, dass das Gateway ausfällt (wenn es den Router überfordert), aber es würde nicht dazu führen, dass Ihr System es plötzlich aus Ihrer Routing-Tabelle entfernt.

devicenull
quelle
Ich versuche nur zu verfolgen, was mit meinem Server passiert und warum er immer wieder seine Route zum Gateway verliert (es kommt nur so vor, dass ifconfig up / down genau dies tut und ich suche nach einer Möglichkeit, um sicherzustellen, dass die Gateway-Route kommt zusammen mit eth0). Mein Server wird regelmäßig offline geschaltet, und ich muss ihn physisch besuchen, um die Verbindung wiederherzustellen. Wenn ich dies tue, fehlt die Route zum Gateway in der Routing-Tabelle. Es gibt kein DHCP, alles ist statisch, keine DHCP-bezogenen Elemente ps aux.
Andrew Parker
@AndrewParker Es ist wahrscheinlich nicht notwendig zu erwähnen, aber achten Sie darauf, in der ps auxAusgabe nach "dhclient" zu suchen , nicht nur nach einem Muster, das "dhcp" enthält.
Daff
Überprüfen Sie auch / var / log / syslog, falls dhclient gestartet und beendet wird.
user61849
0

Keine Lösung, aber eine schnelle Lösung, die Sie davon abhält, die Konfigurationsdatei zu korrigieren.

Stellen Sie eine Bash zusammen, die die Konnektivität überprüft. Wenn es nicht herauskommt, muss es das Gateway an die Konfigurationsdatei anhängen und das Netzwerk bouncen. Zumindest für den Moment würde es Ihnen die Ausfallzeit und das Fahren sparen.

Entschuldigung für die Erstellung einer weiteren Antwort ... anscheinend können noch keine Kommentare angehängt werden.

DaffyDuc
quelle
Wie ein Shell-Skript? Ich habe derzeit Cron, der die Route alle paar Stunden wieder in den Routing-Tisch legt ...
Andrew Parker
Ich dachte nur, ich würde es erwähnen, falls du es nicht getan hast. Und natürlich meinte ich ein geplantes Skript: D
DaffyDuc