Перейти к основному содержимому

ZTP (Zero-Touch Provisioning)

Краткое описание

ZTP (англ. Zero-Touch Provisioning — инициализация с "нуля") - это процесс автоматической удалённой настройки большого количества сетевых устройств без необходимости вручную конфигурировать каждое из них в отдельности. ZTP позволяет экономить время на развёртывание сети и сокращает количество ошибок. Помимо настройки сетевого устройства с нуля, ZTP также может использоваться для удаленного обновления уже существующих систем.

На коммутаторах FDS возможно несколько реализаций работы функции ZTP:

  • с использованием опции 125 DHCP: дает возможность загрузки и образа программного обеспечения и конфигурационного файла в один или несколько коммутаторов. Это возможно, если DHCP сервер настроен на динамическое назначение IP адреса хоста.
  • с использованием опций 66-67 DHCP: дает возможность загрузки только конфигурации.
  • с использованием опции 60 DHCP: идентификация устройства и назначение персональных настроек.
Предварительные настройки и проверки:
  1. Если настроена функция автоматической конфигурации, то по умолчанию на коммутаторах включена функция ZTP и он настроен как DHCP клиент. Необходимо убедиться, что ZTP не была отключена принудительно. В этом случае после ввода команды show running-config будут отображаться следующие параметры:
no boot host auto-update
no boot host auto-config

Для корректной работы ZTP, необходима активация функций auto-update и auto-config командами:

boot host auto-update
boot host auto-config

После чего настройки исчезнут из вывода show running-config.

  1. По умолчанию на коммутаторах включена функция получения адреса для Vlanif через DHCP. В случае ее принудительного отключения, активация происходит по команде (номер vlan=1 указан в качестве примера):
switch(config)#interface vlan 1
switch(config-if)#ip address dhcp

При этом необходимо иметь ввиду, что именно этот vlan должен быть доступен с порта сервера DHCP.

Использование ZTP (DHCP опция 125)

Рассмотрим использование ZTP на примере следующей топологии:

ztp_topology.png

Рисунок 1-1: Топология

Для работы ZTP требуется сетевое устройство, поддерживающее Zero-Touch Provisioning, и сервер с протоколами DHCP и TFTP. При включении устройства с поддержкой ZTP коммутатор отправляет на сервер запрос на получение как файла конфигурации, так и файла с программным обеспечением.

Файлы, необходимые на TFTP сервере:

ztp_files1.png

Рисунок 1-2: Структура файлов

При открытии файла "image_3.1.0.47.txt" можно увидеть следующее: ztp_files2.png

Рисунок 1-3: Файл "image_3.1.0.47.txt"

Настройки на DHCP сервере
Пример настройки сервера с DHCP опция 125
option image-filename code 125 = {
unsigned integer 32,
unsigned integer 8,
unsigned integer 8,
unsigned integer 8,
text
};

shared-network "net" {

subnet 192.168.134.0 netmask 255.255.255.0 {
range 192.168.134.230 192.168.134.240;

filename "startup.cfg"; # Имя файла конфигурации
option image-filename 9 20 5 18 "image_3.1.0.47.txt";
# 9&5 - Идентификатор производителя
# 20 - Длина имени файла(image_3.1.0.47.txt)+2
# 18 - Длина имени файла(image_3.1.0.47.txt)
next-server 192.168.134.10; # IP-адрес TFTP сервера
option routers 192.168.134.211; # IP-адрес DHCP сервера
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.134.254;
}
}
Информация о версии ПО на коммутаторе перед началом работы ZTP (DHCP опция 125)
FCS#show version
Active-image: flash://system/images/image_3.1.0.46.bin
Version: 3.1.0.47
MD5 Digest: 257c6cd0c027413b7cf64d4ce9d18539
Date: 10-May-2024
Time: 15:22:38
Inactive-image: flash://system/images/image_3.1.0.46.bin
Version: 3.1.0.46
MD5 Digest: 259d7243fef38de8ec2fcc3c528a1e3c
Date: 23-Nov-2023
Time: 19:49:01
Стартовая конфигурация Startup-config коммутатора перед началом работы ZTP (DHCP опция 125)
console#show startup-config 
config-file-header
v3.1.0.46 / RLINUX_930_214
CLI v1.0
file SSD indicator encrypted
@
ssd-control-start
ssd config
ssd file passphrase control unrestricted
no ssd file integrity control
ssd-control-end cb0a3fdb1f3a1af4e4430033719968c0
!
!
unit-type-control-start
unit-type unit 1 network gi uplink te
unit-type unit 2 network gi uplink te
unit-type unit 3 network gi uplink te
unit-type unit 4 network gi uplink te
unit-type unit 5 network gi uplink te
unit-type unit 6 network gi uplink te
unit-type unit 7 network gi uplink te
unit-type unit 8 network gi uplink te
unit-type-control-end
!
!
Процесс загрузки файлов с помощью ZTP (DHCP опция 125)

После команды boot коммутатор начинает перегружаться и получать программное обеспечение с DHCP сервера:

console#23-Nov-2023 07:29:18 %LINK-I-Up: gi1/0/1
23-Nov-2023 07:29:23 %STP-W-PORTSTATUS: gi1/0/1: STP status Forwarding
23-Nov-2023 07:29:56 %BOOTP_DHCP_CL-W-DHCPIPCANDIDATE: The device is waiting for IP address verification on interface Vlan 1 , IP 192.168.134.230, mask 255.255.255.0, DHCP server 192.168.134.211
23-Nov-2023 07:29:58 %BOOTP_DHCP_CL-I-DHCPCONFIGURED: The device has been configured on interface Vlan 1 , IP 192.168.134.230, mask 255.255.255.0, DHCP server 192.168.134.211
23-Nov-2023 07:29:58 %COPY-I-FILECPY: Files Copy - source URL tftp://192.168.134.10/image_3.1.0.47.bin destination URL flash://system/images/image_3.1.0.47.bin
23-Nov-2023 07:30:52 %COPY-N-TRAP: The copy operation was completed successfully
23-Nov-2023 07:30:52 %SCP-N-AUTOUPDATEFINISHED: Auto Update process has finished successfully. TFTP server: 192.168.134.10 Filename: image_3.1.0.47.bin
23-Nov-2023 07:30:52 %SCP-N-UPCOMINGAUTOREBOOT: Performing system reboot..
Resetting local unit
**************************************************
***************** SYSTEM RESET *******************
**************************************************

После второй перезагрузки коммутатор получает стартовую конфигурацию startup.cfg и настройки от DHCP сервера и уходит еще раз в перезагрузку:

User Name:admin
Password:*****

console#10-May-2024 03:05:48 %LINK-I-Up: gi1/0/8
10-May-2024 03:05:52 %STP-W-PORTSTATUS: gi1/0/1: STP status Forwarding
10-May-2024 03:05:52 %STP-W-PORTSTATUS: gi1/0/8: STP status Forwarding
10-May-2024 03:05:56 %BOOTP_DHCP_CL-W-DHCPIPCANDIDATE: The device is waiting for IP address verification on interface Vlan 1 , IP 192.168.134.230, mask 255.255.255.0, DHCP server 192.168.134.211
10-May-2024 03:05:58 %BOOTP_DHCP_CL-I-DHCPCONFIGURED: The device has been configured on interface Vlan 1 , IP 192.168.134.230, mask 255.255.255.0, DHCP server 192.168.134.211
10-May-2024 03:05:58 %COPY-I-FILECPY: Files Copy - source URL tftp://192.168.134.10/startup.cfg destination URL flash://system/configuration/startup-config
10-May-2024 03:06:00 %COPY-N-TRAP: The copy operation was completed successfully
10-May-2024 03:06:00 %SCP-N-AUTOCONFIGFINISHED: Auto Config process has finished successfully
10-May-2024 03:06:00 %SCP-N-UPCOMINGAUTOREBOOT: Performing system reboot..
Resetting local unit
**************************************************
***************** SYSTEM RESET *******************
**************************************************

После получения всех настроек коммутатор больше не перегружается.

Проверка версии ПО на коммутаторе после окончания загрузки файлов
FIS-33XXD-8P4X-99:01#show version
Active-image: flash://system/images/image_3.1.0.47.bin
Version: 3.1.0.47
MD5 Digest: 257c6cd0c027413b7cf64d4ce9d18539
Date: 10-May-2024
Time: 15:22:38
Inactive-image: flash://system/images/image_3.1.0.46.bin
Version: 3.1.0.46
MD5 Digest: 259d7243fef38de8ec2fcc3c528a1e3c
Date: 23-Nov-2023
Time: 19:49:01
FIS-33XXD-8P4X-99:01#
Проверка конфигурации Startup-config коммутатора после окончания загрузки файлов
FIS-33XXD-8P4X-99:01#show startup-config 
config-file-header
FIS-33XXD-8P4X-99:01
v3.1.0.47 / RLINUX_930_214
CLI v1.0
file SSD indicator encrypted
@
ssd-control-start
ssd config
ssd file passphrase control unrestricted
no ssd file integrity control
ssd-control-end cb0a3fdb1f3a1af4e4430033719968c0
!
!
unit-type-control-start
unit-type unit 1 network gi uplink te
unit-type unit 2 network gi uplink te
unit-type unit 3 network gi uplink te
unit-type unit 4 network gi uplink te
unit-type unit 5 network gi uplink te
unit-type unit 6 network gi uplink te
unit-type unit 7 network gi uplink te
unit-type unit 8 network gi uplink te
unit-type-control-end
!
rrp
rrp domain 1
control-vlan 7
ring
role master
primary-port GigabitEthernet1/0/1
secondary-port GigabitEthernet1/0/2
exit
set ring enable
exit
vlan database
vlan 7-10,15,20
exit
hostname FIS-33XXD-8P4X-99:01
!
interface vlan 1
ip address 192.168.1.240 255.255.255.0
no ip address dhcp
shutdown
!
interface vlan 7
ip address 192.168.134.2 255.255.255.0
!
interface vlan 8
ip address 192.168.11.240 255.255.255.0
shutdown
!
interface vlan 9
ip address 192.168.5.240 255.255.255.0
shutdown
!
interface vlan 10
ip address 192.168.6.240 255.255.255.0
shutdown
!
interface vlan 15
ip address 192.168.9.240 255.255.255.0
shutdown
!
interface vlan 20
ip address 192.168.10.240 255.255.255.0
shutdown
!
interface GigabitEthernet1/0/7
description Link-to-ISC-DHCP-SERVER-LINUX
switchport access vlan 7
!
interface GigabitEthernet1/0/8
description LINK-to-TFTP-SERVER-WINDOWS
switchport access vlan 7
!
Использование ZTP (DHCP опции 66-67)
Настройки на DHCP сервере
Пример настройки сервера с DHCP опции 66-67
option tftp-server code 66 = string;
option bootfile-name code 67 = string;
shared-network "net" {
subnet 192.168.134.0 netmask 255.255.255.0 {
range 192.168.134.220 192.168.134.230;
option tftp-server "192.168.134.10"; # IP-адрес TFTP сервера
option bootfile-name "startup.cfg"; # Имя файла конфигурации
option routers 192.168.134.211;
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.134.254;
}
}
Загрузка новой конфигурации Startup-config (DHCP опции 66-67)

При необходимости загрузить новую конфигурацию нужно перезагрузить коммутатор. После перезагрузки коммутатор получает по DHCP IP адрес и опцию, содержащую адрес TFTP-сервера и имя файла. Происходит загрузка файла startup.cfg и коммутатор перегружается второй раз.

User Name:admin
Password:*****


console#10-May-2024 03:05:02 %LINK-I-Up: gi1/0/1
10-May-2024 03:05:02 %LINK-I-Up: Vlan 1
10-May-2024 03:05:03 %LINK-I-Up: gi1/0/8
10-May-2024 03:05:03 %LINK-I-Up: gi1/0/2
10-May-2024 03:05:03 %LINK-I-Up: gi1/0/7
10-May-2024 03:05:04 %STP-W-PORTSTATUS: gi1/0/2: STP status Forwarding
10-May-2024 03:05:07 %STP-W-PORTSTATUS: gi1/0/1: STP status Forwarding
10-May-2024 03:05:07 %STP-W-PORTSTATUS: gi1/0/8: STP status Forwarding
10-May-2024 03:05:07 %STP-W-PORTSTATUS: gi1/0/7: STP status Forwarding
10-May-2024 03:05:12 %BOOTP_DHCP_CL-W-DHCPIPCANDIDATE: The device is waiting for IP address verification on interface Vlan 1 , IP 192.168.134.225, mask 255.255.255.0, DHCP server 192.168.134.211
10-May-2024 03:05:14 %BOOTP_DHCP_CL-I-DHCPCONFIGURED: The device has been configured on interface Vlan 1 , IP 192.168.134.225, mask 255.255.255.0, DHCP server 192.168.134.211
10-May-2024 03:05:14 %COPY-I-FILECPY: Files Copy - source URL tftp://192.168.134.10/startup.cfg destination URL flash://system/configuration/startup-config
10-May-2024 03:05:16 %COPY-N-TRAP: The copy operation was completed successfully
10-May-2024 03:05:16 %SCP-N-AUTOCONFIGFINISHED: Auto Config process has finished successfully
10-May-2024 03:05:16 %SCP-N-UPCOMINGAUTOREBOOT: Performing system reboot..
10-May-2024 03:05:20 %SYSLOG-N-LOGGING: Logging started.
Resetting local unit
Проверка конфигурации Startup-config коммутатора после окончания загрузки файлов
FIS-33XXD-8P4X-99:01#show startup-config
config-file-header
FIS-33XXD-8P4X-99:01
v3.1.0.47 / RLINUX_930_214
CLI v1.0
file SSD indicator encrypted
@
ssd-control-start
ssd config
ssd file passphrase control unrestricted
no ssd file integrity control
ssd-control-end cb0a3fdb1f3a1af4e4430033719968c0
!
!
unit-type-control-start
unit-type unit 1 network gi uplink te
unit-type unit 2 network gi uplink te
unit-type unit 3 network gi uplink te
unit-type unit 4 network gi uplink te
unit-type unit 5 network gi uplink te
unit-type unit 6 network gi uplink te
unit-type unit 7 network gi uplink te
unit-type unit 8 network gi uplink te
unit-type-control-end
!
rrp
rrp domain 1
control-vlan 7
ring
role master
primary-port GigabitEthernet1/0/1
secondary-port GigabitEthernet1/0/2
exit
set ring enable
exit
vlan database
vlan 7
exit
hostname FIS-33XXD-8P4X-99:01
!
interface vlan 1
ip address 192.168.1.240 255.255.255.0
no ip address dhcp
shutdown
!
interface vlan 7
ip address 192.168.134.2 255.255.255.0
!
interface GigabitEthernet1/0/7
description Link-to-ISC-DHCP-SERVER-LINUX
switchport access vlan 7
!
interface GigabitEthernet1/0/8
description LINK-to-TFTP-SERVER-WINDOWS
switchport access vlan 7
!
Управление форматом DHCP (DHCP опция 60)

Для того чтобы DHCP-сервер мог идентифицировать устройство и назначать ему персональные настройки автоконфигурации ZTP, разработана команда:

boot host option60 [ default | sn | sn-swn | ascii [{_}ascii-field{_}] __ ]

где,
default - значение в формате "MODEL-SN-SWV",
sn - серийный номер,
sn-swn - серийный номер и текущая версия программного обеспечения,
ascii - возможность использовать пользовательское значение ascii.

Значения Field:

MODEL - описание модели как в выводе команды CLI show inventory, поле DESCR,
SN - серийный номер устройства как в выводе команды CLI show inventory, поле SN,
SWV - текущая версия программного обеспечения как в выводе команды CLI show version, поле Version.

Конфигурация без применения DHCP опция 60
Часть конфигурации коммутатора
!
unit-type-control-start
unit-type unit 1 network gi uplink te
unit-type unit 2 network gi uplink te
unit-type unit 3 network gi uplink te
unit-type unit 4 network gi uplink te
unit-type unit 5 network gi uplink te
unit-type unit 6 network gi uplink te
unit-type unit 7 network gi uplink te
unit-type unit 8 network gi uplink te
unit-type-control-end
!
!
interface GigabitEthernet1/0/1
ip address dhcp
no switchport
!

Вывод поля Option60 без применения команды:

option60_1.png

Применение опции 60 DHCP
  1. Использование команды: boot host option60 ascii TEST
Часть конфигурации коммутатора
!
unit-type-control-start
unit-type unit 1 network gi uplink te
unit-type unit 2 network gi uplink te
unit-type unit 3 network gi uplink te
unit-type unit 4 network gi uplink te
unit-type unit 5 network gi uplink te
unit-type unit 6 network gi uplink te
unit-type unit 7 network gi uplink te
unit-type unit 8 network gi uplink te
unit-type-control-end
!
boot host option60 ascii TEST
!
interface GigabitEthernet1/0/1
ip address dhcp
no switchport
!

Вывод поля Option60 с применением команды boot host option60 ascii TEST\

option60_2.png

  1. Использование команды: boot host option60 default
Часть конфигурации коммутатора
!
unit-type-control-start
unit-type unit 1 network gi uplink te
unit-type unit 2 network gi uplink te
unit-type unit 3 network gi uplink te
unit-type unit 4 network gi uplink te
unit-type unit 5 network gi uplink te
unit-type unit 6 network gi uplink te
unit-type unit 7 network gi uplink te
unit-type unit 8 network gi uplink te
unit-type-control-end
!
boot host option60 default
!
interface GigabitEthernet1/0/1
ip address dhcp
no switchport
!

Вывод поля Option60 с применением команды boot host option60 default

option60_3.png

  1. Использование команды: boot host option60 sn
Часть конфигурации коммутатора
!
unit-type-control-start
unit-type unit 1 network gi uplink te
unit-type unit 2 network gi uplink te
unit-type unit 3 network gi uplink te
unit-type unit 4 network gi uplink te
unit-type unit 5 network gi uplink te
unit-type unit 6 network gi uplink te
unit-type unit 7 network gi uplink te
unit-type unit 8 network gi uplink te
unit-type-control-end
!
boot host option60 sn
!
interface GigabitEthernet1/0/1
ip address dhcp
no switchport
!

Вывод поля Option60 с применением команды boot host option60 sn

option60_4.png

  1. Использование команды: boot host option60 sn-swn
Часть конфигурации коммутатора
!
unit-type-control-start
unit-type unit 1 network gi uplink te
unit-type unit 2 network gi uplink te
unit-type unit 3 network gi uplink te
unit-type unit 4 network gi uplink te
unit-type unit 5 network gi uplink te
unit-type unit 6 network gi uplink te
unit-type unit 7 network gi uplink te
unit-type unit 8 network gi uplink te
unit-type-control-end
!
boot host option60 sn-swn
!
interface GigabitEthernet1/0/1
ip address dhcp
no switchport
!

Вывод поля Option60 с применением команды boot host option60 sn-swn

option60_5.png