Citrix NetScaler ADC 13.x CLI / Shell 명령어

Citrix NetScaler ADC 13.x CLI / Shell 명령어

⚙️ Citrix NetScaler ADC 13.x CLI / Shell 명령어 레퍼런스

System · LoadBalancing · HA · SSL · Deep Troubleshooting 전 영역 명령어 단일 페이지 정리

#CitrixADC #NetScaler #CLI #LB스위치 #nstrace #HA #SSL #13.x

📋 목차

  • 1. System & Network — 인터페이스 / VLAN / 라우팅 / PBR / 리소스
  • 2. Load Balancing — Server / Service / VServer / 헬스체크 / 세션
  • 3. High Availability — 노드 제어 / 동기화 / 장애 분석
  • 4. SSL / TLS — Default Profile / Cipher / 인증서 관리
  • 5. Deep Troubleshooting — nstcpdump / nstrace / nsconmsg / ns.log

CLINetScaler 프롬프트(>)에서 실행  |  SHELLshell 명령어로 FreeBSD 진입 후 실행(root@ns#)

1. System & Network

1-1. 인터페이스 / VLAN / 라우팅

CLI인터페이스 상세 통계
물리 링크 상태(UP/DOWN), Rx/Tx Mbps, 패킷 드랍, MAC 에러 카운터 전체 출력
> stat interface <interface_id> -detail
CLIVLAN 구성 확인
802.1Q VLAN 설정, 바인딩된 SNIP/MIP, 인터페이스 매핑 조회
> show vlan
CLI라우팅 테이블 조회
전역 정적 라우팅 테이블과 활성화 상태 출력
> show route -detail
CLI정적 라우팅 추가
목적지 네트워크 + 넷마스크 + 게이트웨이 지정, -cost로 우선순위 제어
> add route <network_ip> <netmask> <gateway_ip> -cost <positive_integer>
파라미터의미
<interface_id>0/1, 1/1, 10/1 형태. 0/x는 관리 전용, 1/x 이상이 데이터 포트
<network_ip>목적지 네트워크. 디폴트 루트는 0.0.0.0
-detail축약 없이 확장 통계 전체 출력
-cost메트릭 값. 동일 목적지 다중 경로 시 낮은 값 우선

1-2. PBR (Policy Based Routing)

CLIPBR 생성 — ALLOW
특정 소스 대역을 지정 게이트웨이로 강제 포워딩
> add ns pbr <pbr_name> ALLOW -srcIP = <src_ip_range> -nextHop <gateway_ip> -priority <positive_integer>
CLIPBR 생성 — DENY
특정 목적지 포트/프로토콜 원천 차단 (DNS 증폭 공격 방지 등)
> add ns pbr <pbr_name> DENY -destPort = 53 -protocol UDP -nextHop <gateway_ip> -priority <positive_integer>
CLIPBR 커밋 (필수)
생성한 PBR을 패킷 엔진 메모리에 반영. 이 명령 누락 시 실제 라우팅 변경 안 됨
> apply ns pbrs
CLIPBR 상태 / 매칭 통계
구성 상태, 정책별 Hits / Misses 카운터 확인
> show ns pbr
> stat pbr
파라미터의미
ALLOW / DENYALLOW는 nextHop으로 전달, DENY는 즉시 폐기
-srcIP / -destIP연산자(=, !=) 및 범위(10.2.2.126-10.2.2.127) 지원
-nextHop인접 라우터 IP
-priority미지정 시 10단위 자동 할당. 낮은 값 먼저 평가
⚠ 필수 체크

add ns pbr / set ns pbr만으로는 라우팅 테이블 갱신 안 됨. 반드시 apply ns pbrs 실행.

1-3. 시스템 리소스 (CPU / Memory)

CLI패킷 엔진 CPU 통계
PE 코어별 점유율. -ntimes로 7초 간격 연속 샘플링
> stat system cpu -detail -ntimes <count>
CLI시스템 메모리 통계
InUse / Allocated / Available 메모리 구조 출력
> stat system memory -detail
지표분석 포인트
InUse Memory (%)할당된 메모리 대비 실사용률
MemTotUseMB사용 중 메모리 절대값(MB). 우상향 지속 시 세션 좀비 / 메모리 릭 의심
MemTotAllocPE가 커널에서 할당받은 총량
MemTotMB트래픽 처리용 즉시 가용 메모리
💡 유닉스 명령어 주의

Shell에서 top / free로는 패킷 엔진 상태 파악 불가. 데이터 플레인 판단은 반드시 stat system 명령어 사용.


2. Load Balancing & Traffic Management

2-1. Server / ServiceGroup / VServer 프로비저닝

CLI백엔드 서버 객체 생성
물리/논리 서버를 IP 단위로 등록
> add server <server_name> <backend_ip>
CLIServiceGroup 생성 및 멤버 바인딩
프로토콜 단위 그룹 생성 후 서버 + 포트 결합
> add serviceGroup <sg_name> <protocol>
> bind serviceGroup <sg_name> <server_name> <port>
CLILB Virtual Server (VIP) 생성 및 바인딩
클라이언트 트래픽 수신 VIP 생성 후 ServiceGroup 연결
> add lb vserver <vip_name> <protocol> <vip_address> <port>
> bind lb vserver <vip_name> <sg_name>

2-2. Health Monitor (HTTP-ECV)

CLIHTTP-ECV 커스텀 모니터 생성
HTTP Request 전송 후 응답 페이로드 내 문자열 매칭으로 애플리케이션 레벨 검증
> add lb monitor <monitor_name> HTTP-ECV -send "GET /health_check.jsp" -recv "200 OK" -LRTM ENABLED -interval 30 -resptimeout 10
CLI모니터 바인딩
생성한 모니터를 대상 ServiceGroup에 연결
> bind serviceGroup <sg_name> -monitorName <monitor_name>
파라미터동작
-send서버로 전송할 페이로드 (예: GET /health.html)
-recv응답에서 검색할 문자열. 대소문자 엄격 구분
-LRTMLeast Response Time Metric. 응답 지연 동적 측정 활성화
-interval프로브 주기(초)
-resptimeout응답 타임아웃(초)
⚠ ECV 수신 버퍼 한계

Chunked Transfer 또는 대용량 HTML 응답 시 하단 검증 문자열을 못 읽어 정상 서버를 DOWN 처리. 검증 문자열은 HTML 상단(head/title)에 배치하거나 전용 경량 헬스체크 페이지 사용.

2-3. 커넥션 / 세션 테이블 제어

CLI특정 VIP의 ESTABLISHED 세션 조회
필터 표현식으로 대상 VIP의 활성 커넥션 상세 출력
> show ns connectiontable "CONNECTION.LB_VSERVER.NAME.EQ(\"<vip_name>\") && CONNECTION.TCPSTATE.EQ(ESTABLISHED)" -detail full
CLI특정 클라이언트 IP의 세션 조회
소스 IP 기준 필터링
> show ns connectiontable "CONNECTION.SRCIP.EQ(<client_ip>)"
CLI시스템 세션 강제 종료
관리자/시스템 세션 종료. 데이터 플레인 트래픽에는 적용 안 됨
> kill system session <sid>
SHELL데이터 플레인 커넥션 강제 리셋 (nsapimgr)
클라이언트-VIP 간 특정 TCP 커넥션을 커널에서 RST. 애플리케이션 Hang 상황에서 사용
root@ns# nsapimgr -ys fip=<client_ip> -ys fport=<client_port> -ys lip=<vip_ip> -ys lport=<vip_port> -yf onepcb

2-4. Graceful Shutdown (무중단 노드 제외)

CLI우아한 종료 — 즉시 시작
신규 커넥션 차단 + 기존 세션 자연 종료 대기
> disable service <service_name> -graceFul YES
CLI우아한 종료 — 딜레이 예약
지정 시간(초) 동안 정상 서비스 유지 후 graceful 프로세스 시작
> disable service <service_name> 60 -graceFul YES
조합동작
graceFul NO (기본)즉시 차단. 기존 세션 파괴 → 사용자 에러
graceFul YES신규 차단 + 기존 세션 종료 대기. GOING OUT OF SERVICE 상태 유지
delay + graceFul YES지정 시간까지 정상 유지 → 타임아웃 후 graceful 시작

3. High Availability

3-1. HA 노드 상태 제어

CLIHA 노드 상태 조회
노드 식별자, IP, Primary/Secondary 상태 출력
> show HA node
CLIHA 통계 상세
상태 전이 과정 추적용 세부 카운터
> stat HA node -detail
CLI강제 페일오버
현재 Primary를 Secondary로 강등, 트래픽 이관. 피어 DOWN 상태에서는 거부됨
> force HA failover
CLISecondary 고정 (잦은 페일오버 방지)
펌웨어 업그레이드 등 계획 작업 중 의도치 않은 승격 차단. 작업 후 ENABLED로 복구
> set node -hastatus STAYSECONDARY
CLI설정 강제 동기화
Primary → Secondary로 구성 덮어쓰기
> force HA sync

3-2. HA 장애 원인 분석 (Shell)

SHELL코어 덤프 파일 확인
패킷 엔진 비정상 종료 흔적 탐색 (NSPPE-XX-XXXX 형태)
root@ns# ls -lt /var/core/
root@ns# ls -lt /var/crash/
SHELLHA 하트비트 수신 카운터
L2 네트워크 단절 여부 검증. 정상은 7초당 델타 ≈ 35
root@ns# nsconmsg -K /var/nslog/newnslog -d stats -g ha_tot_pkt_rx
SHELL파일 동기화 에러 로그
nsfsyncd 실패 여부 확인
root@ns# grep -i "Partial File-Sync" /var/log/nsfsyncd.log
root@ns# grep -i "rsync: connection unexpectedly closed" /var/log/ns.log
SHELL페일오버 이벤트 타임라인
과거 HA 상태 전이 이력 추출
root@ns# nsconmsg -K /var/nslog/newnslog -d event | grep -i "failover"
포트용도
UDP 3003HA Heartbeat / Hello 패킷. Native VLAN 이슈 시 Split Brain 유발
TCP 3008 / 3010HA 구성 동기화 (Secure / Non-Secure)
TCP 22rsync 기반 설정/인증서 파일 동기화. rpcNode 패스워드 불일치 시 실패

4. SSL / TLS

4-1. Default Profile 활성화

CLISSL Default Profile 전역 활성화
레거시 방식의 SSL 설정을 프로파일 구조로 일괄 마이그레이션. 비가역적
> set ssl parameter -defaultProfile ENABLED
CLI기본 백엔드 프로파일 확인
마이그레이션 후 자동 생성된 프로파일 점검
> show ssl profile ns_default_ssl_profile_backend
⚠ 마이그레이션 주의

레거시 RC4 / 3DES 사용 중인 VIP가 있으면 핸드셰이크 실패 다발 가능. 실행 전 NSWL로 실제 사용 Cipher 전수 조사 필요.

4-2. 커스텀 보안 프로파일 생성

CLITLS 1.2/1.3 전용 프로파일 생성
TLS 1.0/1.1 비활성화 + HSTS 활성화 + 취약 재협상 차단
> add ssl profile SSL_Profile_Secure_2026 -tls1 DISABLED -tls11 DISABLED -tls12 ENABLED -tls13 ENABLED -denySSLReneg NONSECURE -HSTS ENABLE -maxage 157680000
CLI기본 Cipher 그룹 해제
취약점 내포된 DEFAULT 그룹 바인딩 제거
> unbind ssl profile SSL_Profile_Secure_2026 -cipherName DEFAULT
CLI안전한 Cipher 그룹 바인딩
ECDHE / GCM 기반 커스텀 또는 사전 정의된 보안 그룹 연결
> bind ssl profile SSL_Profile_Secure_2026 -cipherName SECURE_CIPHER_GROUP
CLIDH 파라미터 생성 및 PFS 활성화
2048비트 Diffie-Hellman 키 생성 후 프로파일 적용
> create ssl dhparam DH_Key_2048.key 2048 -gen 2
> set ssl profile SSL_Profile_Secure_2026 -dh ENABLED -dhFile DH_Key_2048.key
CLIVIP에 프로파일 매핑
생성한 프로파일을 대상 가상 서버에 적용
> set ssl vserver <vip_name> -sslProfile SSL_Profile_Secure_2026
파라미터효과
-denySSLReneg NONSECURERFC 5746 미지원 클라이언트 재협상 차단 (MITM 방어)
-HSTS ENABLE -maxage브라우저 강제 HTTPS. 157680000초 ≈ 5년
-tls13SessionTicketsPerAuthContextTLS 1.3 재개용 세션 티켓 발급 개수

4-3. 인증서 무중단 갱신 / 체인 구성

CLI인증서 키페어 갱신 (in-place)
기존 certkey 객체를 덮어쓰기. VIP 설정 수정 불필요
> update ssl certKey <existing_certkey_name> -cert /nsconfig/ssl/new_cert.pem -key /nsconfig/ssl/new_pkey.pem -noDomainCheck
CLIIntermediate 인증서 체인 연결
서버 인증서 + 중간 CA 링크로 신뢰 체인 구성
> link ssl certKey <existing_certkey_name> <intermediate_ca_certkey_name>
💡 체인 검증

브라우저는 체인 누락을 자동 보정하지만 모바일 앱 / Java / Python 클라이언트는 CERTIFICATE_VERIFY_FAILED 반환. 외부에서 openssl s_client -connect vip:443 -showcerts로 기계적 검증 필수.


5. Deep Troubleshooting

5-1. 패킷 캡처 — nstcpdump.sh vs nstrace

항목nstcpdump.shnstrace
실행 위치ShellCLI
대상관리 인터페이스 / ICMP 등 L3패킷 엔진 메모리 직접 덤프
VServer 필터불가가능 (CONNECTION.LB_VSERVER)
프론트↔백엔드 연결불가-link ENABLED로 상관관계 추적
SSL 복호화불가-capsslkeys로 마스터키 추출
성능 영향큼 (사후 필터링)작음
SHELLnstcpdump.sh — 특정 IP 실시간
역방향 DNS 해석 차단(-n)으로 지연 제거
root@ns# nstcpdump.sh -n host 192.168.0.242 and port 443
SHELLnstcpdump.sh — pcap 파일 저장
ICMP만 필터링 후 WireShark 분석용 저장
root@ns# nstcpdump.sh icmp and dst host 10.10.10.10 -w /var/nstrace/icmp_trouble.cap
CLInstrace — 소스 IP 기반 양방향 캡처
-link ENABLED로 백엔드 대응 트래픽까지 단일 흐름 포함
> start nstrace -size 0 -filter "CONNECTION.SRCIP.EQ(192.168.0.100)" -link ENABLED
CLInstrace — VIP 캡처 + SSL 키 추출
.sslkeys 파일을 WireShark에 로드하면 TLS 1.3 복호화 가능
> start nstrace -size 0 -filter "CONNECTION.LB_VSERVER.NAME.EQ(\"Web-VIP\")" -capsslkeys ENABLED -link ENABLED
CLInstrace — 순환 캡처 (간헐 장애 추적)
120초마다 파일 분할, 최대 10개 유지
> start nstrace -size 0 -nf 10 -time 120 -filter "CONNECTION.DSTPORT.EQ(443)"
CLInstrace — 상태 조회 / 중지
중지 시 버퍼를 파일로 플러시. 저장 경로 /var/nstrace/
> show nstrace
> stop nstrace
nstrace 필터 표현식매칭 범위
CONNECTION.INTF.EQ(“0/1”)특정 물리 인터페이스
CONNECTION.VLANID.EQ(205)특정 VLAN ID
CONNECTION.DSTPORT.BETWEEN(80,180)포트 범위
CONNECTION.SERVICE_TYPE.EQ(SSL)SSL/TLS 트래픽만
CONNECTION.SRCIP.EQ(x.x.x.x)소스 IP 기준
CONNECTION.LB_VSERVER.NAME.EQ(“name”)특정 LB VIP
⚠ nstrace 스토리지 주의

기본 -size 0은 페이로드 전체 캡처. 포괄 필터로 실행 시 수십 GB 파일 생성 → PE CPU 100% → 서비스 다운. 반드시 SRC/DST/PORT/PROTOCOL 조합 필터 사용.

5-2. nsconmsg — 바이너리 로그 분석

SHELL콘솔 메시지 복원
치명적 오류 / 하드웨어 경고 텍스트 추출
root@ns# nsconmsg -K /var/nslog/newnslog -d consmsg
SHELL이벤트 로그 — DOWN 발생 건
VServer 상태 변경, 모니터 프로브 실패 이벤트 필터링
root@ns# nsconmsg -K /var/nslog/newnslog -d event | grep -i "DOWN"
SHELL인터페이스 에러 실시간
NIC 큐 드랍, L2 프레임 오류 증가 감지
root@ns# nsconmsg -K /var/nslog/newnslog -s disptime=1 -d current -g nic_err
SHELLRate Limit 기반 드랍 카운터
DDoS 의심 시 임계치 초과 폐기 내역 추출
root@ns# nsconmsg -K /var/nslog/newnslog -d current -g nic_err_rl_pkt_drops
SHELLVIP별 LB 상세 지표
백엔드 응답 지연, Surge Queue 등 Level 3 깊이 분석
root@ns# nsconmsg -K /var/nslog/newnslog -j <vip_name> -T 7 -s ConLb=3 -d oldconmsg
옵션의미
-K <file>분석 대상 바이너리 로그 경로 (newnslog / oldconmsg 등)
-d consmsg콘솔 메시지만 추출
-d event시스템 이벤트만
-d current실시간 증가 카운터
-d oldconmsg아카이빙된 과거 로그
-g <pattern>카운터 이름 패턴 매칭 (nic_err, cc_cpu_use 등)
-s ConLb=1~3LB 지표 상세 수준 (3이 최대)
-s disptime=1타임스탬프 표시
-j <vip>특정 VIP 타겟팅

5-3. ns.log — 관리 플레인 분석

SHELL관리자 명령어 실행 감사
누가 언제 설정을 변경했는지 추적
root@ns# grep "CMD_EXECUTED" /var/log/ns.log
SHELLCritical / 장애 이벤트 필터
HA 전이, 데몬 크래시, 치명적 에러 통합 검색
root@ns# egrep -i "(failover|Critical|Error|DOWN|transition)" /var/log/ns.log
로그 파일기록 대상
/var/nslog/newnslogPE 바이너리 통계 / 이벤트 (nsconmsg 전용)
/var/log/ns.log관리 플레인 syslog (명령어, 데몬 상태)
/var/log/nsfsyncd.logHA 파일 동기화 데몬 로그
/var/core/, /var/crash/코어 덤프 / 크래시 파일
/var/nstrace/nstrace / nstcpdump.sh 캡처 파일
⚠ nstcpdump와 nstrace 동시 실행 금지

13.x 특정 빌드에서 RPC-data-size mismatch 에러로 캡처 시스템 멈춤. 두 도구는 메모리 접근 방식이 달라 동시 구동 불가.