لب عملی: پیکربندی برنامه‌ریزی مبتنی‌بر-قالب در Cisco DNA Center (قالب‌های CLI)

این لب عملی یک قالب CLI را در یک گردش‌کار برنامه‌ریزی به‌سبک-DNA Center با استفاده از متغیرهایی برای مقادیر خاص-سایت می‌سازد، آن را روی دو دستگاه متفاوت اعمال می‌کند، و تأیید می‌کند هر دستگاه یک پیکربندی سفارشی‌شده تولید‌شده از همان یک قالب واحد دریافت می‌کند.

متغیرهای قالب CLIبرنامه‌ریزی دستگاه مبتنی‌بر-قالبپیکربندی چند-دستگاه تک-منبع

~4 دقیقه مطالعه · آخرین به‌روزرسانی ۵ مهر ۱۴۰۵

هدف لب

ساخت یک قالب CLI حاوی متغیرها برای مقادیر خاص-دستگاه مانند hostname و آدرس loopback، اعمال همان قالب روی دو دستگاه متفاوت با مقادیر متغیر متفاوت فراهم‌شده برای هرکدام، و تأیید اینکه هر دستگاه یک پیکربندی به‌درستی سفارشی‌شده تولید‌شده از همان قالب زیربنایی یکسان دریافت می‌کند.

هدف لب (چرا مهم است)

لب playbook در Ansible پیش‌تر در این مجموعه push پیکربندی بدون-عامل از یک control node خارجی را نشان داد. قالب‌های CLI به‌سبک-DNA Center رویکرد قالب-و-متغیر مشابهی اتخاذ می‌کنند اما آن را مستقیماً در گردش‌کار برنامه‌ریزی یک پلتفرم مدیریتی متمرکز ادغام می‌کنند، و اجازه می‌دهند یک مدیر یک الگوی پیکربندی را یک‌بار تعریف کند و آن را به‌طور سازگار در سراسر بسیاری دستگاه با فقط مقادیر خاص-سایت متفاوت به‌ازای-هر-دستگاه اعمال کند.

توپولوژی لب

ProvisioningPlatform (موتور قالب)

BranchRouterA (برای دریافت: hostname
               BRANCH-A، loopback
               10.100.1.1/32)
BranchRouterB (برای دریافت: hostname
               BRANCH-B، loopback
               10.100.2.1/32)

وظیفه ۱: ساخت یک قالب CLI با متغیرها

یک قالب حاوی ساختار پیکربندی مشترک، با متغیرهایی که مقادیر متفاوت به‌ازای-هر-دستگاه را علامت‌گذاری می‌کنند، تعریف کن.

وظیفه ۲: تعریف مقادیر متغیر برای BranchRouterA

مقادیر خاص BranchRouterA برای متغیرهای قالب را مشخص کن.

وظیفه ۳: تعریف مقادیر متغیر برای BranchRouterB

مقادیر خاص BranchRouterB برای همان متغیرهای قالب را مشخص کن.

وظیفه ۴: اعمال قالب روی هر دو دستگاه

قالب را، با مقادیر متغیر متناظر هر دستگاه، به هر دو روتر پوش کن.

وظیفه ۵: تأیید دریافت پیکربندی به‌درستی سفارشی‌شده توسط هر دستگاه

تأیید کن پیکربندی در حال اجرای هر روتر مقادیر خاص خودش را منعکس می‌کند، تولید‌شده از ساختار قالب مشترک.

راه‌حل و تأیید

-- قالب CLI (BRANCH-STANDARD):

hostname $HOSTNAME
!
interface Loopback0
 ip address $LOOPBACK_IP 255.255.255.255
!
ip domain-name lab.local
!
line vty 0 15
 transport input ssh

-- $HOSTNAME و $LOOPBACK_IP متغیرهای قالب
-- هستند -- هر چیز دیگر در قالب در سراسر هر
-- دستگاهی که روی آن اعمال می‌شود یکسان است

-- مقادیر متغیر برای BranchRouterA:

HOSTNAME = BRANCH-A
LOOPBACK_IP = 10.100.1.1

-- مقادیر متغیر برای BranchRouterB:

HOSTNAME = BRANCH-B
LOOPBACK_IP = 10.100.2.1

-- قالب اعمال‌شده روی BranchRouterA،
-- رندرشده به:

hostname BRANCH-A
!
interface Loopback0
 ip address 10.100.1.1 255.255.255.255
!
ip domain-name lab.local
!
line vty 0 15
 transport input ssh

-- قالب اعمال‌شده روی BranchRouterB،
-- رندرشده به:

hostname BRANCH-B
!
interface Loopback0
 ip address 10.100.2.1 255.255.255.255
!
ip domain-name lab.local
!
line vty 0 15
 transport input ssh

BranchRouterA# show running-config | include hostname
hostname BRANCH-A

BranchRouterA# show ip interface brief | include Loopback0
Loopback0    10.100.1.1    YES manual up    up

BranchRouterB# show running-config | include hostname
hostname BRANCH-B

BranchRouterB# show ip interface brief | include Loopback0
Loopback0    10.100.2.1    YES manual up    up

-- هر دو روتر به‌درستی مقادیر خاص-سایت خودشان
-- را دریافت کردند، تولید‌شده از دقیقاً همان
-- ساختار قالب زیربنایی -- هیچ تایپ‌مجدد دستی
-- و دستگاه-به-دستگاه عناصر پیکربندی مشترک
-- (نام دامنه، تنظیمات انتقال VTY) برای هیچ‌کدام
-- از دستگاه‌ها نیاز نبود

نکته کلیدی

قالب‌های CLI ساختار پیکربندی‌ای که در سراسر یک کلاس دستگاه یکسان می‌ماند را از مقادیر خاص‌ای که به‌ازای-هر-دستگاه متفاوت‌اند جدا می‌کنند، رویکردی از نظر مفهومی مشابه با متغیرهای playbook در Ansible پیش‌تر در این مجموعه اما مستقیماً در گردش‌کار یک پلتفرم برنامه‌ریزی ادغام‌شده — این جداسازی یعنی به‌روزرسانی یک عنصر پیکربندی مشترک (افزودن یک خط جدید به قالب) به‌طور خودکار دفعه بعد که قالب استفاده می‌شود به‌طور سازگار اعمال می‌شود، به‌جای نیازمندی آن تغییر به بازاعمال دستی روی هر دستگاه جداگانه.

نوشته و پژوهش‌شده توسط دکتر شاهین صیامی

مقالات مرتبط

لب عملی: چالش عیب‌یابی جامع نهایی CCNP (یکپارچگی BGP، DMVPN، و QoS)

این لب عملی یک شکست پیچیده چندلایه در سراسر یک توپولوژی یکپارچه BGP-روی-DMVPN ترکیب‌شده با علامت‌گذاری QoS ارائه می‌دهد، و نیازمند تشخیص سیستماتیک یک پیکربندی نادرست route reflector، یک شکست ثبت NHRP، و یک سیاست QoS نادرست‌اعمال‌شده که هم‌زمان روی همان شبکه تأثیر می‌گذارند است.

ادامه

لب عملی: پیکربندی BGP روی DMVPN

این لب عملی iBGP را به‌عنوان پروتکل مسیریابی در سراسر همان توپولوژی hub-and-spoke DMVPN استفاده‌شده در دو لب قبلی اجرا می‌کند، hub را به‌عنوان یک route reflector BGP پیکربندی می‌کند طوری‌که spoke ها مسیرهای یکدیگر را بدون یک mesh کامل iBGP یاد بگیرند، و دو مفهوم قبلاً جداگانه را در یک طراحی یکپارچه ترکیب می‌کند.

ادامه

لب عملی: پیکربندی OSPF روی DMVPN

این لب عملی OSPF را به‌عنوان پروتکل مسیریابی پویا در سراسر همان توپولوژی hub-and-spoke DMVPN اجرا می‌کند، و اینترفیس تونل را به‌عنوان یک نوع شبکه OSPF point-to-multipoint پیکربندی می‌کند تا الگوی همسایگی hub-and-spoke را به‌درستی بدون نیاز به انتخاب DR/BDR نوع شبکه broadcast مدیریت کند.

ادامه

لب عملی: پیکربندی EIGRP روی DMVPN

این لب عملی EIGRP را به‌عنوان پروتکل مسیریابی پویا در سراسر توپولوژی hub-and-spoke DMVPN ساخته‌شده در لب‌های قبلی اجرا می‌کند، و تأیید می‌کند روابط همسایه به‌درستی در سراسر تونل چندنقطه‌ای شکل می‌گیرند و مسیرها بدون نیاز به پیکربندی ایستای هر-spoke روی hub منتشر می‌شوند.

ادامه

لب عملی: پیکربندی احراز هویت MD5 در HSRP

این لب عملی احراز هویت MD5 را روی یک گروه HSRP پیکربندی می‌کند، و تأیید می‌کند دو روتر با رشته‌های احراز هویت منطبق یک رابطه active/standby معمولی تشکیل می‌دهند در حالی که یک روتر با رشته نامنطبق کاملاً از گروه مستثنی می‌شود.

ادامه

لب عملی: پیکربندی امنیت DNS به‌سبک-Cisco Umbrella از طریق تغییرمسیر Forwarding DNS

این لب عملی یک روتر را برای رهگیری هر پرس‌وجوی DNS کلاینت و تغییرمسیر آن به‌سمت یک resolver DNS امنیت-محور با استفاده از رهگیری forwarding DNS پیکربندی می‌کند، و اعمال امنیت DNS تحویل‌شده-با-ابر را بدون نیاز به تغییرات پیکربندی به‌ازای-هر-کلاینت تقریب می‌زند.

ادامه