Table of Contents
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.
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.
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!
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.
Feature | Premium | Advanced | Standard | Gateway |
---|---|---|---|---|
Load Balancing | YES | YES | YES | |
Content Switching | YES | YES | YES | |
AppExpert Rate Controls | YES | YES | YES | |
IPv6 Support | YES | YES | YES | |
Traffic Domains | YES | YES | YES | |
Subscriber-Aware Traffic Steering | YES | YES | YES | |
Global Server Load Balancing (GSLB) | YES | YES | Optional | |
Carrier-Grade Network Address Translation (CGNAT) | YES | YES | ||
Dynamic Routing Protocols | YES | YES | ||
Surge Protection | YES | YES | ||
Priority Queuing | YES | YES | ||
TriScale Clustering | YES | YES | ||
TCP Optimizations | YES | YES | YES | |
AppCompress | YES | YES | Optional | |
AppCache | YES | Optional | ||
DoS Defenses | YES | YES | YES | |
Rewrite and Responder | YES | YES | YES | |
AAA for Traffic Management | YES | YES | ||
Citrix Web AppFirewall (WAF) | YES | Optional | ||
IP Reputation | YES | Optional | ||
nFactor Authentication | YES | YES | ||
Cloud Connector | YES | |||
Insight Center-Web Insight | YES | YES | YES | |
AppExpert | YES | YES | YES | |
ActionAnalytics | YES | YES | YES | |
Configuration Wizards | YES | YES | YES | |
Native Citrix Web Interface | YES | YES | ||
Citrix Command Center | YES | YES | YES | |
Federated Identity | YES | YES | ||
One URL/SSO using SAML 2.0 | YES | YES | ||
Cluster for ICA Proxy (Striped) | YES | YES | ||
Monitoring of Citrix Apps and Desktops Traffic (Real Time) | YES | YES | ||
Monitoring of Citrix Apps and Desktops Traffic (Historical) | YES | |||
Monitoring of Gateway Traffic (Real Time) | YES | YES | ||
Monitoring of Gateway Traffic (Historical) | YES | |||
Customizable Web Portal | YES | YES | YES | YES |
SSL VPN Remote Access | YES | YES | YES | YES |
ICA Proxy to Citrix Virtual Apps and Desktops | YES | YES | YES | YES |
Contextual Policies for Citrix Apps and Desktops | YES | YES | YES | YES |
End Point Analysis | YES | YES | YES | YES |
Secure Browser-Only Access (CVPN) | YES | YES | YES | YES |
Always-On | YES | YES | YES | |
Integration with StoreFront | YES | YES | YES |
Troubleshooting
Nützliche Informationen und Befehle zum Troubleshooting.
Verzeichnisse & Dateien
Aufgelistet die wichtigsten Verzeichnisse und Dateien auf der Citrix ADC Maschine.
Erklärung | Verzeichnis / 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 |
Prozesse
Aufgelistet die wichtigsten Prozesse, die man auf der Citrix ADC Maschine antrifft.
Erklärung | Prozess |
---|---|
NetScaler Packet Engine | nsppe |
RBA und SSL VPN Externe Auth | nsaaad |
Schreibt die ns.conf Datei | nsconf |
Kontrolliert das Logging für newnslog | nslog.sh |
HA Sync | nssync |
Liest SSL Cert Dateien | nsreadfile |
SSL CRL List Update | nscrlrefresh |
Synchronisiert Bookmarks und SSL Certificates | nsfsyncd |
Konfiguration Änderungen durch die GUI | nsnetsvc |
Führt die Monitore mit Skript aus | nsumond |
Kontrolliert das schreiben der newnslog | nsconmsg |
Sammelt Statistik Daten für die das Historische Reporting | nscollect |
Routing Prozesse | imi / ripd / ospfd / bgpd |
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ärung | Befehl |
---|---|
Aktiviert CLI Color Mode | set cli mode -color ON |
Hinzunahme von aktuellen Benutzer, Hostname, Zeit und Node Status zur CLI | set 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 Befehle | history | more |
Hilfe Anzeige zu bestimmten Befehl | help <Command> |
Anzeige der MAN Seite für bestimmten Befehl | man <Command> |
Konfiguration Menü | config ns |
Erstellt Backup der Konfiguration Files (/nsconfig/, /var/, /netscaler/, ns.conf) im Ordner /var/ns_sys_backup | create system backup <Backup Name> -level basic |
Erstellt erweitertes Backup (/nsconfig/, /var/, /netscaler/, ns.conf, Certificates, License Files)im Ordner /var/ns_sys_backup | create system backup <Backup Name> -level full |
Zeigt vorhandene Backups an | show system backup |
Restore aus bestehendem Backup | restore system backup <Backup Name> |
Konfigurationsmodus | shell |
Features (Verfügbare & Konfigurierte) | show feature |
Aktiviert bestimmtes Feature (wenn es von der eingespielten Lizenz unterstützt wird) | enable feature <Acronym> |
Deaktiviert bestimmtes Feature | disable feature <Acronym> |
Modus (Verfügbare & Konfigurierte) | show ns mode |
Aktiviert bestimmten Mode | enable ns mode <Acronym> |
Deaktiviert bestimmten Mode | disable ns mode <Acronym> |
Gespeicherte Konfiguration | show savedConfig | more |
Laufende Konfiguration | show run | more |
Unterschiede zwischen der laufenden mit der gespeicherten Konfiguration | diff ns config -outtype CLI |
Laufende Konfiguration speichern | save 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 Status | show 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 deaktivieren | set ha node -hasync disabled |
HA Failover | force ha failover |
Routing Tabelle | show route |
Statische Route hinzufügen | add route <Network> <Netmask> <Gateway> |
Statische Route entfernen | rm route <Network> <Netmask> <Gateway> |
Netzwerk Interfaces Detailliert | show interface |
Netzwerk Interfaces Kompakt | show interface -summary |
Detaillierte Informationen Netzwerk Interface | show interface <Interface Nummer> |
Aktiviert Netzwerk Interface | enable interface <Interface Nummer> |
Deaktiviert Netzwerk Interface | disable interface <Interface Nummer> |
System Informationen
Erklärung | Befehl |
---|---|
Sammlung an Informationen (z.B. Firmware, Hostnamen usw.) | show ns info |
Firmware Version | show version |
Hostnamen | show hostname |
Lizenzdetails | show license |
Hardware Details & Seriennummer | show hardware |
HA Node Konfiguration | show node |
IP Adressen (NSIP, SNIP,VIP, MIP) | show ip |
ARP Tabelle | show arp |
VLANs | show vlan |
DNS Server | show dns addrec -type proxy |
RPC Node Informationen | show ns rpcnode |
Alle momentanen Verbindungen | show connectiontable |
Alle momentanen Verbindungen, gefiltert auf definierte IP Adresse | show connectiontable | grep <IP Address> |
Aktuelle AAA Sessions | show aaa session |
Aktuelle Persistence Sessions | show persistentsessions |
Zwischengespeicherte http Objekte | show cache object |
Zwischengespeicherte http Objekte limitiert auf bestimmte ContentGroup | show cache object | grep -i „<ContentGroup>“ |
Detaillierte Anzeige des zwischengespeicherten http Objekte (Locator ist über vorherigen Befehl abrufbar) | show cache object -locator <locator> |
Load Balancing
Erklärung | Befehl |
---|---|
Load Balancing vServer Liste & Konfiguration | show lb vserver | more |
Detaillierte Load Balancing vServer Konfiguration | show lb vserver <LB vServer Name> |
Aktiviert Load Balancing vServer | enable lb vserver <LB vServer Name> |
Deaktiviert Load Balancing vServer | disable lb vserver <LB vServer Name> |
Load Balancing Service Liste & Konfiguration | show service | more |
Detaillierte Load Balancing Service Konfiguration | show service <LB Service Name> |
Aktiviert Load Balancing Service | enable service <LB Service Name> |
Deaktiviert Load Balancing Service | disable service <LB Service Name> |
Load Balancing Service Group Liste & Konfiguration | show servicegroup | more |
Detaillierte Load Balancing Service Group Konfiguration | show servicegroup <LB Servicegroup Name> |
Aktiviert Load Balancing Service Group | enable 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 & Konfiguration | show server | more |
Detaillierte Load Balancing Server Konfiguration | show server <LB Server Name> |
Aktiviert Load Balancing Server | enable server <LB Server Name> |
Deaktiviert Load Balancing Server (Verzögerung in Sekunden) | disable server <LB Server Name> -delay <Seconds> |
Load Balancing Monitor Liste & Konfiguration | show monitor | more |
Detaillierte Load Balancing Monitor Konfiguration | show monitor <LB Monitor Name> |
Aktiviert Load Balancing Monitor | enable monitor <LB Monitor Name> |
Deaktiviert Load Balancing Monitor | disable monitor <LB Monitor Name> |
CLI-Konfiguration für ein bestimmtes Citrix ADC Objekt (Hier Load Balancer vServer) | sh run | grep -i „<LB vServer Name>“ |
Content Switching
Erklärung | Befehl |
---|---|
Content Switch vServer Liste & Konfiguration | show cs vserver | more |
Detaillierte Content Switch vServer Konfiguration | show cs vserver <CS vServer Name> |
Aktiviert Content Switch vServer | enable cs vserver <CS vServer Name> |
Deaktiviert Content Switch vServer | disable cs vserver <CS vServer Name> |
Content Switch Action Liste & Konfiguration | show cs action | more |
Content Switch Policy Liste & Konfiguration | show cs policy | more |
Detaillierte Content Switch Policy Konfiguration | show 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>“ |
VPN / Gateway
Erklärung | Befehl |
---|---|
VPN / Gateway vServer Liste & Konfiguration | show vpn vserver | more |
Detaillierte VPN / Gateway vServer Konfiguration | show vpn vserver <VPN / Gateway vServer Name> |
Aktiviert VPN vServer | enable vpn vserver <VPN / Gateway vServer Name> |
Deaktiviert VPN vServer | disable 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>“ |
AAA
Erklärung | Befehl |
---|---|
AAA vServer Liste & Konfiguration | show authentication vserver | more |
Detaillierte AAA vServer Konfiguration | show authentication vserver <AAA vServer Name> |
Aktiviert AAA vServer | enable authentication vserver <AAA vServer Name> |
Deaktiviert AAA vServer | disable authentication vserver <AAA vServer Name> |
AAA Policy Liste & Konfiguration | show authentication policy | more |
Detaillierte AAA Policy Konfiguration | show authentication policy <AAA Policy Name> |
AAA LDAP Action Liste & Konfiguration | show authentication ldapaction | more |
Detaillierte AAA LDAP Action Konfiguration | show authentication ldapaction <AAA LDAP Action Name> |
AAA LDAP Policy Liste & Konfiguration | show authentication ldappolicy | more |
Detaillierte AAA LDAP Policy Konfiguration | show authentication ldappolicy <AAA LDAP Policy Name> |
AAA SAML Policy Liste & Konfiguration | show authentication samlpolicy | more |
Detaillierte AAA SAML Policy Konfiguration | show authentication samlpolicy <AAA SAML Policy Name> |
AAA SAML Action Liste & Konfiguration | show authentication samlaction | more |
Detaillierte AAA SAML Action Konfiguration | show authentication samlaction <AAA SAML Action Name> |
AAA SAML IdP Policy Liste & Konfiguration | show authentication samlIdPpolicy | more |
Detaillierte AAA SAML IdP Policy Konfiguration | show authentication samlIdPpolicy <AAA samlIdPpolicy Name> |
AAA SAML IdP Profile Liste & Konfiguration | show authentication samlIdPprofile | more |
Detaillierte AAA SAML IdP Profile Konfiguration | show authentication samlIdPprofile <AAA SAML IdP Profile Name> |
AAA Radius Action Liste & Konfiguration | show authentication radiusaction | more |
Detaillierte AAA Radius Action Konfiguration | show authentication radiusaction <AAA Radius Action Name> |
AAA Radius Policy Liste & Konfiguration | show authentication radiuspolicy | more |
Detaillierte AAA Radius Policy Konfiguration | show 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>“ |
SSL
Erklärung | Befehl |
---|---|
Erweiterte SSL Parameter | show ssl parameter |
SSL vServer Liste & Konfiguration | show ssl vserver | more |
Detaillierte SSL vServer Konfiguration | show ssl vserver <SSL vServer Name> |
SSL Policy Liste & Konfiguration | show ssl policy | more |
Detaillierte SSL Policy Konfiguration | show ssl policy <SSL Policy Name> |
SSL Action Liste & Konfiguration | show ssl action | more |
Detaillierte SSL Action Konfiguration | show ssl action <SSL Action Name> |
SSL Profile Liste & Konfiguration | show ssl profile | more |
Detaillierte SSL Profile Konfiguration | show ssl profile <SSL Profile Name> |
SSL Service Liste & Konfiguration | show ssl service | more |
Detaillierte SSL Policy Konfiguration | show ssl service <SSL Service Name> |
SSL Service Group Liste & Konfiguration | show ssl servicegroup | more |
Detaillierte SSL Service Group Konfiguration | show ssl servicegroup <SSL Service Group Name> |
SSL Zertifikate / CA Liste & Konfiguration | show ssl certkey | more |
Detaillierte SSL Zertifikat / CA Konfiguration | show ssl certkey <SSL Zertifikat / CA Name> |
Verlinkung der Zertifikate | show ssl certlink |
CLI-Konfiguration für ein bestimmtes Citrix ADC Objekt (Hier SSL vServer) | sh run | grep -i „<SSL vServer Name>“ |
Statistik
Erklärung | Befehl |
---|---|
Citrix ADC Statistik | stat ns |
SSL Statistik | stat ssl |
Interface Statistik | stat interface |
Detaillierte Interface Statistik | stat interface <Interface Name> |
CPU Statistik | stat cpu |
RAM Verbrauch | stat cache -detail | grep -i „Utilized memory“ |
AAA Statistik | show aaa stats |
Statistik aller LB vServer | stat lb vserver -full |
Load Balancing vServer Statistik | stat lb vserver <LB vServer Name> |
Statistik aller LB Services | stat service -full |
Load Balancing Service Statistik | stat service <LB Service Name> |
Statistik aller LB Service Groups | stat servicegroup -full |
Load Balancing Service Group Statistik | stat servicegroup <LB Service Group Name> |
Statistik aller LB Server | stat server -full |
Load Balancing Server Statistik | stat 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 vServer | stat vpn vserver -full |
VPN / Gateway vServer Statistik | stat vpn vserver <VPN / Gateway vServer Name> |
Statistik aller AAA vServer | stat authentication vserver -full |
AAA vServer Statistik | stat authentication vserver <AAA vServer Name> |
Statistik aller AAA Policy | stat authentication policy -full |
AAA Policy Statistik | stat authentication policy <AAA Policy Name> |
Statistik aller AAA SAML IdP Policy | stat authentication samlIdPpolicy -full |
AAA SAML IdP Policy Statistik | stat authentication samlIdPpolicy <AAA SAML IdP Policy Name> |
Statistik aller SSL vServer | stat ssl vserver -full |
SSL vServer Statistik | stat ssl vserver <SSL vServer Name> |
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ärung | Befehl |
---|---|
Konfigurationsmodus verlassen | exit (Ctrl + D) |
Traceroute | traceroute <IP oder DNS Namen> |
Ping | ping <IP oder DNS Namen> |
Telnet | telnet <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 Prozesse | ps -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 |
System Informationen
Erklärung | Befehl |
---|---|
Aktuelle Betriebszeit ADC | uptime |
Detaillierte AD Infos (Beschreibung, Model, Platform, CPU, usw.) | sysctl -a netscaler | more |
Speicherplatz | df -h |
Anzeigen des integrierten Cache | nscachemgr -a |
Logging
Erklärung | Befehl |
---|---|
LDAP Authentication Log Output | cat /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 Output | cat /tmp/nskrb.debug |
Aktuelle Real-Time Infos aus ns.log | tail -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 Log | dmesg |
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 Format | nstcpdump.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> |
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>
-d | Current | Aktuelle Performance Daten |
-d | Stats | Aktuelle Statistik Counter |
-d | Memstats | Aktuelle Memory Statistik |
-K <File Name>
-K | newnslog | Performance Informationen aus diesem Log File |
-s <name=value>
-s | ConBL=2 | Load Balancing Performance Data |
-s | ConCSW=2 | Content Switch Performance Data |
-s | ConSSL=3 | SSL Performance Data (1 = Front End Connections / 2 = Back End Connections / 3 = Front & Back End Connections) |
-g <Match String>
-g | nic_err | Filtert auf nur die Informationen auf die der String passt |
Erklärung | Befehl |
---|---|
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 wurden | nsconmsg -K /var/nslog/newnslog -g nic_err_rl -d current -s disptime=1 | more |
Policy Hits für Session Policies | nsconmsg -d current -g _hits |
Policy Hits für Rewrites | nsconmsg –d current | egrep –i rewrite |
Policy Hits für Responder | nsconmsg –d current | egrep –i responder |
Aktuelle Memory Statistik | nsconmsg -K /var/nslog/newnslog -d memstats |
Aktuelle Memory Fehler | nsconmsg -K /var/nslog/newnslog -g mem_err -d statswt0 |
Start- und Endzeit der Datendatei | nsconmsg -K /var/nslog/newnslog -d setime |
Start- und Endzeit der Archivdatei | zcat /var/nslog/newnslog.99.gz | nsconmsg -K pipe -d setime |
Einschränken des Log Files auf bestimmten Zeitlichen Bereich | nsconmsg -K /var/log/newnslog -s time=12Aug2021:00:00 -k short_log.nsl -T 1200 -d copy |
Aktuelle Statistik Counter | nsconmsg -K /var/nslog/newnslog -d stats | more |
Statistik des spezifischen Counter, hier ssl_err & nic_err | nsconmsg -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 wird | nsconmsg -K /var/nslog/newnslog -d setime |
Aktuelle Events | nsconmsg -d current -d event |
Alle ADC Monitore, die derzeit als DOWN markiert sind und den Grund warum | nsconmsg -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 Mitteilungen | nsconmsg -K /var/nslog/newnslog -d consmsg |
Überprüft, ob IP-Konflikte in einem vom Citrix ADC verwendeten Subnetz festgestellt wurden sind | nsconmsg -K /var/nslog/newnslog -d consmsg | grep -i conflict |
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
- Snapshot der Maschine erstellen (wenn VPX)
- Aktuelle Konfiguration speichern
- 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)
- Benutzte Features, so weit wie möglich, vor dem Update prüfen (Gateway Zugang, Load Balancer, LDAP Zugriff)
- 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)
- Im HA Cluster Secondary Node updaten
- Konfiguration Secondary Node auf Vollständigkeit prüfen
- Schwenk von Secondary Node zum Primary Node
- Funktionstest benutzte Features (Gateway Zugang, Load Balancer, LDAP Zugriff)
- Update des ehemaligen Primary Node
- Überprüfung HA Status und Synchronisation
- Schwenk der HA Nodes
- 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.
Gibt dann im folgenden Fenster seine Credentials ein.
Als erstes speichern wir sicherheitshalber die Laufende Konfiguration ab, über den Befehl.
1 |
save config |
Nun muss in den Konfiguration Modus gewechselt werden und ein Ordner für das neue Image erstellt werden.
1 2 |
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.
1 2 |
cd /var/nsinstall/<Version>/ tar xzvf <Update File>.tgz |
Startet das Update nach dem entpacken mit dem Befehl.
1 |
./installns |
Danach das System noch Neustarten und prüfen ob alles läuft.
1 2 |
exit reboot -warm |
Ü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).
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.
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.
Klickt danach auf 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.
Wenn genügend Speicherplatz frei ist, klickt auf Choose File und auf Local.
Wählt dort die heruntergeladene Firmware Datei aus.
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.
Wichtig ist unter Upgrade Options. Wenn dort Reboot after successful installation ausgewählt ist, bekommt keine saubere Meldung, dass das System neu startet.
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.
Startet das Update durch klick auf Upgrade.
Es öffnet sich ein Fenster und man sieht das die Firmware Daten hochgeladen werden.
Danach wird das Firmware Update installiert und man sieht am Ende die folgende Meldung.
Wie angezeigt, einfach die Maschine neu starten.
Speicher freigeben
Wenn beim Update eine der folgenden Meldungen erscheint:
1 2 3 4 5 6 7 8 9 10 11 |
Error: No space left on /var/ filesystem, aborting Error: No space left on /var/ filesystem, aborting installation… installns: [1455]: Error: No space left on /var/ filesystem, aborting installation… Error: No space left on /flash/ filesystem, aborting Error: No space left on /flash/ filesystem, aborting installation… installns: [1455]: Error: No space left on /flash/ filesystem, aborting installation… |
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.
1 |
du -a /var | sort -n -r | head -n 10 |
1 |
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 / Datei | Befehl |
---|---|
/var/nstrace | rm -r /var/nstrace/* |
/var/ns_system_backup | rm -r /var/ns_system_backup/* |
/var/tmp/support | rm -r /var/tmp/support/* |
/var/nsinstall | rm -r /var/nsinstall/<Old Firmware Version> |
/var/core | rm -r /var/core/* |
/var/crash | rm -r /var/crash/* |
/flash/<Old Firmware Version>.gz | rm -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.
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.
Als erstes prüft man die entsprechenden RPC Knoten (nsrpcs-127.0.0.1-3008) unter Traffic Management > Load Balancing > Services > Internal Services.
Ersichtlich ist hier, das ein Zertifikat angebunden ist, aber unter Protocol TLSv12 nicht aktiviert ist.
Wenn wir dies auf beiden Citrix ADC Knoten für den RPC Punkt aktivieren, funktioniert auch wieder der Sync.
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.