本產品的文件集力求使用無偏見用語。針對本文件集的目的,無偏見係定義為未根據年齡、身心障礙、性別、種族身分、民族身分、性別傾向、社會經濟地位及交織性表示歧視的用語。由於本產品軟體使用者介面中硬式編碼的語言、根據 RFP 文件使用的語言,或引用第三方產品的語言,因此本文件中可能會出現例外狀況。深入瞭解思科如何使用包容性用語。
思科可能会在某些地方提供本内容的当地语言翻译版本。请注意,翻译版本仅供参考,如有任何不一致之处,以本内容的英文版本为准。
本文說明如何開始使用現場網路導向器(FND)和即插即用(PNP)及使用最少的一組元件。
思科建議您瞭解以下主題:
本文中的資訊係根據以下軟體和硬體版本:
本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除(預設)的組態來啟動。如果您的網路運作中,請確保您瞭解任何指令可能造成的影響。
由於FND具有許多不同的部署選項,因此目標是能夠為FND設定一個最小但有效的安裝。然後,此安裝程式可以作為進一步自定義和新增更多功能的起點。此處介紹的設定是使用開放式虛擬裝置(OVA)封裝的FND安裝作為起點,並且使用簡單模式以避免對公鑰基礎架構(PKI)和隧道調配的需求。使用PNP可簡化安裝並將裝置新增到安裝。
本指南的結果並不打算用於生產,因為計畫文本密碼以及沒有隧道和PKI可能會帶來一些安全風險。
步驟1.將FND OVA檔案下載並部署到虛擬機器監控程式。例如,對於VMWare,這將通過File > Deploy OVF Template完成,如下圖所示。
步驟2.部署後,您可以啟動VM並顯示登入螢幕,如下圖所示。
OVA檔案的預設密碼為:
步驟3.使用cisco使用者和密碼登入,然後導航到Applications > System Tools > Settings > Network。新增有線配置檔案,然後在IPv4頁籤中設定所需的IP地址或DHCP,如下圖所示。
步驟4.按一下Apply,並開啟/關閉連線,以確保應用新設定。
此時,您應該能夠使用您的瀏覽器和IP位址(如圖所示)導覽至FND GUI。
步驟5.使用預設使用者名稱和密碼登入GUI:root/root123
系統會提示您立即更改密碼,然後再次重定向至登入頁面。
如果一切順利,您應該能夠使用新密碼登入,並且能夠瀏覽FND GUI。
此外,還介紹了PNP和演示模式,然後介紹了FND的配置。
PNP是進行零接觸部署(ZTD)的最新Cisco方法。使用PNP,裝置可以完全配置,不需要手動觸控配置。
對於FND,使用PNP可以避免首先引導路由器。事實上,PNP所做的一切,都是以安全方式將其重定向到FND,然後獲取載入程式配置。
一旦裝置中存在載入程式配置,則此過程的其餘部分將像傳統引導裝置一樣繼續。
使用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"
可以定製如下:
有關使用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
自FND 4.1開始引入簡易模式,儘管當時它稱為演示模式,並且允許您以不太安全的方式運行FND。雖然不建議將此方法用於生產,但它是開始使用的好方法。
使用easy mode時,您可以專注於路由器的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
配置檔案中最後三行已更改。
更改檔案後,重新啟動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因不同裝置引入不同選項而過於擁擠。
在這裡,我們嘗試將IR809新增到FND。
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,如下圖所示。
如果一切順利,您應該會看到要列出「已完成」的歷史記錄專案。 關閉對話方塊後,裝置應顯示在清單中,如下圖所示。
由於新增了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的配置/準備工作已經完成,您可以從準備路由器開始。
如果要預配的裝置已經包含配置或以前使用過,則最好先完全清除路由器的配置,然後再使用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。
此時,所有先決條件均已完成,您可以啟動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。
如果一切順利,裝置將經歷以下過程:
您可以在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狀態,如下圖所示。
本節提供的資訊可用於對組態進行疑難排解。
若要對開機流程進行疑難排解,請檢查以下專案:
若要對註冊流程進行疑難排解,請檢查以下專案: