Fehlersuche und Diagnose in Netzwerken
Fehlersuche und Diagnose in Netzwerken
Fehlersuche und Diagnose in Netzwerken
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
<strong>Fehlersuche</strong> <strong>und</strong> <strong>Diagnose</strong> <strong>in</strong> <strong>Netzwerken</strong><br />
05.05.2011, C. Durrer / R. Petry
Wozu dieser Aufwand<br />
<br />
Die <strong>Fehlersuche</strong> bei Kommunikationsproblemen kann sehr aufwändig<br />
se<strong>in</strong><br />
<br />
<br />
<br />
Wenn z.B. der FTP Zugriff nicht funktionieren will<br />
Die Modbus Parameter des anzub<strong>in</strong>denen Gerätes nicht vollständig<br />
dokumentiert s<strong>in</strong>d<br />
Die BACnet Kommunikation nicht über den Router gehen will…<br />
In allen diesen Fällen kann viel Zeit e<strong>in</strong>gespart werden durch das<br />
„H<strong>in</strong>schauen“ der übermittelten Daten.<br />
Controls Masterfolie 2
Wie kann man Kommunikation analysieren<br />
<br />
<br />
<br />
Ethernet<br />
Um Ethernet Kommunikation (TCP/IP <strong>und</strong> UDP/IP) zu analysieren<br />
empfehlen wir die Freeware Wireshark(siehe FAQ 100569)<br />
Seriell (RS232 / RS485)<br />
Um Serial-S-Bus oder serieller Modbus zu analysieren empfehhlen<br />
wir die Software “Serialtest” von Frontl<strong>in</strong>e (ca. € 400.-)<br />
FDL<br />
Um FDL Kommunikation (z.B. Profibus DP, Profi-S-I/O oder Profi-S-<br />
Bus) zu analysieren empfehlen wir Profitrace(siehe FAQ 100298)<br />
Controls Masterfolie 3
Wireshark News<br />
Wireshark Verbesserungen (seit 1.0.0)<br />
<br />
<br />
<br />
<br />
<br />
<br />
Suche nach Retry telegrams<br />
Erweiterte Info “time to respond”<br />
Erweiterte Funktion “Jump to reques/response”<br />
Ether-S-I/O Protokoll wurde <strong>in</strong>tegriert<br />
Erweiterte Funktion “Expert <strong>in</strong>fo”<br />
Neue “Block download telegrams” <strong>in</strong>tegriert<br />
E<strong>in</strong>e grosse Anzahl von Gründen, die neue Version zu verwenden!<br />
Beachten Sie, dass die Version 1.5.x von Wireshark benötigt wird<br />
(verfügbar auf der DVD)<br />
Controls Masterfolie 4
Wireshark Voraussetzungen<br />
<br />
Verwenden Sie e<strong>in</strong>en Hub…<br />
Bei e<strong>in</strong>em Switches werden nicht alle Unicasts gesehen,<br />
nur Broadcasts s<strong>in</strong>d sichtbar.<br />
Controls Masterfolie 5
Wireshark Voraussetzungen<br />
<br />
…aber Hubs kann man nicht mehr kaufen…<br />
In den vergangenen Jahren wurden Hubs durch Switches ersetzt<br />
(was vernünftig ist), deshalb empfehlen wir zur Analyse e<strong>in</strong>en<br />
“Managed Ethernet Switch”:<br />
z.B. e<strong>in</strong>en ES-2108 from ZyXEL (ca. 150.- €)<br />
Controls Masterfolie 6
Wireshark Voraussetzungen<br />
<br />
…e<strong>in</strong> noch eleganterer (aber teurerer) Weg…<br />
Es existieren auch “USB tabs”, welche direkt <strong>in</strong> e<strong>in</strong> Netzwerk<br />
e<strong>in</strong>gefügt werden können:<br />
z.B. den ProfiTAP 10/100 (ca. 800 €)<br />
Controls Masterfolie 7
Wireshark Tipps (Ether-S-Bus)<br />
<br />
Sobald e<strong>in</strong>e Aufnahme gemacht wurde, kann diese analysiert<br />
werden; dazu ist e<strong>in</strong> Display Filter wichtig!<br />
suche nach Ether-S-Bus:<br />
sbus<br />
Bsp:<br />
Wireshark_SBus_Retries.pcap<br />
Controls Masterfolie 8
Wireshark Tipps (Ether-S-Bus)<br />
<br />
Bef<strong>in</strong>den sich Retry Telegramme im Trace<br />
Suche nach Ether-S-Bus retries (Wiederholungen)<br />
sbus.retry<br />
Bsp:<br />
Wireshark_SBus_Retries.pcap<br />
Controls Masterfolie 9
Wireshark Tipps (Ether-S-Bus)<br />
<br />
Wenn zu viele Stationan angezeigt s<strong>in</strong>d: ausfiltern!<br />
Display filter für Ether-S-Bus <strong>und</strong> nur e<strong>in</strong>e IP Station:<br />
sbus && (ip.addr == 172.23.2.15)<br />
Controls Masterfolie 10
Wireshark weiterführende Telegrammanalyse<br />
In vielen Fällen ist bereits mit diesen ersten Schritten die<br />
Ursache für die Kommunikationsstörung ersichtlich.<br />
Ist die Ursache auf den ersten Blick nicht zu erkennen sollten folgende<br />
Punkte überprüft werden (gern gemachte Fehler):<br />
Ist die IP Adresse (Gerät) überhaupt erreichbar <br />
Gehört die IP Adresse zum richtigen Gerät <br />
Stimmt die Checksumme <br />
Ist die Autentifizierung Erfolgreich <br />
Controls Masterfolie 11
Wireshark weiterführende Telegrammanalyse<br />
Ist die Ziel IP Adresse Erreichbar <br />
<br />
<br />
<br />
Ethernet Frames (Telegramme) s<strong>in</strong>d mit MAC Adressen adressiert<br />
Damit e<strong>in</strong> Gerät weiss, welche MAC Adresse e<strong>in</strong> anderes Gerät hat,<br />
wird jeweils e<strong>in</strong> ARP Request gesendet:<br />
<br />
<br />
Who has IP xxx.xxx.xxx.xxx (wenn das Gerät auf dem selben Subnetz ist)<br />
Who has IP xxx.xxx.xxx.xxx (wobei nach der IP Adresse des Routers gesucht wird,<br />
wenn das Zielgerät nicht auf der selben IP Subnetz ist)<br />
Die Tabelle der MAC wird regelmässig, aber langsam aufgefrischt<br />
Im Wireschark nach “ARP” filtern.<br />
Antworten alle Zieladressen <br />
Controls Masterfolie 12
Wireshark weiterführende Telegrammanalyse<br />
Nach ARP filtern<br />
Reihenfolge Sortieren<br />
<br />
<br />
Teilnehmer die auf den ARP request geantwortet haben.<br />
Nur mit diesen Geräten kann kommuniziert werden.<br />
Controls Masterfolie 13
Wireshark weiterführende Telegrammanalyse<br />
Gehört die IP Adresse zum richtigen Gerät <br />
<br />
Doppelt vergebene IP Adressen ausschliessen.<br />
Stimmt die MAC Adresse welche im ARP zu der IP angezeigt wird mit<br />
der MAC Adresse der PCD übere<strong>in</strong> <br />
Stimmt der angezeigte Gerätetyp <br />
Controls Masterfolie 14
Wireshark weiterführende Telegrammanalyse<br />
Werden die Telegramme fehlerfrei empfangen <br />
Das ist aus e<strong>in</strong>er korrekten Checksumme ersichtlich.<br />
Controls Masterfolie 15
Wireshark weiterführende Telegrammanalyse<br />
<br />
E<strong>in</strong>ige Funktionen wie z.B. E-Mail <strong>und</strong> FTP erfordern e<strong>in</strong>e<br />
Autentifizierung.<br />
Ist die Autentifizierung erfolgreich <br />
Autentifizierung fehlgeschlagen<br />
Controls Masterfolie 16
Wireshark Tipps (Ether-S-Bus)<br />
<br />
Wie viele Telegramme wurden von der PCD beantwortet<br />
Display filter für z.B. Ether-S-Bus <strong>und</strong> nur e<strong>in</strong>er IP Station:<br />
sbus && (ip.addr == 172.23.2.15)<br />
Um die Performance zu errechnen kann die Anzahl angezeiger<br />
Telegramme durch die Aufnahmezeit geteilt werden…<br />
Daumenregel: e<strong>in</strong> Ether-S-Bus Request wird <strong>in</strong>nert 10 ms<br />
bearbeitet (siehe die Präsentation von gestern von R. Beck)<br />
Controls Masterfolie 17
Wireshark Tipps<br />
<br />
<br />
Bemerkenswerte Ereignisse auf e<strong>in</strong>en Blick…<br />
Verwenden Sie die “Expert <strong>in</strong>fo” (Menü “Analyze”)<br />
<br />
Die folgenden Meldungsstufen existieren:<br />
Chat: Just chatt<strong>in</strong>g, nichts Spezielles<br />
Note: Bemerkung, noch nichts Spezielles (z.B. Retries)<br />
Warn<strong>in</strong>g: Da ist etwas seltsam…<br />
Error: Das ist e<strong>in</strong> Fehler (z.B. falscher CRC)<br />
Controls Masterfolie 18
Ethernet TCP<br />
<br />
<br />
Im Unterschied zu UDP ist TCP Verb<strong>in</strong>dungsbasiert<br />
Bevor Daten ausgetauscht werden, wird e<strong>in</strong>e Verb<strong>in</strong>dung erstellt:<br />
<br />
siehe Trace file file Wireshark_TCP_Syn.pcap<br />
Controls Masterfolie 19
Ethernet TCP<br />
<br />
Beim “Abbau” der Kommunikation wird diese Verb<strong>in</strong>dung auch wieder<br />
getrennt:<br />
siehe Trace file Wireshark_TCP_F<strong>in</strong>.pcap<br />
Controls Masterfolie 20
Ethernet TCP<br />
<br />
Zu bemerkende Punkte betreffend TCP<br />
Falls für jede Übermittlung e<strong>in</strong>es Frames e<strong>in</strong>e neue TCP<br />
Verb<strong>in</strong>dung geöffnet wird, wird die Anzahl Frames ca. verdreifacht<br />
(teilweise bei Modbus TCP)<br />
Wenn irgendwie möglich sollte diese<br />
Konstellation vermieden werden<br />
Wenn auf TCP-Ebene Timeouts auftreten (welche lange s<strong>in</strong>d),<br />
werden diese vor z.B. Modbus Timeouts abgewartet!<br />
Die Anzahl offener TCP Verb<strong>in</strong>dungen ist begrenzt<br />
(z.B. bei Modbus/TCP: 10 Connections maximal offen)<br />
Controls Masterfolie 21
Ethernet TCP / FTP<br />
<br />
FTP ist <strong>in</strong> dem S<strong>in</strong>ne speziell, dass 2 Verb<strong>in</strong>dungen verwendet<br />
werden, hier im Active Mode:<br />
<br />
<br />
Weitere Info betreffend FTP Active/Passive Mode<br />
Wireshark Beispiel: Wireshark_FTP_Successful.pcap<br />
Controls Masterfolie 22
Ethernet Modbus/TCP<br />
<br />
<br />
<br />
Vorgehen beim Konfigurieren von Modbus Verb<strong>in</strong>dungen (welche<br />
nicht klar def<strong>in</strong>iert s<strong>in</strong>d)<br />
<br />
<br />
<br />
<br />
Das “default mapp<strong>in</strong>g” entfernen<br />
E<strong>in</strong>en kle<strong>in</strong>en Bereich (<strong>in</strong> der Mitte des lesbaren Bereichs) von Medien<br />
zur Übertragung def<strong>in</strong>ieren<br />
Offset anpassen, damit das erste Element gelesen werden kann<br />
Bereich vergrössern, bis alle Daten gelesen werden können.<br />
Wenn möglich e<strong>in</strong>e korrekt funktionierende Kommunikation aufbauen<br />
<strong>und</strong> analysieren<br />
Bei der Kommunikation auf Exception codes achten (wenn der Server<br />
z.B. ke<strong>in</strong>en entsprechenden Bereich gemappt hat)<br />
Controls Masterfolie 23
Wireshark Hands-on<br />
Uebung 1<br />
Ke<strong>in</strong>e FTP Verb<strong>in</strong>dung möglich… Wieso<br />
Datei: Uebung1.pcap<br />
Uebung 2<br />
Emails können nicht versandt werden… Wieso<br />
Datei: Uebung2.pcap<br />
Uebung 3<br />
Emails können nicht versandt werden… Wieso<br />
Datei: Uebung3.pcap<br />
Controls Masterfolie 24
Wireshark Hands-on<br />
Uebung 4<br />
Die Modbus/TCP Kommunikation mit Gerät 10.20.60.164 funktioniert plötzlich<br />
nicht mehr (geht aber weiterh<strong>in</strong>g mit 10.20.60.163). Was könnte der Gr<strong>und</strong><br />
dafür se<strong>in</strong><br />
Datei: Uebung4.pcap<br />
Uebung 5<br />
Modbus/TCP Gerät 192.168.1.10 schreibt Coils auf die PCD, aber die<br />
gemappten Flags werden nicht geschrieben. Was könnte der Gr<strong>und</strong> se<strong>in</strong><br />
Datei: Uebung5.pcap<br />
Uebung 6<br />
Modbus/TCP (P-Bus) Kommunkation funktioniert nach e<strong>in</strong>em Neustart der<br />
PCD nicht mehr (PCD ist Modbus Master) Wo liegt die Ursache<br />
Datei: Uebung6.pcap<br />
Controls Masterfolie 25
Wireshark Uebung 1 Lösung<br />
Uebung 1<br />
Ke<strong>in</strong>e FTP Verb<strong>in</strong>dung möglich… Wieso<br />
Datei: Uebung1.pcap<br />
<br />
Nachdem der Benutzername “root1” übergeben wurde bei der<br />
Anmeldung, kommt die Antwort: Not logged <strong>in</strong><br />
Dieser Benutzer existiert nicht<br />
Controls Masterfolie 26
Wireshark Uebung 2 Lösung<br />
<br />
<br />
Damit die <strong>in</strong>teressanten Frames angezeigt werden: filtern mit “!http”<br />
(alles ausser http) oder “smtp”<br />
Nach e<strong>in</strong>em Log<strong>in</strong>versuch (erkennbar an AUTH für Authentication)<br />
antwortet der Server mit “535: Authentication failure” (wegen e<strong>in</strong>em<br />
falschen User/Passwort)<br />
<br />
Um das Passwort zu sehen<br />
kann es entschlüsselt werden,<br />
z.B. auf http://www.op<strong>in</strong>ionatedgeek.com/dotnet/tools/base64decode/<br />
Controls Masterfolie 27
Wireshark Uebung 3 Lösung<br />
<br />
<br />
Damit die <strong>in</strong>teressanten Frames angezeigt werden: filtern mit “tcp.port<br />
== 25” (verwendet für smpt)<br />
Nach e<strong>in</strong>em SYN wird sofort mit e<strong>in</strong>em RST (Reset) geantwortet<br />
auf dieser Masch<strong>in</strong>e läuft ke<strong>in</strong> SMTP Mail Server (oder e<strong>in</strong>e Firewall<br />
blockt)<br />
Controls Masterfolie 28
Wireshark Uebung 4 Lösung<br />
<br />
<br />
Damit die <strong>in</strong>teressanten Frames angezeigt werden:<br />
filtern mit “tcp.addr == 10.20.60.164”<br />
ke<strong>in</strong> Resultat<br />
Nach “arp” filtern, um zu sehen, ob die Station gesucht wird:<br />
Es wird nach dem Gerät mit der IP 10.20.60.164 gesucht mittels<br />
ARP (Address Resolution Protocol), aber die Station gibt ke<strong>in</strong>e<br />
Antwort. Ursache könnte se<strong>in</strong>, dass die Station nicht oder schlecht<br />
angeschlossen ist, oder e<strong>in</strong>en Fehler im Stack hat.<br />
Controls Masterfolie 29
Wireshark Uebung 5 Lösung<br />
<br />
Auf den Netzwerk kann man sehen, dass die Coils geschrieben<br />
werden (Coil 16..23), <strong>und</strong> dass die PCD positiv antwortet:<br />
<br />
Da die Flags aber nicht geschrieben wurden, ist sehr<br />
wahrsche<strong>in</strong>lich das Default Mapp<strong>in</strong>g aktiv<br />
In dem nächsten Schritt das Default Mapp<strong>in</strong>g ausschalten, <strong>und</strong><br />
erneut testen<br />
Controls Masterfolie 30
Wireshark Uebung 6 Lösung<br />
<br />
Als erstes nach den Neustart der PCD suchen (z.B. mit e<strong>in</strong>em Filtern<br />
nach “arp”: Neustart ist bei Frame 11525:<br />
<br />
<br />
Nach dem Neustart versucht die PCD, e<strong>in</strong>e neue TCP Verb<strong>in</strong>dung zu<br />
öffnen (von Port 1025 auf 502), was nicht gel<strong>in</strong>gt (der Persy Gateway<br />
erwidert ke<strong>in</strong> SYN, ACK)<br />
Dafür sendet der Persy Gateway Retransmission Frames (obwohl die<br />
PCD den Port nicht mehr offen hat <strong>und</strong> die Verb<strong>in</strong>dung mit e<strong>in</strong>em<br />
RST zurücksetzt)<br />
E<strong>in</strong> Fehler <strong>in</strong> der FW von Persy (der Gateway müsste die neue<br />
Verb<strong>in</strong>dung aufbauen, <strong>und</strong> die “alte” beenden, was er on e<strong>in</strong>er neuen<br />
FW machen wird)<br />
Controls Masterfolie 31
Offene Fragen<br />
Controls Masterfolie 32