ralpht
Goto Top

Debian verliert default-route

Moin,
ich habe hier folgendes Problem:

Ein virt. Debianrechner verliert nach einer gewissen Zeit seine default-route. Der Rechner kommt dann natürlich nicht mehr ins Internet.

Wenn der Rechner funktioniert dann wird bei der Eingabe ip r folgendes gezeigt:

default via 192.168.1.1 dev ens192
192.168.1.0/24 dev ens192 proto kernel scope link src 192.168.1.10

Wenn er nicht mehr funktioniert, dann fehlt die Route:

192.168.1.0/24 dev ens192 proto kernel scope link src 192.168.1.10

Ein Reboot behebt das Problem temporär. Der Rechner bekommt per DHCP seine Einstellungen (IP-Adresse, Router und DNS) Die Leasedauer beträgt hier 8 Stunden. Nach den 8 Stunden verliert der Rechner seine defaultroute. Das ist immer der Zeitpunkt, wenn der Rechner sein Lease erneuern will.
Viele andere Rechner werden auch von diesem DHCP-Server versorgt. Die haben keine Probleme.

Der Inhalt der Datei dhclient.ens192.leases zeigt keine Auffälligkeiten. Ich habe den Inhalt mal mit einem funktionierenden Rechner verglichen. Sieht alles gut aus, keine Auffälligkeiten.

Wo könnte man da mal suchen, um den Fehler zu finden?

Content-ID: 4169175491

Url: https://administrator.de/forum/debian-verliert-default-route-4169175491.html

Ausgedruckt am: 22.12.2024 um 19:12 Uhr

4091525239
4091525239 06.10.2022 aktualisiert um 08:21:14 Uhr
Goto Top
  • Welches Debian 8, 9 , 10, 11?
  • Virtuell oder Blech?
  • Was sagt das journal zum Zeitpunkt wenn das GW verschwindet?
  • Sind Energiesparmodi der NIC aktiv ?
  • Welches System benutzt du für die Netzwerkconfig (systemd-networkd/dhcpcd/NetworkManager/...)?
RalphT
RalphT 06.10.2022 aktualisiert um 08:32:32 Uhr
Goto Top
Moin Paddel,

ich versuche gerade deine Fragen zu beantworten.

Leider bin ich in Linux nicht so der Held. Aber ich versuche mal trotzdem etwas zu beantworten.

mit journalctl /usr/lib/systemd/systemd habe ich das journal aufgerufen. Leider fehlen mir hier 4 Stunden. Da muss ich wohl nochmal 8 Stunden warten, bis der Fehler wieder auftritt.

Mit dem Energiesparmodi kann ich so nichts anfangen. Ich habe ihn zumindest nicht wissentlich aktiviert, da ich garnicht weiß, wie das funktioniert.
Mit der Frage zur Netzwerkkonfig bin ich auch gerade etwas überfragt. Ich habe diesen Debian nach der Installation eigentlich nicht weiter konfiguriert. Dieser Rechner holt sich seine IP-Konfig über einen DHCP-Server. Das ist ja standardmäßig bei debian so vorgesehen.

Das ist ein Debian 10, der ohne GUI installiert wurde. Auf dem DHCP-Server habe ich die mac-Adresse vom Debian eingetragen, damit dieser immer die IP bekommt. Das funktioniert auch so.

PS:
Ich sehe gerade, dass du deine Fragen aktualisiert hast.

Das Ganze ist virtuell auf ESXi 6.7 und die Version ist Debian 10.
Vielleicht noch einen Hinweis dazu:

Dieser Debian lief schon seit vielen Monaten auf einem ESXi 6.0 einwandfrei. Erst nach dem Umzug von einem ESXi-Server auf einen anderen ESXi-Server entstand das Problem.
4091525239
4091525239 06.10.2022 aktualisiert um 09:53:44 Uhr
Goto Top
Zitat von @RalphT:
mit journalctl /usr/lib/systemd/systemd habe ich das journal aufgerufen. Leider fehlen mir hier 4 Stunden. Da muss ich wohl nochmal 8 Stunden warten, bis der Fehler wieder auftritt.
Nein musst du nicht, Stelle die Lease Time mal auf 2 Minuten, und starte TCPDump auf dem Interface, du solltest dann nach 1 Minute sehen können wie der Debian seine lease erneuert, denn das geschieht immer nach der hälfte der Lease-Dauer.
Wenn du hier keine Lease Erneuerung I'm Capture siehst ist was faul mit dem Networkstack.
Mit dem Energiesparmodi kann ich so nichts anfangen. Ich habe ihn zumindest nicht wissentlich aktiviert, da ich garnicht weiß, wie das funktioniert.
Da virtuell jetzt wohl eher irrelevant.
Mit der Frage zur Netzwerkkonfig bin ich auch gerade etwas überfragt. Ich habe diesen Debian nach der Installation eigentlich nicht weiter konfiguriert. Dieser Rechner holt sich seine IP-Konfig über einen DHCP-Server.
OK
Nach den 8 Stunden verliert der Rechner seine defaultroute. Das ist immer der Zeitpunkt, wenn der Rechner sein Lease erneuern will.
Nein das ist falsch gedacht! Bei DHCP verlängert ein Rechner seine Lease immer wenn 50% der Lease-Time abgelaufen sind! Ergo müßte das Debian nach 4 Stunden seine Lease mit einem Request an den DHCP erneuern, was du wie oben gesagt mal per TCPDump oder Wireshark nachprüfen solltest.

Des weiteren, was passiert wenn du manuell das Interface runter und wieder hoch fährst?Also
ip link set dev ens192 down
ip link set dev ens192 up
Kommt dann die Default Route wieder?
RalphT
RalphT 06.10.2022 aktualisiert um 10:54:10 Uhr
Goto Top
Des weiteren, was passiert wenn du manuell das Interface runter und wieder hoch fährst?Also
ip link set dev ens192 down
ip link set dev ens192 up
Kommt dann die Default Route wieder?

Werde ich mal testen. Aber ich habe folgendes probiert:

dhclient -r
dhclient

Danach ist die Route wieder da. Ein "dhclient -r" alleine reicht nicht aus.

Was mich ja wundert, dass die beiden DNS-Einträge und auch die weitere Einträge alle vorhanden sind. Nur eben halt die Route fehlt. Hier mal ein Auszug aus der Datei "dhclient.ens192.leases":

lease {
interface "ens192";
fixed-address 192.168.1.10;
option subnet-mask 255.255.255.0;
option routers 192.168.1.1;
option dhcp-lease-time 28800;
option dhcp-message-type 5;
option domain-name-servers 192.168.1.4,192.168.1.5;
option dhcp-server-identifier 192.168.1.5;
option dhcp-renewal-time 14400;
option dhcp-rebinding-time 25200;
option domain-name "MEINE.FIRMA.DE";
renew 4 2022/10/06 06:10:10;
rebind 4 2022/10/06 09:25:55;
expire 4 2022/10/06 10:25:55;
}

Und diese Datei wird schön weiter fortgeschrieben. Hier ist auch zu erkennen, dass die Zeile mit dem Router auch dabei ist.

Nachtrag:

ip link set dev ens192 down
ip link set dev ens192 up

Das funktioniert nicht. Wundert mich eigentlich etwas. Dieser Befehl deaktiviert/aktivert doch die Netzwerkkarte?
4091525239
4091525239 06.10.2022 aktualisiert um 13:11:37 Uhr
Goto Top
Zitat von @RalphT:
Nachtrag:

ip link set dev ens192 down
ip link set dev ens192 up

Das funktioniert nicht.
Was funktioniert nicht? Fehlermeldung? Nach dem dea-/aktivieren muss man natürlich den DHCP-Client neu anwerfen wenn der nicht so konfiguriert ist das nach dem down der NIC dieser wieder hoch kommt.
Dieser Befehl deaktiviert/aktivert doch die Netzwerkkarte?
Richtig. Checke nach dem ersten Befehl den Status des Interfaces mit
ip a sh ens192

Was sagt TCPDump? Wird der renew request zur berechneten Zeit nun verschickt oder nicht??

Danach ist die Route wieder da. Ein "dhclient -r" alleine reicht nicht aus.
Normal weil -r die Lease freigibt und den Client beendet, einfach mal in die man page geschaut erleuchtet sie auch dich.

Ich würde an deiner Stelle auf dhcpcd oder network-manager ausweichen, die Basis-Skripte im Debian Buster stellen die Default Route nicht wieder her wenn das Netzwerkinterface kurz deaktiviert wird.
RalphT
RalphT 06.10.2022 um 13:31:10 Uhr
Goto Top
Was funktioniert nicht? Fehlermeldung? Nach dem dea-/aktivieren muss man natürlich den DHCP-Client neu anwerfen wenn der nicht so konfiguriert ist das nach dem down der NIC dieser wieder hoch kommt.

Ah, das wusste ich nicht. Ich dachte das wäre so wie bei Windows. Nein, dabei gab es keine Fehlermeldung.

Jetzt bin ich gerade dabei den Datenverkehr aufzuzeichnen. Mal sehen, was dabei herauskommt.
4091525239
4091525239 06.10.2022 aktualisiert um 13:37:43 Uhr
Goto Top
An deiner Stelle würde ich ja auf den network-manager wechseln, ist für Linux Anfänger einfacher, hier ist das Verhalten auch ohne weiteres Skripting zuverlässiger sollte das Interface aus welchen Gründen auch immer mal "wackeln"
sudo apt update
sudo apt install network-manager
Dann das Interface ens192 in der /etc/network/interfaces auskommentieren, und das den network-manager übernehmen lassen mit einem Dienst Neustart
systemctl restart network-manager
Bearbeiten der NIC kannst du dann entweder über den Befehl nmtui grafisch oder via nmcli auf der Konsole.
RalphT
RalphT 07.10.2022 um 11:41:39 Uhr
Goto Top
Moin,

die Geschichte mit dem alternativen Netzwerkmanager habe ich mir mal notiert. Das werde ich aber erst später ausprobieren.

Ich möchte natürlich den Fehler finden, daher suche ich in dieser Richtung noch etwas weiter. Ich habe in der Zwischenzeit einen Mitschnitt gemacht. Weiterhin habe in der var/log/syslog mir die Logs angesehen. Desweiter habe ich auch intakte Server und mir das Ganze dort auch einmal angesehen. Dabei kam folgendes heraus:

Nach dem Neustart an dem defekten Rechner funktioniert ja erst einmal alles. Da sieht man auch im LOG, die DHCLIENT-Einträge. Wenn die Releasezeit abgelaufen ist, dann verliert dieser Rechner ja sein Gateway. Nach der Hälfte der Releasezeit möchte der Client seine Adresse erneuern. Das passiert schon mal nicht. Bei dem intakten Rechner sieht man das im LOG und im DUMP, immer wieder fortlaufend.
Ich hatte ja auf dem DHCP-Server die Zeit auf 2 Minuten verkürzt. Und nach Ablauf der Zeit macht der Rechner weiterhin nichts. Nichts im DUMP zu sehen und auch keine Einträge im LOG.

Vielleicht könntest du mir noch einen Tipp geben, warum der DHCLIENT nur nach dem Reboot scheinbar korrekt funktioniert, danach nicht mehr.
erikro
Lösung erikro 07.10.2022 um 12:31:06 Uhr
Goto Top
Moin,

dazu gibt es einen bug report:
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=923640

Workaround: Trage in die Datei
/etc/dhcp/dhclient.conf
die Zeile
send dhcp-client-identifier = hardware;
ein.

hth

Erik
4091525239
Lösung 4091525239 07.10.2022 aktualisiert um 12:45:56 Uhr
Goto Top
Das riecht entweder nach einem Lockup des dhclient oder die Zeit der VM springt, also mal eine Aufzeichnung der aktuellen Zeit machen ob dort Sprünge zu beobachten sind. Wird die VM von VMWare mit der Zeit versorgt oder macht sie dies über einen NTP-Server?
In dieser Richtung würde ich mal forschen.

Und wenn die Lease abgelaufen ist lass dir mal den Status des dhclient anzeigen
cat /proc/[pid]/task/[thread ids]/status
Werte in Klammern ersetzen durch die PID des DHCLIENT Prozesses.

Gab da auch mal Bugs diesbezüglich
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=867276
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=867964
RalphT
RalphT 07.10.2022 aktualisiert um 13:06:54 Uhr
Goto Top
Wird die VM von VMWare mit der zeit versorgt oder macht sie dies über einen NTP-Server?

Auh! Das war das Stichwort! Ich habe beim Aufsetzen des ESXi verpennt, die Zeit per NTP zu einzustellen. Die Uhr ging zum Mond! Bei der Kontrolle der Logs ist mir auch die "Zukunftszeit" aufgefallen. Habe ich aber irgendwie ignoriert.

Ich habe das sofort geändert. Ich werde jetzt das Wochenende abwarten und das prüfen.

Zu dem Bugreport: Den hatte ich heute beim Surfen auch entdeckt. Werde ich mir auf jedenfall notieren.

Daher ergibt das Ganze jetzt auch einen Sinn. Denn vor dem Umzug lief alles tadellos. Das hätte ja auch nicht an den VMs liegen können.
Ich denke das wars.

Danke!

PS:
Gut, dass ich jetzt bemerkt habe. Ich wollte die Tage noch einen Domänencontroller dort draufschieben. Das hätte nach hinten losgehen können.
RalphT
RalphT 07.10.2022 um 13:39:35 Uhr
Goto Top
@erikro:

Das kommt mir bekannt vor. Allerdings etwas ähnlich. Ich hatte mal das Problem, dass ab Debian 10 kein DHCP mit fester (gleicher) IP-Adresse funktionierte. Im DHCP-Server waren seltsame lange Zahlenkolonnen sichtbar. Die Reservierung funktioniert nicht. Da bin ich auf einen Beitrag gestoßen, wo man diese Zeile dort einfügen sollte:

send dhcp-client-identifier mac;

Das habe ich überall gemaacht und das funktioniert auch.