Skip to main content

7.9 Ping funktioniert, Anwendung nicht

Ein Server antwortet auf einen Ping, die eigentliche Anwendung ist jedoch nicht erreichbar oder funktioniert nicht vollständig.

Dieses Fehlerbild entsteht häufig, weil ein erfolgreicher Ping fälschlicherweise als Nachweis für die Funktionsfähigkeit des gesamten Dienstes interpretiert wird. Ping prüft jedoch nur einen begrenzten Teil der Kommunikationskette.


7.9.1 Typisches Fehlerbild

Mögliche Meldungen und Beobachtungen:

  • Der Server antwortet auf ping, aber die Webseite öffnet sich nicht.
  • Die IP-Adresse ist erreichbar, aber die Anwendung meldet einen Timeout.
  • Der TCP-Port ist erreichbar, aber die Anmeldung schlägt fehl.
  • Der Dienst funktioniert lokal auf dem Server, jedoch nicht von einem Client.
  • Die Anwendung funktioniert ohne VPN, aber nicht über den VPN-Tunnel.
  • Einige Benutzer können zugreifen, andere nicht.
  • IPv4 funktioniert, IPv6 jedoch nicht.
  • Der Reverse Proxy antwortet, erreicht aber das Backend nicht.
  • Die Anwendung zeigt 502 Bad Gateway oder 503 Service Unavailable.
  • Die Startseite funktioniert, ein bestimmter Geschäftsprozess jedoch nicht.
  • Ein Healthcheck ist erfolgreich, während Benutzerfunktionen fehlschlagen.

Die Diagnose muss deshalb über ICMP hinausgehen und den tatsächlichen Anwendungsweg prüfen.


7.9.2 Diagnoseziel

Ziel ist es, eindeutig festzustellen:

  • welches Ziel die Anwendung tatsächlich verwendet;
  • welche IP-Adresse verwendet wird;
  • ob IPv4 oder IPv6 verwendet wird;
  • welches Transportprotokoll erforderlich ist;
  • welcher Port angesprochen wird;
  • ob der Zielport erreichbar ist;
  • ob auf dem Server ein passender Prozess lauscht;
  • ob der Dienst an der richtigen Adresse gebunden ist;
  • ob TLS und Zertifikatsprüfung funktionieren;
  • ob ein Proxy, Reverse Proxy oder Load Balancer beteiligt ist;
  • ob Authentifizierung und Autorisierung funktionieren;
  • ob alle Backendabhängigkeiten verfügbar sind;
  • an welcher Stelle die vollständige Kommunikationskette unterbrochen wird.

Ein möglicher Fehlerbereich darf erst dann als Ursache gelten, wenn er durch ein reproduzierbares Prüfergebnis, ein Protokoll oder einen Paketmitschnitt bestätigt wurde.


7.9.3 Kommunikationskette der Anwendung

Eine typische Anwendungsverbindung kann mehrere voneinander unabhängige Prüfebenen enthalten:

  1. Anwendungskonfiguration
  2. Namensauflösung
  3. Auswahl von IPv4 oder IPv6
  4. lokales Routing
  5. VPN oder Proxy
  6. Clientfirewall
  7. Netzwerkfirewall oder ACL
  8. NAT oder Portweiterleitung
  9. Load Balancer oder Reverse Proxy
  10. TCP- oder UDP-Kommunikation
  11. TLS-Handshake
  12. Anwendungsprotokoll
  13. Authentifizierung
  14. Autorisierung
  15. Backenddienste
  16. vollständiger Benutzerablauf

Ein Fehler auf einer späteren Ebene kann auftreten, obwohl alle vorherigen Ebenen funktionieren.

Beispiele:

  • Ping funktioniert, aber TCP 443 wird blockiert.
  • TCP 443 funktioniert, aber der TLS-Handshake schlägt fehl.
  • TLS funktioniert, aber der HTTP-Pfad ist falsch.
  • HTTP funktioniert, aber die Anmeldung wird verweigert.
  • Die Anmeldung funktioniert, aber die Datenbank ist nicht erreichbar.
  • Der Healthcheck funktioniert, aber der eigentliche Geschäftsprozess schlägt fehl.

7.9.4 Was Ping tatsächlich prüft

Ping verwendet normalerweise ICMP-Echo-Anfragen und ICMP-Echo-Antworten.

Ein erfolgreicher Ping bestätigt für den konkreten Testzeitpunkt grundsätzlich:

  • der verwendete Zielname konnte für diesen Aufruf aufgelöst werden, sofern ein Name angegeben wurde;
  • eine Zieladresse wurde ausgewählt;
  • der Client konnte ein ICMP-Echo-Paket absenden;
  • das Paket erreichte ein antwortendes System;
  • eine ICMP-Echo-Antwort erreichte den Client;
  • der ICMP-Hin- und Rückweg funktionierte für diese Paketgröße und diesen Zeitpunkt.

Ping kann zusätzlich Hinweise liefern auf:

  • Antwortzeit;
  • Paketverlust;
  • wechselnde Antwortzeiten;
  • ausgewählte IPv4- oder IPv6-Adresse;
  • grobe Erreichbarkeit eines Systems.

Das antwortende System muss jedoch nicht zwingend der erwartete Anwendungsserver sein. Bei virtuellen IP-Adressen, Load Balancern, Firewalls oder falsch aufgelösten Namen kann ein anderes System antworten.


7.9.5 Was Ping nicht beweist

Ein erfolgreicher Ping beweist nicht:

  • dass ein bestimmter TCP-Port geöffnet ist;
  • dass ein UDP-Dienst funktioniert;
  • dass der erwartete Prozess läuft;
  • dass der Dienst an der richtigen Adresse lauscht;
  • dass TLS funktioniert;
  • dass das Zertifikat gültig ist;
  • dass der richtige virtuelle Host ausgewählt wird;
  • dass ein Reverse Proxy das Backend erreicht;
  • dass ein Load Balancer ein gesundes Backend besitzt;
  • dass ein Proxy die Verbindung zulässt;
  • dass eine Anmeldung möglich ist;
  • dass der Benutzer ausreichend berechtigt ist;
  • dass Datenbank, API oder Verzeichnisdienst verfügbar sind;
  • dass größere Pakete oder Datenübertragungen funktionieren;
  • dass die eigentliche Anwendung dieselbe IP-Adresse wie Ping verwendet;
  • dass der vollständige Benutzerablauf funktioniert.

Ebenso beweist ein fehlgeschlagener Ping nicht automatisch, dass der Server oder die Anwendung ausgefallen ist. ICMP kann absichtlich blockiert, begrenzt oder niedriger priorisiert werden, während der eigentliche Anwendungsdienst weiterhin erreichbar ist.


7.9.6 Fehlerumfang bestimmen

Vor technischen Änderungen muss der Umfang des Fehlers festgestellt werden.

Zu prüfen sind:

  • Ist nur ein Benutzer betroffen?
  • Ist nur ein Client betroffen?
  • Ist nur ein Betriebssystem betroffen?
  • Ist nur ein Standort oder VLAN betroffen?
  • Tritt der Fehler nur über VPN auf?
  • Tritt der Fehler nur bei WLAN oder nur bei LAN auf?
  • Sind alle Benutzer betroffen?
  • Funktioniert die Anwendung intern, aber nicht extern?
  • Funktioniert sie über IPv4, aber nicht über IPv6?
  • Betrifft der Fehler nur einen bestimmten Funktionsbereich?
  • Tritt der Fehler dauerhaft oder nur zeitweise auf?
  • Seit welchem Zeitpunkt besteht der Fehler?
  • Welche Änderung erfolgte unmittelbar davor?

Geeignete Vergleichstests:

VergleichMögliche Eingrenzung
gleicher Benutzer an anderem Clientclientbezogener Fehler
anderer Benutzer am gleichen Clientbenutzerbezogener Fehler
gleicher Client in anderem NetzNetzwerkpfad oder standortbezogene Regel
Zugriff mit und ohne VPNVPN-Route, DNS, Proxy, Firewall oder MTU
IPv4 und IPv6 getrenntadressfamilienbezogener Fehler
direkter Anwendungstest und Zugriff über ProxyProxy- oder Reverse-Proxy-Fehler
lokaler Test auf dem Server und entfernter TestDienstfehler oder externer Netzwerkpfad
einfacher Endpunkt und vollständiger BenutzerablaufBackend- oder Anwendungsfehler

Kreuztests dürfen nur kontrolliert durchgeführt werden. Produktive Zugangsdaten oder vertrauliche Daten dürfen nicht ungeschützt in Diagnoseausgaben übernommen werden.


7.9.7 Ausgangszustand sichern

Vor einem Neustart oder einer Konfigurationsänderung sollten mindestens folgende Informationen gesichert werden:

  • genaue Fehlermeldung;
  • Screenshot oder vollständiger Fehlertext;
  • Zeitpunkt einschließlich Zeitzone;
  • betroffener Benutzer;
  • betroffener Client;
  • verwendetes Netzwerk;
  • verwendeter Servername;
  • verwendete Zieladresse;
  • Port und Protokoll;
  • URL oder Ressourcenpfad;
  • Proxy- und VPN-Zustand;
  • relevante Clientprotokolle;
  • relevante Serverprotokolle;
  • Reverse-Proxy- oder Load-Balancer-Protokolle;
  • Dienststatus;
  • Listener und Bindungsadresse;
  • letzte Änderungen;
  • Vergleich mit einem funktionierenden Client.

Ein vorschneller Neustart kann flüchtige Hinweise beseitigen, beispielsweise:

  • bestehende Verbindungen;
  • Fehlerzustände;
  • temporäre Protokolle;
  • Speicherauslastung;
  • Portbelegung;
  • Prozesszustand;
  • Warteschlangen;
  • reproduzierbare Zeitüberschreitungen.

Änderungen dürfen erst nach Sicherung des Ausgangszustands erfolgen.


7.9.8 Tatsächliches Ziel der Anwendung bestimmen

Vor jedem Port- oder Protokolltest muss geklärt werden, welches Ziel die Anwendung wirklich anspricht.

Zu erfassen sind:

Anwendung:
Benutzerfunktion:
Servername:
Vollständiger DNS-Name:
Verwendete IP-Adresse:
IPv4 oder IPv6:
Transportprotokoll:
Port:
Anwendungsprotokoll:
URL oder Ressourcenpfad:
Proxy:
VPN:
Load Balancer oder Reverse Proxy:
Fehlerzeitpunkt:

Die Anwendungskonfiguration kann vom vermuteten Standard abweichen.

Mögliche Einflussquellen:

  • explizit eingetragener Servername;
  • vollständige URL;
  • abweichender Port;
  • Hosts-Datei;
  • DNS-Suffix;
  • Suchdomäne;
  • Service-Discovery;
  • Umgebungsvariable;
  • Proxykonfiguration;
  • PAC-Datei;
  • Reverse Proxy;
  • Load Balancer;
  • lokale Anwendungskonfiguration;
  • gespeicherte Sitzung oder zwischengespeicherte Adresse;
  • IPv4- oder IPv6-Verwendung;
  • mandanten-, standort- oder benutzerabhängige Konfiguration;
  • Umleitungen innerhalb der Anwendung.

Besonders wichtig:

  • Ein Ping auf den Servernamen kann eine andere Adresse verwenden als die Anwendung.
  • Ein Proxy kann die eigentliche Verbindung stellvertretend aufbauen.
  • Ein Load Balancer kann mehrere Backendserver verwenden.
  • Ein Browser kann einen anderen Resolver oder einen eigenen Proxyweg verwenden.
  • Eine Anwendung kann eine alte Adresse zwischengespeichert haben.
  • Ein direkter Aufruf per IP-Adresse verändert bei HTTPS möglicherweise SNI, Hostname und Zertifikatsprüfung.

Die im Fehlerzeitpunkt verwendete Zieladresse sollte aus der Anwendung, einem Verbindungsprotokoll oder einem Paketmitschnitt bestätigt werden.


7.9.9 Namensauflösung prüfen

Windows:

Resolve-DnsName -Name <Servername> -Type A
Resolve-DnsName -Name <Servername> -Type AAAA

Linux:

getent ahosts <Servername>
dig <Servername> A
dig <Servername> AAAA

macOS:

dscacheutil -q host -a name <Servername>
dig <Servername> A
dig <Servername> AAAA

Zu vergleichen sind:

  • die von der Anwendung verwendete Adresse;
  • die von ping angezeigte Adresse;
  • die von curl -v verwendete Adresse;
  • A- und AAAA-Antworten;
  • die Antworten verschiedener DNS-Server;
  • interne und öffentliche DNS-Antworten;
  • das Verhalten mit und ohne VPN.

Ein erfolgreicher Ping auf einen Namen beweist nur, dass für diesen Ping-Aufruf eine Namensauflösung möglich war. Die Antwort kann aus DNS, einer Hosts-Datei oder einem anderen lokalen Namensauflösungsverfahren stammen.

DNS-Caches sollten nicht als erste Maßnahme gelöscht werden. Zuerst muss dokumentiert werden, welche Adresse aktuell verwendet wird und warum sie falsch sein könnte.


7.9.10 TCP-Port gezielt prüfen

Windows:

Test-NetConnection `
  -ComputerName <Servername> `
  -Port <Port> `
  -InformationLevel Detailed

Wichtige Felder:

ComputerName
RemoteAddress
RemotePort
InterfaceAlias
SourceAddress
TcpTestSucceeded

Linux und macOS:

nc -vz <Servername> <Port>

Ein erfolgreicher TCP-Test beweist:

  • der verwendete Name wurde aufgelöst;
  • der Client konnte die verwendete Adresse erreichen;
  • der TCP-Verbindungsaufbau zum angegebenen Port wurde abgeschlossen.

Er beweist nicht:

  • dass auf dem Port der erwartete Dienst läuft;
  • dass TLS funktioniert;
  • dass die Anwendung eine gültige Antwort liefert;
  • dass eine Anmeldung möglich ist;
  • dass der vollständige Geschäftsprozess funktioniert.

7.9.11 TCP-Fehler richtig interpretieren

ErgebnisBedeutungNächster Nachweis
TcpTestSucceeded : TrueTCP-Verbindungsaufbau war möglichAnwendungsprotokoll und TLS prüfen
Connection refusedZiel oder zwischengeschaltetes System hat die Verbindung aktiv abgelehntListener, Port und Serverprotokoll prüfen
Verbindungs-TimeoutKeine rechtzeitige TCP-AntwortFirewall, Rückweg, Routing, Überlastung oder falsche Adresse untersuchen
Name nicht gefundenZielname konnte nicht aufgelöst werdenNamensauflösung prüfen
Verbindung wird sofort getrenntDienst lehnt Sitzung ab oder falsches Protokoll wird verwendetDienst- und Anwendungsprotokoll prüfen
Verbindung beginnt, bleibt dann hängenAnwendung, TLS, Backend, Paketverlust oder Pfad-MTU möglichProtokolle und Paketverlauf untersuchen

Ein Timeout beweist nicht automatisch eine Firewallblockierung. Auch ein falscher Rückweg, ein überlasteter Dienst, ein fehlerhafter Load Balancer oder eine falsche IP-Adresse können zu einem Timeout führen.


7.9.12 Anwendungsprotokoll statt nur Port prüfen

Der Test muss zum tatsächlichen Dienst passen.

DienstGeeigneter Funktionstest
HTTP oder HTTPScurl -v mit vollständiger URL
SSHssh -vvv <Benutzer>@<Servername>
DNSResolve-DnsName oder dig gegen den vorgesehenen DNS-Server
SMBZugriff auf die konkrete Freigabe testen
RDPkontrollierter Verbindungsversuch mit dem RDP-Client
Datenbanknativen Datenbankclient mit einer sicheren Leseabfrage verwenden
APIvorgesehenen Endpunkt, Methode, Header und Authentifizierung prüfen
herstellerspezifischer DienstDiagnoseclient oder dokumentierten Protokolltest des Herstellers verwenden

Ein erfolgreicher Test auf TCP 3389 beweist beispielsweise nur, dass der Port erreichbar ist. Er beweist noch keine funktionierende RDP-Anmeldung oder Sitzung.

curl ist für HTTP-, HTTPS- und weitere von curl unterstützte Protokolle geeignet. Ein beliebiger TCP-Dienst darf nicht automatisch mit einer HTTP-Anfrage getestet werden.


7.9.13 HTTP und HTTPS prüfen

curl -v --connect-timeout 5 \
  "https://<Servername>:<Port>/<Pfad>"

Die Ausgabe wird schrittweise ausgewertet:

  1. Welche IP-Adresse wird verwendet?
  2. Wird eine TCP-Verbindung aufgebaut?
  3. Beginnt der TLS-Handshake?
  4. Welches Zertifikat wird präsentiert?
  5. Wird die Zertifikatsprüfung erfolgreich abgeschlossen?
  6. Welche HTTP-Anfrage wird gesendet?
  7. Welcher HTTP-Statuscode wird empfangen?
  8. Erfolgt eine Umleitung?
  9. Antwortet ein Reverse Proxy oder der erwartete Anwendungsserver?
  10. Wird eine Anwendungsfehlermeldung zurückgegeben?

Wichtige HTTP-Ergebnisse:

StatusEinordnung
2xxAnfrage wurde auf HTTP-Ebene erfolgreich verarbeitet
3xxUmleitung; Ziel im Location-Header prüfen
401Anwendung erreicht, Authentifizierung erforderlich oder fehlgeschlagen
403Anwendung erreicht, Zugriff wird verweigert
404Dienst antwortet, angeforderter Pfad oder virtuelle Zuordnung fehlt
407Proxy verlangt eine Authentifizierung
5xxServer, Gateway oder Backend meldet einen Fehler

Auch eine gültige HTTP-Fehlerantwort beweist, dass bereits mehrere Prüfebenen erfolgreich durchlaufen wurden. Sie beweist jedoch nicht, dass die benötigte Benutzerfunktion arbeitet.


7.9.14 Bestimmte IP-Adresse mit richtigem Hostnamen testen

Bei HTTPS sollte nicht einfach die IP-Adresse in die URL eingesetzt werden. Dadurch können sich SNI, Host-Header und Zertifikatsprüfung verändern.

Mit curl kann ein Servername kontrolliert einer bestimmten Adresse zugeordnet werden:

curl -v \
  --resolve <Servername>:<Port>:<IP-Adresse> \
  "https://<Servername>:<Port>/<Pfad>"

Damit bleiben der Servername in der URL, der HTTP-Host und die TLS-SNI-Angabe erhalten, während die Verbindung gezielt zur angegebenen IP-Adresse aufgebaut wird.

Dieser Test ist hilfreich bei:

  • mehreren A- oder AAAA-Adressen;
  • Load Balancern;
  • geplanten DNS-Änderungen;
  • einem einzelnen verdächtigen Backend;
  • dem Vergleich alter und neuer Zieladressen.

Das Ergebnis gilt nur für die getestete Kombination aus Name, Adresse, Port und Pfad.


7.9.15 TLS kurz prüfen

Für HTTPS oder andere TLS-Dienste:

openssl s_client \
  -connect <Servername>:<Port> \
  -servername <Servername> \
  -verify_hostname <Servername> \
  -verify_return_error

Zu prüfen sind:

  • wird überhaupt eine TCP-Verbindung aufgebaut?
  • beginnt der TLS-Handshake?
  • wird der richtige Servername per SNI verwendet?
  • stimmt der Zertifikatsname mit dem Servernamen überein?
  • ist die Zertifikatskette vollständig?
  • vertraut der verwendete Client der ausstellenden Zertifizierungsstelle?
  • sind Zertifikat und Zwischenzertifikate gültig?
  • wird eine gemeinsame TLS-Version beziehungsweise Cipher Suite gefunden?
  • verlangt der Server ein Clientzertifikat?

Die Vertrauensstellung von OpenSSL kann sich vom Zertifikatsspeicher der eigentlichen Anwendung unterscheiden. Ein erfolgreicher OpenSSL-Test beweist deshalb nicht automatisch, dass jeder Client dem Zertifikat vertraut.

Zertifikatsprüfungen dürfen nicht dauerhaft mit Optionen wie -k oder --insecure umgangen werden. Die ausführliche TLS-Diagnose erfolgt auf Seite 7.14.


7.9.16 Proxy und anwendungsspezifischen Verbindungsweg prüfen

Eine Anwendung kann einen Proxy verwenden, obwohl ein direkter Porttest erfolgreich ist. Umgekehrt kann ein direkter Test scheitern, während der Zugriff ausschließlich über einen Proxy vorgesehen ist.

Windows – WinHTTP-Konfiguration:

netsh winhttp show proxy

Umgebungsvariablen in PowerShell:

Get-ChildItem Env: |
  Where-Object Name -Match '^(HTTP|HTTPS|NO)_PROXY$'

Linux:

env | grep -iE '^(http|https|no)_proxy='

macOS:

scutil --proxy

env | grep -iE '^(http|https|no)_proxy='

Zusätzlich zu prüfen:

  • eigene Proxyeinstellung der Anwendung;
  • Browser- oder Benutzerproxy;
  • PAC-Datei;
  • Proxy-Bypassliste;
  • Proxy-Authentifizierung;
  • Abweichung zwischen WinHTTP und benutzerbezogenen Einstellungen;
  • unterschiedliche Regeln für interne und externe Namen;
  • VPN-abhängige Proxykonfiguration.

netsh winhttp show proxy zeigt nur die WinHTTP-Konfiguration. Daraus darf nicht automatisch auf die Konfiguration jedes Browsers oder jeder Anwendung geschlossen werden.


7.9.17 Listener auf dem Server prüfen

Wenn der TCP-Port von außen nicht erreichbar ist, muss geprüft werden, ob der Dienst auf dem Server tatsächlich lauscht.

Windows:

Get-NetTCPConnection `
  -LocalPort <Port> `
  -State Listen |
  Select-Object LocalAddress, LocalPort, State, OwningProcess

Zugehörigen Prozess prüfen:

Get-Process -Id <PID>

Linux:

sudo ss -lntp

macOS:

sudo lsof -nP \
  -iTCP:<Port> \
  -sTCP:LISTEN

Zu prüfen sind:

  • richtiger Port;
  • erwarteter Prozess;
  • lokale Bindungsadresse;
  • IPv4- oder IPv6-Bindung;
  • Dienststatus;
  • mehrere konkurrierende Prozesse;
  • unerwartete Portänderung.

Typische Bindungsbefunde:

BindungsadresseBedeutung
127.0.0.1nur lokale IPv4-Verbindungen
::1nur lokale IPv6-Verbindungen
konkrete Serveradressenur über diese Adresse beziehungsweise Schnittstelle
0.0.0.0alle lokalen IPv4-Adressen
[::]alle lokalen IPv6-Adressen; zusätzliches IPv4-Verhalten ist systemabhängig

Ein Dienst, der ausschließlich auf 127.0.0.1 lauscht, kann lokal funktionieren und trotzdem von entfernten Clients nicht erreichbar sein.


7.9.18 Lokalen und entfernten Zugriff vergleichen

Auf dem Server kann zunächst ein lokaler Anwendungstest durchgeführt werden:

curl -v \
  "http://127.0.0.1:<Port>/<Pfad>"

Bei einem namensabhängigen HTTPS-Dienst:

curl -v \
  --resolve <Servername>:<Port>:127.0.0.1 \
  "https://<Servername>:<Port>/<Pfad>"

Der lokale Test muss an die tatsächliche Listeneradresse angepasst werden. Ein Dienst, der nur an eine bestimmte Serveradresse gebunden ist, muss über diese Adresse geprüft werden.

Lokaler TestEntfernter TestWahrscheinlicher Bereich
schlägt fehlschlägt fehlDienst, Listener, Konfiguration oder Backend
funktioniertTCP-Port schlägt fehlListenerbindung, Hostfirewall oder Netzwerkpfad
funktioniertTCP-Port funktioniert, Protokoll schlägt fehlTLS, Reverse Proxy, virtueller Host oder Anwendung
funktioniertcurl vom Client funktioniertProblem im eigentlichen Client oder Benutzerkontext
funktioniert nur über Loopbackentfernt nicht erreichbarfalsche Listenerbindung wahrscheinlich
funktioniert über eine Serveradresseüber andere Adresse nichtSchnittstelle, Routing, DNS oder Firewallregel

Ein lokaler Erfolg beweist nicht, dass die vollständige externe Zugriffskette funktioniert.


7.9.19 Firewall, ACL, NAT und Load Balancer prüfen

ICMP und Anwendungsverkehr können durch unterschiedliche Regeln behandelt werden.

Zu prüfen sind:

  • lokale Firewall auf dem Client;
  • Hostfirewall auf dem Server;
  • Netzwerkfirewall zwischen den Systemen;
  • VLAN- oder Segment-ACL;
  • VPN-Regel;
  • NAT- oder Portweiterleitung;
  • Security Group oder Cloud-Firewall;
  • Load-Balancer-Listener;
  • Load-Balancer-Healthcheck;
  • Reverse-Proxy-Route;
  • Quellnetz- oder benutzerabhängige Regel;
  • Rückweg vom Server zum Client.

Mögliche Konstellationen:

  • ICMP ist erlaubt, TCP 443 wird verworfen.
  • TCP 443 erreicht den Load Balancer, aber kein Backend ist gesund.
  • Der Reverse Proxy besitzt keinen passenden virtuellen Host.
  • Eine NAT-Regel leitet auf den falschen internen Port weiter.
  • Eine Firewall erlaubt nur bestimmte Quellnetze.
  • Der Hinweg funktioniert, der Rückweg verwendet eine falsche Route.
  • Ein Hostname verweist noch auf eine alte virtuelle IP-Adresse.

Firewalls dürfen nicht pauschal deaktiviert werden. Stattdessen müssen Protokoll, Quelladresse, Zieladresse, Port, Richtung und Treffer der konkreten Regel geprüft werden.


7.9.20 Authentifizierung und Autorisierung abgrenzen

Wenn eine Anwendung eine Anmeldemaske, einen HTTP-Statuscode oder eine konkrete Berechtigungsfehlermeldung zurückgibt, wurde die Anwendungsebene bereits erreicht.

Zu unterscheiden sind:

  • Authentifizierung: Ist die angegebene Identität gültig?
  • Autorisierung: Darf diese Identität die gewünschte Ressource verwenden?
  • Anwendungszustand: Ist Konto, Mandant oder Lizenz in der Anwendung aktiv?
  • Verzeichnisdienst: Kann die Anwendung LDAP, Active Directory oder einen Identitätsanbieter erreichen?
  • Sitzung: Sind Cookie, Token oder Ticket gültig?
  • Zeit: Sind Client, Server und Identitätsdienst ausreichend synchronisiert?

Geeignete Kreuztests:

TestErkenntnis
anderer Benutzer am selben Clientbenutzerbezogener Fehler möglich
gleicher Benutzer an anderem Clientclientbezogener Fehler möglich
kontrolliertes TestkontoKonto- oder Rechteproblem eingrenzen
anonymer oder öffentlicher EndpunktNetzwerk und Anwendung ohne Benutzeranmeldung prüfen
lokales AnwendungskontoAbhängigkeit vom Verzeichnisdienst untersuchen

Kontosperren und produktive Benutzerkonten müssen berücksichtigt werden. Die Domänenanmeldung wird ausführlich auf Seite 7.10 behandelt.


7.9.21 Anwendungsabhängigkeiten untersuchen

Ein erreichbarer Frontend-Port bedeutet nicht, dass alle Backenddienste funktionieren.

Mögliche Abhängigkeiten:

  • Datenbank;
  • Verzeichnisdienst;
  • DNS;
  • API;
  • Dateifreigabe;
  • Objektspeicher;
  • Nachrichtenwarteschlange;
  • Cache;
  • Lizenzserver;
  • Identitätsanbieter;
  • externer Cloud-Dienst;
  • anderer Container oder interner Dienst.

Typische Befunde:

  • Reverse Proxy antwortet mit 502 Bad Gateway.
  • Anwendung antwortet mit 503 Service Unavailable.
  • Anmeldung bleibt hängen, weil der Identitätsdienst nicht erreichbar ist.
  • Startseite funktioniert, Datenabfrage schlägt jedoch fehl.
  • Healthcheck ist erfolgreich, Geschäftsprozess scheitert.
  • Dienst nimmt TCP-Verbindungen an, besitzt aber keine freien Worker.
  • Datenträger oder Dateisystem ist voll.
  • Container ist erreichbar, aber eine interne Abhängigkeit fehlt.

Anwendungs-, Proxy- und Backendprotokolle müssen anhand des gleichen Fehlerzeitpunkts korreliert werden.

Container-Neustartschleifen werden auf Seite 7.12 und volle Datenträger auf Seite 7.13 ausführlich behandelt.


7.9.22 UDP-Dienste korrekt prüfen

UDP besitzt keinen TCP-ähnlichen Verbindungsaufbau. Ein allgemeiner UDP-Porttest kann daher nicht sicher beweisen, dass der Dienst funktioniert.

Für UDP muss eine gültige Anfrage des tatsächlichen Anwendungsprotokolls gesendet und die Antwort geprüft werden.

DNS-Test unter Windows:

Resolve-DnsName `
  -Name <Abzufragender-Name> `
  -Server <DNS-Server>

DNS-Test unter Linux oder macOS:

dig @<DNS-Server> <Abzufragender-Name> A

Ein fehlender UDP-Fehler beweist nicht, dass:

  • der Port geöffnet ist;
  • der Dienst läuft;
  • die Anfrage den Server erreicht hat;
  • der Server eine gültige Antwort senden kann;
  • der Rückweg funktioniert.

Bei UDP-Diensten sind Anwendungsprotokoll, Serverprotokoll und gegebenenfalls ein kontrollierter Paketmitschnitt besonders wichtig.


7.9.23 IPv4 und IPv6 getrennt prüfen

Ein Name kann gleichzeitig A- und AAAA-Einträge besitzen. Ping und Anwendung können unterschiedliche Adressfamilien auswählen.

Mit curl getrennt testen:

curl -4 -v \
  "https://<Servername>:<Port>/<Pfad>"

curl -6 -v \
  "https://<Servername>:<Port>/<Pfad>"

Zu prüfen sind:

  • besitzt der Name A- und AAAA-Einträge?
  • welche Adresse verwendet die fehlerhafte Anwendung?
  • ist der Dienst an IPv4 und IPv6 gebunden?
  • besitzen beide Protokolle einen funktionierenden Rückweg?
  • gelten für IPv4 und IPv6 unterschiedliche Firewallregeln?
  • funktioniert der Proxy oder Load Balancer mit beiden Adressfamilien?
  • wird eine veraltete oder nicht erreichbare IPv6-Adresse veröffentlicht?

Wenn ausschließlich IPv6 fehlschlägt, muss der IPv6-Pfad oder der AAAA-Eintrag korrigiert werden. IPv6 sollte nicht ohne Ursachenanalyse dauerhaft deaktiviert werden.


7.9.24 Paketgröße und Übertragungsverhalten berücksichtigen

Ein kleiner ICMP-Ping kann funktionieren, während größere Anwendungsdaten hängen bleiben.

Mögliche Ursachen:

  • fehlerhafte Path-MTU-Ermittlung;
  • blockierte erforderliche ICMP-Fehlermeldungen;
  • Fragmentierungsproblem;
  • Paketverlust;
  • fehlerhafter VPN-Tunnel;
  • Überlastung;
  • asymmetrischer Pfad;
  • fehlerhafte Netzwerkhardware.

Typische Hinweise:

  • TCP-Verbindung wird aufgebaut, aber TLS bleibt während des Handshakes hängen.
  • Kleine Webseiten funktionieren, Downloads brechen ab.
  • Anwendung funktioniert ohne VPN, aber nicht über den Tunnel.
  • Wiederholte TCP-Übertragungen sind im Paketmitschnitt sichtbar.
  • Fehler tritt erst ab einer bestimmten Datenmenge auf.

Ein erfolgreicher Standard-Ping darf deshalb nicht als vollständiger Nachweis eines fehlerfreien Datenpfads verwendet werden.


7.9.25 Paketmitschnitt kontrolliert einsetzen

Linux oder macOS:

sudo tcpdump -ni <Interface> \
  host <IP-Adresse> and port <Port>

Alternativ kann Wireshark mit einem passenden Erfassungsfilter verwendet werden.

Typische Beobachtungen:

BeobachtungEinordnung
wiederholte SYN-Pakete ohne Antwortkeine TCP-Antwort; Pfad, Regel oder Ziel prüfen
SYN wird mit RST beantwortetPort geschlossen oder Verbindung aktiv abgelehnt
SYN, SYN-ACK und ACK sichtbarTCP-Verbindung wurde aufgebaut
TCP-Verbindung wird danach sofort geschlossenDienst oder Protokoll lehnt Verbindung ab
TLS ClientHello ohne passende FortsetzungTLS-Pfad, Server oder Inspektion prüfen
TLS-Alertkonkrete TLS-Ursache auswerten
viele WiederholungenPaketverlust, Überlastung oder fehlerhafter Pfad möglich
Antwort verlässt den Server, erreicht Client aber nichtRückweg oder zwischengeschaltete Regel prüfen

Ein Paketmitschnitt beweist nur, was an der jeweiligen Erfassungsstelle sichtbar ist. Bei komplexen Pfaden können Mitschnitte auf Client, Server und einem zwischengeschalteten System erforderlich sein.

Paketmitschnitte dürfen nur mit entsprechender Berechtigung erstellt und müssen datenschutzgerecht gespeichert werden.


7.9.26 Systematischer Diagnoseablauf

  1. Fehler aufnehmen
    Anwendung, Benutzer, Client, Zeitpunkt, Meldung und ursprüngliche Benutzerfunktion dokumentieren.

  2. Umfang bestimmen
    Einen Benutzer, einen Client, ein Netz oder alle Benutzer unterscheiden.

  3. Exaktes Ziel bestimmen
    Servername, Adresse, Port, Protokoll, Pfad und Verbindungsweg erfassen.

  4. Namensauflösung prüfen
    A- und AAAA-Antworten sowie tatsächlich verwendete Adresse vergleichen.

  5. Ping korrekt bewerten
    Nur ICMP-Erreichbarkeit als bestätigt betrachten.

  6. Transportprotokoll bestimmen
    TCP und UDP unterscheiden.

  7. TCP-Port oder UDP-Anwendung prüfen
    Einen zum tatsächlichen Protokoll passenden Test verwenden.

  8. Listener kontrollieren
    Port, Prozess und Bindungsadresse auf dem Server prüfen.

  9. Lokalen Anwendungstest durchführen
    Dienst auf dem Server über den vorgesehenen Namen, Port und Pfad testen.

  10. Externen Anwendungstest durchführen
    Denselben Dienst vom betroffenen Client aus prüfen.

  11. TLS untersuchen
    SNI, Zertifikat, Vertrauenskette und Protokollkompatibilität prüfen.

  12. Proxy und VPN berücksichtigen
    Tatsächlichen Verbindungsweg der Anwendung nachvollziehen.

  13. Anwendungsantwort auswerten
    Statuscode, Protokollmeldung, Umleitung oder Authentifizierungsfehler bestimmen.

  14. Abhängigkeiten prüfen
    Datenbank, Identitätsdienst, API, Speicher oder andere Backends untersuchen.

  15. Protokolle korrelieren
    Client-, Server-, Proxy- und Anwendungsprotokolle auf denselben Zeitraum begrenzen.

  16. Bei Bedarf Paketverlauf erfassen
    SYN, RST, TLS-Alert, Wiederholungen und Rückweg untersuchen.

  17. Hypothese formulieren
    Erwartetes Prüfergebnis und möglichen Gegenbeweis festlegen.

  18. Eine kontrollierte Änderung durchführen
    Risiko, Rückweg und Erfolgskriterium dokumentieren.

  19. Vollständige Funktion prüfen
    Nicht nur Ping oder Port, sondern den ursprünglichen Benutzerablauf testen.

  20. Nachkontrolle durchführen
    Protokolle, Überwachung und andere Benutzerfunktionen prüfen.


7.9.27 Befundmatrix

BefundMögliche ErklärungNächster Nachweis
Ping auf IP funktioniert, Name nichtNamensauflösungsproblemA-, AAAA-, Hosts- und Resolverdaten prüfen
Ping auf Name verwendet falsche Adresseveralteter oder falscher Namenseintragautoritative und clientseitige Antwort vergleichen
Ping funktioniert, TCP-Port hat TimeoutPortverkehr wird verworfen oder Antwort fehltFirewall, Routing und Paketverlauf prüfen
Ping funktioniert, TCP-Port wird abgelehntkein Listener oder aktive AblehnungListener und Prozess auf dem Server prüfen
TCP-Port funktioniert, Verbindung wird sofort geschlossenfalsches Protokoll oder Dienst lehnt Sitzung abDienstprotokoll und Serverlogs prüfen
TCP funktioniert, TLS schlägt fehlZertifikat, SNI, TLS-Version oder Inspektioncurl -v oder openssl s_client auswerten
TLS funktioniert, HTTP 401Authentifizierung erforderlich oder fehlerhaftBenutzer-, Token- oder Identitätsanbieter prüfen
TLS funktioniert, HTTP 403fehlende Autorisierung oder RichtlinieRollen und Zugriffsrichtlinie prüfen
HTTP 404falscher Pfad oder virtuelle ZuordnungURL, Host-Header und Proxyroute prüfen
HTTP 407Proxy-Authentifizierung erforderlichProxyweg und Benutzerkontext prüfen
HTTP 502Gateway erreicht Backend nicht korrektReverse-Proxy- und Backendprotokolle prüfen
HTTP 503Dienst vorübergehend nicht verfügbarHealthcheck, Kapazität und Abhängigkeiten prüfen
lokal funktioniert, entfernt nichtBindung, Hostfirewall oder NetzwerkpfadListeneradresse und Regeln vergleichen
curl funktioniert, Anwendung nichtanwendungsspezifische KonfigurationProxy, Cache, Zertifikatsspeicher und Benutzerkontext prüfen
nur ein Client betroffenlokaler Clientfehleranderen Client und gleichen Benutzer testen
nur ein Benutzer betroffenKonto, Profil, Rechte oder Sitzunganderes Konto am gleichen Client testen
nur über VPN betroffenRoute, DNS, MTU oder VPN-Regelmit und ohne VPN vergleichen
nur IPv6 betroffenAAAA-, IPv6-Routing- oder Firewallfehlercurl -4 und curl -6 vergleichen
kleine Anfragen funktionierenMTU, Paketverlust oder Kapazität möglichPaketverlauf und größere Übertragung prüfen
Port erreichbar, Geschäftsprozess scheitertBackend oder Anwendungslogik fehlerhaftvollständigen Ablauf und Abhängigkeiten prüfen

7.9.28 Mögliche Ursachen und erforderliche Nachweise

Mögliche UrsacheErforderlicher Nachweis
falscher PortAnwendungskonfiguration und tatsächlicher Listener zeigen unterschiedliche Ports
Dienst gestopptkein Listener vorhanden und Dienststatus beziehungsweise Logs bestätigen den Ausfall
falsche ListenerbindungDienst lauscht nur auf Loopback oder einer anderen Adresse
Hostfirewall blockiert Portkonkrete Regel oder Protokoll zeigt den verworfenen Verbindungsversuch
Netzwerkfirewall oder ACLTrefferprotokoll oder beidseitiger Paketmitschnitt bestätigt die Unterbrechung
falscher DNS-EintragAnwendung verwendet eine nachweislich falsche oder veraltete Adresse
fehlerhafter IPv6-PfadIPv6-Test scheitert reproduzierbar, IPv4-Test funktioniert
ProxyfehlerAnwendung verwendet einen fehlerhaften Proxyweg, während direkter Test anders reagiert
Reverse-Proxy-FehlerProxy antwortet, passende Route oder gesundes Backend fehlt
Load-Balancer-Fehlervirtuelle Adresse ist erreichbar, aber Healthcheck oder Backendzustand ist fehlerhaft
TLS-FehlerTLS-Ausgabe zeigt Zertifikats-, SNI- oder Protokollproblem
fehlende AuthentifizierungAnwendung antwortet mit konkretem Anmelde- oder Tokenfehler
fehlende AutorisierungAnmeldung funktioniert, Ressourcenzugriff wird nachvollziehbar verweigert
ausgefallene BackendabhängigkeitFrontend antwortet, Serverlogs belegen den Fehler der Abhängigkeit
RessourcenengpassFehler korreliert mit CPU, Speicher, Worker-, Verbindungs- oder Datenträgerengpass
Path-MTU- oder PaketverlustproblemVerbindung beginnt, größere Übertragung scheitert und Paketverlauf bestätigt Wiederholungen oder Größenproblem
clientseitiger Anwendungsfehlergleicher Benutzer und Dienst funktionieren mit einem anderen Client
benutzerbezogener Fehleranderer Benutzer arbeitet am gleichen Client erfolgreich

7.9.29 Kontrollierte Maßnahmen, Risiko und Rückweg

MaßnahmeRisikoRückweg
falschen Servernamen oder Port korrigierenVerbindung erreicht anderes Zielursprüngliche Konfiguration wiederherstellen
gestoppten Dienst kontrolliert startenDienst kann erneut fehlschlagen oder Last erzeugenDienstzustand und Starttyp dokumentieren
Listenerbindung korrigierenDienst wird auf zusätzlichen Netzen erreichbarvorherige Bindung wiederherstellen
minimale Firewallfreigabe ergänzenzusätzliche Erreichbarkeitkonkrete Regel entfernen oder deaktivieren
falschen DNS-Eintrag korrigierenClients wechseln auf neues Zielvorherigen Wert und TTL dokumentieren
Reverse-Proxy-Route korrigierenandere Anwendungen können betroffen seinvorherige Proxykonfiguration zurückspielen
fehlerhaftes Backend aus dem Load Balancer nehmengeringere KapazitätBackend nach erfolgreicher Prüfung wieder aufnehmen
Proxykonfiguration korrigierenanderer Netzwerkpfad wird verwendetursprüngliche Proxywerte wiederherstellen
Zertifikatskette korrigierenTLS-Dienst muss eventuell neu geladen werdenvorherige Zertifikatskonfiguration sichern
Anwendungscache kontrolliert leerenSitzungs- oder Anmeldedaten können verloren gehenBenutzer informieren und Ausgangszustand dokumentieren
Backenddienst wiederherstellenabhängige Anwendungen können beeinflusst werdendienstspezifischen Wiederherstellungsplan verwenden
Ressource freigeben oder Kapazität erhöhenLastverteilung kann sich ändernvorherige Kapazitäts- oder Ressourcenwerte sichern

Pro Maßnahme sollte möglichst nur eine relevante Variable verändert werden.


7.9.30 Verifikation

Nach einer Maßnahme müssen mindestens folgende Prüfungen erfolgen:

  • Servername wird in die erwartete Adresse aufgelöst;
  • richtige IPv4- oder IPv6-Adresse wird verwendet;
  • vorgesehener TCP- oder UDP-Dienst ist erreichbar;
  • richtiger Prozess lauscht auf dem vorgesehenen Port;
  • TLS-Handshake und Zertifikatsprüfung funktionieren;
  • Anwendung liefert die erwartete Protokollantwort;
  • Anmeldung funktioniert;
  • benötigte Ressource kann geöffnet werden;
  • vollständiger ursprünglicher Benutzerablauf funktioniert;
  • Frontend und Backend arbeiten zusammen;
  • Test funktioniert aus dem betroffenen Netz;
  • bei größerem Umfang funktionieren mehrere repräsentative Clients;
  • keine neuen Fehler erscheinen in Client-, Server- oder Proxyprotokollen;
  • temporäre Freigaben oder Diagnoseänderungen wurden zurückgenommen;
  • Firewall und Zertifikatsprüfung sind weiterhin aktiv;
  • Überwachung prüft nicht nur Ping, sondern auch die Anwendungsfunktion;
  • keine andere Anwendung wurde durch die Änderung beeinträchtigt.

Ein erfolgreicher Ping oder Porttest allein ist keine ausreichende Verifikation.


7.9.31 Präventionsmaßnahmen

  • Anwendungserreichbarkeit zusätzlich zu ICMP überwachen;
  • TCP-Port, TLS und einen geeigneten Anwendungsendpunkt prüfen;
  • kritische Geschäftsprozesse mit synthetischen Funktionstests überwachen;
  • Servername, Port, Protokoll und Abhängigkeiten dokumentieren;
  • DNS-Änderungen mit TTL und Rückweg planen;
  • Zertifikatsablauf und vollständige Zertifikatskette überwachen;
  • Proxy-, VPN- und Firewallregeln dokumentieren;
  • Load-Balancer-Healthchecks an die tatsächliche Dienstfunktion anpassen;
  • Listenerbindungen und Portzuordnungen dokumentieren;
  • IPv4 und IPv6 getrennt überwachen;
  • Kapazitätsgrenzen für Worker, Verbindungen, CPU, Speicher und Datenträger überwachen;
  • Frontend- und Backendprotokolle zeitlich synchronisieren;
  • Änderungen an DNS, Firewall, Proxy und Anwendung nachvollziehbar protokollieren;
  • Wiederherstellungs- und Rückfallverfahren testen;
  • Monitoring nicht auf „Host ist pingbar“ beschränken.

7.9.32 Typische Fehler bei der Diagnose

  • Einen erfolgreichen Ping mit einer funktionierenden Anwendung gleichsetzen.
  • Einen Ping als Test eines TCP- oder UDP-Ports interpretieren.
  • Einen anderen Port als den tatsächlich konfigurierten Port testen.
  • Die IP-Adresse statt des vorgesehenen HTTPS-Namens aufrufen.
  • SNI, Host-Header und Zertifikatsnamen ignorieren.
  • curl für einen nicht unterstützten oder nicht HTTP-basierten Dienst verwenden.
  • Einen allgemeinen UDP-Test als sicheren Funktionsnachweis betrachten.
  • Einen Timeout automatisch als Firewallfehler einstufen.
  • Connection refused und Timeout gleichsetzen.
  • Nur einen lokalen Test auf dem Server durchführen.
  • Nur prüfen, ob der Prozess läuft, statt den Listener zu kontrollieren.
  • Nur prüfen, ob der Port offen ist, statt das Anwendungsprotokoll zu testen.
  • Eine HTTP-Antwort automatisch als vollständigen Anwendungserfolg werten.
  • Einen Healthcheck mit dem eigentlichen Geschäftsprozess gleichsetzen.
  • Proxy, VPN, Load Balancer oder Reverse Proxy ignorieren.
  • IPv4 und IPv6 nicht getrennt prüfen.
  • Firewalls vollständig deaktivieren.
  • Zertifikatsprüfungen dauerhaft umgehen.
  • Vor der Protokollsicherung Dienste oder Server neu starten.
  • Zugangsdaten, Token oder vollständige Debugausgaben ungeschützt weitergeben.
  • Nach einer Änderung nur erneut pingen und die ursprüngliche Benutzerfunktion nicht testen.

7.9.33 Typische Prüfungsfragen

Warum beweist ein erfolgreicher Ping keine funktionierende Anwendung?

Ping prüft ICMP-Echo-Kommunikation. Die Anwendung kann einen anderen Transportweg, einen bestimmten TCP- oder UDP-Port, TLS, Authentifizierung und weitere Backenddienste benötigen.

Welcher Test sollte nach einem erfolgreichen Ping durchgeführt werden?

Zuerst müssen Zielname, Protokoll und Port der Anwendung bestimmt werden. Anschließend wird der konkrete TCP-Port oder das tatsächliche UDP-Anwendungsprotokoll geprüft.

Was bedeutet „Connection refused“?

Die TCP-Verbindung wurde aktiv abgelehnt. Häufig fehlt ein Listener auf dem Zielport oder eine Komponente lehnt die Verbindung gezielt ab. Der genaue Absender der Ablehnung muss bei Bedarf mit Protokollen oder einem Paketmitschnitt bestimmt werden.

Was bedeutet ein TCP-Timeout?

Der Verbindungsaufbau wurde nicht rechtzeitig abgeschlossen. Mögliche Ursachen sind eine verwerfende Firewallregel, ein falscher Netzwerkpfad, ein fehlender Rückweg, Überlastung oder eine falsche Zieladresse.

Warum sollte ein HTTPS-Dienst nicht nur über seine IP-Adresse getestet werden?

Virtuelle Hosts, TLS-SNI und Zertifikatsprüfung verwenden den Servernamen. Ein Aufruf über die IP-Adresse kann deshalb einen anderen Dienst oder ein anderes Zertifikat erreichen.

Was beweist ein erfolgreicher TCP-Porttest?

Er beweist, dass zum Testzeitpunkt eine TCP-Verbindung zur geprüften Adresse und zum geprüften Port aufgebaut werden konnte. Die Funktion des Anwendungsprotokolls ist damit noch nicht bewiesen.

Was bedeutet ein HTTP-Statuscode 401 oder 403 für die Netzwerkdiagnose?

Die Anwendung wurde erreicht und hat auf HTTP-Ebene geantwortet. Der Fehler liegt anschließend wahrscheinlich bei Authentifizierung, Autorisierung oder einer Anwendungsrichtlinie.

Warum ist ein allgemeiner UDP-Porttest nicht eindeutig?

UDP besitzt keinen verbindlichen Verbindungsaufbau. Ohne gültige Anwendungsanfrage und auswertbare Antwort lässt sich die Dienstfunktion nicht sicher bestätigen.

Was bedeutet es, wenn die Anwendung lokal auf dem Server funktioniert, vom Client aber nicht?

Der Dienst selbst arbeitet grundsätzlich. Danach müssen Listenerbindung, Hostfirewall, Netzwerkpfad, Proxy, Load Balancer und externe Namensauflösung geprüft werden.

Warum kann curl funktionieren, obwohl die eigentliche Anwendung fehlschlägt?

Die Anwendung kann einen anderen Proxy, Zertifikatsspeicher, DNS-Cache, Benutzerkontext, Authentifizierungsmechanismus oder zusätzliche Protokollfunktionen verwenden.

Warum reicht ein erfolgreicher Healthcheck nicht immer aus?

Ein Healthcheck kann nur einen einfachen Endpunkt prüfen. Datenbankzugriff, Anmeldung oder der eigentliche Geschäftsprozess können trotzdem fehlschlagen.


7.9.34 Checkliste

  •  ursprüngliche Benutzerfunktion dokumentiert
  •  genaue Fehlermeldung und Fehlerzeitpunkt erfasst
  •  betroffene Benutzer und Clients bestimmt
  •  vollständiger Servername erfasst
  •  verwendete Zieladresse bestätigt
  •  TCP oder UDP bestimmt
  •  richtiger Port bestimmt
  •  Protokoll und URL-Pfad bestimmt
  •  Ping nur als ICMP-Test bewertet
  •  A- und AAAA-Auflösung geprüft
  •  tatsächlich verwendete Adresse kontrolliert
  •  TCP-Port oder UDP-Anwendung geprüft
  •  Listener und zugehöriger Prozess geprüft
  •  Bindungsadresse kontrolliert
  •  lokaler Anwendungstest durchgeführt
  •  entfernter Anwendungstest durchgeführt
  •  TLS und Zertifikat geprüft
  •  Proxy- und VPN-Weg geprüft
  •  Firewall, ACL und Rückweg berücksichtigt
  •  Load Balancer oder Reverse Proxy geprüft
  •  Anwendungsantwort und Statuscode ausgewertet
  •  Authentifizierung und Autorisierung unterschieden
  •  Backendabhängigkeiten geprüft
  •  IPv4 und IPv6 getrennt getestet
  •  Client-, Server- und Proxyprotokolle korreliert
  •  Paketmitschnitt nur bei Bedarf und berechtigt erstellt
  •  Hypothese und Gegenbeweis formuliert
  •  Risiko und Rückweg vor Änderung dokumentiert
  •  nur eine kontrollierte Änderung durchgeführt
  •  vollständiger Benutzerablauf verifiziert
  •  temporäre Diagnoseänderungen zurückgenommen
  •  Ergebnis und Präventionsmaßnahme dokumentiert

7.9.35 Schnellreferenz

AufgabeWindowsLinuxmacOS
Pingping <Server>ping -c 4 <Server>ping -c 4 <Server>
NamensauflösungResolve-DnsName <Server>getent ahosts <Server>dscacheutil -q host -a name <Server>
A-EintragResolve-DnsName <Server> -Type Adig <Server> Adig <Server> A
AAAA-EintragResolve-DnsName <Server> -Type AAAAdig <Server> AAAAdig <Server> AAAA
TCP-PortTest-NetConnection <Server> -Port <Port>nc -vz <Server> <Port>nc -vz <Server> <Port>
HTTP oder HTTPScurl.exe -v <URL>curl -v <URL>curl -v <URL>
IPv4 mit curlcurl.exe -4 -v <URL>curl -4 -v <URL>curl -4 -v <URL>
IPv6 mit curlcurl.exe -6 -v <URL>curl -6 -v <URL>curl -6 -v <URL>
bestimmte Ziel-IPcurl.exe --resolve <Name>:<Port>:<IP> <URL>curl --resolve <Name>:<Port>:<IP> <URL>curl --resolve <Name>:<Port>:<IP> <URL>
ListenerGet-NetTCPConnection -State Listensudo ss -lntpsudo lsof -nP -iTCP -sTCP:LISTEN
WinHTTP-Proxynetsh winhttp show proxynicht zutreffendnicht zutreffend
SystemproxyAnwendungseinstellungen prüfenAnwendung und Umgebungsvariablen prüfenscutil --proxy
TLSopenssl s_client bei installierter OpenSSL-Versionopenssl s_clientopenssl s_client
PaketmitschnittWireshark oder freigegebenes Windows-Werkzeugtcpdump oder Wiresharktcpdump oder Wireshark

7.9.36 Quellen

Standards und RFCs

Offizielle Hersteller- und Projektdokumentation

Lokale Befehlsreferenzen

Die genaue Syntax kann von Betriebssystem und installierter Version abhängen. Maßgeblich ist die lokale Befehlsreferenz:

man ping
man nc
man curl
man ss
man lsof
man tcpdump
man dscacheutil
man scutil

Für diese Seite wurden keine Community-Berichte, Hersteller-Social-Media-Aussagen oder eigenen Laborergebnisse als Nachweis verwendet.