目錄

簡介

必要條件

需求

採用元件

背景資訊

設定

部署和配置FND OVA

關於PNP

關於EasyMode

為PNP和簡單模式配置FND

準備CSV並將路由器新增到FND

準備預配設定、引導模板和配置模板

準備IR800以進行調配/PNP

調配IR800路由器

驗證

疑難排解

簡介

本文說明如何開始使用現場網路導向器(FND)和即插即用(PNP)及使用最少的一組元件。

必要條件

需求

思科建議您瞭解以下主題：

- 在Linux和知識方面的經驗，以便在Linux電腦上編輯運行配置檔案

- 至少有一個受支援的路由器要由FND管理。例如IR809或IR829。

- 控制檯訪問

- 最低IOS®版本15.7(3)M1

- OVA檔案部署到虛擬機器監控程式(例如：VMWare ESXi)。 OVA檔案（如果授權）可從以下網址下載：https://software.cisco.com/download/home/286287993/type/286320249

採用元件

本文中的資訊係根據以下軟體和硬體版本：

- FND版本4.5.0-122的OVA檔案(CISCO-IOTFND-V-K9-4.5.0-122.zip)

- VMWare ESX

- 採用IOS®版本15.8(3)M2的IR809

本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除（預設）的組態來啟動。如果您的網路運作中，請確保您瞭解任何指令可能造成的影響。

背景資訊

由於FND具有許多不同的部署選項，因此目標是能夠為FND設定一個最小但有效的安裝。然後，此安裝程式可以作為進一步自定義和新增更多功能的起點。此處介紹的設定是使用開放式虛擬裝置(OVA)封裝的FND安裝作為起點，並且使用簡單模式以避免對公鑰基礎架構(PKI)和隧道調配的需求。使用PNP可簡化安裝並將裝置新增到安裝。

本指南的結果並不打算用於生產，因為計畫文本密碼以及沒有隧道和PKI可能會帶來一些安全風險。

設定

部署和配置FND OVA

步驟1.將FND OVA檔案下載並部署到虛擬機器監控程式。例如，對於VMWare，這將通過File > Deploy OVF Template完成，如下圖所示。

步驟2.部署後，您可以啟動VM並顯示登入螢幕，如下圖所示。

OVA檔案的預設密碼為：

- 使用者名稱:root密碼：cisco123

- 使用者名稱:cisco密碼：C_sco123

步驟3.使用cisco使用者和密碼登入，然後導航到Applications > System Tools > Settings > Network。新增有線配置檔案，然後在IPv4頁籤中設定所需的IP地址或DHCP，如下圖所示。

步驟4.按一下Apply，並開啟/關閉連線，以確保應用新設定。

此時，您應該能夠使用您的瀏覽器和IP位址（如圖所示）導覽至FND GUI。

步驟5.使用預設使用者名稱和密碼登入GUI:root/root123

系統會提示您立即更改密碼，然後再次重定向至登入頁面。

如果一切順利，您應該能夠使用新密碼登入，並且能夠瀏覽FND GUI。

此外，還介紹了PNP和演示模式，然後介紹了FND的配置。

關於PNP

PNP是進行零接觸部署(ZTD)的最新Cisco方法。使用PNP，裝置可以完全配置，不需要手動觸控配置。

對於FND，使用PNP可以避免首先引導路由器。事實上，PNP所做的一切，都是以安全方式將其重定向到FND，然後獲取載入程式配置。

一旦裝置中存在載入程式配置，則此過程的其餘部分將像傳統引導裝置一樣繼續。

使用PNP的方法有很多：

- 通過思科PNP服務(devicehelper.cisco.com)，使用智慧帳戶。在某些裝置出廠時預設啟用

- 使用DHCP選項43提供用於引導的IP或主機名

- 通過在配置中手動設定PNP伺服器

對於此配置，PNP伺服器IP是手動設定的，即FND伺服器的IP和裝置上的埠。如果您要使用DHCP執行此操作，則應提供以下資訊：

對於Cisco IOS®,DHCP-server應配置如下：

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或廠商封裝選項的此配置中，需要指定以下ASCII字串：

"5A;K4;B2;I10.50.215.252;J9125"

可以定製如下：

- 5 - DHCP型別代碼5

- A — 活動功能操作代碼

- K4 - HTTP傳輸協定

- B2 - PnP伺服器/TPS/FND伺服器IP地址型別為IPv4

- I10.48.43.231 — 固定伺服器IP地址

- J9125 — 埠號9125（FND伺服器上PNP的埠）

有關使用DHCP的PNP的更多資訊，請參閱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

關於EasyMode

自FND 4.1開始引入簡易模式，儘管當時它稱為演示模式，並且允許您以不太安全的方式運行FND。雖然不建議將此方法用於生產，但它是開始使用的好方法。

使用easy mode時，您可以專注於路由器的PNP進程、引導和配置。如果某些功能無法使用，您無需懷疑通道建立或憑證。

將FND配置為在簡單模式下運行時發生的更改：

- 無需前端路由器(HER)或通往FND伺服器的隧道。

- 不需要建立公開金鑰基礎架構(PKI)和簡易憑證註冊通訊協定(SCEP)。

- 無需路由器證書、信任點和SSL證書。

- 所有通訊都是通過HTTP而不是HTTPS進行的。

有關輕鬆模式的詳細資訊，請點選此處：

https://www.cisco.com/c/en/us/td/docs/routers/connectedgrid/iot_fnd/guide/4_1_B/iot_fnd_ug4_1_b/device_mgmt.html#85516

為PNP和簡單模式配置FND

現在，您已經知道演示模式/PNP是什麼，以及為什麼在此環境中使用它。讓我們更改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

配置檔案中最後三行已更改。

- 第10行：啟用簡單模式

- 第11行：啟用PNP

- 第12行：設定要聯絡的FND伺服器的IP

更改檔案後，重新啟動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完成其餘配置。

準備CSV並將路由器新增到FND

在配置過程的此階段新增裝置可能聽起來有點不合邏輯，但遺憾的是，在新增某些裝置型別之前，部分配置不可用。

這樣做是為了避免GUI因不同裝置引入不同選項而過於擁擠。

在這裡，我們嘗試將IR809新增到FND。

CSV如下所示：

deviceType,eid,adminUsername,adminPassword,ip

ir800,IR809G-LTE-GA-K9+JMX2022X04S,fndadmin,C1sc0123!,10.48.43.250

CSV中的欄位包括：

- deviceType:ir800

- eid:PID和串列與+

- 管理員使用者名：此使用者名稱將新增到路由器配置中，稍後將用於完成註冊過程

- 管理員密碼：adminUsername的密碼

- ip:部署後在裝置配置中替換的IP地址

若要新增此裝置，請連線到GUI，然後導覽至Devices > Field Devices > Inventory > Add Devices，如下圖所示。

在對話方塊中，指定CSV檔案的位置，然後按一下Add將其新增到FND，如下圖所示。

如果一切順利，您應該會看到要列出「已完成」的歷史記錄專案。 關閉對話方塊後，裝置應顯示在清單中，如下圖所示。

由於新增了deviceType ir800裝置，此時適用的模板和組將在GUI中可用。

準備預配設定、引導模板和配置模板

由於FND已配置為演示模式，因此需要更改調配URL以改用HTTP。導覽至Admin > Provisioning Settings即可執行以下操作：

將IoT-FND URL更改為http://<FND IP>:9121

接下來，配置兩個最低模板以進行引導和配置。

第一個配置稱為Router Bootstrap Configuration模板，是指使用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的配置/準備工作已經完成，您可以從準備路由器開始。

準備IR800以進行調配/PNP

如果要預配的裝置已經包含配置或以前使用過，則最好先完全清除路由器的配置，然後再使用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伺服器，大部分操作應該自動執行。

在裝置上選擇以下手動配置：

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#

如您所見，已執行快速ping以測試路由器是否能夠通過應用的IP配置到達FND。

調配IR800路由器

此時，所有先決條件均已完成，您可以啟動PNP流程。在此例項中手動完成。

在生產環境中，PNP很可能與DHCP選項43一起使用。這意味著路由器一旦啟動，便會收到IP和PNP配置，您可以跳過此步驟和下一步。

為了在不使用DHCP的情況下在IR800上手動配置PNP，您需要指定請求的目標，即FND伺服器。

具體操作如下：

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。

如果一切順利，裝置將經歷以下過程：

- [UPDATING_ODM]:更新裝置上的ODM（運算元據模型）檔案，以與當前FND版本的有效檔案匹配

- [UPDATING_ODM_VERIFY_HASH]:檢查更新的檔案是否正確

- [UPDATED_ODM]

- [COLLECTING_INVENTORY]:收集當前配置和裝置資訊

- [COLLECTED_INVENTORY]

- [VALIDATING_CONFIGURATION]:嘗試應用載入程式配置中的配置(替代的Router Factory Reprovision模板)

- [VALIDATED_CONFIGURATION]

- [PUSING_BOOTSTRAP_CONFIG_FILE]:應用已驗證的配置

- [PUSING_BOOTSTRAP_CONFIG_VERIFY_HASH]:檢查應用的配置是否正確

- [PUSED_BOOTSTRAP_CONFIG_FILE]

- [CONFIGURING_STARTUP_CONFIG]：將配置寫入啟動配置

- [CONFIGURED_STARTUP_CONFIG]

- [APPLYING_CONFIG]:應用啟動配置

- [APPLIED_CONFIG]

- [TERMINATING_BS_PROFILE]:停止引導。

您可以在FND server.log中跟蹤進程。

在GUI中，導航到Unheard > Bootstrapping > 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註冊。您可以看到在該輸出中，路由器開始註冊過程前還剩九分鐘三十秒。

您可以等待計時器完成，也可以立即手動執行cg-nms-register配置檔案：

IR800-Bootstrap#cgna exec profile cg-nms-register

驗證

使用本節內容，確認您的組態是否正常運作。

裝置在FND中應移動到UP狀態，如下圖所示。

疑難排解

本節提供的資訊可用於對組態進行疑難排解。

若要對開機流程進行疑難排解，請檢查以下專案：

- FND伺服器登入：/opt/fnd/logs/server.log

- 增加登入的詳細程度：Admin > Logging > Log Level Settings > Router Bootstrapping > Debug

- 在IR800控制檯上：show pnp ?或調試pnp ?

- 在FND GUI中：Devices > Inventory > Select Device > Events

- 此階段中的大多數問題與Router Factory Reprovision模板中的（語法）錯誤有關

若要對註冊流程進行疑難排解，請檢查以下專案：

- FND伺服器登入：/opt/fnd/logs/server.log

- 在IR800控制檯上：

- show cgna profile-state all

- debug cgna logging ?

- debug wsma agent

- 在FND GUI中：Devices > Inventory > Select Device > Events

- 檢查通過HTTP從FND虛擬機器到IR800的WSMA連線

- FND使用的URI:http://10.48.43.231:80/wsma/exec

- 方法：POST

- 資安：基本身份驗證