Skip to main content

Simple ZTP Test on XR Router

·2392 words·12 mins
Rory
Author
Rory
Step by step the ladder is ascended

什么是 ZTP
#

Zero Touch Provisioning (ZTP) 是一项能够在几分钟内无需任何人工干预部署数千个网络设备的功能。
ZTP 存在两种不同的操作:

  1. 下载应用配置到网络设备
  2. 下载并执行一个 shell/python 脚本,shell/python 脚本中再包含配置的下载,软件版本检查,升级等操作。

要拥有一个有效的 ZTP 环境,DHCP 和 Web 服务器是必须的。

在 ZTP 期间,DHCP 服务器提供引导文件名的路径。路由器下载此文件,如果下载的文件内容以 !! IOS XR ,它被认为是一个配置文件,ZTP 对配置文件执行“apply_config”操作。如果下载的文件内容以#! /bin/bash, #! /bin/sh 或 #!/usr/bin/python 它被视为脚本文件,ZTP 执行该脚本。

ZTP Work Flow
#

ZTP 工作流程如下:

  1. XR Router 初始化 ZTP,发送 DHCP 请求
  2. DHCP server 返回配置文件或者脚本文件
  3. 路由器请求并下载脚本文件或者配置文件
  4. 路由器根据脚本文件下载镜像或者 commit 下载的配置文件.

以下流程图仅供参考.

具体的路由器 ZTP 流程的脚本可以通过以下方式找到:

RP/0/RSP0/CPU0:ios#describe ztp initiate
  Spawn the process:
ztp -i
RP/0/RSP0/CPU0:ios#run
Thu Oct 20 19:22:27.500 UTC
[xr-vm_node0_RSP0_CPU0:~]$whereis ztp
ztp: /pkg/bin/ztp /pkg/bin/ztp.sh
[xr-vm_node0_RSP0_CPU0:~]$ cat /pkg/bin/ztp.sh

如何初始化 ZTP
#

  1. ZTP 在路由器启动时自动在 IOS XR 设备上启动,前提是没有初始配置的用户名。如果检测到配置的用户名,则停止 ZTP 进程。
    (Note: 这一点我没有进行测试,可以尝试清一下配置,执行命令重启一下设备,hw-module location all bootmedia network reload)
  2. 或者使用命令, “ztp initiate "
    “ztp initiate management dhcp4” will only try ztp under management interface.
    “ztp initiate” will try ztp under management interface first , if management ztp process failed , will try it under data interface.

Web Server / DHCP Server Setup
#

Web Server 服务可以直接使用 Python 快速起一个命令"python -m http.server “.

DHCP Server 可以参考我之前的 Centos Setup DHCP的步骤。

DHCP Server 相关配置
#

(Note: 最近只测试了使用 ZTP 加载配置文件,加载脚本进行版本升级目前没机会测试,后续如果有机会再补充)

  • DHCP 根据设备管理口 MAC 地址返回配置文件
[root@localhost ~]# grep -v ^$ /etc/dhcp/dhcpd.conf
option domain-name "cisco.com";
option domain-name-servers 8.8.8.8, 114.114.114.114;
default-lease-time 600;
max-lease-time 7200;
log-facility local7;
subnet 10.124.36.0 netmask 255.255.255.0 {
        option routers 10.124.36.1;
        range 10.124.36.201 10.124.36.205;
}
host xrv9k-1-mgmt {
   hardware ethernet 00:50:56:bd:28:45;
   filename http://10.124.36.199:3333/043A70E8330.config;
   fixed-address 10.124.36.206;
   option routers 10.124.36.1;
}
  • DHCP 根据设备发送的 DHCP 请求报文中 SN 信息,返回以 SN 命名的配置文件。
[root@localhost ~]# grep -v ^# /etc/dhcp/dhcpd.conf | grep -v ^$
option domain-name "cisco.com";
option domain-name-servers 8.8.8.8, 114.114.114.114;
option space cisco-vendor-id-vendor-class code width 1 length width 1;
option vendor-class.cisco-vendor-id-vendor-class code 9 = {string};
default-lease-time 600;
max-lease-time 7200;
log-facility local7;
shared-network 10-124-36-0 {
  subnet 10.124.36.0 netmask 255.255.255.0 {
          option routers 10.124.36.1;
          option subnet-mask 255.255.255.0;
  }
  pool {
     range 10.124.36.207 10.124.36.208;
     if exists user-class and option user-class = "xr-config" {
        filename = concat(“http://10.124.36.199:3333/”, substring(option vendor-class.cisco-vendor-id-vendor-class,3,11), ".config");
     }
  }
}

操作日志及抓包
#

路由器日志
#

RP/0/RP0/CPU0:changeme(config)#
RP/0/RP0/CPU0:changeme(config)#commit  replace
Mon Oct 24 02:40:36.085 UTC

This commit will replace or remove the entire running configuration. This
operation can be service affecting.
Do you wish to proceed? [no]: yes
RP/0/RP0/CPU0:ios(config)#end
RP/0/RP0/CPU0:ios#ztp  initiate management dhcp4
dhcp4  dhcp4-client-identifier
RP/0/RP0/CPU0:ios#ztp  initiate management dhcp4
Mon Oct 24 02:41:30.733 UTC
Inititaing ZTP may change your configuration.
Interfaces might be brought up if they are in shutdown state
Would you like to proceed? [no]: yes
ZTP will now run in the background.
Please use "show logging" or look at /var/log/ztp.log to check progress.
RP/0/RP0/CPU0:ios#

!!!!! show log
RP/0/RP0/CPU0:Oct 24 02:40:41.641 UTC: config[69554]: %MGBL-CONFIG-6-DB_COMMIT : Configuration committed by user 'cisco'. Use 'show configuration commit changes 1000000061' to view the changes.
RP/0/RP0/CPU0:Oct 24 02:41:19.308 UTC: config[69554]: %MGBL-SYS-5-CONFIG_I : Configured from console by cisco
RP/0/RP0/CPU0:Oct 24 02:41:34.237 UTC: pyztp2[388]: %INFRA-ZTP-6-START : ZTP has started. Interfaces might be brought up if they are shutdown
RP/0/RP0/CPU0:Oct 24 02:41:42.331 UTC: pyztp2[388]: %INFRA-ZTP-6-DISCOVERY_COMPLETED : Discovery successful on MgmtDhcp4Fetcher. Will proceed with fetching.
RP/0/RP0/CPU0:Oct 24 02:41:48.049 UTC: config[66456]: %MGBL-CONFIG-6-DB_COMMIT : Configuration committed by user 'ZTP'. Use 'show configuration commit changes 1000000062' to view the changes.
RP/0/RP0/CPU0:Oct 24 02:41:49.344 UTC: pyztp2[388]: %INFRA-ZTP-6-FETCHING_COMPLETED : Provisioning file fetched successfully
0/RP0/ADMIN0:Oct 24 02:41:52.278 UTC: aaad[3141]: %MGBL-AAAD-7-DEBUG :  Not allowing to sync from XR VM to Admin VM after first user creation.
RP/0/RP0/CPU0:Oct 24 02:41:54.351 UTC: config[67157]: %MGBL-CONFIG-6-DB_COMMIT : Configuration committed by user 'ZTP'. Use 'show configuration commit changes 1000000063' to view the changes.
0/RP0/ADMIN0:Oct 24 02:41:56.950 UTC: aaad[3141]: %MGBL-AAAD-7-DEBUG : Request for deleting user ztp-user
0/RP0/ADMIN0:Oct 24 02:42:01.531 UTC: aaad[3141]: %MGBL-AAAD-7-DEBUG :  Not allowing to sync from XR VM to Admin VM after first user creation.
RP/0/RP0/CPU0:Oct 24 02:42:04.122 UTC: config[67377]: %MGBL-CONFIG-6-DB_COMMIT : Configuration committed by user 'ZTP'. Use 'show configuration commit changes 1000000064' to view the changes.
RP/0/RP0/CPU0:Oct 24 02:42:09.811 UTC: pyztp2[388]: %INFRA-ZTP-6-PROVISIONING_COMPLETED : Provisioning successful


!!!!!!show ztp log
2022-10-24 02:41:33,693 (624) [DEBU] : Informing sysmgr proc ready
2022-10-24 02:41:33,794 (624) [INFO] : ZTP process role is Primary
2022-10-24 02:41:33,860 (624) [DEBU] : Failed to read PID using platform API. Error: 'Subsystem(0)' detected the 'fatal' condition 'Code(0)'
2022-10-24 02:41:34,003 (624) [DEBU] : Platform Information: {"Chassis Serial": "2A82C33442A", "RP Serial": "FEDA02D0DAE", "Product ID": "R-IOSXRV9000-CC", "Simulation": false}
2022-10-24 02:41:34,221 (624) [DEBU] : Standy RP does not exist, or has not come up yet
2022-10-24 02:41:34,221 (624) [INFO] : ZTP version 3.1.1
2022-10-24 02:41:34,221 (624) [DEBU] : Command line options passed Namespace(apply=None, clean=None, dataport=False, debug=False, dhclient6ID=None, dhclientID=None, dhcp4=True, dhcp6=False, disable=None, dscp4=None, dscp6=None, enable=None, hostname=None, interface=None, management=True, manual=True, secure=None, sync=None, usb=False, verbose=False, ztp_mode=None)
2022-10-24 02:41:34,236 (624) [DEBU] : ZTP Enabled: True
2022-10-24 02:41:34,237 (624) [DEBU] : Retry forever Enabled: True
2022-10-24 02:41:34,237 (624) [DEBU] : Breakout Enabled: False
2022-10-24 02:41:34,237 (624) [DEBU] : Username check Enabled: True
2022-10-24 02:41:34,237 (624) [INFO] : ZTP Process ID: 624, Process group ID: 624
2022-10-24 02:41:34,237 (624) [DEBU] : Failed to read PID using platform API. Error: 'Subsystem(0)' detected the 'fatal' condition 'Code(0)'
2022-10-24 02:41:34,276 (624) [DEBU] : Platform Information: {"Chassis Serial": "2A82C33442A", "RP Serial": "FEDA02D0DAE", "Product ID": "R-IOSXRV9000-CC", "Simulation": false}
2022-10-24 02:41:34,397 (624) [DEBU] : Standy RP does not exist, or has not come up yet
2022-10-24 02:41:34,397 (624) [INFO] : <Env>: Fetcher priority {0: 'mgmt4'}
2022-10-24 02:41:34,398 (624) [INFO] : Secure ZTP not supported: secure-ztp-not-supported-in-swtam : Hardware not supported for Secure ZTP
2022-10-24 02:41:34,399 (624) [DEBU] : Executing: /pkg/bin/xr_cli -n "show configuration commit list"
2022-10-24 02:41:34,638 (624) [DEBU] : Executing: source /pkg/bin/ztp_helper.sh && echo -ne  | xrcmd "show running-config"
(XR Network NS                 ) Mon Oct 24 02:41:34 UTC 2022: (pid   709) (/pkg/bin/ztp_exec.sh)                  : Running user cmd: [show running-config]
!! IOS XR Configuration 7.4.1
!! Last configuration change at Mon Oct 24 02:40:37 2022 by cisco
!
end

2022-10-24 02:41:35,102 (624) [DEBU] : Last commit id 1000000061
2022-10-24 02:41:35,390 (624) [DEBU] : Configured dhclient
2022-10-24 02:41:35,427 (624) [DEBU] : Setting ZTP active tuple
2022-10-24 02:41:35,427 (624) [DEBU] : Writing to file /tmp/ztp2-vbrb5qrb/sysdb_set_tuple.tmp
2022-10-24 02:41:35,576 (624) [INFO] : ZAdmin, current state:idle
2022-10-24 02:41:35,576 (624) [INFO] : ZAdmin, current state:idle: state changed to idle
2022-10-24 02:41:35,576 (624) [DEBU] : ZAdmin, current state:idle: starting event loop
2022-10-24 02:41:35,676 (624) [DEBU] : ZAdmin, current state:idle. Processing work: [privileged] start an engine. done = False
2022-10-24 02:41:35,676 (624) [INFO] : ZAdmin, current state:active: state changed to active
2022-10-24 02:41:35,677 (624) [INFO] : Attempt: 1
2022-10-24 02:41:35,777 (624) [DEBU] : ZAdmin, current state:active. Processing work: epoch work. done = False
2022-10-24 02:41:35,777 (624) [DEBU] : Current epoch attempt: 1. Reset: True.
2022-10-24 02:41:35,777 (624) [DEBU] : Starting fetcher in 2 seconds
2022-10-24 02:41:35,777 (624) [INFO] : ZTP is initiated manually. Will not check for username config
2022-10-24 02:41:35,777 (624) [DEBU] : ZAdmin, current state:active. Processing work: [privileged] getting engine status. done = False
2022-10-24 02:41:35,878 (624) [DEBU] : ZAdmin, current state:active. Processing work: [privileged] getting engine status. done = False
2022-10-24 02:41:37,789 (624) [DEBU] : ZAdmin, current state:active. Processing work: Start fetcher work for ZAdmin. done = False
2022-10-24 02:41:37,789 (624) [INFO] : ZAdmin, current state:active: state tag changed to discover
2022-10-24 02:41:37,790 (624) [INFO] : MgmtDhcp4Fetcher, current state:idle
2022-10-24 02:41:37,790 (624) [INFO] : MgmtDhcp4Fetcher, current state:idle: state changed to idle
2022-10-24 02:41:37,790 (624) [DEBU] : MgmtDhcp4Fetcher, current state:idle: starting event loop
2022-10-24 02:41:37,791 (624) [INFO] : MgmtDhcp4Fetcher fetcher created.
2022-10-24 02:41:37,891 (624) [DEBU] : MgmtDhcp4Fetcher, current state:idle. Processing work: [privileged] start an engine. done = False
2022-10-24 02:41:37,891 (624) [INFO] : MgmtDhcp4Fetcher, current state:active: state changed to active
2022-10-24 02:41:37,892 (624) [DEBU] : ZAdmin, current state:active. Processing work: Monitor fetcher work for ZAdmin. done = False
2022-10-24 02:41:37,992 (624) [DEBU] : MgmtDhcp4Fetcher, current state:active. Processing work: epoch work. done = False
2022-10-24 02:41:37,992 (624) [DEBU] : MgmtDhcp4Fetcher, current state:active. Processing work: [privileged] getting engine status. done = False
2022-10-24 02:41:37,992 (624) [DEBU] : MgmtDhcp4Fetcher, current state:active. Processing work: Bringing up interfaces before next retry. done = False
2022-10-24 02:41:37,993 (624) [DEBU] : <Port count=1>: bringing interface(s) up "eth0"
2022-10-24 02:41:38,216 (624) [DEBU] : Saving 1 interfaces to /disk0:/ztp/xr_config/interface_list
2022-10-24 02:41:38,216 (624) [DEBU] : MgmtDhcp4Fetcher, current state:active. Processing work: Filtering up interfaces for MgmtDhcp4Fetcher. done = False
2022-10-24 02:41:38,216 (624) [DEBU] : <Port count=1>: Interface(s) before filtering down"eth0"
2022-10-24 02:41:38,216 (624) [DEBU] : Filtering interfaces
2022-10-24 02:41:38,245 (624) [DEBU] : Cmd: ip netns exec xrnns ifconfig eth0
Output: eth0      Link encap:Ethernet  HWaddr 00:50:56:bd:28:45
          inet6 addr: fe80::250:56ff:febd:2845/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1514  Metric:1
          RX packets:8067596 errors:0 dropped:0 overruns:0 frame:0
          TX packets:56432 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:627258187 (598.2 MiB)  TX bytes:20701740 (19.7 MiB)
          Interrupt:18 Memory:fd5a0000-fd5c0000
2022-10-24 02:41:38,276 (624) [DEBU] : Cmd: ip netns exec xrnns cat /sys/class/net/eth0/operstate
Interface state: up
2022-10-24 02:41:38,276 (624) [INFO] : Final interface list: eth0
2022-10-24 02:41:38,276 (624) [DEBU] : Down interface list:
2022-10-24 02:41:38,276 (624) [DEBU] : <Port count=1>: Filtered down interface(s) "eth0"
2022-10-24 02:41:38,276 (624) [DEBU] : MgmtDhcp4Fetcher, current state:active. Processing work: Start Dhclient for MgmtDhcp4Fetcher. done = False
2022-10-24 02:41:38,280 (624) [DEBU] : <Dhclient count=1>: started dhclient using "ip netns exec xrnns /sbin/dhclient -4 -cf /etc/dhcp/dhclient.conf.ztp -lf /var/lib/dhcp/dhclient.leases.ztp -sf /etc/dhcp/dhclient-script.ztp2 eth0"
(XR Network NS                 ) Mon Oct 24 02:41:38 UTC 2022: (pid   807) (/etc/dhcp/dhclient-script.ztp2)        : Secure redirect not found in the DHCP response.
2022-10-24 02:41:39,000 (624) [DEBU] : ZAdmin, current state:active. Processing work: Monitor fetcher work for ZAdmin. done = False
2022-10-24 02:41:39,082 (624) [DEBU] : MgmtDhcp4Fetcher, current state:active. Processing work: [privileged] getting engine status. done = False
2022-10-24 02:41:40,084 (624) [DEBU] : ZAdmin, current state:active. Processing work: Monitor fetcher work for ZAdmin. done = False
2022-10-24 02:41:40,184 (624) [DEBU] : MgmtDhcp4Fetcher, current state:active. Processing work: [privileged] getting engine status. done = False
2022-10-24 02:41:40,885 (624) [DEBU] : ZAdmin, current state:active. Processing work: [privileged] getting engine status. done = False
2022-10-24 02:41:41,186 (624) [DEBU] : ZAdmin, current state:active. Processing work: Monitor fetcher work for ZAdmin. done = False
2022-10-24 02:41:41,286 (624) [DEBU] : MgmtDhcp4Fetcher, current state:active. Processing work: [privileged] getting engine status. done = False
2022-10-24 02:41:41,286 (624) [DEBU] : MgmtDhcp4Fetcher, current state:active. Processing work: Monitor dhclient for MgmtDhcp4Fetcher on interface ['eth0']. done = False
2022-10-24 02:41:41,286 (624) [DEBU] : Received DHCP4 response
2022-10-24 02:41:41,286 (624) [INFO] : (dhclient env) new_domain_name=cisco.com
2022-10-24 02:41:41,286 (624) [INFO] : (dhclient env) new_ip_address=10.124.36.206
2022-10-24 02:41:41,286 (624) [INFO] : (dhclient env) reason=BOUND
2022-10-24 02:41:41,286 (624) [INFO] : (dhclient env) new_domain_name_servers=8.8.8.8 114.114.114.114
2022-10-24 02:41:41,287 (624) [INFO] : (dhclient env) new_routers=10.124.36.1
2022-10-24 02:41:41,287 (624) [INFO] : (dhclient env) interface=eth0
2022-10-24 02:41:41,287 (624) [INFO] : (dhclient env) new_broadcast_address=10.124.36.255
2022-10-24 02:41:41,287 (624) [INFO] : (dhclient env) new_subnet_mask=255.255.255.0
2022-10-24 02:41:41,287 (624) [INFO] : (dhclient env) new_dhcp_server_identifier=10.124.36.199
2022-10-24 02:41:41,287 (624) [INFO] : (dhclient env) new_network_number=10.124.36.0
2022-10-24 02:41:41,287 (624) [INFO] : (dhclient env) new_filename=http://10.124.36.199:3333/043A70E8330.config
2022-10-24 02:41:41,287 (624) [INFO] : MgmtDhcp4Fetcher, current state:active, exit code:success
2022-10-24 02:41:41,309 (624) [DEBU] : Dhclient processes:
root       816  0.0  0.1  31100  7308 ?        Ss   03:09   0:00 /sbin/dhclient -4 -cf /etc/dhcp/dhclient.conf.ztp -lf /var/lib/dhcp/dhclient.leases.ztp -sf /etc/dhcp/dhclient-script.ztp2 eth0
root       817  0.0  0.0  20324  1592 ?        S    03:09   0:00 /bin/sh -c ps aux | grep dhclient
root       819  0.0  0.0  16248   948 ?        Sl   03:09   0:00 grep dhclient
root     23399  0.0  0.1  96636  7868 ?        Ss   Oct21   0:02 /sbin/dhclient -4 -cf /etc/dhcp/dhclient.conf.ztp -lf /var/lib/dhcp/dhclient.leases.ztp -sf /etc/dhcp/dhclient-script.ztp2 eth0
root     25117  0.0  0.1  31100  7856 ?        Ss   Oct21   0:02 /sbin/dhclient -4 -cf /etc/dhcp/dhclient.conf.ztp -lf /var/lib/dhcp/dhclient.leases.ztp -sf /etc/dhcp/dhclient-script.ztp2 eth0
2022-10-24 02:41:41,309 (624) [DEBU] : <Dhclient count=1>: dhclient 4 is stopped: keepIpAddress=True
2022-10-24 02:41:41,310 (624) [INFO] : MgmtDhcp4Fetcher, current state:final, exit code:success: state changed to final
2022-10-24 02:41:42,289 (624) [DEBU] : ZAdmin, current state:active. Processing work: Monitor fetcher work for ZAdmin. done = False
2022-10-24 02:41:42,311 (624) [DEBU] : MgmtDhcp4Fetcher, current state:final, exit code:success. Processing work: [privileged] getting engine status. done = False
2022-10-24 02:41:42,411 (624) [DEBU] : MgmtDhcp4Fetcher, current state:final, exit code:success. Processing work: [privileged] prepare engine shutdown. done = False
2022-10-24 02:41:42,512 (624) [DEBU] : MgmtDhcp4Fetcher, current state:final, exit code:success. Processing work: [privileged] shutting down MgmtDhcp4Fetcher engine. done = False
2022-10-24 02:41:42,512 (624) [INFO] : MgmtDhcp4Fetcher, current state:final, exit code:shutdown
2022-10-24 02:41:42,512 (624) [INFO] : MgmtDhcp4Fetcher, exit code:shutdown: state changed to None
2022-10-24 02:41:42,512 (624) [DEBU] : MgmtDhcp4Fetcher, exit code:shutdown: breaking engine loop after shutdown
2022-10-24 02:41:42,512 (624) [DEBU] : MgmtDhcp4Fetcher, exit code:shutdown: end of event loop
2022-10-24 02:41:42,512 (624) [DEBU] : ZAdmin, current state:active. Processing work: Setup fetching. done = False
2022-10-24 02:41:42,513 (624) [DEBU] : No authentication required for Mgmt Interface
2022-10-24 02:41:42,513 (624) [DEBU] : No authentication required when initiated using CLI
2022-10-24 02:41:42,514 (624) [DEBU] : Writing to file /tmp/ztp2-kxggoel7/sysdb_cfg_cmd.tmp
2022-10-24 02:41:42,581 (624) [DEBU] : No inconsistency found in config
2022-10-24 02:41:43,935 (624) [DEBU] : Applying TPA default route
2022-10-24 02:41:43,993 (624) [DEBU] : No IPv4 Address assigned to linux management interface
2022-10-24 02:41:43,993 (624) [DEBU] : Applying IPv4 configuration
2022-10-24 02:41:43,993 (624) [DEBU] : Validating IP Address: 10.124.36.206
2022-10-24 02:41:43,993 (624) [DEBU] : Applying IPv4 gateway route configuration
2022-10-24 02:41:43,993 (624) [DEBU] : Validating DHCP server identifier IP Address: 10.124.36.199
2022-10-24 02:41:43,994 (624) [DEBU] : Validating Gateway IP Address: 10.124.36.1
2022-10-24 02:41:43,994 (624) [DEBU] : Configuring domain name with domain-name-server 8.8.8.8 114.114.114.114
2022-10-24 02:41:43,995 (624) [DEBU] : Config file type is IOS XR config. Replace False
2022-10-24 02:41:43,995 (624) [DEBU] : Applying following config:
tpa
 vrf default
  address-family ipv4
   default-route mgmt
  address-family ipv6
   default-route mgmt

interface MgmtEth0/RP0/CPU0/0
no ipv4 address
ipv4 address 10.124.36.206 255.255.255.0
no shutdown

tpa
 vrf default
  address-family ipv4
   default-route mgmt
router static
 address-family ipv4 unicast
  0.0.0.0/0 10.124.36.1

domain name cisco.com

domain name-server 8.8.8.8

domain name-server 114.114.114.114

2022-10-24 02:41:43,995 (624) [DEBU] : Will apply the following: /disk0:/ztp/xr_config/config_snippet
(XR Network NS                 ) Mon Oct 24 02:41:44 UTC 2022: (pid   888) (/pkg/bin/ztp_exec.sh)                  : Applying configuration (Apply DHCP configuration):
(XR Network NS                 ) Mon Oct 24 02:41:44 UTC 2022: (pid   888) (/pkg/bin/ztp_exec.sh)                  : + (exec) /pkg/bin/config -p15 -X -f /disk0:/ztp/xr_config/config_snippet -u ZTP -L ZTP -c "Apply DHCP configuration"
(XR Network NS                 ) Mon Oct 24 02:41:48 UTC 2022: (pid   888) (/pkg/bin/ztp_exec.sh)                  : Output of config apply cmd:
Parsing.
422 bytes parsed in 1 sec (421)bytes/sec
Committing.
Prepared commit in 0 sec
.
14 items committed in 2 sec (6)items/sec
Updating.
Updated Commit database in 1 sec
(XR Network NS                 ) Mon Oct 24 02:41:48 UTC 2022: (pid   888) (/pkg/bin/ztp_exec.sh)                  : Applying (Apply DHCP configuration) configuration. Done.
2022-10-24 02:41:48,780 (624) [DEBU] : XR Network NS xrnns Interface config:
2022-10-24 02:41:48,795 (624) [DEBU] : eth0      Link encap:Ethernet  HWaddr 00:50:56:bd:28:45
          inet6 addr: fe80::250:56ff:febd:2845/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1514  Metric:1
          RX packets:8067684 errors:0 dropped:0 overruns:0 frame:0
          TX packets:56435 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:627264775 (598.2 MiB)  TX bytes:20702646 (19.7 MiB)
          Interrupt:18 Memory:fd5a0000-fd5c0000

eth-vf0   Link encap:Ethernet  HWaddr 52:54:00:fe:b8:07
          inet6 addr: fe80::5054:ff:fefe:b807/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:9000  Metric:1
          RX packets:26 errors:0 dropped:0 overruns:0 frame:0
          TX packets:18 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:2124 (2.0 KiB)  TX bytes:1476 (1.4 KiB)