소개
이 문서에서는 POAP(Auto Provisioning) 자동 변환 기능을 사용하여 OS(Operating System)를 NXOS®(Nexus Operating System)에서 ACI로 전환하는 방법에 대해 설명합니다.
필요할 때?
기존 프로세스인 RMA(Return Material Authorization)/신규 스위치에서는 NXOS® 이미지와 함께 제공되는 경우, 이러한 스위치를 ACI 모드로 전환한 다음 ACI 패브릭에 추가하는 작업이 매우 시간 소모적이고 복잡해집니다.
이 기능이 필요한 경우는 세 가지입니다.
1) 결함이 있는 리프/스파인 스위치 교체
2) ACI 패브릭을 확장하기 위해 새 리프/스파인 추가
3) 원격 리프 추가/교체
사전 요구 사항
NXOS®를 ACI 모드로 변환하는 기존 프로세스는 절차를 간소화하고 플러그 앤 플레이(PowerOn Auto Provisioning) POAP 자동 변환 기능을 ACI 버전 5.2(3)에 도입하기 위해 매우 복잡하고 시간이 많이 소요됩니다. POAP 기능은 NXOS® 7.X 릴리스에서 사용할 수 있습니다. 그러면 추가하려는 새 스위치가 더 높은 릴리스를 실행해야 합니다.
POAP란 무엇입니까?
POAP는 Power on auto provisioning의 약자입니다. 시작 컨피그레이션을 찾을 수 없는 경우 Nexus 스위치에서 POAP 프로세스가 자동으로 트리거됩니다.
Poap가 트리거되면 스위치에서 먼저 관리 인터페이스에서 DHCP(Dynamic Host Configuration Protocol) 프로세스를 시작하고 DHCP ack이 수신되지 않는 경우 이 DHCP 검색은 다른 모든 포트에서 시작됩니다. ACI에서 APIC는 스위치에 IP 주소와 파이썬 스크립트 위치를 제공하는 DHCP 서버 역할을 합니다. 파이썬 스크립트가 다운로드되면 ACI 이미지 다운로드가 호출되고 스위치에서 자동으로 변환됩니다. ACI는 인프라 네트워크에서 Poap을 실행합니다.
토폴로지
이 토폴로지에는 변환해야 하는 스파인 노드 201, 리프 노드 101 및 nxos 스위치가 있습니다. 이 nxos 스위치는 스파인 또는 리프 스위치에 직접 연결할 수 있습니다. 즉, 변환이 성공적으로 완료되면 패브릭에 직접 온보딩할 수 있습니다.
이 컨피그레이션 예에서는 ACI 리프 101 포트 E1/53을 새 스위치 노드 포트 E1/47에 연결합니다. Leaf 및 Spine의 패브릭 포트만 POAP에 사용할 수 있는지 확인하십시오.

POAP를 구성하는 방법
데모된 단계를 참조하여 새 nexus 스위치 노드의 전원을 켜고 토폴로지 섹션에 표시된 대로 Leaf101에 연결할 수 있습니다.
1단계: Nxos에서 ACI로의 변환을 활성화합니다.
Fabric(패브릭) —> Fabric Membership(패브릭 멤버십) —> Registered Nodes(등록된 노드) —> Add with Nxos with NXOS를 사용하여 ACI로 변환)로 이동합니다.

2단계: POAP에 사용할 적절한 노드 101(기존 ACI 스위치) 및 Leaf 101의 인터페이스 E1/53을 추가합니다(Leaf/Spine의 POAP에는 패브릭 링크만 사용할 수 있음).

3단계: POAP에 사용 중인 리프 노드를 두 번 클릭합니다.

4단계: eth1/53의 POAP 상태를 확인합니다. 포트 E1/53에 대해 POAP가 활성화되었음을 확인할 수 있습니다.

5단계: Leaf 101 인터페이스 E1/53에 Nexus 노드를 연결하면 Nodes Pending registration 아래에 새 스위치 노드가 표시됩니다. 이 예에서는 새 NXOS 스위치에서 포트 E1/47을 사용합니다.

6단계: 새 스위치 노드를 등록하고 마우스 오른쪽 버튼을 클릭한 다음 register(등록)를 선택합니다.

7단계: 노드 ID, 노드 이름을 추가하고 leaf를 등록합니다.

8단계:NXOS 스위치를 시작하는 동안 POAP를 중단하고 일반적인 설정을 계속할지 여부를 묻는 메시지가 나타납니다. POAP를 계속하지 않음을 선택합니다.
디바이스에 시작 컨피그레이션이 있는 경우 쓰기 지우기를 수행하고 디바이스를 다시 로드하여 Nexus 스위치를 POAP 모드로 강제 전환해야 합니다.
Abort Power On Auto Provisioning [yes - continue with normal setup, skip - bypass password and basic configuration, no - continue with Power On Auto Provisioning] (yes/skip/no)[no]:
>>>> This message appears on the console which means POAP process started on new switch node, Do not break this sequence.
9단계: 새 스위치 노드의 콘솔을 보면 이러한 로그가 표시됩니다.
%$ %POAP-2-POAP_DHCP_DISCOVER_START: [FDO233002HC-A4:53:0E:3D:D9:A3] - POAP DHCP Discover phase started <<< POAP Process started, new switch node is sending DHCP discover message
2024 Jun 24 13:21:31 switch %$ VDC-1 %$ %POAP-2-POAP_INFO: - Abort Power On Auto Provisioning [yes - continue with normal setup, skip - bypass password and basic configuration, no - continue with Power On Auto Provisioning] (yes/skip/no)[no]:
2024 Jun 24 13:21:32 switch %$ VDC-1 %$ %POAP-2-POAP_INFO: Recieved DHCP offer from server ip - 10.0.0.1 <<< DHCP offer has been recived from APIC
2024 Jun 24 13:21:39 switch %$ VDC-1 %$ %POAP-2-POAP_INFO: Recieved DHCP offer from server ip - 10.0.0.1 (message repeated 1 time)
2024 Jun 24 13:21:39 switch %$ VDC-1 %$ %POAP-2-POAP_INFO: [FDO233002HC-A4:53:0E:3D:D9:A3] - Using DHCP, valid information received over Eth1/47 from 10.0.0.1 <<< This is the interface used on new switch node
2024 Jun 24 13:21:39 switch %$ VDC-1 %$ %POAP-2-POAP_INFO: [FDO233002HC-A4:53:0E:3D:D9:A3] - Assigned Host Name: poap-leaf <<< Hostname assigned to new switch node based on node-name you specified while registering
2024 Jun 24 13:21:39 switch %$ VDC-1 %$ %POAP-2-POAP_INFO: [FDO233002HC-A4:53:0E:3D:D9:A3] - Assigned IP address: 10.0.232.68 <<< New switch node got an IP Address
2024 Jun 24 13:21:39 switch %$ VDC-1 %$ %POAP-2-POAP_INFO: [FDO233002HC-A4:53:0E:3D:D9:A3] - Netmask: 255.255.0.0
2024 Jun 24 13:21:39 switch %$ VDC-1 %$ %POAP-2-POAP_INFO: [FDO233002HC-A4:53:0E:3D:D9:A3] - DNS Server: 10.0.0.1
2024 Jun 24 13:21:39 switch %$ VDC-1 %$ %POAP-2-POAP_INFO: [FDO233002HC-A4:53:0E:3D:D9:A3] - Default Gateway: 10.0.0.30
2024 Jun 24 13:21:39 switch %$ VDC-1 %$ %POAP-2-POAP_INFO: [FDO233002HC-A4:53:0E:3D:D9:A3] - Script Server: 10.0.0.1
2024 Jun 24 13:21:39 switch %$ VDC-1 %$ %POAP-2-POAP_INFO: [FDO233002HC-A4:53:0E:3D:D9:A3] - Script Name: aci_poap_bootfile.py <<< This script is responsible for performing NXOS to ACI mode conversion
2024 Jun 24 13:21:49 switch %$ VDC-1 %$ %POAP-2-POAP_INFO: [FDO233002HC-A4:53:0E:3D:D9:A3] - The POAP Script download has started <<< Downloading script
2024 Jun 24 13:21:49 switch %$ VDC-1 %$ %POAP-2-POAP_INFO: [FDO233002HC-A4:53:0E:3D:D9:A3] - The POAP Script is being downloaded from [copy tftp://10.0.0.1/aci_poap_bootfile.py bootflash:scripts/script.sh vrf default ]
2024 Jun 24 13:21:50 switch %$ VDC-1 %$ %POAP-2-POAP_SCRIPT_DOWNLOADED: [FDO233002HC-A4:53:0E:3D:D9:A3] - Successfully downloaded POAP script file <<< Script downloaded
2024 Jun 24 13:21:50 switch %$ VDC-1 %$ %POAP-2-POAP_INFO: [FDO233002HC-A4:53:0E:3D:D9:A3] - Script file size 106768, MD5 checksum 8b31543966b6dd518441a45d3546e0e1
2024 Jun 24 13:21:50 switch %$ VDC-1 %$ %POAP-2-POAP_INFO: [FDO233002HC-A4:53:0E:3D:D9:A3] - MD5 checksum received from the script file is 8b31543966b6dd518441a45d3546e0e1
2024 Jun 24 13:21:50 switch %$ VDC-1 %$ %POAP-2-POAP_SCRIPT_STARTED_MD5_VALIDATED: [FDO233002HC-A4:53:0E:3D:D9:A3] - POAP script execution started(MD5 validated) <<< Validating MD5 Checksum before downloading ACI image aci-n9000-dk9.15.2.8h.bin
2024 Jun 24 13:21:52 switch %$ VDC-1 %$ %USER-1-SYSTEM_MSG: - Starting to download image - /script.sh <<< Starting ACI image download as script is executed in the backend
2024 Jun 24 13:21:52 switch %$ VDC-1 %$ %USER-1-SYSTEM_MSG: - The command is : terminal dont-ask ; terminal password <removed> ; copy http://10.0.0.1:7777/fwrepo/aci-n9000-dk9.15.2.8h.bin bootflash:aci-n9000-dk9.15.2.8h.bin vrf default - /script.sh
184633.793: 2024 Jun 24 13:25:50 switch %$ VDC-1 %$ %USER-1-SYSTEM_MSG: - Downloading the image completed - /script.sh <<< ACI image download completed
184633.819: 2024 Jun 24 13:25:50 switch %$ VDC-1 %$ %USER-1-SYSTEM_MSG: - Image file found in bootflash folder - /script.sh
184635.739: 2024 Jun 24 13:25:52 switch %$ VDC-1 %$ %USER-1-SYSTEM_MSG: - no boot nxos o/p : - /script.sh
184640.147: 2024 Jun 24 13:25:56 switch %$ VDC-1 %$ %USER-1-SYSTEM_MSG: - copy running-config o/p : [# ] 1% [# ] 2% [## ] 3% [## ] 4% [### ] 5% [### ] 6% [### ] 7% [#### ] 8% [#### ] 9% [##### ] 10% [##### ] 11% [##### ] 12% [###### ] 13% [###### ] 14% [####### ] 15%184640.147: [####### ] 16% [####### ] 17% [######## ] 18% [######## ] 19% [######### ] 20% [#########
184642.147: 2024 Jun 24 13:25:58 switch %$ VDC-1 %$ %USER-1-SYSTEM_MSG: - boot aci o/p : Warning: Please check list of all ACI supported hardware before doing this operation, not all hardware are supported. Performing image verification and compatibility check, pleas184642.147: e wait.... Unable remove internal file Image verification successful. - /script.sh
184649.973: 2024 Jun 24 13:26:06 switch %$ VDC-1 %$ %USER-1-SYSTEM_MSG: - md5sum o/p : e9065f12d6eac79d15091f0c595ed9e5 - /script.sh <<< Post download MD5 checksum validation
184657.960: 2024 Jun 24 13:26:14 switch %$ VDC-1 %$ %VMAN-2-ACTIVATION_STATE: Successfully deactivated virtual service 'guestshell+'
184701.033: 2024 Jun 24 13:26:17 switch %$ VDC-1 %$ %PLATFORM-2-PFM_SYSTEM_RESET: Manual system restart from Command Line Interface <<< Rebooting the device to perform the conversion
10단계: Poap-Leaf라는 이름의 새 스위치 노드가 등록된 노드에 표시되기 시작합니다.

11단계: ACI 모드로 전환된 새 스위치 노드의 CLI에서 확인합니다.
User Access Verification
(none) login: admin
********************************************************************************
Fabric discovery in progress, show commands are not fully functional
Logout and Login after discovery to continue to use show commands.
Run show discoveryissues for more details.
********************************************************************************
(none)# <<< Device is in ACI discovey mode now
12단계: 이제 새 스위치 노드를 ACI 패브릭에 적절하게 연결합니다.
13단계: NXOS 변환 정책을 삭제하고 POAP 변환 성공


++ You also encounter an Fault F427 when you configure POAP, please ensure that fault is cleared post step 13.
This fault is an reminder that you have configured an port on ACI Leaf switch for POAP usage
APIC의 POAP dhcp 로그
APIC에서 DHCP 로그를 검토하려면 지정된 위치 및 로그 파일을 참조하십시오.
apic1# cd /var/log/dme/log/
apic1# less dhcpd.bin.log | grep ISC | grep a4:53:0e:3d:d9:a3
30167||2024-06-24T13:12:04.170069236+00:00||dhcp||INFO||||ISC dhcpd: DHCPDISCOVER from a4:53:0e:3d:d9:a3 via 10.0.232.64||../svc/dhcpd/src/gen/ifc/beh/imp/./DhcpdSvc.cc||68 <<< DHCP Discovered recieved from Leaf101 Infra Loopback IP , Leaf 101 is acting as DHCP Relay
30167||2024-06-24T13:12:04.170129519+00:00||dhcp||INFO||||ISC dhcpd: DHCPOFFER on 10.0.232.68 to a4:53:0e:3d:d9:a3 via 10.0.232.64||../svc/dhcpd/src/gen/ifc/beh/imp/./DhcpdSvc.cc||68 <<< DHCP Offer forwarded from APIC
30167||2024-06-24T13:12:07.219176308+00:00||dhcp||INFO||||ISC dhcpd: Received host decl = FDO233002HC { uid "FDO233002HC"; dynamic; option host-name "poap-leaf"; fixed-address 10.0.232.68; option cisco.node-role 2; option cisco.node-type 0; pool subclass "pod" 00:1; option cisco.fabric-id 1; option cisco.pod-id 1; option cisco.node-id 1891; option subnet-mask 255.255.0.0; option routers 10.0.0.30; option domain-name-servers 10.0.0.1; filename "aci_poap_bootfile.py"; } ||../svc/dhcpd/src/gen/ifc/beh/imp/./DhcpdSvc.cc||68 bico 04.421. <<< DHCP Server provides IP, DHS and TFTP server IP address to download python script and ACI image
30167||2024-06-24T13:12:07.220213143+00:00||dhcp||INFO||||ISC dhcpd: Received host decl = FDO233002HC { uid "FDO233002HC"; dynamic; option host-name "poap-leaf"; fixed-address 10.0.232.68; option cisco.node-role 2; option cisco.node-type 0; pool subclass "pod" 00:1; option cisco.fabric-id 1; option cisco.pod-id 1; option cisco.node-id 1891; option subnet-mask 255.255.0.0; option routers 10.0.0.30; option domain-name-servers 10.0.0.1; filename "aci_poap_bootfile.py"; } ||../svc/dhcpd/src/gen/ifc/beh/imp/./DhcpdSvc.cc||68
30167||2024-06-24T13:12:10.167297645+00:00||dhcp||DBG4||||ISC dhcpd: Before updateUid 12:||../svc/dhcpd/src/gen/ifc/beh/imp/./DhcpdSvc.cc||73 bico 07.220
30167||2024-06-24T13:12:10.167454624+00:00||dhcp||DBG4||||ISC dhcpd: not our server id ours 0.0.0.0 received 10.0.0.1||../svc/dhcpd/src/gen/ifc/beh/imp/./DhcpdSvc.cc||73
30167||2024-06-24T13:12:10.167588015+00:00||dhcp||DBG4||||ISC dhcpd: Before updateUid 12:||../svc/dhcpd/src/gen/ifc/beh/imp/./DhcpdSvc.cc||73
30167||2024-06-24T13:12:10.167639084+00:00||dhcp||INFO||||ISC dhcpd: DHCPREQUEST for 10.0.232.68 (10.0.0.1) from a4:53:0e:3d:d9:a3 via 10.0.232.64||../svc/dhcpd/src/gen/ifc/beh/imp/./DhcpdSvc.cc||68
30167||2024-06-24T13:12:10.167706966+00:00||dhcp||INFO||||ISC dhcpd: DHCPACK on 10.0.232.68 to a4:53:0e:3d:d9:a3 via 10.0.232.64||../svc/dhcpd/src/gen/ifc/beh/imp/./DhcpdSvc.cc||68
30167||2024-06-24T13:12:10.167806426+00:00||dhcp||DBG4||||ISC dhcpd: updateUid 11:FDO233002HC, ../common/external/dhcp/dhcp-4.1-ESV-R6/server/svcapi.c:410||../svc/dhcpd/src/gen/ifc/beh/imp/./DhcpdSvc.cc||73
30167||2024-06-24T13:12:12.221336321+00:00||dhcp||INFO||||ISC dhcpd: Received host decl = FDO233002HC { uid "FDO233002HC"; dynamic; option host-name "poap-leaf"; fixed-address 10.0.232.68; option cisco.node-role 2; option cisco.node-type 0; pool subclass "pod" 00:1; option cisco.fabric-id 1; option cisco.pod-id 1; option cisco.node-id 1891; option subnet-mask 255.255.0.0; option routers 10.0.0.30; option domain-name-servers 10.0.0.1; filename "aci_poap_bootfile.py"; } ||../svc/dhcpd/src/gen/ifc/beh/imp/./DhcpdSvc.cc||68 bico 10.436