Werkzeuge für die Fehlerbehebung/Troubleshooting tools

Manual: Werkzeuge für die Fehlerbehebung

Inhalte

  • 1 Werkzeuge für die Fehlerbehebung

    • 1.1 Netzwerkkonnektivität prüfen

      • 1.1.1 Das Ping Kommando
      • 1.1.2 Das Traceroute Kommando
    • 1.2 Log Files
    • 1.3 Torch (/tool torch)
      • 1.3.1 IPv6
      • 1.3.2 Winbox
    • 1.4 Paket Sniffer (/tool sniffer)
    • 1.5 Datentransferraten-Test
    • 1.6 Profiler

1 Werkzeuge für die Fehlerbehebung

Vor dem näheren Blick auf die bekanntesten Kommandos zur Prüfung der Verbindungsqualität und zur Fehlersuche erfolgt eine kurze Auffrischung darüber, wie man die Netzwerkschnittstellen des eigenen Computers überprüft.

Microsofts Windows verfügt über viele Befehlszeilen-Werkzeuge, welche einem dabei helfen, die LAN und WAN-Interfaces zu prüfen und zu konfigurieren. Hierbei werden nur die gängigsten Netzwerkwerkzeuge und Kommandos von Windows in Augenschein genommen.

Diese Werkzeuge werden vom Windows Terminal aus gestartert, indem man nach Start/Run geht und „cmd“ eingibt, um die Eingabeaufforderung zu öffnen.

Im folgenden einige der unter Windows verfügbaren Kommandos:

ipconfig – Wird genutzt, um sich die Werte der TCP/IP Netzwerkkonfiguration ausgeben zu lassen. Man gibt hierfür „ipconfig“ in der Eingabeaufforderung ein.

C:\>ipconfig
Windows IP Configuration
Ethernet adapter Local Area Connection:
   Connection-specific DNS Suffix  . : mshome.net
   Link-local IPv6 Address . . . . . : fe80::58ad:cd3f:f3df:bf18%8
   IPv4 Address. . . . . . . . . . . : 173.16.16.243
   Subnet Mask . . . . . . . . . . . : 255.255.255.0
   Default Gateway . . . . . . . . . : 173.16.16.1

Man kann ipconfig natürlich auch noch über zusätzliche Funktionen erweitern. Um eine Liste der zusätzlichen Optionen zu erhalten, gibt man „ipconfig /?“ oder “ipconfig -?” ein.

netstat – Zeigt die aktiven TCP Verbindungen und Ports an, auf welchem der Computer lauschn, Ethernet Statistiken, die IP Routing Tabelle, Statistiken für IP, ICMP, TCP und UDP Protokolle. Ausgestattet ist netstat mit verschiedenen Optionen, um sich Eigenschaften des Netzwerks und von TCP-Verbindungen anzeigen zu lassen. Aufgerufen wird dies mit “netstat –?”.

nslookup – ist das Werkzeug um über die Eingabeaufforderung DNS Server zu testen und Fehler zu finden. Wenn man Beispielsweise wissen will, welche IP-Adresse hinter   „www.google.com“ steht, gibt man „nslookup www.google.com“ ein und findet heraus, dass dahinter mehrere Adressen stehen 74.125.77.99, 74.125.77.104, 74.125.77.147.

netsh – Mit Hilfe dieses Werkzeugs ist es möglich, Windows-basierte Computer über die Eingabeaufforderung zu administrieren und zu überwachen. Es erlaubt die Konfiguration von Interfaces, Routing-Protokollen, Routen, Routing Filtern und die Anzeige der aktuelle aktiven Konfiguration.

Sehr ähnliche Kommandos sind auch auf unix-ähnlichen Maschinen verfügbar. Heutzutage kann man in den meisten Linux Distributionen die Netzwerkeinstellungen über einen GUI verwalten, was es jedoch unabdingbar macht, dass man sich mit den Kommandozeilen Werkzeugen nicht auskennen sollte. Im folgenden eine Liste, welche Basis Netzwerk-Befehle und Werkzeuge unter Linux verfügbar sind:

ifconfig – Es ist ähnlich wie ipconfig unter Windows. Hiermit ist das aktivieren und deaktivieren von Netzwerkadaptern, vergebene IP Adressen und Netzmasken oder die Anzeige der aktuellen Netzwerkkonfiguration möglich.

iwconfig – Ähnlich wie ifconfig und ethtool ist iwconfig jedoch auf Wlan-Karten bezogen und kann sowohl Basis Wlan-Netzwerkdetails anzeigen als auch einstellen.

nslookup – Mit der Eingabe eines Hostnamens wird einem dieses Kommando die zugehörige IP Adresse Ausgeben.

netstat – Zeigt Netzwerkverbindungen mitsamt Portverbindungen, Routing Tabellen, Interface Statistiken, maskierte Verbindungen und mehr an (netstat – r, netstat – a)

ip – Anzeige von (und kann diese manipulieren) Routing, Geräten, Routing-Regeln und Tunneln auf Linux-Maschinen.

Beispielsweise kann man die IP Adresse auf dem anliegenden Interface über das ip Kommando prüfen:

$ip addr show

Das Hinzufügen von statischen Routen ist über das ip Kommando wie folgt möglich:

ip route add {NETWORK address} via {next hop address} dev {DEVICE}, z.B:

$ip route add 192.168.55.0/24 via 192.168.1.254 dev eth1

Die genannten Werkzeuge sind nur ein kleiner Teil der verfügbaren Netzwerk-Werkzeuge unter Linux. Wenn man sich einen kompletten Überblick über die Werkzeuge und Kommandos verschaffen will, nutzt man das man Kommando. Will man sich z.B. alle Optionen von ifconfig anzeigen lassen, gibt man das folgende Kommando im Terminal ein: man ifconfig

1.1 Netzwerkkonnektivität prüfen

1.1.1 Das Ping-Kommando

Ping ist einer der am häufigsten verwendeten und einer der bekanntesten Befehle. Es handelt sich dabei um ein Programm, welches verwendet wird, um zu testen ob ein bestimmter Host über ein Internetprotokoll- (IP) -Netzwerk erreichbar ist, und um die Umlaufzeit für Pakete zu messen, die vom lokalen Host zu einem Zielhost einschließlich der lokalen Schnittstellen des Hosts gesendet werden. 

Ping nutzt das Internet Control Message Protocol (ICMP) Protokoll für echo Antworten und echo Anfragen. Ping sendet ICMP echo Anfrage-Pakete an einen Zielhost und wartet auf ICMP Antwort. Die Ping Ausgabe zeigt die Minimal-, Durchschnitts- und Maximal- Zeit an, welche ein Ping Paket braucht, das entsprechende System zu erreichen und zurückzukehren.

Vom PC:

Windows:

C:\>ping 10.255.255.4
 Pinging 10.255.255.4 with 32 bytes of data:
Reply from 10.255.255.4: bytes=32 time=1ms TTL=61
Reply from 10.255.255.4: bytes=32 time<1ms TTL=61
Reply from 10.255.255.4: bytes=32 time<1ms TTL=61
Reply from 10.255.255.4: bytes=32 time<1ms TTL=61
Ping statistics for 10.255.255.4:
    Packets: Sent = 4, Received = 4, Lost = 0 (0%
Approximate round trip times in milli-seconds:
    Minimum = 0ms, Maximum = 1ms, Average = 0ms

Unix-ähnlich:

andris@andris-desktop:/$ ping 10.255.255.6
PING 10.255.255.6 (10.255.255.6) 56(84) bytes of data.
64 bytes from 10.255.255.6: icmp_seq=1 ttl=61 time=1.23 ms
64 bytes from 10.255.255.6: icmp_seq=2 ttl=61 time=0.904 ms
64 bytes from 10.255.255.6: icmp_seq=3 ttl=61 time=0.780 ms
64 bytes from 10.255.255.6: icmp_seq=4 ttl=61 time=0.879 ms
^C
--- 10.255.255.6 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 2999ms
rtt min/avg/max/mdev = 0.780/0.948/1.232/0.174 ms

Drückt man Ctrl-C bricht man den Ping Prozess ab.
Vom MikroTik:

[admin@MikroTik] > ping 10.255.255.4
10.255.255.4 64 byte ping: ttl=62 time=2 ms
10.255.255.4 64 byte ping: ttl=62 time=8 ms
10.255.255.4 64 byte ping: ttl=62 time=1 ms
10.255.255.4 64 byte ping: ttl=62 time=10 ms
4 packets transmitted, 4 packets received, 0% packet loss
round-trip min/avg/max = 1/5.2/10 ms

Drückt man Ctrl-C bricht man den Ping Prozess ab.

1.1.2 Das Traceroute Kommando

Traceroute zeigt in Listenform die Router an, welche die Pakete passieren, wenn Sie auf dem Weg zu Ihrem Ziel-Host sind. Das traceroute oder tracepath Werkzeugol ist auf so gut wie jedem Unix-ähnlichen Betriebssystem verfügbar, ebenso verhält es sich mit tracert unter Microsoft Windows Betriebssystem.

Die Traceroute Ausführung basiert auf dem TTL Wert und der ICMP Nachricht “Time Exceeded”. Man sollte beachten, dass der TTL Wert im IP Header auch dazu genutzt wird, Routing-Loops vorzubeugen. Jeder Hop verringert den TTL Wert um 1. Wenn der TTL Wert 0 erreicht wird das Paket verworfen und der Sender bekommt die ICMP Nachricht „Time Exceeded“ ausgegeben.

Zuerst setzt Traceroute den TTL-Wert auf 1. Wenn der nächste Router ein Paket mit TTL = 1 findet, setzt es den TTL-Wert auf 0 und antwortet mit einer ICMP-Meldung „time exceeded“ an die Quelle. Diese Nachricht lässt die Quelle wissen, dass das Paket diesen bestimmten Router als Hop durchquert hat. Beim nächsten Mal wird der TTL-Wert um 1 erhöht und so weiter. Typischerweise verringer jeder Router auf dem Weg zum Ziel das TTL-Feld um eine Einheit bis die TTL den Wert 0 erreicht.

Mit Hilfe von Traceroute ist es also möglich, den Weg eines Pakets durch das Netzwerk zu verfolgen und ggf. die Stationen zu finden, wo Fehler stattfinden oder der Paket-Transfer verlangsamt wird. Es ist also anhand dieser Informationen möglich, den Computer, Router, Switch oder andere Netzwerk-Geräte zu bestimmen, die im Netzwerk Probleme bereiten oder Fehler verursachen.

Vom Personal Computer:

Windows:

C:\>tracert 10.255.255.2
Tracing route to 10.255.255.2 over a maximum of 30 hops
  1    <1 ms    <1 ms    <1 ms  10.13.13.1
  2     1 ms     1 ms     1 ms  10.255.255.2
Trace complete.

Unix-ähnlich:

Traceroute und tracepath sind ähnlich, nur braucht tracepath keine SuperUser Privilegien.

andris@andris-desktop:~$ tracepath 10.255.255.6
 1:  andris-desktop.local (192.168.10.4)                  0.123ms pmtu 1500
 1:  192.168.10.1 (192.168.10.1)                          0.542ms 
 1:  192.168.10.1 (192.168.10.1)                          0.557ms 
 2:  192.168.1.2 (192.168.1.2)                            1.213ms 
 3:  no reply
 4:  10.255.255.6 (10.255.255.6)                          2.301ms reached
     Resume: pmtu 1500 hops 4 back 61

Vom MikroTik:

[admin@MikroTik] > tool traceroute 10.255.255.1
     ADDRESS                                    STATUS
   1       10.0.1.17 2ms 1ms 1ms 
   2    10.255.255.1 5ms 1ms 1ms
[admin@MikroTik] >

1.2 Log Files

Die Überwachung von Systemereignissen ermöglicht es, verschiedene Probleme anhand der Log zu debuggen. Das Log File ist eine Textdatei, die im Server/Router/Host erstellt wird und verschiedene Arten von Aktivitäten auf dem Gerät erfasst. Diese Datei ist die primäre Datenanalysequelle. RouterOS kann verschiedene Systemereignisse und Statusinformationen protokollieren. Logs können im Router-Speicher (RAM), Festplatte, oder als Datei gespeichert, per E-Mail gesendet oder sogar an Remote-Syslog-Server übertragen werden.

Alle Nachrichten, die im Speicher des Routers angelegt werden, könnten über das /log Menü ausgegeben werden. Jeder Eintrag enthält Zeit und Datum, wann das Ereignis eintrat, das die Themen-Zugehörigkeit der Nachricht, sowie die Nachricht selbst.

[admin@MikroTik] /log> print
15:22:52 system,info device changed by admin 
16:16:29 system,info,account user admin logged out from 10.13.13.14 via winbox 
16:16:29 system,info,account user admin logged out from 10.13.13.14 via telnet 
16:17:16 system,info filter rule added by admin 
16:17:34 system,info mangle rule added by admin 
16:17:52 system,info simple queue removed by admin 
16:18:15 system,info OSPFv2 network added by admin

Weiterführende Informationen zum Logging unter RouterOS ist hier zu findenRead more about logging on RouterOS sind hier zu finden.

1.3 Torch (/tool torch)

Die Torch ist ein Echtzeit-Überwachungs-Werkzeug, für den Netzwerkverkehr, welches jeden Datenverkehr über ein spezifisches Interfaces überwachen kann.

Damit ist es möglich, Datenverkehr nach Protokoll, Quell-Adresse, Ziel-Adresse oder Port zu überwachen. Die Torch zeigt zudem zum ausgewählten Protokoll auch die jeweils die tx/rx Datentransferrate an.

Beispiel:

Das folgende Beispiel zeit die Überwachung des Datenverkehrs, welcher vom Telnet-Protokoll verursacht wird und das Interface ether1 passiert.

 [admin@MikroTik] tool> torch ether1 port=telnet
 SRC-PORT                     DST-PORT                     TX         RX
 1439                         23 (telnet)                  1.7kbps    368bps

 [admin@MikroTik] tool>

Um zu sehen, was über IP Protokolle via ether1 gesendet wurde:

 [admin@MikroTik] tool> torch ether1 protocol=any-ip
 PRO.. TX         RX
 tcp   1.06kbps   608bps
 udp   896bps     3.7kbps
 icmp  480bps     480bps
 ospf  0bps       192bps

 [admin@MikroTik] tool>

Um zu sehen, welche Protokolle mit einem Host verbunden sind, der an die Schnittstelle 10.0.0.144/32 ether1 angeschlossen ist:

 [admin@MikroTik] tool> torch ether1 src-address=10.0.0.144/32 protocol=any

  PRO.. SRC-ADDRESS     TX         RX
  tcp   10.0.0.144      1.01kbps   608bps
  icmp  10.0.0.144      480bps     480bps
 [admin@MikroTik] tool>

1.3.1 IPv6

Beginnend mit der Version v5RC6 ist die Torch auch in der Lage IPv6-Verkehr anzuzeigen. Zwei neue Parameter wurden eingeführt: src-address6 und dst-address6. Beispiel:

admin@RB1100test] > /tool torch interface=bypass-bridge src-address6=::/0 ip-protocol=any sr
c-address=0.0.0.0/0
MAC-PROTOCOL    IP-PROT... SRC-ADDRESS                                 TX         RX        
ipv6            tcp        2001:111:2222:2::1                          60.1kbps   1005.4kbps
ip              tcp        10.5.101.38                                 18.0kbps   3.5kbps   
ip              vrrp       10.5.101.34                                 0bps       288bps    
ip              udp        10.5.101.1                                  0bps       304bps    
ip              tcp        10.0.0.176                                  0bps       416bps    
ip              ospf       224.0.0.5                                   544bps     0bps      
                                                                       78.7kbps   1010.0kbps


Damit das /ping Werkzeug mit Domain Namen arbeitet, welche IPv6 Adressen auflösen, nutzt man das folgende:

/ping [:resolve ipv6.google.com]

Standardmäßig nimmt Ping IPv4 Adressen.

1.3.2 Winbox

Erweiterte Möglichkeiten mit der Torch sind über die Winbox (Tool>Torch) verfügbar. In der Winbox kann außerdem eine Filterleiste aktiviert werden, wenn man auf der Tastatur F drückt.

image11001

1.4 Packet Sniffer (/tool sniffer)

Mit dem Paket Sniffer Werkzeug ist es möglich, Pakete aufzuzeichnen und zu analysieren, welche über verschiedene Interfaces gesendet und empfangen wurden. Der Sniffer nutzt das libpcap Format.

Paket Sniffer Konfiguration

Im folgenden Beispiel wird ein streaming-server hinzugefügt, Streaming aktiviert, ein  file-name für den Test gesetzt und der Paket Sniffer gestartet (und nach einiger Zeit wieder gestoppt):

 [admin@MikroTik] tool sniffer> set streaming-server=192.168.0.240 \
 \... streaming-enabled=yes file-name=test
 [admin@MikroTik] tool sniffer> print
             interface: all
          only-headers: no
          memory-limit: 10
             file-name: "test"
            file-limit: 10
     streaming-enabled: yes
      streaming-server: 192.168.0.240
         filter-stream: yes
       filter-protocol: ip-only
       filter-address1: 0.0.0.0/0:0-65535
       filter-address2: 0.0.0.0/0:0-65535
               running: no
 [admin@MikroTik] tool sniffer> start
 [admin@MikroTik] tool sniffer> stop

Hierbei kann man verschiedene Paket Sniffer Parametet verwenden, wie z.B. das Maximum des genutzten Speichers und das Datei-Größen-Limit in KB.

Das Paket Sniffer Werkzeug

Es gibt drei Kommandos, um die Runtime Operation des Sniffers zu kontrollieren:

/tool sniffer start, /tool sniffer stop, /tool sniffer save.

Das start Kommando nutzt man, um das mitschneiden zu starten und zurückzusetzen. stop stoppt den Mitschneideprozess. Um die mitgeschnittenen Pakete in einer Datei zu speichern, nutzt man das save Kommando.

In the following example the packet sniffer will be started and after some time - stopped:
 [admin@MikroTik] tool sniffer> start
 [admin@MikroTik] tool sniffer> stop

Im folgenden werden die mitgeschnittenen Pakete in der Datei test gespeichert:

 [admin@MikroTik] tool sniffer> save file-name=test

Mitgeschnittene Pakete betrachten

Um die Pakete zu betrachten, gibt es verschiedene Untermenüs.

  • /tool sniffer packet – show zeigt eine Liste der mitgeschnittenen Pakete an
  • /tool sniffer protocol – show zeigt alle Protokolle an, die mitgeschnitten wurden
  • /tool sniffer host – zeigt eine Liste der Hosts an, welche in einem Mitschneidevorgang eines Datenaustauschs involviert waren

Beispiel:

 [admin@MikroTik] tool sniffer packet> print

  # TIME    INTERFACE   SRC-ADDRESS
  0 1.697    ether1    0.0.0.0:68 (bootpc)        
  1 1.82     ether1    10.0.1.17
  2 2.007    ether1    10.0.1.18
  3 2.616    ether1    0.0.0.0:68 (bootpc)
  4 2.616    ether1    10.0.1.18:45630
  5 5.99     ether1    10.0.1.18
  6 6.057    ether1    159.148.42.138
  7 7.067    ether1    10.0.1.5:1701 (l2tp)
  8 8.087    ether1    10.0.1.18:1701 (l2tp)
  9 9.977    ether1    10.0.1.18:1701 (l2tp)
 -- more

Das folgende Bild zeigt die Sniffer GUI in der Winbox, welche in der Handhabung noch Nutzerfreundlicher ist.

image11002

Weitergehende Kommando-Details sind im manual >> zu finden.

1.5 Datentransferraten-Test

Der Datentransferraten-Test nutzt man, um den Datendurchsatz zu (in Mbit/s) zu einem anderen MikroTik Router zu messen (egal ob Ethernet oder Wlan Netzwerk) und „Flaschenhälse“ im Netzwerk zu lokalisieren, also die Netzwerkkomponenten, mit dem geringsten Datendurchsatz.

Dieser Test nutzt zwei Protokolle, um die Datentransferrate zu bestimmen:

  • TCP – Nutzt die Standard TCP Protokoll Betriebsprinzipien, mit allen Hauptkomponenten, wie z.B. Verbindungsinitialisierung, Paket Bestätigungen, congestion window Mechanismus und allen anderen Funktionen des TCP Algorithmus. Für Details zu internen Geschwindigkeitseinstellungen und wie man diese analysiert, findet man in der TCP protocol Rubrik noch weitere Hinweise. Statistiken über den Durchsatz werden auf Grundlage des kompletten TCP Datenstroms berechnet. Interne Rückmeldungen durch das TCP-Protokoll selbst, also die Auslastung der Verbindung durch TCP, gehen nicht in der Durchsatz-Ermittlung auf. Aus diesem Grund sind diesbezügliche Statistiken nicht so zuverlässig, wie die auf UDP basierenden Berechnungen der Datentransferrate.
  • UDP traffic – UDP sendet 110% mehr Pakete, als auf der anderen Seite als erhalten angezeigt werden. Um den maximalen Durchsatz auf dem Link zu erhalten, sollte die Paketgröße auf das Maximum der erlaubten MTU des Links gesetzt werden, was normalerweise einem Wert von 1500 Bytes entspricht. Bei dem Test mit UDP wird keine Bestätigung benötigt. Diese Messung zeigt einem dann den annähernd größtmöglichen Durchsatz an.

Zu beachten ist, dass der Bandwidth Test standardmäßig die komplette Datentransferrate nutzt, was natürlich einen Einfluss auf das übrige Netzwerk haben kann.

Wenn man den realen Datendurchsatz eines Routers ermitteln will, sollte man durch diesen hindurch messen und nicht bis zu ihm oder von ihm weg! Dies bedeutet, dass man 3 Router in Reihe braucht, um ein zuverlässiges Testergebnis zu erhalten:

Bandwidth Server – zu testender Router – Bandwidth Client.

Hinweis: Wenn man das UDP Protokoll nutzt dann zählt der Bandwidth Test den IP header+UDP header+UDP data. Für den Fall, dass man TCP nutzt, wird hingegen nur die  TCP data (TCP header und IP header werden nicht mitgerechnet).

Konfigurationsbeispiel:

Server

Um den bandwidth-test server mit client authentication zu aktivieren:

[admin@MikroTik] /tool bandwidth-server> set enabled=yes authenticate=yes
[admin@MikroTik] /tool bandwidth-server> print 
                  enabled: yes
             authenticate: yes
  allocate-udp-ports-from: 2000
             max-sessions: 100

[admin@MikroTik] /tool bandwidth-server>

Client

Um den UDP bandwidth test in beide Richtungen laufen zu lassen, werden user name und password des remote Bandwidth Server benötigt. In diesem Fall ist der user name ‘admin’ und es gibt kein Passwort.

[admin@MikroTik] > tool bandwidth-test protocol=udp user=admin password="" direction=both \
address=10.0.1.5
                status: running
              duration: 22s
            tx-current: 97.0Mbps
  tx-10-second-average: 97.1Mbps
      tx-total-average: 75.2Mbps
            rx-current: 91.7Mbps
  rx-10-second-average: 91.8Mbps
      rx-total-average: 72.4Mbps
          lost-packets: 294
           random-data: no
             direction: both
               tx-size: 1500
               rx-size: 1500

-- [Q quit|D dump|C-z pause]      

Einen erweiterten Überblick über alle Kommandos gibt es in the manual>>

Profiler

Das Profiler Werkzeug zeigt die Auslastung der CPU für jeden Prozess, der aktuell unter RouterOS aktiv ist. It helps to identify which process is using most of the CPU resources.

profiler
Read more >>
[ Top | Back to Content ]

Dieser Beitrag wurde unter Basic, Tools abgelegt und mit , , , , , , , , , , , , , , , , , , , , , , , , , verschlagwortet. Setze ein Lesezeichen auf den Permalink.