orm@doc-tcpip.org | Erstellt: März 2000 - Letzte Modifikation: August 2003 |
Um die Trace-Funktionalität zu erhalten, muß man unter AIX das Fileset bos.sysmgt.trace installieren. Auf einer schon laufenden Firewall muß die Firewall-Software zuerst deinstalliert werden, wie auch bei einem Update.
Der Kernel und die meiste kernelnahe Software (FW, HACMP etc.) ist an sinnvollen Stellen mit "Haken" versehen. An diesen Trace Hooks hängt sich der Trace ein und schreibt eine Meldung, wenn das Programm über den Haken läuft.
Das bedeutet, daß man nur das Tracen kann, was dafür vorgesehen ist. Applikationssoftware ist also, wenn die Programmierer keine Haken eingebaut haben, nur auf der Ebene des AIX zu tracen.
Jeder dieser Haken hat eine ID (12 bit Hook ID). Im Trace mitgeschrieben wird zusätzlich der Typ (4 bit Hook Type) und ein 16 bit großes Feld mit Informationen zu diesem Haken. Je nach Typ kann dieses Feld mehrfach wiederholt werden. Ein Zeitstempel wird immer mitprotokolliert.
Die möglichen Hooks findet man im File /usr/include/sys/trchkid.h oder man setzt das Kommando trcrpt -j ab. Für AIX 4.3.3-11 sieht das so aus:
330 ientdd 331 ientdd 332 ientdd 333 ientdd 2FA ethchandd 2FB ethchandd 2DE IPSEC_FILTER 2DF IPSEC_FILTER_INFO 2E0 IPSEC_CAPSUL 2E1 IPSEC_CAPSUL_INFO 2E2 IPSEC_CRYPTO 2E3 IPSEC_CRYPTO_INFO 2E4 IPSEC_TUNNEL 2E5 IPSEC_TUNNEL_INFO 2E9 IPSEC_ERROR 106 DISPATCH 251 NETERR 252 SOCK 253 SOCK 254 MBUF 255 NETIF_EN 256 NETIF_TOK 257 NETIF_802.3 258 NETIF_X25 259 NETIF_SER 25A TCPDBGIm Beispiel sind alle Hooks ausgewählt, die etwas mit der Firewall (IPSEC_*) und dem Netzwerk (NETIF_*, ientdd etc.) zu tun haben. Es gibt noch erheblich mehr Hooks für andere Komponenten wie JFS, LVM, NFS, Shared Memory, Interrupts, System Calls etc..
Um den Trace lesbar und auf das Problem bezogen aufnehmen zu können ist es einmal wichtig, die richtigen Hooks zu wählen und das Problem in einer möglichst kurzen Zeit zu reproduzieren.
Der Trace wird dann unter Angabe der Hook-ID gestartet
(er schreibt natürlich auch nur diese Events mit):
trace -a -j 2df,2e1,2e3,2e5
Danach wird der Fehler in geeigneter Weise reproduziert
und der Trace mit
trcstop
wieder gestoppt. Der Mitschnitt der abgelaufenen Events
findet sich nun in einem binären File:
/var/adm/ras/trcfile. Das kann mit dem Schalter
-ofilename geändert werden.
Der Schalter -a schiebt das Trace-Kommando in den Hintergrund, es läuft also im asynchronous mode.
Es gibt eine Reihe weiterer, nützlicher Schalter. So ist es möglich, Events auszuschließen. Der Schalter -j traced alle angegebenen Events, -k schließt die angegebenen Events aus.
Wichtig ist die Größe des Tracefiles. Diese und die Größe des Puffer kann vorgeben werden (Schalter -L und -T). Auch ist es möglich, den Trace rundlaufen zu lassen (Schalter -l). Das ist praktisch bei Problemen, die sich nicht leicht reproduzieren lassen (so würde der Befehl trace -a -l -L 20000000 -T 10000000 -o /tmp/trace.bin im Kreis laufen, einen Buffer von 1 MB anlegen und nach dem Stoppen ein File von 2 MB erzeugen).
Das erhaltene Trace File wird mit dem Kommando trcrpt nach den Angaben in der Datei /etc/trcfmt formatiert (man kann seine eigenen Formatierungen festlegen: Kommando trcupdate).
Das Kommando wird meist in dieser Art aufgerufen:
trcrpt -ofile -Opid=on,exec=on
Mit dem Schalter -O ist es möglich, ein
ganze Reihe Optionen zu setzen. Hier wird trcrpt angewiesen,
bei jedem Event die PID und den Pfadnamen auszugeben.
Es gibt noch eine Reihe praktischer Befehle, wie z.B. der trcnm-Befehl. Dieser listet alle Symbole mit ihren entsprechenden Speicheradressen. Mit dem Schalter -a werden alle System Calls und Loader Symbole ausgegeben, mit dem Schalter -K symbol erhält man den Wert des Symbols über das klist-Kommando.
Auch Telnet-Sockets können getraced werden.
Die Hooks sind 252 und 253. Der
Aufruf wäre also:
trace -a -j 252,253
Der Trace wird dann mit dem Befehl
trcrpt -O pid=on,exec=on -o /tmp/filename
formatiert.
[ Allgemein | UNIX | AIX | TCP-IP | TCP | ROUTING | DNS | NTP | NFS | FreeBSD | Linux | RPi | SMTP | Tracing | GPS | LW ]
Copyright 2001-2021 by Orm Hager - Es gilt die GPL