Citrix ADC 101 – Grundlagen

Folgend eine Sammlung an Grundlegenden Informationen über den Citrix ADC. Von der Lizensierung, über die wichtigsten Befehle bis zu den Update Verfahren die man durchführen kann.

Allgemeine Informationen

Folgend erstmal einige Grundlegende Informationen zum Citrix ADC.

Betriebssystem und Architektur

Citrix ADC basiert auf dem Open-Source Betriebssystem FreeBSD. Im Gegensatz zu dem sehr ähnlichen Linux hat FreeBSD einen modularen Kernel und Citrix hat dies genutzt um die Bash Shell von FreeBSD zu modifizieren, indem das Netzwerk Subsystem entfernt und durch das eigene ersetzt wurde. Die Modifikationen wurden in einem benutzerdefinierten Kernelmodul namens NetScaler Core Packet Processing Engine (PPE) untergebracht.

Citrix ADC FreeBSD


Also besteht der Citrix ADC aus zwei Shells: dem BSD Kernel und dem NetScaler Kernel. Beide arbeiten dank der strikten Abgrenzung der Rollen als eine zusammenhängende Einheit. Der BSD Kernel verwaltet den Boot Prozess, den Zugriff auf das Dateisystem und die Langzeitprotokollierung. Der NetScaler Kernel steuert das Time Slicing für BSD, den Netzwerkzugriff, das SSL-Offloading, SNMP und die Syslog-Verarbeitung.

NetScaler Kernel Architecture

Die PPE (alternativ auch als Packet Engine (PE) bezeichnet) wurde entwickelt, um die Leistungsgewinne zu nutzen, die durch Parallelisierung erzielt werden können. Jeder PPE-Prozess wird einem Kern zugewiesen und arbeitet wie folgt:

  • eingehende Pakete überwachen
  • sie aus der Paket-Warteschlange ziehen
  • sie entsprechend für Content-Switching, Frontend-Optimierung, Caching etc. bearbeiten
  • die Pakete wieder in die Paket-Warteschlange stellen
  • auf weitere Pakete warten

Der Prozess arbeitet also zu jeder Zeit entweder an einem Paket oder wartet auf Pakete. Bei Multi-Core CPUs kann dies parallel erfolgen. Bestimmte Kerne sind mit bestimmten Funktionen betraut. Zum Beispiel könnte Kern 1 für die Verwaltung des Netzwerkverkehrs zuständig sein, Kern 2 für die Verarbeitung von TCP/IP, Kern 3 für die Verarbeitung von Schicht 7 (z. B. HTTP) usw. Dies ist möglich, weil jeder Prozess ein Mini ADC ist, der alle von ADC unterstützten Aufgaben zur Anwendungsoptimierung ausführen kann.

Die Obergrenze, wie viel Parallelverarbeitung zu einem bestimmten Zeitpunkt stattfinden kann, wird durch die Anzahl der Kerne in der CPU bestimmt. Bei einer CPU mit 4 Kernen werden z. B. 3 Kerne 3 separaten PSAs zugewiesen, wobei 1 Kern für Verwaltungsfunktionen, z. B. SNMP, reserviert ist. Beachtet, dass ein Kern immer für die Verwaltung reserviert ist.

Wenn der ADC hochgefahren wird, bootet FreeBSD und lädt den NetScaler-Kernel. Es überlässt dem NetScaler-Kernel alle CPUs mit Ausnahme des Management Kerns und übergibt dann die Zügel an den ADC, um das Hochfahren abzuschließen.

Plattformen

Citrix ADC ist in 4 Plattform Versionen verfügbar. Die zwei virtuellen Versionen VPX und CPX. VPX für die bekannten Hypervisor und CPX für Docker Hosts. Sowie die drei physikalischen Versionen MPX, SDX und BLX. MPX und SDX wird direkt als Hardware von Citrix geliefert, wobei SDX ein Citrix Hypervisor ist, der bis zu 115 unabhängige VPX beinhalten kann (Kommt auf die jeweilige Hardware an). BLX ist eine Bare Metal Software Version die auf eigener Hardware betrieben werden kann. Hier wird nicht jede Hardware unterstützt!

BLX SDX MPX CPX VPX Citrix ADC Plattform

Jeder der oben genannten Plattformen hat eine in der Lizenz hinterlegte Bandbreiten Limitierung. Diese kann durch einspielen einer neuen, höheren Lizenz angepasst werden (Pay-as-you-grow). Das Naming Schema der Lizenzen verrät direkt die Maximale Bandbreite, z.B. eine VPX50 hat eine maximale eingehende Bandbreite von 50 Mbps. Der ausgehende Verkehr wird nicht dazu gerechnet, bei der Citrix Bandbreiten Limitierung.

Eine Maschine ohne eingespielte Lizenz wird als Citrix ADC Express bezeichnet und hat folgende Limitierungen:

  • 20 Mbps Bandbreite
  • Alle ADC Standard Lizenzfunktionen, außer Citrix Gateway und L4- und L7-Defenses
  • Maximum 250 SSL Sessions
  • 20 Mbps SSL Durchsatz

Lizensierung

Citrix ADC ist in vier verschiedenen Lizenz Modellen verfügbar. Drei unterschiedliche Citrix ADC Modelle und die Citrix Gateway Lizenz. Die verschiedenen unterstützten Features sind in der folgenden Liste aufgeführt.

FeaturePremiumAdvancedStandardGateway
Load BalancingYESYESYES
Content SwitchingYESYESYES
AppExpert Rate ControlsYESYESYES
IPv6 SupportYESYESYES
Traffic DomainsYESYESYES
Subscriber-Aware Traffic SteeringYESYESYES
Global Server Load Balancing (GSLB)YESYESOptional
Carrier-Grade Network Address Translation (CGNAT)YESYES
Dynamic Routing ProtocolsYESYES
Surge ProtectionYESYES
Priority QueuingYESYES
TriScale ClusteringYESYES
TCP OptimizationsYESYESYES
AppCompressYESYESOptional
AppCacheYESOptional
DoS DefensesYESYESYES
Rewrite and ResponderYESYESYES
AAA for Traffic ManagementYESYES
Citrix Web AppFirewall (WAF)YESOptional
IP ReputationYESOptional
nFactor AuthenticationYESYES
Cloud ConnectorYES
Insight Center-Web InsightYESYESYES
AppExpertYESYESYES
ActionAnalyticsYESYESYES
Configuration Wizards YESYESYES
Native Citrix Web InterfaceYESYES
Citrix Command CenterYESYESYES
Federated IdentityYESYES
One URL/SSO using SAML 2.0YESYES
Cluster for ICA Proxy (Striped)YESYES
Monitoring of Citrix Apps and Desktops Traffic (Real Time)YESYES
Monitoring of Citrix Apps and Desktops Traffic (Historical)YES
Monitoring of Gateway Traffic (Real Time)YESYES
Monitoring of Gateway Traffic (Historical)YES
Customizable Web PortalYESYESYESYES
SSL VPN Remote AccessYESYESYESYES
ICA Proxy to Citrix Virtual Apps and DesktopsYESYESYESYES
Contextual Policies for Citrix Apps and DesktopsYESYESYESYES
End Point AnalysisYESYESYESYES
Secure Browser-Only Access (CVPN)YESYESYESYES
Always-OnYESYESYES
Integration with StoreFrontYESYESYES
System >License > ADC License

Troubleshooting

Nützliche Informationen und Befehle zum Troubleshooting.

Verzeichnisse & Dateien

Aufgelistet die wichtigsten Verzeichnisse und Dateien auf der Citrix ADC Maschine.

ErklärungVerzeichnis / Datei
System Syslog File/var/log/ns.log
Alle logged entries/var/log/messages
Authentication /Authorization Logs/var/log/auth.log
Hardware Error & Boot Sequence Error Log/var/log/dmesg.*
Main Log File im NS Data Format. Ältere Dateien sind im gleichen Ordner aber im GZ-Format archiviert./var/nslog/newnslog
Core Crash Dump Files/var/crash/vmcore.*.gz
/var/core/NSPPE-**-*.gz
Kernel Crash Dump Files/var/crash/kernel.*
Core Dump Log File/tmp/savecore.log
Symbolic link nach /flash/nsconfig/nsconfig
Standort der Citrix License Files/flash/nsconfig/license/*.lic
Aktuelle Konfiguration Datei. Ältere Konfigurationen sind im gleichen Ordner als ns.conf.* gespeichert./flash/nsconfig/ns.conf
Standort der SSL Zertifikate/flash/nsconfig/ssl
Standort der Custom Monitore/flash/nsconfig/monitors
Standort der Firmware Update Dateien/var/nsinstall
/flash
/var/log/

Prozesse

Aufgelistet die wichtigsten Prozesse, die man auf der Citrix ADC Maschine antrifft.

ErklärungProzess
NetScaler Packet Enginensppe
RBA und SSL VPN Externe Authnsaaad
Schreibt die ns.conf Dateinsconf
Kontrolliert das Logging für newnslognslog.sh
HA Syncnssync
Liest SSL Cert Dateiennsreadfile
SSL CRL List Updatenscrlrefresh
Synchronisiert Bookmarks und SSL Certificatesnsfsyncd
Konfiguration Änderungen durch die GUInsnetsvc
Führt die Monitore mit Skript aus nsumond
Kontrolliert das schreiben der newnslognsconmsg
Sammelt Statistik Daten für die das Historische Reportingnscollect
Routing Prozesseimi / ripd / ospfd / bgpd
nsppe nsaaad

Command Line Interface (CLI) Befehle

Die CLI gehört zum NetScaler Kernel und ist das erste, was man sieht, wenn man sich auf die Maschine verbindet.

Allgemeine Befehle

ErklärungBefehl
Aktiviert CLI Color Modeset cli mode -color ON
Hinzunahme von aktuellen Benutzer, Hostname, Zeit und Node Status zur CLIset cli prompt %u@%h-%T-%s
Timeout für CLI Sitzung erhöhen (hier auf 30 Minuten (1800 Sekunden)set cli mode -timeout 1800
History der ausgeführten Befehlehistory | more
Hilfe Anzeige zu bestimmten Befehlhelp <Command>
Anzeige der MAN Seite für bestimmten Befehlman <Command>
Konfiguration Menüconfig ns
Erstellt Backup der Konfiguration Files (/nsconfig/, /var/, /netscaler/, ns.conf) im Ordner /var/ns_sys_backupcreate system backup <Backup Name> -level basic
Erstellt erweitertes Backup (/nsconfig/, /var/, /netscaler/, ns.conf, Certificates, License Files)im Ordner /var/ns_sys_backupcreate system backup <Backup Name> -level full
Zeigt vorhandene Backups anshow system backup
Restore aus bestehendem Backuprestore system backup <Backup Name>
Konfigurationsmodusshell
Features (Verfügbare & Konfigurierte)show feature
Aktiviert bestimmtes Feature (wenn es von der eingespielten Lizenz unterstützt wird)enable feature <Acronym>
Deaktiviert bestimmtes Featuredisable feature <Acronym>
Modus (Verfügbare & Konfigurierte)show ns mode
Aktiviert bestimmten Modeenable ns mode <Acronym>
Deaktiviert bestimmten Modedisable ns mode <Acronym>
Gespeicherte Konfigurationshow savedConfig | more
Laufende Konfigurationshow run | more
Unterschiede zwischen der laufenden mit der gespeicherten Konfigurationdiff ns config -outtype CLI
Laufende Konfiguration speichernsave config
Erzeugt Datei unter /var/tmp/support/ für den manuellen Upload nach cis.citrix.com (Health Check des Citrix ADC)show techsupport
Erzeugt Datei und lädt diese automatisch hoch nach cis.citrix.com. Die Anmeldung erfolgt über die mitgelieferten Credentials.show techsupport -upload -username <Citrix Username> -password <Citrix Password>
HA Node Statusshow ha node
Aktuellen HA Node auf Stayprimary stellen. (Für Staysecondary einfach Befehl anpassen)set ha node -hastatus stayprimary
HA Synchronisierung durchführen (Parameter für einzelne Synchronisierung anstelle von all sind: bookmarks, ssl, htmlinjection, imports, misc, all_plus_misc) sync ha files all
HA Sync deaktivierenset ha node -hasync disabled
HA Failoverforce ha failover
Routing Tabelleshow route
Statische Route hinzufügenadd route <Network> <Netmask> <Gateway>
Statische Route entfernenrm route <Network> <Netmask> <Gateway>
Netzwerk Interfaces Detailliertshow interface
Netzwerk Interfaces Kompaktshow interface -summary
Detaillierte Informationen Netzwerk Interfaceshow interface <Interface Nummer>
Aktiviert Netzwerk Interfaceenable interface <Interface Nummer>
Deaktiviert Netzwerk Interfacedisable interface <Interface Nummer>
show techsupport -upload -username Citrix Username -password Citrix Password

System Informationen

ErklärungBefehl
Sammlung an Informationen (z.B. Firmware, Hostnamen usw.)show ns info
Firmware Versionshow version
Hostnamenshow hostname
Lizenzdetailsshow license
Hardware Details & Seriennummershow hardware
HA Node Konfigurationshow node
IP Adressen (NSIP, SNIP,VIP, MIP)show ip
ARP Tabelleshow arp
VLANsshow vlan
DNS Servershow dns addrec -type proxy
RPC Node Informationenshow ns rpcnode
Alle momentanen Verbindungenshow connectiontable
Alle momentanen Verbindungen, gefiltert auf definierte IP Adresseshow connectiontable | grep <IP Address>
Aktuelle AAA Sessionsshow aaa session
Aktuelle Persistence Sessionsshow persistentsessions
Zwischengespeicherte http Objekteshow cache object
Zwischengespeicherte http Objekte limitiert auf bestimmte ContentGroupshow cache object | grep -i „<ContentGroup>“
Detaillierte Anzeige des zwischengespeicherten http Objekte (Locator ist über vorherigen Befehl abrufbar)show cache object -locator <locator>
show ns info

Load Balancing

ErklärungBefehl
Load Balancing vServer Liste & Konfigurationshow lb vserver | more
Detaillierte Load Balancing vServer Konfigurationshow lb vserver <LB vServer Name>
Aktiviert Load Balancing vServerenable lb vserver <LB vServer Name>
Deaktiviert Load Balancing vServerdisable lb vserver <LB vServer Name>
Load Balancing Service Liste & Konfigurationshow service | more
Detaillierte Load Balancing Service Konfigurationshow service <LB Service Name>
Aktiviert Load Balancing Serviceenable service <LB Service Name>
Deaktiviert Load Balancing Servicedisable service <LB Service Name>
Load Balancing Service Group Liste & Konfigurationshow servicegroup | more
Detaillierte Load Balancing Service Group Konfigurationshow servicegroup <LB Servicegroup Name>
Aktiviert Load Balancing Service Groupenable servicegroup <LB Service Group Name>
Deaktiviert Load Balancing Service Group (Verzögerung in Sekunden)disable servicegroup <LB Service Group Name> -delay <Seconds>
Load Balancing Server Liste & Konfigurationshow server | more
Detaillierte Load Balancing Server Konfigurationshow server <LB Server Name>
Aktiviert Load Balancing Serverenable server <LB Server Name>
Deaktiviert Load Balancing Server (Verzögerung in Sekunden)disable server <LB Server Name> -delay <Seconds>
Load Balancing Monitor Liste & Konfigurationshow monitor | more
Detaillierte Load Balancing Monitor Konfigurationshow monitor <LB Monitor Name>
Aktiviert Load Balancing Monitorenable monitor <LB Monitor Name>
Deaktiviert Load Balancing Monitordisable monitor <LB Monitor Name>
CLI-Konfiguration für ein bestimmtes Citrix ADC Objekt (Hier Load Balancer vServer)sh run | grep -i „<LB vServer Name>“
show lb vserver | more

Content Switching

ErklärungBefehl
Content Switch vServer Liste & Konfigurationshow cs vserver | more
Detaillierte Content Switch vServer Konfigurationshow cs vserver <CS vServer Name>
Aktiviert Content Switch vServerenable cs vserver <CS vServer Name>
Deaktiviert Content Switch vServerdisable cs vserver <CS vServer Name>
Content Switch Action Liste & Konfigurationshow cs action | more
Content Switch Policy Liste & Konfigurationshow cs policy | more
Detaillierte Content Switch Policy Konfigurationshow cs policy <CS Policy Name>
CLI-Konfiguration für ein bestimmtes Citrix ADC Objekt (Hier Content Switch Action)sh run | grep -i „<CS Action Name>“
show cs policy | more

VPN / Gateway

ErklärungBefehl
VPN / Gateway vServer Liste & Konfigurationshow vpn vserver | more
Detaillierte VPN / Gateway vServer Konfigurationshow vpn vserver <VPN / Gateway vServer Name>
Aktiviert VPN vServerenable vpn vserver <VPN / Gateway vServer Name>
Deaktiviert VPN vServerdisable vpn vserver <VPN / Gateway vServer Name>
CLI-Konfiguration für ein bestimmtes Citrix ADC Objekt (Hier VPN / Gateway vServer)sh run | grep -i „<VPN / Gateway vServer Name>“
sh run | grep -i "VPN"

AAA

ErklärungBefehl
AAA vServer Liste & Konfigurationshow authentication vserver | more
Detaillierte AAA vServer Konfigurationshow authentication vserver <AAA vServer Name>
Aktiviert AAA vServerenable authentication vserver <AAA vServer Name>
Deaktiviert AAA vServerdisable authentication vserver <AAA vServer Name>
AAA Policy Liste & Konfigurationshow authentication policy | more
Detaillierte AAA Policy Konfigurationshow authentication policy <AAA Policy Name>
AAA LDAP Action Liste & Konfigurationshow authentication ldapaction | more
Detaillierte AAA LDAP Action Konfigurationshow authentication ldapaction <AAA LDAP Action Name>
AAA LDAP Policy Liste & Konfigurationshow authentication ldappolicy | more
Detaillierte AAA LDAP Policy Konfigurationshow authentication ldappolicy <AAA LDAP Policy Name>
AAA SAML Policy Liste & Konfigurationshow authentication samlpolicy | more
Detaillierte AAA SAML Policy Konfigurationshow authentication samlpolicy <AAA SAML Policy Name>
AAA SAML Action Liste & Konfigurationshow authentication samlaction | more
Detaillierte AAA SAML Action Konfigurationshow authentication samlaction <AAA SAML Action Name>
AAA SAML IdP Policy Liste & Konfigurationshow authentication samlIdPpolicy | more
Detaillierte AAA SAML IdP Policy Konfigurationshow authentication samlIdPpolicy <AAA samlIdPpolicy Name>
AAA SAML IdP Profile Liste & Konfigurationshow authentication samlIdPprofile | more
Detaillierte AAA SAML IdP Profile Konfigurationshow authentication samlIdPprofile <AAA SAML IdP Profile Name>
AAA Radius Action Liste & Konfigurationshow authentication radiusaction | more
Detaillierte AAA Radius Action Konfigurationshow authentication radiusaction <AAA Radius Action Name>
AAA Radius Policy Liste & Konfigurationshow authentication radiuspolicy | more
Detaillierte AAA Radius Policy Konfigurationshow authentication radiuspolicy <AAA Radius Policy Name>
CLI-Konfiguration für ein bestimmtes Citrix ADC Objekt (Hier AAA vServer)sh run | grep -i „<AAA vServer Name>“
show aaa session

SSL

ErklärungBefehl
Erweiterte SSL Parametershow ssl parameter
SSL vServer Liste & Konfigurationshow ssl vserver | more
Detaillierte SSL vServer Konfigurationshow ssl vserver <SSL vServer Name>
SSL Policy Liste & Konfigurationshow ssl policy | more
Detaillierte SSL Policy Konfigurationshow ssl policy <SSL Policy Name>
SSL Action Liste & Konfigurationshow ssl action | more
Detaillierte SSL Action Konfigurationshow ssl action <SSL Action Name>
SSL Profile Liste & Konfigurationshow ssl profile | more
Detaillierte SSL Profile Konfigurationshow ssl profile <SSL Profile Name>
SSL Service Liste & Konfigurationshow ssl service | more
Detaillierte SSL Policy Konfigurationshow ssl service <SSL Service Name>
SSL Service Group Liste & Konfigurationshow ssl servicegroup | more
Detaillierte SSL Service Group Konfigurationshow ssl servicegroup <SSL Service Group Name>
SSL Zertifikate / CA Liste & Konfigurationshow ssl certkey | more
Detaillierte SSL Zertifikat / CA Konfigurationshow ssl certkey <SSL Zertifikat / CA Name>
Verlinkung der Zertifikateshow ssl certlink
CLI-Konfiguration für ein bestimmtes Citrix ADC Objekt (Hier SSL vServer)sh run | grep -i „<SSL vServer Name>“
show ssl parameter

Statistik

ErklärungBefehl
Citrix ADC Statistikstat ns
SSL Statistikstat ssl
Interface Statistikstat interface
Detaillierte Interface Statistikstat interface <Interface Name>
CPU Statistikstat cpu
RAM Verbrauchstat cache -detail | grep -i „Utilized memory“
AAA Statistikshow aaa stats
Statistik aller LB vServerstat lb vserver -full
Load Balancing vServer Statistikstat lb vserver <LB vServer Name>
Statistik aller LB Servicesstat service -full
Load Balancing Service Statistikstat service <LB Service Name>
Statistik aller LB Service Groupsstat servicegroup -full
Load Balancing Service Group Statistikstat servicegroup <LB Service Group Name>
Statistik aller LB Serverstat server -full
Load Balancing Server Statistikstat server <LB Server Name>
Statistik aller CS vServer stat cs vserver -full
Content Switching vServer Statistik stat cs vserver <CS vServer Name>
Statistik aller VPN / Gateway vServerstat vpn vserver -full
VPN / Gateway vServer Statistikstat vpn vserver <VPN / Gateway vServer Name>
Statistik aller AAA vServerstat authentication vserver -full
AAA vServer Statistikstat authentication vserver <AAA vServer Name>
Statistik aller AAA Policystat authentication policy -full
AAA Policy Statistikstat authentication policy <AAA Policy Name>
Statistik aller AAA SAML IdP Policystat authentication samlIdPpolicy -full
AAA SAML IdP Policy Statistikstat authentication samlIdPpolicy <AAA SAML IdP Policy Name>
Statistik aller SSL vServerstat ssl vserver -full
SSL vServer Statistikstat ssl vserver <SSL vServer Name>
stat ns

Konfigurationsmodus (shell) Befehle

Der Konfigurationsmodus gehört zum BSD Kernel und ist über die CLI erreichbar. In der CLI muss man den Befehl shell ausführen um in den Konfigurationsmodus zu gelangen.

Allgemeine Befehle

ErklärungBefehl
Konfigurationsmodus verlassenexit (Ctrl + D)
Traceroutetraceroute <IP oder DNS Namen>
Pingping <IP oder DNS Namen>
Telnettelnet <IP oder DNS Namen>
Dig (DNS Utility) [bis BSD Kernel 10.x]dig <IP oder DNS Namen>
Drill (DNS Utility) [ab BSD Kernel 10.x]drill <IP oder DNS Namen>
Auflistung der laufenden Prozesseps -ax
ADC „Task Manager“top
Entpacken von .tar.gz Dateien. (Hier z.B. Historische newnslog Datei für spätere Analyse)tar xvfz /var/nslog/newnslog.99.tar.gz
ps -aux

System Informationen

ErklärungBefehl
Aktuelle Betriebszeit ADCuptime
Detaillierte AD Infos (Beschreibung, Model, Platform, CPU, usw.)sysctl -a netscaler | more
Speicherplatzdf -h
Anzeigen des integrierten Cachenscachemgr -a
uptime

Logging

ErklärungBefehl
LDAP Authentication Log Outputcat /tmp/aaad.debug
Kerberos Tickets löschen (Wichtig für Troubleshooting der Kerberos Auth)nsapimgr_wr.sh -ys call=ns_aaa_flush_kerberos_tickets
Kerberos Authentication Log Outputcat /tmp/nskrb.debug
Aktuelle Real-Time Infos aus ns.logtail -f /var/log/ns.log
Aktuelle Real-Time Infos bezüglich SNMP aus ns.log tail -f /var/log/ns.log | grep -i „snmp“
Aktuelle Hardware Error & Boot Sequence Error Logdmesg
Zeigt Real-Time Pakete von / an <IP Address>nstcpdump.sh host <IP Address>
Zeigt Real-Time Pakete zwischen den beiden <IP Address>nstcpdump.sh host <IP Address> and host <IP Address>
Zeigt Real-Time Pakete auf Port <Port Number>nstcpdump.sh port <Port Number>
Zeigt Real-Time Pakete von / an <IP Address> auf Port <Port Number>nstcpdump.sh host <IP Address> and port <Port Number>
Zeigt Real-Time Pakete an <IP Address> auf ankommenden Port <Port Number>nstcpdump.sh dst host <IP Address> and dst port <Port Number>
Zeigt Real-Time Pakete von / an <Network Address> mit <Subnet Mask>nstcpdump.sh net <Network Address> mask <Subnet Mask>
Zeigt Real-Time Pakete von / an <IP Address> zwischen Port <Start Port> und Port <End Port>nstcpdump.sh host <IP Address> and portrange <Start Port-End Port>
Zeigt Anzahl <Packet Count> von Real-Time Pakete von / an <IP Address>nstcpdump.sh -c <Packet Count> host <IP Address>
Zeigt Real-Time Pakete von / an <IP Address> oder <IP Address>nstcpdump.sh host <IP Address> or host <IP Address>
Zeigt Real-Time TCP Pakete von / an <IP Address>nstcpdump.sh host <IP Address> and tcp
Zeigt Real-Time UDP Pakete von / an <IP Address>nstcpdump.sh host <IP Address> and udp
Zeigt Real-Time ARP Pakete von / an <IP Address>nstcpdump.sh host <IP Address> and arp
Zeigt Real-Time ICMP Pakete von / an <IP Address>nstcpdump.sh host <IP Address> and icmp
Erfassen der Real-Time Pakete in Wireshark Capture Formatnstcpdump.sh port <Port Number> -w /var/tmp/test.pcap
Erfassen der Real-Time Pakete der angegebenen Interfaces in Wireshark Capture Format (Wichtig –i keyword funktioniert nur im Wireshark Capture Format)nstcpdump.sh -w /var/tmp/test.pcap -i <Interface Number> -i <Interface Number>
dmesg

nsconmsg

Das wichtigste Troubleshooting Tool im Konfigurationsmodus ist nsconmsg. Folgend ein kleine Einweisung, wie dieses Tool zu bedienen ist. Später folgen noch spezielle Befehle, die dadurch verständlicher sind.

Allgemeine nsconmsg Parameter sind:

-d <Operation>

-dCurrentAktuelle Performance Daten
-dStatsAktuelle Statistik Counter
-dMemstatsAktuelle Memory Statistik
nsconmsg -d current

-K <File Name>

-KnewnslogPerformance Informationen aus diesem Log File

-s <name=value>

-sConBL=2Load Balancing Performance Data
-sConCSW=2Content Switch Performance Data
-sConSSL=3SSL Performance Data (1 = Front End Connections / 2 = Back End Connections / 3 = Front & Back End Connections)

-g <Match String>

-gnic_errFiltert auf nur die Informationen auf die der String passt
nsconmsg -K /var/nslog/newnslog -g cc_cpu_use -s disptime=1 -d current | more

ErklärungBefehl
Entpackte newnslog.99 Datei analysieren. Hier auf historische Memory Usage.nsconmsg -K /var/nslog/newnslog.99 -s ConMEM=2 -d oldconmsg | more
Prüfen Sie, ob Netzwerkpakete aufgrund einer Bandbreitenbegrenzung von Netscaler verworfen wurdennsconmsg -K /var/nslog/newnslog -g nic_err_rl -d current -s disptime=1 | more
Policy Hits für Session Policiesnsconmsg -d current  -g _hits
Policy Hits für Rewritesnsconmsg –d current | egrep –i rewrite
Policy Hits für Respondernsconmsg –d current | egrep –i responder
Aktuelle Memory Statistiknsconmsg -K /var/nslog/newnslog -d memstats
Aktuelle Memory Fehlernsconmsg -K /var/nslog/newnslog -g mem_err -d statswt0
Start- und Endzeit der Datendateinsconmsg -K /var/nslog/newnslog -d setime
Start- und Endzeit der Archivdateizcat /var/nslog/newnslog.99.gz | nsconmsg -K pipe -d setime
Einschränken des Log Files auf bestimmten Zeitlichen Bereichnsconmsg -K /var/log/newnslog -s time=12Aug2021:00:00 -k short_log.nsl -T 1200 -d copy
Aktuelle Statistik Counternsconmsg -K /var/nslog/newnslog -d stats | more
Statistik des spezifischen Counter, hier ssl_err & nic_errnsconmsg -K /var/nslog/newnslog -g nic_err -g ssl_err –s disptime=1 -d current
Aktuelle Statistik SAML Auth.nsconmsg -d current -g saml
Historische Statistik SAML Auth.nsconmsg -d stats -g saml
Netzwerk Statistik des angegebenen Load Balancer vServer. Über ConLb kann der Detailreichtum der Ausgabe definiert werden (1 oder 2)nsconmsg -K /var/nslog/newnslog -j <LB vServer Name> -T 7 -s ConLb=2 -d oldconmsg
Aktuelle CPU Auslastung (Achtet auf totalcount-val, 463 wäre z.B. 46,3 %)nsconmsg -K /var/nslog/newnslog -g cpu_use -s disptime=1 -d current | more
Aktuelle Packet Engine (PE) CPU Auslastung (Achtet auf totalcount-val, 463 wäre z.B. 46,3 %) nsconmsg -K /var/nslog/newnslog -g cc_cpu_use -s disptime=1 -d current | more
Aktuelle Management CPU Auslastung (Achtet auf totalcount-val, 463 wäre z.B. 46,3 %) nsconmsg -K /var/nslog/newnslog -g mgmt_cpu_use -s disptime=1 -d current | more
Zeitspanne, die von einer bestimmten newnslog-Datei abgedeckt wirdnsconmsg -K /var/nslog/newnslog -d setime
Aktuelle Eventsnsconmsg -d current -d event
Alle ADC Monitore, die derzeit als DOWN markiert sind und den Grund warumnsconmsg -K /var/nslog/newnslog -d event | grep -i „DOWN;“
Überprüft die HA-Pakete (Achtet auf die Spalte delta. Wenn sich hier die Zahl nach oben verändert, gibt es Netzwerk Probleme zwischen den ADC Knoten)nsconmsg -K /var/nslog/newnslog -s disptime=1 -d current -g ha_tot_pkt_rx | more
Konsolen Mitteilungennsconmsg -K /var/nslog/newnslog -d consmsg
Überprüft, ob IP-Konflikte in einem vom Citrix ADC verwendeten Subnetz festgestellt wurden sindnsconmsg -K /var/nslog/newnslog -d consmsg | grep -i conflict
nsconmsg -d current  -g _hits

Citrix ADC Update

Das Citrix ADC Update kommt in regelmäßigen Abstand auf einen zu. Wichtig ist hier zu beachten, das ein Update auch immer Benutzer tangiert und daher dies nicht unbedacht durchgeführt werden sollte.

Ablauf

  1. Snapshot der Maschine erstellen (wenn VPX)
  2. Aktuelle Konfiguration speichern
  3. System Backup erstellen (CLI: create system backup -level full oder GUI: System > Backup and Restore) und vom System herunterladen (CLI: /var/ns_sys_backup/ oder GUI)
  4. Benutzte Features, so weit wie möglich, vor dem Update prüfen (Gateway Zugang, Load Balancer, LDAP Zugriff)
  5. Nur in Betriebsarmen Stunden updaten, da es auch im HA Cluster zu kurzzeitigen Verbindungsproblemen kommt (Benutzer erhält beim Schwenk Meldung das er Wiederverbinden muss für ca.3 Sekunden)
  6. Im HA Cluster Secondary Node updaten
  7. Konfiguration Secondary Node auf Vollständigkeit prüfen
  8. Schwenk von Secondary Node zum Primary Node
  9. Funktionstest benutzte Features (Gateway Zugang, Load Balancer, LDAP Zugriff)
  10. Update des ehemaligen Primary Node
  11. Überprüfung HA Status und Synchronisation
  12. Schwenk der HA Nodes
  13. Funktionstest benutzte Features (Gateway Zugang, Load Balancer, LDAP Zugriff)

Über die CLI

Da das Update über die GUI manchmal harkt, macht es Sinn dies eigentlich immer über die CLI durchzuführen. Hierfür verbindet man sich über putty (NetScaler IP) mit dem Citrix ADC.

putty

Gibt dann im folgenden Fenster seine Credentials ein.

Citrix ADC NSIP Connect

Als erstes speichern wir sicherheitshalber die Laufende Konfiguration ab, über den Befehl.

save config

Nun muss in den Konfiguration Modus gewechselt werden und ein Ordner für das neue Image erstellt werden.

shell
mkdir /var/nsinstall/Version

In diesen Ordner kann das Update per WinSCP oder ähnlichem kopiert werden. Nachdem dies geschehen ist muss die Datei noch entpackt werden.

cd /var/nsinstall/Version/
tar xzvf Update File.tgz

Startet das Update nach dem entpacken mit dem Befehl.

./installns

Danach das System noch Neustarten und prüfen ob alles läuft.

Über GUI

Natürlich kann man auch das Update über GUI starten. So spart man sich bei eventuellen Fehlern das hochladen und entpacken der neuen Firmware. Als erstes anmelden an die Citrix ADC Maschine (NetScaler IP).

Logon mask Citrix ADC

Wenn es sich um ein HA Cluster handelt, sollte folgende Meldung erscheinen. Damit wissen wir, das wir beruhigt das Update durchführen können, ohne die Benutzer einzuschränken.

You are connected to a secondary node

Als erstes speichern wir sicherheitshalber die Laufende Konfiguration ab, hierfür klicken wir auf die Diskette oben rechts. Unter HA Status sehen wir ebenfalls das wir uns auf dem Secondary Node befinden.

Save Config

Klickt danach auf System Upgrade.

Citrix ADC System Upgrade

Im folgenden Fenster prüfen wir ob noch ausreichend Platz (used >55%) auf dem /var Verzeichnis für das Update zur Verfügung steht.

System Upgrade

Wenn genügend Speicherplatz frei ist, klickt auf Choose File und auf Local.

Choose File

Wählt dort die heruntergeladene Firmware Datei aus.

Firmware

Prüft die Einstellungen unter Upgrade Options und Citrix ADM Service Connect. Wenn kein Citric ADM vorhanden ist kann die Option da drunter deaktiviert werden.

Citrix ADM Service Connect

Wichtig ist unter Upgrade Options. Wenn dort Reboot after successful installation ausgewählt ist, bekommt keine saubere Meldung, dass das System neu startet.

Reboot after successful installation

Es scheint einfach nur im Installationsschritt zu hängen. Nach einem Refresh des Browsers, sieht man die neue Firmware und das der Citrix ADC auch schon gebootet ist.

Stuck Upgrade

Startet das Update durch klick auf Upgrade.

Upgrade Citrix ADC

Es öffnet sich ein Fenster und man sieht das die Firmware Daten hochgeladen werden.

Uploading Firmware

Danach wird das Firmware Update installiert und man sieht am Ende die folgende Meldung.

Update done

Wie angezeigt, einfach die Maschine neu starten.

Speicher freigeben

Wenn beim Update eine der folgenden Meldungen erscheint:

Error: No space left on /flash/ filesystem, aborting installatio

Dann muss auf dem jeweiligen Laufwerk der Citrix ADC Maschine Platz freigegeben werden. Als erstes werden die 10 größten Verzeichnisse auf dem jeweiligen betroffenen Bereich geprüft.

Alle Befehle müssen im Konfigurationsmodus (shell) ausgeführt werden.

du -a /flash | sort -n -r | head -n 10

Nun kann geprüft werden, warum die Verzeichnisse, so viel Speicherplatz verbrauchen. In den aufgeführten Bildern, würde ich die alten Firmware Stände unter /var/nsinstall (build-12.1-62.25) und /flash/ (ns-12.1-62.25 & ns-12.1-62.23) löschen, sowie die ältesten Logs unter /var/nslog bereinigen. Wichtig ist hier aber, nicht die Daten der aktuell genutzten Firmware zu löschen!

Klassisch, auch ohne den vorherigen Befehl, können die folgenden Verzeichnisse aufgeräumt werden.

Verzeichnis / DateiBefehl
/var/nstracerm -r /var/nstrace/*
/var/ns_system_backuprm -r /var/ns_system_backup/*
/var/tmp/supportrm -r /var/tmp/support/*
/var/nsinstallrm -r /var/nsinstall/<Old Firmware Version>
/var/corerm -r /var/core/*
/var/crashrm -r /var/crash/*
/flash/<Old Firmware Version>.gzrm -r /flash/<Old Firmware Version> (Nicht die aktuelle!)

HA Sync Fehler

Citrix hat ab der Version 13.0 Build 64.35 & 12.1 Build 61.18 die Sicherheit Option für alle RPC Knoten per Default aktiviert.

Dies bedeutet das die Kommunikation zwischen ADC Knoten im HA Verbund, Cluster oder GSLB nur noch Secure über Port 3008 und 3009 abläuft. Also muss gegebenenfalls ebenfalls die Netzwerk Firewalls angepasst werden, damit der Verkehr durch kommt.

Secure HA automatisch für die Kommunikation zwischen den HA Pärchen aktiviert. Dies kann dazu führen, das nach dem Update, bei der ersten Anmeldung die folgende Meldung erscheint.

Unable to establish connection with the secondary. Command propagation failed

Der Status des HA Pärchen (System > High Availability > Nodes) zeigt auch den Synchronisation State FAILED mit der Meldung „Unable to connect to primary, please check the network connectivity from secondary to primary“ an.

Unable to connect to primary, please check the network connectivity from secondary to primary System > High Availability > Nodes Synchronisation State FAILED

Als erstes prüft man die entsprechenden RPC Knoten (nsrpcs-127.0.0.1-3008) unter Traffic Management > Load Balancing > Services > Internal Services.

nsrpcs-127.0.0.1-3008 Traffic Management > Load Balancing > Services > Internal Services

Ersichtlich ist hier, das ein Zertifikat angebunden ist, aber unter Protocol TLSv12 nicht aktiviert ist.

Protocol TLSv12

Wenn wir dies auf beiden Citrix ADC Knoten für den RPC Punkt aktivieren, funktioniert auch wieder der Sync.

Synchronisation State SUCCESS

Dies sollte für die restlichen Internal Services wiederholt werden, damit alle Features ebenfalls TLSv12 nutzten können.

Eine weitere Lösung für das Thema ist eines der Default SSL Profile unter System > Profiles > SSL Profile zu aktivieren.

Default SSL Profile System > Profiles > SSL Profile

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

* Ich bin damit einverstanden, dass diese Website die von mir übermittelten Daten speichert, damit sie auf meine Anfrage antworten kann.