NXOS Automation : DHCP/ZTP

2026. 3. 23. 18:03CCIE EI/Automation

NX-OS Zero Touch Provisioning (ZTP) 완벽 가이드

NX-OS의 ZTP는 새로운 Nexus 스위치를 박스에서 꺼내 네트워크에 연결하기만 하면, 자동으로 OS 이미지와 설정을 프로비저닝하는 기능입니다. 내부적으로 POAP (PowerOn Auto Provisioning) 엔진을 사용합니다.

동작 원리

스위치가 빈 startup-config 상태로 부팅되면 ZTP 프로세스가 자동으로 시작됩니다.

DHCP  →  TFTP / HTTP  →  Script / Config 적용
  1. 스위치가 MGMT 포트(또는 in-band)로 DHCP 요청을 보냄
  2. DHCP 서버가 IP 주소와 함께 부트 파라미터(Option 67 등)를 응답
  3. 스위치가 지정된 서버에서 스크립트 또는 설정 파일을 다운로드
  4. 자동으로 적용 후 운영 상태로 전환

인프라 요구사항

DHCP 서버 — IP 할당 + 부트파일 경로 전달 (ISC DHCP, Windows DHCP 등)

파일 서버 — TFTP, HTTP, 또는 FTP (설정 파일, NX-OS 이미지, 스크립트 호스팅)

DHCP Option 용도
Option 66 TFTP 서버 주소
Option 67 부트파일 이름 (스크립트 또는 config 경로)

DHCP 서버 설정 예시 (ISC DHCP)

subnet 10.1.1.0 netmask 255.255.255.0 {
    range 10.1.1.100 10.1.1.200;
    option routers 10.1.1.1;
    option domain-name-servers 10.1.1.10;

    # ZTP용 부트파일 지정
    option bootfile-name "tftp://10.1.1.50/ztp_script.py";

    # 또는 HTTP 방식
    # option bootfile-name "http://10.1.1.50/poap_script.py";
}

POAP 스크립트 예시 (Python)

#!/usr/bin/env python
"""
NX-OS POAP Script - 핵심 로직
"""
import poap

# 1. 시스템 이미지 다운로드 및 설치
poap.log("Downloading system image...")
poap.download("tftp", "10.1.1.50",
              "/images/nxos.10.3.4a.bin",
              "/bootflash/nxos.10.3.4a.bin")

poap.set_boot_image("/bootflash/nxos.10.3.4a.bin")

# 2. 시리얼 넘버 기반으로 config 매핑
serial = poap.get_serial_number()
config_file = "configs/{}.cfg".format(serial)

poap.log("Downloading config for SN: {}".format(serial))
poap.download("tftp", "10.1.1.50",
              config_file,
              "/bootflash/poap_applied.cfg")

# 3. 설정 적용
poap.apply_config("/bootflash/poap_applied.cfg")

시리얼 넘버 기반 Config 매핑 전략

대규모 배포 시 가장 실용적인 방식입니다. 스위치의 S/N에 맞춰 설정 파일을 자동 매핑합니다.

/tftpboot/
├── poap_script.py
├── images/
│   └── nxos.10.3.4a.bin
└── configs/
    ├── SAL1234ABCD.cfg  ← S/N별 설정파일
    ├── SAL5678EFGH.cfg
    └── default.cfg      ← 폴백용

스위치 측 확인 및 트러블슈팅

! ZTP/POAP 상태 확인
show boot poap status

! POAP 히스토리 로그
show logging logfile | include -i poap

! 수동으로 POAP 재시작 (테스트 시)
boot poap enable
write erase
reload
💡 Tip: 테스트 시 write erasereload로 startup-config를 비우면 POAP가 다시 트리거됩니다.

🎯 프리세일즈 포인트

  • Day-0 자동화 — 원격지 배포 시 엔지니어 파견 불필요, 현장 인력이 케이블링만 하면 됨
  • POAP + NDFC 연동 — Nexus Dashboard Fabric Controller와 통합하면 GUI 기반으로 대규모 패브릭 ZTP 가능
  • 스케일 — 수백 대 스위치를 동시에 프로비저닝 가능
  • VXLAN EVPN 패브릭 — NDFC Easy Fabric 모드에서 ZTP로 spine/leaf 자동 디스커버리 및 언더레이/오버레이 자동 구성

NDFC를 활용한 ZTP가 현재 Cisco의 권장 방식이며, 순수 POAP 스크립트 방식은 NDFC 없이 경량으로 운영하고 싶을 때 적합합니다.

'CCIE EI > Automation' 카테고리의 다른 글

Poap Automation for NXOS  (0) 2026.03.23