본 제품에 대한 문서 세트는 편견 없는 언어를 사용하기 위해 노력합니다. 본 설명서 세트의 목적상, 편견 없는 언어는 나이, 장애, 성별, 인종 정체성, 민족 정체성, 성적 지향성, 사회 경제적 지위 및 교차성에 기초한 차별을 의미하지 않는 언어로 정의됩니다. 제품 소프트웨어의 사용자 인터페이스에서 하드코딩된 언어, RFP 설명서에 기초한 언어 또는 참조된 서드파티 제품에서 사용하는 언어로 인해 설명서에 예외가 있을 수 있습니다. 시스코에서 어떤 방식으로 포용적인 언어를 사용하고 있는지 자세히 알아보세요.
Cisco는 전 세계 사용자에게 다양한 언어로 지원 콘텐츠를 제공하기 위해 기계 번역 기술과 수작업 번역을 병행하여 이 문서를 번역했습니다. 아무리 품질이 높은 기계 번역이라도 전문 번역가의 번역 결과물만큼 정확하지는 않습니다. Cisco Systems, Inc.는 이 같은 번역에 대해 어떠한 책임도 지지 않으며 항상 원본 영문 문서(링크 제공됨)를 참조할 것을 권장합니다.
이 문서에서는 최소 구성 요소 집합을 사용하여 FND(Field Network Director) 및 PNP(Plug and Play)를 시작하는 방법에 대해 설명합니다.
다음 주제에 대한 지식을 보유하고 있으면 유용합니다.
이 문서의 정보는 다음 소프트웨어 및 하드웨어 버전을 기반으로 합니다.
이 문서의 정보는 특정 랩 환경의 디바이스를 토대로 작성되었습니다. 이 문서에 사용된 모든 디바이스는 초기화된(기본) 컨피그레이션으로 시작되었습니다. 현재 네트워크가 작동 중인 경우 모든 명령의 잠재적인 영향을 미리 숙지하시기 바랍니다.
FND에는 다양한 구축 옵션이 있으므로, 목표는 FND를 위한 최소의 작업이지만 작동하는 설치를 설정할 수 있는 것입니다. 그러면 이 설정이 추가 사용자 지정을 위한 시작점 역할을 할 수 있으며 추가 기능을 추가할 수 있습니다. 여기에 설명된 설정은 OVA(Open Virtual Appliance) 패키지 FND 설치를 시작점으로 사용하는 것이며 PKI(Public Key Infrastructure) 및 터널 프로비저닝을 피하기 위해 간편 모드를 사용합니다. PNP를 사용하여 장치를 간소화하고 설치에 추가합니다.
이 가이드의 결과는 계획 텍스트 비밀번호 및 터널과 PKI의 부재로 인해 보안 위험이 발생할 수 있으므로 프로덕션 환경에서 사용해서는 안 됩니다.
1단계. FND OVA 파일을 다운로드하여 하이퍼바이저에 구축합니다. 예를 들어 VMWare의 경우, 이미지에 표시된 대로 File(파일) > Deploy OVF Template(OVF 템플릿 구축)을 통해 이 작업을 수행합니다.

2단계. 구축이 완료되면 VM을 시작할 수 있으며 이미지에 표시된 로그인 화면이 표시됩니다.

OVA 파일의 기본 비밀번호는 다음과 같습니다.
3단계. Cisco 사용자 및 암호로 로그인하고 Applications(애플리케이션) > System Tools(시스템 툴) > Settings(설정) > Network(네트워크)로 이동합니다. 유선 프로필을 추가하고 IPv4 탭에서 이미지에 표시된 대로 원하는 IP 주소 또는 DHCP를 설정합니다.

4단계. 새 설정이 적용되도록 Apply(적용)를 클릭하고 연결을 설정/해제합니다.
이때 이미지에 표시된 대로 구성된 브라우저 및 IP 주소를 사용하여 FND GUI로 이동할 수 있어야 합니다.

5단계. 기본 사용자 이름 및 비밀번호를 사용하여 GUI에 로그인합니다. 루트/root123
비밀번호를 변경하라는 메시지가 즉시 나타나고 로그인으로 다시 리디렉션됩니다.
모든 것이 잘 되면 새 비밀번호로 로그인하여 FND GUI를 탐색할 수 있어야 합니다.
또한 PNP 및 데모 모드에 대해 설명하고 FND의 컨피그레이션을 살펴봅니다.
PNP는 ZTD(Zero Touch Deployment)를 수행하는 가장 최신 Cisco 방법입니다. PNP를 사용하면 장치를 완전히 구성할 수 있으며 구성을 수동으로 조작할 필요가 없습니다.
PNP를 사용하는 FND의 경우, 먼저 라우터를 부트스트랩해야 할 필요가 없습니다. 실제로 PNP가 수행하는 모든 작업은 안전한 방식으로 FND로 리디렉션되고 부트스트랩 컨피그레이션을 가져옵니다.
부트스트랩 컨피그레이션이 디바이스에 존재하게 되면 나머지 프로세스는 기존 부트스트랩 디바이스에서와 같이 계속됩니다.
PNP를 사용하는 방법에는 여러 가지가 있습니다.
이 컨피그레이션에서는 PNP 서버 IP가 수동으로 설정됩니다. PNP 서버 IP는 FND 서버의 IP이며 디바이스의 포트입니다. DHCP를 사용하여 이 작업을 수행하려면 다음과 같은 정보를 제공해야 합니다.
Cisco IOS®의 경우 다음과 같이 DHCP 서버를 구성해야 합니다.
ip dhcp pool pnp_pool network 192.168.10.0 255.255.255.248 default-router 192.168.10.1 dns-server 8.8.8.8 option 43 ascii "5A;K4;B2;I10.48.43.231;J9125" !
Linux의 DHCPd의 경우:
[jedepuyd@KJK-SRVIOT-10 ~]$ cat /etc/dhcp/dhcpd.conf
subnet 192.168.100.0 netmask 255.255.255.0 {
option routers 192.168.100.1;
range 192.168.100.100 192.168.100.199;
option domain-name-servers 192.168.100.1;
option domain-name "test.dom";
option vendor-encapsulated-options "5A;K4;B2;I10.48.43.231;J9125";
}
옵션 43 또는 vendor-encapsulated-options에 대한 이 컨피그레이션에서는 다음 ASCII 문자열을 지정해야 합니다.
"5A;K4;B2;I10.50.215.252;J9125"
다음과 같이 조정할 수 있습니다.
PNP with DHCP에 대한 자세한 내용은 다음 섹션에서 https://www.cisco.com/c/en/us/td/docs/routers/connectedgrid/iot_fnd/guide/4_3/iot_fnd_ug4_3/sys_mgmt.html#31568를 참조하십시오. Cisco IOS® DHCP 서버에서 DHCP 옵션 43 구성
Easy 모드는 FND 4.1 이후 도입되었지만 당시에는 데모 모드라고 불렀으며, FND를 보다 안전한 방법으로 실행할 수 있도록 해줍니다. 프로덕션 작업에는 권장되지 않지만 시작하는 것이 좋습니다.
Easy 모드를 사용하면 라우터의 PNP 프로세스, 부트스트래핑 및 구성에 주력할 수 있습니다. 어떤 것이 작동하지 않을 경우 터널 빌드업이나 인증서를 의심할 필요가 없습니다.
FND를 easy 모드로 실행하도록 구성할 때 발생하는 변경 사항:
easy 모드에 대한 자세한 내용은 여기를 참조하십시오.
이제 데모 모드/PNP가 무엇인지, 그리고 왜 이 상황에서 사용되는지 알 수 있습니다. FND를 활성화하기 위해 FND 구성을 변경하겠습니다.
OVA 파일에서 시작된 FND VM에서 SSH로 연결하고 다음과 같이 cgms.properties를 편집합니다.
[root@iot-fnd ~]# cat /opt/fnd/data/cgms.properties cgms-keystore-password-hidden=dD5KmzJHa64Oyvpqdu8SCg== use-router-ip-from-db=true rabbit-broker-ip= rabbit-broker-port= rabbit-broker-username= rabbit-broker-password= fogd-ip=192.68.5.3 enable-reverse-dns-lookup=false enableApiAuth=false fnd-router-mgmt-mode=1 enable-bootstrap-service=true proxy-bootstrap-ip=10.48.43.231
구성 파일에서 마지막 세 행이 변경되었습니다.
파일을 변경한 후 FND 컨테이너를 다시 시작하여 변경 사항을 적용합니다.
[root@iot-fnd ~]# /opt/fnd/scripts/fnd-container.sh restart Stopping FND container... fnd-container [root@iot-fnd ~]# Starting FND container... fnd-container
다시 시작하면 GUI를 사용하여 나머지 컨피그레이션을 수행할 수 있습니다.
컨피그레이션 프로세스의 이 시점에 디바이스를 추가하는 것이 다소 비논리적인 것처럼 들릴 수 있지만, 안타깝게도 특정 디바이스 유형이 추가되어야 컨피그레이션의 일부를 사용할 수 있습니다.
이는 서로 다른 디바이스에서 서로 다른 옵션을 도입하므로 GUI가 너무 과중한 상태가 되지 않도록 하기 위해 수행됩니다.
여기서 FND에 IR809를 추가해 보겠습니다.
CSV는 다음과 같이 표시됩니다.
deviceType,eid,adminUsername,adminPassword,ip ir800,IR809G-LTE-GA-K9+JMX2022X04S,fndadmin,C1sc0123!,10.48.43.250
CSV의 필드는 다음과 같습니다.
이 디바이스를 추가하려면 GUI에 연결하고 이미지에 표시된 대로 Devices(디바이스) > Field Devices(필드 디바이스) > Inventory(인벤토리) > Add Devices(디바이스 추가)로 이동합니다.

대화 상자에서 CSV 파일의 위치를 지정하고 Add를 클릭하여 이미지에 표시된 대로 FND에 추가합니다.

모든 것이 잘 되면 "COMPLETED"를 나열할 수 있는 기록 항목을 볼 수 있습니다. 대화 상자를 닫은 후에는 이미지에 표시된 것처럼 디바이스가 인벤토리에 나타나야 합니다.

deviceType ir800의 디바이스가 추가되었으므로 이 시점에서 해당 템플릿 및 그룹을 GUI에서 사용할 수 있습니다.
FND는 데모 모드로 구성되었으므로 HTTP를 대신 사용하도록 프로비저닝 URL을 변경해야 합니다. Admin(관리) > Provisioning Settings(프로비저닝 설정)로 이동하여 다음을 수행합니다.

IoT-FND URL을 http://<FND IP>:9121로 변경합니다.
다음으로 부트스트래핑 및 컨피그레이션을 위한 최소 템플릿 2개를 구성합니다.
라우터 부트스트랩 컨피그레이션 템플릿이라고 하는 첫 번째 템플릿은 PNP를 사용하여 FND에 성공적으로 연결할 수 있게 되면 라우터에 푸시되는 컨피그레이션입니다.
PNP가 사용 중이 아닌 경우 부트스트랩 프로세스 시 라우터에 수동으로 또는 공장에 배치되는 컨피그레이션입니다. 이 컨피그레이션에는 라우터가 FND에서 등록 프로세스를 시작하기에 충분한 정보만 포함되어 있습니다.
두 번째 구성 템플릿은 디바이스의 현재 실행 중인 구성에 추가되는 구성입니다. 사실상 기존 컨피그레이션에 대한 증분으로 볼 수 있다.
대부분의 경우 이 경우 이상한 상황이 발생하므로 FND에 추가하기 전에 먼저 라우터의 모든 컨피그레이션을 지우는 것이 좋습니다.
Router Factory Reprovision 템플릿을 설정하려면 Configure(구성) > Tunnel Provisioning(터널 프로비저닝) > Router Bootstrap Configuration(라우터 부트스트랩 컨피그레이션)으로 이동하여 다음 템플릿으로 대체합니다.
<#if isBootstrapping = true>
<#assign mgmtintf = "GigabitEthernet0">
<#assign fndserver = "10.48.43.231">
<#assign sublist=far.eid?split("+")[0..1]>
<#assign pid=sublist[0]>
<#assign sn=sublist[1]>
<#-- General parameters -->
hostname ${sn}BS
ip domain-name ${sn}
ip host fndserver.fnd.iot ${fndserver}
service timestamps debug datetime msec localtime show-timezone
service timestamps log datetime msec localtime show-timezone
!
<#-- Users -->
username backup privilege 15 password C1sc0123!
username ${far.adminUsername} privilege 15 password ${far.adminPassword}
!
<#-- Interfaces -->
interface ${mgmtintf}
ip address ${far.ip} 255.255.255.192
exit
!
<#-- Clock -->
clock timezone UTC +2
!
<#-- Archive -->
file prompt quiet
do mkdir flash:archive
archive
path flash:/archive
maximum 8
exit
!
<#-- HTTP -->
ip http server
ip http client connection retry 5
ip http client connection timeout 5
ip http client source-interface ${mgmtintf}
ip http authentication local
ip http timeout-policy idle 600 life 86400 requests 3
ip http max-connections 2
!
<#-- WSMA -->
wsma profile listener exec
transport http path /wsma/exec
exit
!
wsma profile listener config
transport http path /wsma/config
exit
!
wsma agent exec
profile exec
exit
!
wsma agent config
profile config
exit
!
<#-- CGNA -->
cgna gzip
!
cgna profile cg-nms-register
add-command show hosts | format flash:/managed/odm/cg-nms.odm
add-command show interfaces | format flash:/managed/odm/cg-nms.odm
add-command show ipv6 dhcp | format flash:/managed/odm/cg-nms.odm
add-command show ipv6 interface | format flash:/managed/odm/cg-nms.odm
add-command show platform hypervisor | format flash:/managed/odm/cg-nms.odm
add-command show snmp mib ifmib ifindex | format flash:/managed/odm/cg-nms.odm
add-command show iox host list detail | format flash:/managed/odm/cg-nms.odm
add-command show version | format flash:/managed/odm/cg-nms.odm
interval 10
url http://fndserver.fnd.iot:9121/cgna/ios/registration
gzip
active
exit
!
<#-- Script to generate RSA for SSH -->
event manager applet genkeys
event timer watchdog name genkeys time 30 maxrun 60
action 10 cli command "enable"
action 20 cli command "configure terminal"
action 30 cli command "crypto key generate rsa modulus 2048"
action 80 cli command "no event manager applet genkeys"
action 90 cli command "exit"
action 99 cli command "end"
exit
end
</#if>
구성 템플릿을 설정하려면 Config > Device Configuration > Edit Configuration Template으로 이동하여 다음 템플릿을 추가합니다.
<#-- Enable periodic inventory notification every 1 hour to report metrics. -->
cgna profile cg-nms-periodic
interval 60
exit
<#-- Enable periodic configuration (heartbeat) notification every 15 min. -->
cgna heart-beat interval 15
<#-- Enable SSH access -->
line vty 0 4
transport input ssh
login local
exit
이 템플릿은 라우터의 실행 중인 컨피그레이션이 됩니다. 따라서 이 컨피그레이션 그룹에 대한 특정 컨피그레이션을 여기에 추가해야 합니다.
가장 쉬운 방법은 이 최소 템플릿으로 시작하는 것입니다. 성공하면 필요에 따라 템플릿을 업데이트하고 맞춤화합니다.
이 시점에서 FND의 구성/준비가 완료되며 라우터 준비부터 시작할 수 있습니다.
프로비저닝할 디바이스에 이미 컨피그레이션이 포함되어 있거나 이전에 사용된 적이 있는 경우 PNP를 사용하여 FND에 추가하기 전에 라우터의 컨피그레이션을 완전히 지우는 것이 좋습니다.
새 디바이스인 경우 이 단계를 건너뛸 수 있습니다.
가장 쉬운 방법은 write erase 명령을 사용하고 콘솔을 사용하여 라우터를 다시 로드하는 것입니다.
ir809kjk#write erase Erasing the nvram filesystem will remove all configuration files! Continue? [confirm] [OK] Erase of nvram: complete *Oct 18 11:42:54.367 UTC: %SYS-7-NV_BLOCK_INIT: Initialized the geometry of nvram ir809kjk#reload System configuration has been modified. Save? [yes/no]: no Proceed with reload? [confirm] Starting File System integrity check NOTE: File System will be deinited and later rebuilt
잠시 후에 IR800이 다시 돌아와서 초기 컨피그레이션 대화 상자를 실행하라는 프롬프트를 표시합니다.
--- System Configuration Dialog --- Would you like to enter the initial configuration dialog? [yes/no]: no Press RETURN to get started!
이전 PNP/ZTD 시도의 나머지 부분이 더 이상 없는지 확인합니다. 아카이브와 디렉토리를 다시 생성하고 라우터에서 before-registration-config도 제거하는 것이 가장 좋습니다.
IR800#delete /f before-* IR800#delete /f /r archive* IR800#mkdir archive Create directory filename [archive]? Created dir flash:/archive IR800#conf t Enter configuration commands, one per line. End with CNTL/Z. IR800(config)#archive IR800(config-archive)#path flash:/archive IR800(config-archive)#maximum 8 IR800(config-archive)#end
지금은 새 디바이스나 빈 컨피그레이션이 있는 디바이스가 있으므로, 필요한 경우 라우터가 FND에 도달하기 위한 최소 컨피그레이션을 적용할 수 있습니다.
DHCP-server가 있는 경우 대부분 자동으로 이동해야 합니다.
디바이스에서 다음과 같은 수동 컨피그레이션이 선택됩니다.
IR800>enable IR800#conf t Enter configuration commands, one per line. End with CNTL/Z. IR800(config)#int gi0 IR800(config-if)#ip addr dhcp IR800(config-if)#no shut IR800(config-if)#end *Aug 1 12:02:02.887: %SYS-5-CONFIG_I: Configured from console by console IR800#ping 10.48.43.231 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 10.48.43.231, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 1/1/2 ms IR800#
보시다시피 라우터가 적용된 IP 컨피그레이션으로 FND에 연결할 수 있는지 테스트하기 위해 빠른 ping이 수행되었습니다.
이 시점에서 모든 사전 요구 사항이 완료되었으며 PNP 프로세스를 시작할 수 있습니다. 이 경우에는 수동으로 수행됩니다.
프로덕션 환경에서는 PNP가 DHCP 옵션 43과 함께 사용될 가능성이 높습니다. 즉, 라우터가 시작되면 IP 및 PNP 컨피그레이션이 수신되며 이 단계와 다음 단계를 건너뛸 수 있습니다.
DHCP를 사용하지 않고 IR800에서 PNP를 수동으로 구성하려면 요청의 대상(FND-server)을 지정해야 합니다.
이 작업은 다음과 같이 수행할 수 있습니다.
IR800(config)#pnp profile pnp-zero-touch IR800(config-pnp-init)#transport http ipv4 10.48.43.231 port 9125 IR800(config-pnp-init)#end
"transport"로 시작하는 줄을 입력하면 라우터가 PNP 프로세스를 시작하고 지정된 IP 및 포트의 FND에 연결을 시도합니다.
모든 것이 정상인 경우 디바이스는 다음 단계를 거칩니다.
FND server.log에서 프로세스를 추적할 수 있습니다.
GUI에서 Unheard(들리지 않음) > Boostrapping(부트스트래핑) > Bootstrapped(부트스트래핑)로 이동하면 디바이스 이동이 표시됩니다
부트스트래핑이 완료되면 라우터는 대체 Router Factory Reprovision 템플릿을 가지며 PNP가 없는 일반 부트스트랩 디바이스처럼 동작합니다.
즉, IR800의 CGNA 프로필에서 FND 서버에 등록을 시도합니다.
CGNA 프로파일의 상태를 확인 합니다.
JMX2022X04SBS#sh cgna profile-state all
Profile 1:
Profile Name: cg-nms-register
Activated at: Thu Aug 1 15:31:14 2019
URL: http://fndserver.fnd.iot:9121/cgna/ios/registration
Payload content type: xml
Interval: 10 minutes
gzip: activated
Profile command:
show hosts | format flash:/managed/odm/cg-nms.odm
show interfaces | format flash:/managed/odm/cg-nms.odm
show ipv6 dhcp | format flash:/managed/odm/cg-nms.odm
show ipv6 interface | format flash:/managed/odm/cg-nms.odm
show platform hypervisor | format flash:/managed/odm/cg-nms.odm
show snmp mib ifmib ifindex | format flash:/managed/odm/cg-nms.odm
show iox host list detail | format flash:/managed/odm/cg-nms.odm
show version | format flash:/managed/odm/cg-nms.odm
State: Wait for timer for next action
Timer started at Thu Aug 1 15:31:14 2019
Next update will be sent in 9 minutes 30 seconds
Last successful response not found
Last failed response not found
제공된 컨피그레이션으로 디바이스는 10분 후 FND에 등록을 시도합니다. 이 출력에서 라우터가 등록 프로세스를 시작하기 전 9분 30초가 남아 있음을 알 수 있습니다.
타이머가 완료될 때까지 기다리거나 즉시 cg-nms-register 프로필을 수동으로 실행할 수 있습니다.
IR800-Bootstrap#cgna exec profile cg-nms-register
구성이 올바르게 작동하는지 확인하려면 이 섹션을 활용하십시오.
디바이스는 그림과 같이 FND에서 UP 상태로 이동해야 합니다.

이 섹션에서는 설정 문제 해결을 위해 사용할 수 있는 정보를 제공합니다.
부트스트래핑 프로세스를 트러블슈팅하려면 다음 사항을 확인하십시오.
등록 프로세스의 문제를 해결하려면 다음 사항을 확인하십시오.
피드백