Alcatel AOS7 debuggen von high CPU

Generell: hier geht es um debuggen in der Superuser Shell, es kann etwas kaputt gehen, ich übernehme keine Verantwortung!

Sollte man auf einem AOS7/8 Switch mal hohe CPU Last haben kann man über folgende Befehle einige Debug Daten für das TAC ziehen

su
- top –n 1 (mehrfach)
- Hat man die TOP drei der CPU fresser nimmt man "bt" und sammelt Daten. Vorsicht walten lassen, mindestens 5 mal pro Task, jeweils 3-5 Sekunden warten

debug $(pidof ) "thread apply all bt full"
z.B.: debug $(pidof bcmd) "thread apply all bt full"

Daten aus dem Pakettreiber ziehen
- “cat /proc/pktdrv”. folgendes zieht 6 Sekunden lang Daten, daraus lassen sich dann durchs TAC Durchsatz-Raten bestimmen.

cnt=1;while [ $cnt -le 6 ]; do echo "Iteration:$cnt"; cat /proc/pktdrv; cnt=`expr $cnt + 1`; sleep 1; done

Auf der "normalen" CLI:
- show health 
- show health all cpu
- debug qos internal "chassis  slot  list 1 verbose"
z.B.: debug qos internal "chassis 0 slot 1 list 1 verbose"  bei einem Standalone Chassis (wobei mei mir slot 2 zumindest in einem 6900 mit Einschubmodul NICHT funktionierte)

Das sind dann ein paar Basiswerte, die dem TAC für weitere Analysen als Grundlage dienen können.

Nochmal: Alles auf eigene Gefahr.

Alcatel Verbinden auf Secondary im Stack

Es kommt schonmal vor, dass man im Stack auch etwas auf der Secondary cmm/Stack-Member machen will.

z.B. schauen wieviel frei ist, bzw. die swlogs anschauen.

SW-Rack > telnet 127.2.2.1
Trying 127.2.2.1...
Connected to 127.2.2.1.
Escape character is '^]'.
login : admin
password :

Welcome to the Alcatel-Lucent OmniSwitch 6450
Software Version 6.6.4.244.R01 Service Release, May 09, 2014.

Copyright(c), 1994-2013 Alcatel-Lucent. All Rights reserved.

OmniSwitch(TM) is a trademark of Alcatel-Lucent registered
in the United States Patent and Trademark Office.

SW-Rack > show running-directory

CONFIGURATION STATUS
Running CMM : PRIMARY,
CMM Mode : DUAL CMMs,
Current CMM Slot : 2,
Running configuration : WORKING,
Certify/Restore Status : CERTIFIED
SYNCHRONIZATION STATUS
Flash Between CMMs : SYNCHRONIZED,
Running Configuration : NOT SYNCHRONIZED,
Stacks Reload On Takeover: ALL NIs (CMM Only Config OUT-OF-SYNC)

SW-Rack >

Auch das swlog kann man sich dann hier einfach anzeigen lassen.

Versucht man das mit den idle units (telnet 127.2.X.1 x= Slotnummer) landet man in der dShell dieser Slots und da will man nicht wirklich hin, wenn man nicht weiß was man tut.

Fortigate: Firewall debuggen und sessions löschen

diag debug flow show console enable
diag debug flow filter addr 
diag debug enable
diag debug flow trace start 100

o.g. zeigt die nächsten 100 Flows wo die Adresse beteiligt ist.

den Filter kann man natürlich auch auf andere Sachen anwenden:

diagnose debug flow filter 
addr      IP address.
clear     Clear filter.
daddr     Destination IP address.
dport     Destination port.
negate    Inverse filter.
port      port
proto     Protocol number.
saddr     Source IP address.
sport     Source port.
vd        Index of virtual domain.

Achtung: Sessions werden gecacht, wenn man also den Aufbau sehen will muss man uU die bestehenden Sessions löschen, auch hier kann man per filter nur bestimmte löschen, statt alle Sessions wegzuschmeissen:
http://kb.fortinet.com/kb/microsites/microsite.do?cmd=displayKC&externalId=FD31635

diagnose sys session filter ?
clear      clear session filter
dport      dest port
dst         dest ip address
negate    inverse filter
policy     policy id
proto      protocol number
sport      source port
src         source ip address
vd          index of virtual domain. -1 matches all

z.B.:

diagnose sys session filter src 10.160.0.1  10.160.0.10
diagnose sys session filter dport 80  888
diagnose sys session filter  session filter:
        vd: any
        proto: any
        source ip: 10.160.0.1-10.160.0.10
        dest ip: any
        source port: any
        dest port: 80-888
        policy id: any
        expire: any
        duration: any

mit

diagnose sys session list

sieht man die sessions, die den Filter matchen mit

diagnose sys session clear

löscht man die gematchten Sessions.

ACHTUNG: ohne einen Filter schmeisst ein clear ALLE sessions der FGT weg.

Fortigate: Debug eines bestimmten VPN Tunnels

Wenn man eine gut bestückte Fortigate hat muss man hin und wieder auch mal Fehler suchen.
Z.B. warum kommt ein VPN Tunnel nicht hoch.

Der „einfache“ Weg
diag debug enable
diag debug console
diag debug ike -1

gibt natürlich Daten über alle VPN Verbindungen, was schnell unübersichtlich wird.

Man kann das ganze aber auch beschränken um z.B. nur Daten für eine Gegenstelle oder eine Phase2 zu sehen:

Zur Auswahl stehen:
diag vpn ike log-filter
clear Erase the current filter.
dst-addr4 IPv4 destination address range to filter by.
dst-addr6 IPv6 destination address range to filter by.
dst-port Destination port range to filter by.
interface Interface that IKE connection is negotiated over.
list Display the current filter.
name Phase1 name to filter by.
negate Negate the specified filter parameter.
src-addr4 IPv4 source address range to filter by.
src-addr6 IPv6 source address range to filter by.
src-port Source port range to filter by.
vd Index of virtual domain. -1 matches all.

z.B.

diag vpn ike log-filter dst-addr4 10.10.10.10
diag debug enable
diag debug console
diag debug app ike -1