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 Dynamic Auto fabric Konfiguration entfernen

In vielen Fällen ist die auto-fabric Funktionalität, welche in den 6900 eingebaut ist nicht gewollt. Trotzdem hat man auf einmal einen Berg von Konfiguration, den man nicht haben will, es ist MVRP aktiviert, daher auch Flat Spanning Tree (sonst geht MVRP nicht) etc.

Will man alle dies wieder Rückgängig machen sollten folgende Befehle helfen:
auto-fabric admin-state disable remove-global-config
mvrp disable
spb isis admin-state disable
no spb bvlan 4000-4015
spantree mode per-vlan

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.

Alcatel Routed Port

Bei vielen Cisco Switchen kann man einen Port als Routed Port machen.

Die Konfiguration ist dann

Interface FastEthernet0/1
no switchport
ip address 192.168.10.1 255.255.255.0

Der Vorteil in einem solchen Routed Port ist, das es keine L2 Protokolle wie z.B. Spanning Tree o.ä. gibt die einem dazwischen funken können.

Seit einem Maintanance Release der 6.4.4 gibt es das ganze auch bei Alcatel 6400/6850/6850E und 9000E Switchen.

Die Konfiguration ist dann:

ip interface RTR1 address 192.168.1.2/24 rtr-port 1/1 rtr-vlan 3

Soll der Port getaggt sein geht das auch:

ip interface "RTR1" address 192.168.2.1 mask 255.255.255.0 rtr-port 1/2 rtr-vlan 4 type tagged

Zur Kontrolle:

show vlan
Vlan type: std => Standard Vlan
Vlan type: rtr => Router Vlan, reserved for rtr-port IP Interface
                              stree                       mble   src        
 vlan  type  admin   oper   1x1   flat   auth   ip   ipx   tag   lrn   name 
-----+------+------+------+------+------+----+-----+-----+-----+-----+---------------------
   1    std   on     on     on    on     off   off   NA   off     on   VLAN 1                          
   2    std   on    off     on    on     off   off   NA   off     on   VLAN 2                          
   3    rtr   on    off    off   off     off    on   NA   off     on   Router VLAN: 3                  
   4    rtr   on    off    off   off     off    on   NA   off     on   Router VLAN: 4                  
  10    std   on     on     on    on     off   off   NA   off     on   vlan10           

bzw:


-> show ip interface 
Total 3 interfaces
        Name            IP Address     Subnet Mask   Status Forward  Device
--------------------+---------------+---------------+------+-------+----------------------------------------------------
Loopback             127.0.0.1       255.0.0.0           UP      NO Loopback
RTR1                 192.168.2.1     255.255.255.0     DOWN      NO Rtr-Port 1/2 vlan 3 UNTAGGED
RTR2                 192.168.10.2    255.255.255.0     DOWN      NO Rtr-Port 1/1 vlan 4 TAGGED

Auf einem 6450/6250 geht das imho noch nicht ebenso wenig wie auf einem 6900 und OS10k.

Alcatel stack recovery time minimieren

Wenn in einem Stack der Primary ausfällt übernimmt der bisherige Secondary die Managementaufgaben (wird primary) und ein neuer Secondary wird gewählt.

Im Zuge des wechsels ändern sich auch die MAC-Adressen des Stacks (es wird die des Secondarys übernommen).
Damit passiert folgendes:

  • Die Spanning-tree BridgeID ändert sich (ist ja Priority + Mac-Adresse) – Dadurch uU STP Rekalkulationen
  • LACPs brechen zusammen (das ist an die MAC-Adresse gebunden)
  • Vermutlich ändern sich auch die Mac-Adressen der IP Interfaces (vielleicht hat das Default-Gateway danach eine andere Mac als vorher?!)
  • Dadurch kann es auch bei Routingprotokollen zu Problemen kommen
  • Kunden rufen mit Pipi in den Augen an.
  • Terror und Panik bricht aus, Netzwerktechniker werden auf der Straße gelyncht.

Da ja grade die letzten 2 Punkte kritisch sind (und man die ersten Punkte auch erlegen will):

Bei Alcatel heißt das notwendige Kommando

mac-retention status enable

Dadurch bleibt die Mac-Adresse des Stacks bestehen und im besten Fall passiert (fast) garnichts.
Daher: Man sollte das Kommando auf Stacks immer aktivieren (per default ist es disabled).
Sieht dann so aus:

Stack > show mac-retention status 
Admin State         : Enabled,
Trap admin state    : Disabled,
EEPROM MAC address  : e8:e7:32:69:2e:9c,
Current MAC address : e8:e7:32:69:2c:fc,
MAC address source  : Retained,
Topology Status     : Ring Present

Die EEPROM MAC (des Switches) ist e8:e7:32:69:2e:9c, der Stack hat aber eine andere von früher. (Source = Retained)

Aber alles hat natürlich auch einen Nachteil:
Nimmt man den (ex)Primary raus und baut ihn woanders ein hat man doppelte MAC-Adressen (der ex-Primary und der Stack haben die gleiche) und man hat neue Probleme. wie z.B. verlorenen Traffic.

In einem solchen Fall: Im Wartungsfenster nach Rücksprache auf dem Stack mit „mac-retention release“ die gemerkte MAC freigeben und die des aktuellen Switches übernehmen.

STP/LACP Sachen werden dann auch auftreten, aber in einem geplanten Umfeld.

Laut einem Test eines Users im Alcatelunleashed Forum vermindert sich dadurch die Rekonvergenzzeit (unklar was er genau getestet wurde) von 3 Minuten auf 1 Sekunde.. egal: klingt gut.

Im 6900-VC ist die mac-retention (im Gegensatz zu den R6 Switchen) defaultmäßig enabled.

Bei Cisco gibt es das gleiche (Problem wie Lösung), das Kommando heißt hier

stack-mac persistent timer 0

und zum freigeben

no stack-mac persistent timer

Bei Cisco wichtig: ohne „stack-mac persistent timer 0“ kann man eine ASA-X nicht sauber an zwei Stack-Membern anschliessen, da nach einem fail des primarys die Verbindung (dauerhaft?) gestört wäre

Alcatel-Lucent OS6900 Virtual Chassis aktivieren

Mit dem neuen Firmware Release 7.3.1.632 kann man jetzt 2* 6900er oder 2* OS10k stacken.
Das ganze nennt sich dann Virtual Chassis und funktioniert (erstmal) nur für 2 Chassis.

Im Vergleich zu MC-LAG sollte das eine deutlich einfachere Konfiguration mit sich bringen, da man nur noch ein logisches Gerät hat und z.B. einen LACP agg nur noch da konfiguriert (statt vorher auf beiden Geräten identisch).

Vergleichbar also mit Cisco VSS bei den 6500 (und bald 4500).

Was ist notwendig?
1. eine Advanced Licence (zum testen kann man auch die 5 Tage Lizenz mittels

debug demo-license

einspielen.
Ein paar Zeilen Konfiguration.

Sinnvollerweise macht man sich ein Testverzeichnis und macht die Experimente da drinnen.

mkdir v_chassis
cp /working/* v_chassis

Man braucht natürlich das richtige AOS in dem Verzeichnis (7.3.1.632) und startet dann den Switch mit der 7.3.1.632
reload from v_chassis no rollback-timeout

Auf dem 1.Chassis gibt man als Chassis-ID die eins, auf dem zweiten die 2.
Plant man mehrere solcher Konstrukte sollte man unterschiedliche Gruppen wählen, damit die Split Brain Detection funktioniert (muss man ja bei MC-LAG auch)

Sinnvollerweise vergibt man auch gleich EMP Adressen – darüber wird später eine Split-Brain Detection gemacht, falls der VF-Link mal weg ist. Die Chassis müssen sich also über das EMP Interface gegenseitig erreichen können, eine 1:1 Direktverbindung ist aber nicht sinnvoll/machbar (zumindest nicht wenn man man mehr CMMs z.B. OS10k) verbinden muß.

1.Chassis

virtual-chassis configured-chassis-id 1
virtual-chassis vf-link 0 create
virtual-chassis vf-link 0 member-port 1/1
virtual-chassis chassis-group 2
ip interface emp address 192.168.252.1/24
write memory
convert-configuration to v_chassis

2.Chassis

virtual-chassis configured-chassis-id 2
virtual-chassis chassis-group 2
virtual-chassis vf-link 0 create
virtual-chassis vf-link 0 member-port 1/1
ip interface emp address 192.168.252.2/24
write memory
convert-configuration to v_chassis

Danach startet man beide Chassis mit der neu erstellten Virtual Chassis Konfiguration (siehe vcboot.cfg/vcsetup.cfg im v_chassis Ordner)

Auf beiden Chassis:

reload from v_chassis no rollback-timeout

Nach dem booten sieht man auf dem primären (Master) das andere Chassis Ports des anderen Gerätes und kann wie in einem gewöhnlichen Stack damit hantieren.

 show virtual-chassis topology 
Local Chassis: 1
                                        Config 
 Chas  Role         Status              Chas ID  Pri   Group  MAC-Address      
-----+------------+-------------------+--------+-----+------+------------------
 1     Master       Running             1        100   2      e8:e7:32:XX:XX:69
 2     Slave        Running             2        100   2      e8:e7:32:XX:XX:89

 show chassis 
Local Chassis ID 1 (Master)
  Model Name:                    OS6900-X40,
  Module Type:                   0x5062202,
  Description:                   Chassis,
  Part Number:                   902910-90,
  Hardware Revision:             B08,
  Serial Number:                 M366XXXX,
  Manufacture Date:              Sep 11 2011,
  Admin Status:                  POWER ON,
  Operational Status:            UP,
  Number Of Resets:              29,
  MAC Address:                   e8:e7:32:XX:XX:69

Remote Chassis ID 2 (Slave)
  Model Name:                    OS6900-X40,
  Module Type:                   0x5062202,
  Description:                   Chassis,
  Part Number:                   902910-90,
  Hardware Revision:             B08,
  Serial Number:                 M366XXXX,
  Manufacture Date:              Sep 11 2011,
  Admin Status:                  POWER ON,
  Operational Status:            UP,
  Number Of Resets:              42,
  MAC Address:                   e8:e7:32:XX:XX:89


->show interfaces status 
 Chas/                   DETECTED-VALUES         CONFIGURED-VALUES    
 Slot/    Admin  Auto  Speed   Duplex  Pause   Speed   Duplex  Pause  Link
 Port     Status Nego  (Mbps)                  (Mbps)                 Trap
---------+------+----+--------+------+-------+--------+------+-------+-----
  1/1/1      en   dis   10000   Full     -     10000    Full     -     dis
  1/1/2      en   dis     -      -       -     10000    Full     -     dis
  1/1/3      en   dis     -      -       -     10000    Full     -     dis
 [.. snip ..]
 1/1/40     en   dis     -      -       -     10000    Full     -     dis
  2/1/1      en   dis   10000   Full     -     10000    Full     -     dis
  2/1/2      en   dis     -      -       -     10000    Full     -     dis
 [.. snip ..] 
 2/1/40     en   dis     -      -       -     10000    Full     -     dis

Will man LACPs anlegen geht das „wie immer“:

linkagg lacp agg 1 size 2 admin-state enable name "To_DC" actor admin-key 1 
linkagg lacp agg 2 size 2 admin-state enable name "To_RZ" actor admin-key 2
linkagg lacp port 1/1/31 actor admin-key 1
linkagg lacp port 2/1/31 actor admin-key 1
linkagg lacp port 2/1/39 actor admin-key 2
linkagg lacp port 1/1/39 actor admin-key 2

->show linkagg port 

Chassis/Slot/Port  Aggregate   SNMP Id   Status    Agg  Oper   Link Prim
-------------------+----------+--------+----------+----+-----+-----+----
         1/1/31     Dynamic      1031   ATTACHED      1  UP   UP    YES
         1/1/39     Dynamic      1039   ATTACHED      2  UP   UP    NO 
         2/1/31     Dynamic    101031   ATTACHED      1  UP   UP    NO 
         2/1/39     Dynamic    101039   ATTACHED      2  UP   UP    YES