Cisco DEVNET

CISCO devnet

قطعا همه ادمین های شبکه در شرایطی قرار گرفته اند که مجبور شده اند نسبت به پیکربندی تعداد زیادی از تجهیزات شبکه شامل روتر و سوئیچ به منظور انجام تغییرات مدنظر اقدام کنند. درنظر بگیرید یک ادمین برای انجام هر پیکربندی لازم است مراحل مشخصی که به صورت تکراری هم هستند انجام دهند .

به عنوان مثال فرض کنید ادمین شبکه می خواهد نسبت به انجام یک کار تکراری مثلا نوشتن description در یک اینترفیس مشخص در 200 عدد روتر اقدام کند. مجموعه اقداماتی که ادمین در پیکربندی یک روتر باید انجام دهد به شرح زیر است :

  1. وارد کردن نام کاربری و پسورد جهت وارد شدن به محیط پیکربندی روتر
  2. وارد شدن به اینترفیس موردنظر
  3. اعمال دستور description
  4. Write کردن پیکربندی
  5. خروج از پیکربندی تجهیز

فرض کنید در حالت ایده آل برای پیکربندی هر روتر مدت زمان 1 دقیقه لازم باشد بنابراین برای 200 روتر نیاز به 200 دقیقه (بیش از 3 ساعت) زمان نیاز است تا این پیکربندی انجام شود.

از این رو مفاهیمی مانند Automation بوجود آمدن، بدین معنی که انجام کارهای تکراری را به نرم افزارها بسپاریم. این امر از یک سو موجب افزایش سرعت و دقت انجام پیکربندی ها می شود و از سوی دیگر موجب می شود تا زمانی (200 دقیقه) که ادمین مجبور است نسبت به پیکربندی تک تک تجهیزات صرف کند را به سایر امور تخصیص دهد.

دسترسی و پیکربندی تجهیزات از طریق CLI (command Line Interface) انجام می شد و می شود. تا پیش از این از روش هایی مانند Bash Scripting یا EEM(Embedded Event Manager) برای مباحث اتوماسیون استفاده می شد.

یکی از مشکلاتی که استفاده از اتوماسیون بر مبنای CLI دارد آن است که با مجموعه ای از دستورات پیکربندی سروکار داریم که به صورت Text  یا در واقع String می باشند. انجام تغییرات با این  ساختار نیاز به آشنایی با فرمت های regex به منظور تفکیک نمودن بخش های مختلف Text فایل و کار برای روی آنها است.

یکی از زبان های برنامه نویسی که از ساختار Syntax ساده تری برخوردار است و در عملیات اتوماسیون بسیار کاربردی می باشد زبان برنامه نویسی Python  است. این زبان برنامه نویسی با مجموعه گسترده ای از libraryها و Packageها عملیات اتوماسیون را تسهیل می نماید. به عنوان نمونه netmiko library به منظور دسترسی به مجموعه گسترده ای از تجهیزات شبکه و امنیتی استفاده می شود.

همچنین برای برخی از تجهیزات  مانند تجهیزات سیسکو که از IOS استفاده می کنند اقدام به معرفی کتابخانه هایی  مانند Ciscoconfparse شده است که از طریق آن بتوان بر مشکل دستکاری String ها که پیش از این ذکر شد فایق آمد و می توان عملیات دستکاری در پیکربندی تجهیزات سیسکو بر مبنای IOS را تسهیل نمود.   

مدت دوره: 75 ساعت

پيش نياز: آشنایی با مفاهیم شبکه

مخاطب:

  • مهندسان و متخصصان شبکه   
  • مهندسان نرم افزار و برنامه نویسان

اهداف دوره:

در انتهای اين دوره دانشجويان قادر خواهند بود:

  • آشنایی با ساختارهای توسعه و طراحی نرم افزار و قابلیت های ورژن کنترل
  • آشنایی با زبان برنامه نویسی پایتون و توانایی در برنامه نویسی با استفاده از این زبان برنامه نویسی
  • آشنایی با فرمت های داده ، APIها و مکانیزم های ارتباط بین نرم افزارها و تجهیزات
  • آشنایی با پلتفرم های زیر و  APIهای مربوط به آنها:
    • مدیریت تجهیزات Cisco Enterprise Networking )شامل Meraki، DNA، SD-WAN)
    • مدیریت تجهیزات Cisco Datacenter and Compute Management (شامل ACI و UCS)
    • مدیریت تجهیزات Cisco Collaboration (شامل Webex Teams، Webex Meeting ، Cisco Finesse)
    • مدیریت تجهیزات Cisco Security  (شامل Umbrella ، Firepower ، ISE)
  • آشنایی با زیرساخت های اتوماسیون سازی

سرفصل دوره:

1. Introduction to Cisco DevNet Associate Certification

            1.1. Cisco DevNet Overview

2. Software Development and Design

            2.1. Software Development Lifecycle

            2.2. Common Design Patterns

            2.3. Linux Bash

            2.4. Git

3. Introduction to Python

            3.1. Understanding Python Syntax

            3.2. Data Types and Variables

            3.3. Input and Output

            3.4. Flow control with Conditionals and Loops

4. Python Functions, Classes and Modules

            4.1. Python Functions

            4.2. Python Classes

            4.3. Python Modules

5. Working with Data in Python

            5.1. File Inputs and Outputs

            5.2. Parsing Data (CSV, JSON, XML, YAML)

            5.3. Error Handling

6. Application Programming Interfaces (APIs)

            6.1. Application Programming Interfaces

7. RESTful API Requests and Responses

            7.1. RESTful API Fundamentals

            7.2. REST Constrains

            7.3. REST Tools

8. Cisco Enterprise Networking Management Platforms and APIs

            8.1. Cisco Meraki

            8.2. Cisco DNA Center

            8.3. Cisco SD-WAN

9. Cisco Datacenter and Compute Management Platforms and APIs

            9.1. Cisco ACI

            9.2. UCS Manager

            9.3. Cisco UCS Director

            9.4. Cisco Internight

10. Cisco Collaboration Platforms and APIs

            10.1. Introduction to the Cisco Collaboration Portfolio

            10.2. Webex Teams

            10.3. Webex Meeting APIs

            10.4. Webex Devices

            10.5. Cisco Finesse

            10.6. Cisco Unified Communication Manager

11. Cisco Security Platforms and APIs

            11.1. Cisco Umbrella

            11.2. Cisco Firepower

            11.3. Cisco AMP

            11.4. Cisco ISE

12. Model-Driven Programmability

            12.1. NETCONF

            12.2. YANG

            12.3. RESTCONF

13. Deploying Applications

            13.1. Application Deployment Models

            13.2. Application Deployment Options

            13.3. Application Deployment Methods

            13.4. DevOps

            13.5. Docker

14. Application Security        

            14.1. Identifying Potential Risks

            14.2. Protecting Applications

15. Infrastructure Automation

            15.1. Automation Tools

            15.2. CI/CDP

            15.3. NSO

16. Network Fundamentals

            16.1. Network Reference Models

            16.2. Switching Concepts

            16.3. Routing Concepts

17. Networking Concepts

            17.1. Elements of Networks

            17.2. SDN

18. IP Services

            18.1. Common Networking Protocols

            18.2. NAT

            18.3. Layer2 versus Layer3 Network Diagram

اساتید: