المحتويات

المقدمة

المتطلبات الأساسية

المتطلبات

متطلبات الترخيص

الأنظمة الأساسية المدعومة

المكونات المستخدمة

معلومات أساسية

الرسم التخطيطي للشبكة

عملية ZTP (الخطوات التفصيلية)

الخطوة 1. توصيل المحول الجديد

الخطوة 2. بدء ZTP

الخطوة 3. طلب DHCP

الخطوة 4. إستجابة DHCP

الخطوة 5. URL ل HTTP

الخطوة 6. تنزيل

الخطوة 7. قسطرة

الخطوة 8. نشر التكوينات

الخطوة 9. نجاح

التكوين

إعداد خدمة HTTP

الخطوة 1. تثبيت خدمة HTTP في المضيف النهائي (مثال Linux)

الخطوة 2. إنشاء ملف python ztp_http.py

الخطوة 3. التحقق من منفذ خدمة HTTP و Listening

الخطوة 4. التحقق من متصفح رقم المنفذ

إعداد خدمة DHCP

الخطوة 1. تكوين واجهة الإمداد (جهاز جديد)

الخطوة 2. تكوين الواجهة المتصلة بخادم HTTP

الخطوة 3. تكوين نطاق DHCP

التحقق

سجلات وحدة التحكم العاملة

استكشاف الأخطاء وإصلاحها

المشكلات الشائعة

1. وجود خادم DHCP آخر في الشبكة

2. خطأ في رمز Python

3. رقم منفذ خدمة HTTP

4. عنوان IP مكرر

5. التحقق من خدمة HTTP، والإيقاف، وإعادة التشغيل

عينات تفاصيل الحزمة

المقدمة

يصف هذا وثيقة تشكيل وتوفير من Zero Touch Provisioning (ZTP) على cisco مادة حفازة 9000 sery مفتاح.

المتطلبات الأساسية

المتطلبات

توصي Cisco بأن تكون لديك معرفة بالمواضيع التالية:

- تكوين خادم بروتوكول التكوين الديناميكي للمضيف (DHCP) على المحول

- أساسيات قانون بايثون

- أساسيات خدمة HTTP/TFTP

متطلبات الترخيص

- يجب أن يكون ترخيص ميزة الشبكة أو Network Essentials نشطا.

الأنظمة الأساسية المدعومة

- محولات Catalyst 9300 Series التي تشغل الإصدار 16.5.1a

- محولات Catalyst 9500 Series التي تشغل الإصدار 16.5.1a

- محولات Catalyst 9400 Series التي تشغل الإصدار 16.6.2

ملاحظة: هذه الميزة غير مدعومة في C9600.

المكونات المستخدمة

تستند المعلومات الواردة في هذا المستند إلى إصدارات البرامج والمكونات المادية التالية:

- المحول Cisco Catalyst 9300 switch على Cisco IOS® XE 17.6.4

- يعمل المحول Cisco Catalyst 3850 switch كخادم DHCP مع تكوين الخيار 67

- يحتوي المضيف النهائي المثبت مع خدمة HTTP على ملف Python.

تم إنشاء المعلومات الواردة في هذا المستند من الأجهزة الموجودة في بيئة معملية خاصة. بدأت جميع الأجهزة المُستخدمة في هذا المستند بتكوين ممسوح (افتراضي). إذا كانت شبكتك قيد التشغيل، فتأكد من فهمك للتأثير المحتمل لأي أمر.

معلومات أساسية

يتم إستخدام ميزة "التوفير دون لمس (ZTP)" لتزويد أجهزة الشبكة بدقة في غضون دقائق ودون أي تدخل يدوي.

الرسم التخطيطي للشبكة

الإعداد والخطوات الأساسية للإعداد دون لمس

عملية ZTP (الخطوات التفصيلية)

يقوم ZTP بأتمتة تكوين محولات Catalyst 9000 Series مع عدم تكوين بدء التشغيل عند تقديمه إلى الشبكة الموجودة. يحدث هذا دون أي تدخل يدوي. يتم شرح الخطوات التفصيلية هنا:

الخطوة 1. توصيل المحول الجديد

قم بتوصيل محول جديد بالبنية الأساسية الحالية والطاقة الموجودة على الجهاز. يتم تمهيد المحول دون تكوين بدء التشغيل.

الخطوة 2. بدء ZTP

يتم بدء عملية ZTP بواسطة المحول تلقائيا.

الخطوة 3. طلب DHCP

يرسل المحول رسالة اكتشاف DHCP.

الخطوة 4. إستجابة DHCP

يستجيب خادم DHCP مع عرض يتضمن الخيار 67، والذي يحتوي على عنوان IP و URL لخادم HTTP.

الخطوة 5. URL ل HTTP

يتلقى المفتاح العرض ويحصل على عنوان IP لإتصاله الخاص. كما أنها تتلقى عنوان IP الخاص بخادم HTTP وعنوان URL الكامل لتنزيل ملف ztp.py.

الخطوة 6. تنزيل

يصل المحول إلى خادم HTTP وينزل ZTP.py الملف.

الخطوة 7. قسطرة

يقوم المحول بتنشيط shell تلقائيا.

الخطوة 8. نشر التكوينات

يقوم المحول بتنفيذ ملف Python ويتم تطبيق التكوينات تلقائيا.

الخطوة 9. نجاح

يقوم المحول بتدمير طبقة الأمانscript execution is a successويتم عرض الرسالة.

التكوين

إعداد خدمة HTTP

الخطوة 1. تثبيت خدمة HTTP في المضيف النهائي (مثال Linux)

sudo apt update

sudo apt install apache2

الخطوة 2. إنشاء ملف python ztp_http.py

إذا ظهرت أي مشكلة في الأذونات، أستخدمchmod 777هذا لمنح إذن كامل للملف.

يحتوي ملف Python على التعليمات البرمجية التي تم تكوينها من المهام التالية:

1. إظهار الأوامر.

2. تكوين الاسترجاع.

3. التحقق من التكوين.

كود بايثون

#Importing cli module

import cli

print "\n\n Running show version \n\n"

cli.executep('show version')

print "\n\n Configure a Loopback Interface \n\n"

cli.configurep(["interface loop 25", "ip address 192.168.0.25 255.255.255.255", "end"])

print "\n\n Running show ip interface brief \n\n"

cli.executep('show ip int brief | i up')

print "\n\n ZTP is success \n\n"

موقع ملف python.

يجب تخزين هذا الملف تحت  /var/www/html  جهاز Linux.

vm: /var/www/html$ ls -l ztp_http.py

-rwxrwxrwx 1 root root 346 Apr 04 14:14 ztp_http.py

الخطوة 3. التحقق من منفذ خدمة HTTP و Listening

أستخدم الأمر service للتحقق من بدء تشغيل خدمة HTTP وتشغيلها الآن.

vm: /var/www/html$ sudo service apache2 status

Active: active (running)

تحقق من المنفذ الذي تستمع إليه خدمة HTTP الآن.

vm: /var/www/html$ sudo netstat -anp | grep apache

tcp6 0 :::80 :::* LISTEN 1998/apache2               <<<< Listens at 80

الخطوة 4. التحقق من متصفح رقم المنفذ

تحقق مما إذا كان الملف قابلا للتنزيل عبر مستعرض الويب.

1. افتح أي متصفح ضمن نفس الجهاز (على سبيل المثال، Linux).

2. أدخل عنوان URL هذا في شريط البحث:  localhost:80/ztp_http.py

3. تنزيلات الملفات تلقائيا.

إعداد خدمة DHCP

الخطوة 1. تكوين واجهة الإمداد (جهاز جديد)

من المتوقع أن يكون المحول الجديد متصلا بالجيل 1/0/1.

enable

configure terminal

interface g1/0/1

description New_9300_switch

switchport

switchport mode access

switchport access vlan 1

الخطوة 2. تكوين الواجهة المتصلة بخادم HTTP

خادم HTTP (Linux) متصل مباشرة بالمحول 3850 switch (على سبيل المثال، الواجهة g1/0/2).

enable

configure terminal

interface g1/0/2

description Linux_is_connected_here

switchport

switchport mode access

switchport access vlan 1

الخطوة 3. تكوين نطاق DHCP

مثال على تكوين تجمع DHCP مع الخيار 67.

enable

configure terminal

ip dhcp pool ZTP_Pool

network 10.0.0.0 255.255.255.0

default-router 10.0.0.1

option 67 ascii http://10.0.0.2:80/ztp_http.py

end

التحقق

لا يوجد حاليًا إجراء للتحقق من صحة هذا التكوين.

سجلات وحدة التحكم العاملة

No startup-config, starting autoinstall/pnp/ztp...

Autoinstall will terminate if any input is detected on console

--- System Configuration Dialog ---

Would you like to enter the initial configuration dialog? [yes/no]:   <<<< Do not provide any input during this time.

Autoinstall trying DHCPv6 on Vlan1

Autoinstall trying DHCPv4 on Vlan1

Acquired IPv4 address 10.0.0.10 on Interface Vlan1

Received following DHCPv4 options:

bootfile : http://10.0.0.2:80/ztp_http.py

stop Autoip process

OK to enter CLI now...

pnp-discovery can be monitored without entering enable mode

Entering enable mode will stop pnp-discovery

Attempting bootfile http://10.0.0.2:80/ztp_http.py

Loading http://10.0.0.2:80/ztp_http.py

Loading http://10.0.0.2:80/ztp_http.py day0guestshell activated successfully

Current state is: ACTIVATED

day0guestshell started successfully

Current state is: RUNNING

Guestshell enabled successfully

Running show version                           <<<< show command executed

Cisco IOS XE Software, Version 17.06.04

Cisco IOS Software [Bengaluru], Catalyst L3 Switch Software (CAT9K_IOSXE), Version 17.6.4, RELEASE SOFTWARE (fc1)

<snipped>

Model Number : C9300L-48T-4X

System Serial Number : FOC2531LGM8

CLEI Code Number :

Switch Ports Model SW Version SW Image Mode

------ ----- ----- ---------- ---------- ----

* 1 53 C9300L-48T-4X 17.06.04 CAT9K_IOSXE BUNDLE

Configure a Loopback interface                              <<<< configuration

Line 1 SUCCESS: interface loop 25

Line 2 SUCCESS: ip address 192.168.0.25 255.255.255.255

Line 3 SUCCESS: end

Running show ip int brief                                    <<<< Config Verification

Vlan1 10.0.0.10 YES DHCP up up

Vlan4094 192.168.2.1 YES manual up down

GigabitEthernet0/0 unassigned YES unset up up

GigabitEthernet1/0/2 unassigned YES unset up up

GigabitEthernet1/0/3 unassigned YES unset up up

Ap1/0/1 unassigned YES unset up up

Loopback25 192.168.0.25 YES other up up

ZTP is success

Guestshell destroyed successfully

Script execution success!                                   <<<< Success

استكشاف الأخطاء وإصلاحها

يوفر هذا القسم معلومات يمكنك استخدامها لاستكشاف أخطاء التكوين وإصلاحها.

المشكلات الشائعة

1. وجود خادم DHCP آخر في الشبكة

No startup-config, starting autoinstall/pnp/ztp...

Autoinstall will terminate if any input is detected on console

--- System Configuration Dialog ---

Would you like to enter the initial configuration dialog? [yes/no]:

Autoinstall trying DHCPv6 on Vlan1

Autoinstall trying DHCPv4 on Vlan1

Acquired IPv4 address 192.168.45.117 on Interface Vlan1           <<<< Gets Different IP from another DHCP server.

Received following DHCPv4 options:

hostname : Switch

stop Autoip process

OK to enter CLI now...

pnp-discovery can be monitored without entering enable mode

Entering enable mode will stop pnp-discovery

Guestshell destroyed successfully

stop Autoip process

% Please answer 'yes' or 'no'.

Would you like to enter the initial configuration dialog? [yes/no]: no

2. خطأ في رمز Python

--- System Configuration Dialog ---

Would you like to enter the initial configuration dialog? [yes/no]:

Autoinstall trying DHCPv6 on Vlan1

Autoinstall trying DHCPv4 on Vlan1

Acquired IPv4 address 10.106.37.69 on Interface Vlan1

Received following DHCPv4 options:

bootfile : http://10.106.37.59:80/ztp_http.py

stop Autoip process

OK to enter CLI now...

pnp-discovery can be monitored without entering enable mode

Entering enable mode will stop pnp-discovery

Attempting bootfile http://10.106.37.59:80/ztp_http.py

Loading http://10.106.37.59:80/ztp_http.py

Loading http://10.106.37.59:80/ztp_http.py day0guestshell activated successfully

Current state is: ACTIVATED

day0guestshell started successfully

Current state is: RUNNING

Guestshell enabled successfully

File "/bootflash/guest-share/downloaded_script.py", line 1

print "\n\n Running show version \n\n"

^

SyntaxError: Missing parentheses in call to 'print'. Did you mean print("\n\n Running show version \n\n")?      <<<< Code Error

Guestshell destroyed successfully

Script execution success!

3. رقم منفذ خدمة HTTP

تنصت خدمة HTTP على منافذ مختلفة، مثل 8080، لكن تكوين DHCP للخيار 67 يشير إلى 80.

enable

configure terminal

ip dhcp excluded-address 10.0.0.2

ip dhcp pool ZTP_Pool

network 10.0.0.0 255.255.255.0

default-router 10.0.0.1

option 67 ascii http://10.0.0.2:80/ztp_http.py             <<<< Change to 8080

4. عنوان IP مكرر

تحقق من نطاق DHCP واستبعد عنوان IP الذي تم تعيينه لخادم HTTP.

enable

configure terminal

ip dhcp excluded-address 10.0.0.2                          <<<< Exclude HTTP server address.

ip dhcp pool ZTP_Pool

network 10.0.0.0 255.255.255.0

default-router 10.0.0.1

option 67 ascii http://10.0.0.2:80/ztp_http.py

5. التحقق من خدمة HTTP، والإيقاف، وإعادة التشغيل

vm: /var/www/html$ sudo service apache2 stop

vm: /var/www/html$ sudo service apache2 start

vm: /var/www/html$ sudo service apache2 status

عينات تفاصيل الحزمة

ملخص تبادل HTTP:

10.0.0.10    10.0.0.2    HTTP  183  GET /http_ztp.py HTTP/1.1           <<<< HTTPGETrequest

10.0.0.2     10.0.0.10   HTTP  245  HTTP/1.1 200 OK (text/x-python)     <<<< Response

تفاصيل إستجابة HTTP:

Hypertext Transfer Protocol

HTTP/1.1 200 OK\r\n

Content-Type: text/x-python\r\n

Content-Length: 20\r\n

Date: Tue, 04 Apr 2023 12:24:02 GMT\r\n

Connection: keep-alive\r\n

Keep-Alive: timeout=5\r\n

\r\n

[HTTP response 1/2]

[Time since request: 0.204568243 seconds]

[Request in frame: 21]

[Next request in frame: 25]

[Next response in frame: 26]

[Request URI: http://10.0.0.2:80/http_ztp.py]                 >>>> URL