ZTP (Zero-Touch Provisioning)
Краткое описание
ZTP (англ. Zero-Touch Provisioning — инициализация с "нуля") - это процесс автоматической удалённой настройки большого количества сетевых устройств без необходимости вручную конфигурировать каждое из них в отдельности. ZTP позволяет экономить время на развёртывание сети и сокращает к оличество ошибок. Помимо настройки сетевого устройства с нуля, ZTP также может использоваться для удаленного обновления уже существующих систем.
На коммутаторах FDS возможно несколько реализаций работы функции ZTP:
- с использованием опции 125 DHCP: дает возможность загрузки и образа программного обеспечения и конфигурационного файла в один или несколько коммутаторов. Это возможно, если DHCP сервер настроен на динамическое назначение IP адреса хоста.
- с использованием опций 66-67 DHCP: дает возможность загрузки только конфигурации.
- с использованием опции 60 DHCP: идентификация устройства и назначение персональных настроек.
Предварительные настройки и проверки:
- Если настроена функция автоматической конфигурации, то по умолчанию на коммутаторах включена функция 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
.
- По умолчанию на коммутаторах включена функция получения адреса для Vlanif через DHCP. В случае ее принудительного отключения, активация происходит по команде (номер vlan=1 указан в качестве примера):
switch(config)#interface vlan 1
switch(config-if)#ip address dhcp
При этом необходимо иметь ввиду, что именно этот vlan должен быть доступен с порта сервера DHCP.
Использование ZTP (DHCP опция 125)
Рассмотрим использование ZTP на примере следующей топологии:
Рисунок 1-1: Топология
Для работы ZTP требуется сетевое устройство, поддерживающее Zero-Touch Provisioning, и сервер с протоколами DHCP и TFTP. При включении устройства с поддержкой ZTP коммутатор отправляет на сервер запрос на получение как файла конфигурации, так и файла с программным обеспечением.
Файлы, необходимые на TFTP сервере:
Рисунок 1-2: Структура файлов
При открытии файла "image_3.1.0.47.txt" можно увидеть следующее:
Рисунок 1-3: Файл "image_3.1.0.47.txt"
Настройки на DHCP сервере
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 сервере
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 без применения команды:
Прим енение опции 60 DHCP
- Использование команды:
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
\
- Использование команды:
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
- Использование команды:
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
- Использование команды:
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