Die Ausgabe von Traces an der Kommadozeile oder im Trace-Dialog von LCMS ist in vielen Fällen sehr umfangreich, weil der Trace in kurzer zeitlicher Abfolge Informationen aus dem Gerät empfängt. Um die Ausgabe der Traces übersichtlicher zu gestalten, können Sie geeignete Filter anwenden. Die Filter basieren auf einer Suchfunktion, welche die Trace-Ausgaben nach relevanten Informationen untersucht und nur die gewünschten Aspekte darstellt.
Im folgenden Beispiel aktiviert der Administrator einen einfachen IP-Router-Trace auf einem Gerät mit drei Internetanbindungen und verschickt Pings an verschiedene Ziele. Die ungefilterte Trace-Ausgabe zeigt alle Pakete, die der IP-Router des Gerätes verarbeitet:
root@MyDevice:/ > trace # ip-router IP-Router ON root@MyDevice:/ >[IP-Router] 2010/12/20 17:11:06,430 IP-Router Rx (LAN-1, INTRANET3, RtgTag: 3): DstIP: 4.4.4.1, SrcIP: 192.168.3.100, Len: 84, DSCP/TOS: 0x00 Prot.: ICMP (1), echo request, id: 0x0015, seq: 0x1cde Route: WAN Tx (INTERNET3) [IP-Router] 2010/12/20 17:11:06,430 IP-Router Rx (LAN-1, INTRANET1, RtgTag: 1): DstIP: 11.11.11.1, SrcIP: 192.168.1.100, Len: 84, DSCP/TOS: 0x00 Prot.: ICMP (1), echo request, id: 0x0016, seq: 0x1ccf Route: WAN Tx (INTERNET1) [IP-Router] 2010/12/20 17:11:06,430 IP-Router Rx (INTERNET1, RtgTag: 1): DstIP: 192.168.1.100, SrcIP: 11.11.11.1, Len: 84, DSCP/TOS: 0x00 Prot.: ICMP (1), echo reply, id: 0x0016, seq: 0x1ccf Route: LAN-1 Tx (INTRANET1): [IP-Router] 2010/12/20 17:11:06,430 IP-Router Rx (INTERNET3, RtgTag: 3): DstIP: 192.168.3.100, SrcIP: 4.4.4.1, Len: 84, DSCP/TOS: 0x00 Prot.: ICMP (1), echo reply, id: 0x0015, seq: 0x1cde Route: LAN-1 Tx (INTRANET3): [IP-Router] 2010/12/20 17:11:06,600 IP-Router Rx (LAN-1, INTRANET2, RtgTag: 2): DstIP: 3.3.3.1, SrcIP: 192.168.2.100, Len: 84, DSCP/TOS: 0x00 Prot.: ICMP (1), echo request, id: 0x0014, seq: 0x1cea Route: WAN Tx (INTERNET2) [IP-Router] 2010/12/20 17:11:06,600 IP-Router Rx (INTERNET2, RtgTag: 2): DstIP: 192.168.2.100, SrcIP: 3.3.3.1, Len: 84, DSCP/TOS: 0x00 Prot.: ICMP (1), echo reply, id: 0x0014, seq: 0x1cea Route: LAN-1 Tx (INTRANET2): [IP-Router] 2010/12/20 17:11:07,430 IP-Router Rx (LAN-1, INTRANET1, RtgTag: 1): DstIP: 11.11.11.1, SrcIP: 192.168.1.100, Len: 84, DSCP/TOS: 0x00 Prot.: ICMP (1), echo request, id: 0x0016, seq: 0x1cd0 Route: WAN Tx (INTERNET1) [IP-Router] 2010/12/20 17:11:07,430 IP-Router Rx (LAN-1, INTRANET3, RtgTag: 3): DstIP: 4.4.4.1, SrcIP: 192.168.3.100, Len: 84, DSCP/TOS: 0x00 Prot.: ICMP (1), echo request, id: 0x0015, seq: 0x1cdf Route: WAN Tx (INTERNET3) [IP-Router] 2010/12/20 17:11:07,430 IP-Router Rx (INTERNET1, RtgTag: 1): DstIP: 192.168.1.100, SrcIP: 11.11.11.1, Len: 84, DSCP/TOS: 0x00 Prot.: ICMP (1), echo reply, id: 0x0016, seq: 0x1cd0 Route: LAN-1 Tx (INTRANET1): [IP-Router] 2010/12/20 17:11:07,430 IP-Router Rx (INTERNET3, RtgTag: 3): DstIP: 192.168.3.100, SrcIP: 4.4.4.1, Len: 84, DSCP/TOS: 0x00 Prot.: ICMP (1), echo reply, id: 0x0015, seq: 0x1cdf Route: LAN-1 Tx (INTRANET3): [IP-Router] 2010/12/20 17:11:07,600 IP-Router Rx (LAN-1, INTRANET2, RtgTag: 2): DstIP: 3.3.3.1, SrcIP: 192.168.2.100, Len: 84, DSCP/TOS: 0x00 Prot.: ICMP (1), echo request, id: 0x0014, seq: 0x1ceb Route: WAN Tx (INTERNET2) [IP-Router] 2010/12/20 17:11:07,600 IP-Router Rx (INTERNET2, RtgTag: 2): DstIP: 192.168.2.100, SrcIP: 3.3.3.1, Len: 84, DSCP/TOS: 0x00 Prot.: ICMP (1), echo reply, id: 0x0014, seq: 0x1ceb Route: LAN-1 Tx (INTRANET2):
Die Ausgabe von nur 2 Sekunden reicht schon aus, um eine recht große Menge an Daten zu erzeugen. Um die Ausgabe übersichtlicher zu gestalten, fügen Sie nach dem Trace-Kommando einen Filter an. Die Filter beginnen mit dem @-Zeichen und geben ein Suchkriterium an. In diesem Beispiel reduzieren Sie den Filter auf alle Ausgaben, in denen das Suchkriterium "Internet1" vorkommt, um nur die Pakete dieser Gegenstelle auszugeben.
root@MyDevice:/ > trace # ip-router @ INTERNET1 IP-Router ON @ INTERNET1 [IP-Router] 2010/12/20 17:11:50,430 IP-Router Rx (LAN-1, INTRANET1, RtgTag: 1): DstIP: 11.11.11.1, SrcIP: 192.168.1.100, Len: 84, DSCP/TOS: 0x00 Prot.: ICMP (1), echo request, id: 0x0016, seq: 0x1cfb Route: WAN Tx (INTERNET1) [IP-Router] 2010/12/20 17:11:50,430 IP-Router Rx (INTERNET1, RtgTag: 1): DstIP: 192.168.1.100, SrcIP: 11.11.11.1, Len: 84, DSCP/TOS: 0x00 Prot.: ICMP (1), echo reply, id: 0x0016, seq: 0x1cfb Route: LAN-1 Tx (INTRANET1): [IP-Router] 2010/12/20 17:11:51,430 IP-Router Rx (LAN-1, INTRANET1, RtgTag: 1): DstIP: 11.11.11.1, SrcIP: 192.168.1.100, Len: 84, DSCP/TOS: 0x00 Prot.: ICMP (1), echo request, id: 0x0016, seq: 0x1cfc Route: WAN Tx (INTERNET1) [IP-Router] 2010/12/20 17:11:51,430 IP-Router Rx (INTERNET1, RtgTag: 1): DstIP: 192.168.1.100, SrcIP: 11.11.11.1, Len: 84, DSCP/TOS: 0x00 Prot.: ICMP (1), echo reply, id: 0x0016, seq: 0x1cfc Route: LAN-1 Tx (INTRANET1):
Wieder beträgt der Zeitrahmen des Traces zwei Sekunden, die Menge an Daten wurde aber schon deutlich reduziert. Lediglich die Daten zur Gegenstelle "INTERNET1" werden angezeigt. Es können aber auch noch weitere Filterkriterien angegeben werden indem einfach ein Leerzeichen zwischen dem ersten und zweiten Kriterium gesetzt werden. Zusätzlich zum Leerzeichen können sowohl "+" als auch "-" als Operatoren verwendet werden. Hierbei gilt, bei einem "+" müssen beide Kriterien erfüllt sein, bei einem "-" darf das Kriterium nicht erfüllt sein und bei einem Leerzeichen muss eines der verknüpften Kriterien erfüllt sein. Die Möglichkeit Strings, die Operatoren enthalten auch als Filter zu nutzen wird durch Anführungszeichen umgesetzt.
- Leerzeichen: Ein Leerzeichen vor einem Suchbegriff stellt eine logische ODER-Verknüpfung dar. Die Trace-Ausgabe wird nur dann angezeigt, wenn sie eine der so markierten Zeichenketten enthält.
- +: Ein Pluszeichen vor einem Suchbegriff stellt eine logische UND-Verknüpfung dar. Die Trace-Ausgabe wird nur dann angezeigt, wenn sie alle der so markierten Zeichenketten enthält.
- -: Ein Minuszeichen vor einem Suchbegriff stellt eine logische NICHT-Verknüpfung dar. Die Trace-Ausgabe wird nur dann angezeigt, wenn sie keine der so markierten Zeichenketten enthält.
root@MyDevice:/ > trace # ip-router @ INTERNET1 -"echo request" IP-Router ON @ INTERNET1 -"echo request" [IP-Router] 2010/12/20 17:12:06,430 IP-Router Rx (INTERNET1, RtgTag: 1): DstIP: 192.168.1.100, SrcIP: 11.11.11.1, Len: 84, DSCP/TOS: 0x00 Prot.: ICMP (1), echo reply, id: 0x0016, seq: 0x1d0b Route: LAN-1 Tx (INTRANET1): [IP-Router] 2010/12/20 17:12:07,430 IP-Router Rx (INTERNET1, RtgTag: 1): DstIP: 192.168.1.100, SrcIP: 11.11.11.1, Len: 84, DSCP/TOS: 0x00 Prot.: ICMP (1), echo reply, id: 0x0016, seq: 0x1d0c Route: LAN-1 Tx (INTRANET1):
Jetzt zeigt der Trace nur noch die Einträge an, welche die Gegenstelle 'INTERNET1' enthalten, die aber nicht die Zeichenkette 'echo request' enthalten. So reduzieren Sie die Anzeige auf die Antworten eines Pings, die von der entsprechenden Gegenstelle stammen.
Sie können zeitgleich mehrere Traces verwenden und nach unterschiedlichen Kriterien filtern. Im folgenden Beispiel läuft neben dem IP-Router Trace auch ein Ethernet Trace, um sich das zum Ping zugehörige Paket auf dem Ethernet anzuschauen.
root@MyDevice:/ > trace # ip-router @ INTERNET1 +"echo reply" IP-Router ON @ INTERNET1 +"echo reply" root@MyDevice:/ > trace # eth @ ICMP +"echo reply" Ethernet ON @ icmp +"echo reply" [IP-Router] 2010/12/21 14:17:21,000 IP-Router Rx (INTERNET1, RtgTag: 1): DstIP: 192.168.1.100, SrcIP: 11.11.11.1, Len: 84, DSCP/TOS: 0x00 Prot.: ICMP (1), echo reply, id: 0x0002, seq: 0x2654 Route: LAN-1 Tx (INTRANET1): [Ethernet] 2010/12/21 14:17:21,000 Sent 98 byte Ethernet packet via LAN-1: HW Switch Port : ETH-1 -->IEEE 802.3 Header Dest : 00:a0:57:12:a9:21 (LANCOM 12:a9:21) Source : 00:a0:57:12:f7:81 (LANCOM 12:f7:81) Type : IPv4 -->IPv4 Header Version : 4 Header Length : 20 Type of service : (0x00) Precedence 0 Total length : 84 ID : 18080 Fragment : Offset 0 TTL : 59 Protocol : ICMP Checksum : 24817 (OK) Src Address : 11.11.11.1 Dest Address : 192.168.1.100 -->ICMP Header Msg : echo reply Checksum : 18796 (OK) Body : 00 00 00 02 00 00 26 54 ...... 7e c9 6d 8c 00 00 00 00 ~.m..... 00 01 02 03 04 05 06 07 ........ 08 09 0a 0b 0c 0d 0e 0f ........ 10 11 12 13 14 15 16 17 ........ 18 19 1a 1b 1c 1d 1e 1f ........ 20 21 22 23 24 25 26 27 !"#$%