思科网络自动化入门课程介绍

知识精讲

本课程是网络自动化入门导论,系统介绍传统网络管理的痛点、网络自动化核心概念、可编程接口类型、模型驱动编程、设备级与控制器级可编程的区别,以及DevOps文化与工具分类,为后续深入学习打下基础。

课程介绍与大纲

  • 课程目标:完成课程后可以掌握现代网络自动化开发方法,理解不同工具与方法论的适用场景,明确自身在自动化工作中的角色,能够将自动化应用到企业网络中。课程包含视频、示意图和课后复习题,涵盖概念、工具和实际用例。

  • 课程大纲

    1. 对比传统与新型网络管理方法,分析传统方式的优势与可扩展性、错误处理方面的挑战

    2. 介绍网络可编程性与相关工具系统,讲解Python结合API的开发方式

    3. 引入Git、Ansible、Puppet、Chef等主流自动化工具

    4. 讲解Cisco设备上不同自动化技术的实现原理

    5. 介绍DevOps实践、相关工具与企业收益

传统网络管理的演进与痛点

  • 传统手动管理模式:早期网络管理完全依赖人工,网络工程师通过控制台、Telnet、SSH连接设备,使用CLI逐台配置,通常采用复制修改配置文件的方式工作。

  • 🚩重点:传统CLI手动管理的核心缺陷:

    1. CLI设计适配人工交互,批量操作速度极慢

    2. 手动复制粘贴配置极易产生人为错误,设备数量越多出错概率越高

    3. 任务难以重复,工作流整体效率低下

  • SNMP的标准化尝试:为解决手动管理的效率问题,诞生了简单网络管理协议SNMP,通过网管服务器主动拉取设备信息,依靠SNMP Trap上报事件和错误,也可实现部分配置功能。

    • 🚩重点:SNMP配置功能可靠性不足,无法用于生产环境,至今仍仅用于拉取设备运行状态、完成网络监控。
  • 传统模型的规模扩展问题:企业网络规模较小时可通过CLI管理,随着设备数量、复杂度(安全设备、无线、SDNOverlay、IPv6等)增长,企业需要增加网络工程师人手,团队技能也逐渐多样化,会出现零散的自动化脚本。

    • 🚩重点:零散的自动化补丁方案无法优化网络管理,生产环境等关键场景需要统一 cohesive 的网络管理策略。

网络自动化可编程接口(API)体系

  • API演进背景:随着软件定义网络SDN的发展,网络编程逐渐从CLI转向API,CLI仍然在故障排查等场景必不可少,但API是网络自动化的核心支撑。

  • 主流网络API类型

    1. RESTful(REST)API:在网络设备和应用中被广泛使用,基于Web服务发起请求、获取状态,具备快速、简单、安全的特点。

    2. NetConf:IETF推出的专门用于网络设备配置的标准协议,操作基于XML编码的远程过程调用。

    3. RESTCONF:NetConf协议的子集,采用REST架构实现,兼具REST API的简单快速与网络设备专用API的功能。

    4. YANG数据模型:YANG全称Yet Another Generation Model,不是API本身,是专门为配置管理设计的数据建模语言,用于为API创建数据模型。

    5. gRPC:谷歌发起的开源远程过程调用框架,目前被众多企业用于网络自动化开发。

  • Cisco API生态:思科全线产品已开放API能力,包括Cisco DNA Center、数据中心ACI、Webex协作产品、IoT安全产品等均提供大量API。

  • 开源与开发支撑:开源是网络可编程领域的重要趋势,大量自动化工具开源降低了开发门槛,开源软件通常会打包为SDK(软件开发工具包),将工具与API封装后提供给开发者。测试环境方面,Cisco Modeling Labs 可以无需搭建实体硬件/基础设施,即可完成代码测试。

    • 🚩重点:API不是独立使用的,而是端到端架构的一部分,需要结合开发、测试、运维全流程考虑。

网络自动化常见应用场景

  • 自动备份:网络中数千台节点需要每日备份,手动备份是重复枯燥的工作,经常遗漏,自动化可定时执行备份,无需人工干预,还能提供版本跟踪,满足合规与审计要求。

  • 变更前后验证:网络变更需要在变更前后执行验证确保符合预期,手动验证容易漏执行命令、出错,自动化脚本可以自动完成前后验证并对比结果,节省工程师时间,流程可重复、结果一致。脚本可自动检查多台设备,结果输出到文件或数据库。

  • 报表与数据分析拉取:自动化脚本可从多个端点拉取数据,生成指定格式(电子表格、图表、PDF)的报表,完成后自动发送通知。

  • 合规检查:金融、医疗等行业有严格合规要求,需要检查网络配置是否符合规范,手动检查耗时繁琐,自动化可以持续检查配置变更合规性,发现违规及时处理,保障网络持续合规安全。

  • 事件触发自动化:检测到特定事件后自动执行预设动作,无需等待人工介入即可完成处理。

  • 配置管理:是网络自动化最常见的应用场景,自动化配置可以让变更更一致、可扩展。

  • 零接触配置:新设备接入网络时,自动化自动完成系统升级、配置管理IP、下发基础配置等初始化工作,脚本可以自动识别新上线设备、识别厂商型号,完成对应配置。

自动化交互集成方式

  • 可将自动化与仪表板集成,实现持续合规、报表等功能的实时可视化

  • 可与编排平台集成(例如云环境中由编排器透明触发执行自动化)

  • 可与IT服务管理(ITSM)平台集成,实现变更审批、调度,同时监控变更、问题与事件,ITSM本身也具备编排能力

  • ChatOps:通过即时聊天工具(如Webex Teams)与自动化交互,既可以向团队发送通知,也可以通过向机器人发送命令触发工作流

  • 可以结合多种方式,自定义组合满足业务需求

模型驱动可编程(Model Driven Programmability)

  • 数据模型核心概念:数据模型类似房屋的设计蓝图,定义数据对象的结构、包含的组件和位置,在网络中可以用来表示VLAN这类对象,定义对象结构、属性、合法取值范围、数据类型等,为程序间通信提供一致可靠的数据格式。

    • 🚩重点:网络自动化中是程序和程序通信,不是人和计算机通信,因此必须明确定义数据对象的结构、读写权限,这就是数据模型的核心作用。数据模型只关注传输什么数据,API关注如何传输数据。
  • 模型驱动API架构:数据模型是模型驱动API的基础,定义交互数据对象的语法、语义(结构)和约束(读写权限等)。YANG就是被NetConf、RESTCONF、gRPC使用的数据模型。应用通过SDK调用模型驱动API,协议、编码格式、传输方式等细节由API封装,对应用保持一致的交互体验。

  • 工作流程示例:应用从网络设备获取接口IP地址时,会根据代表接口IP的YANG模型构造请求,编码为XML,通过NetConf协议经SSH发送给网络设备的API服务;设备识别请求后,按照同一YANG模型构造响应,再次编码为XML经NetConf返回,两端依靠统一数据结构实现互相理解。

  • 常见数据编码格式:JSON和XML是最常用的两种编码格式,都可以按照数据模型结构化格式化数据,以文本格式存储,可被程序轻松解析提取。两者的区别仅在于语法不同,承载数据完全一致。两种格式的共性优势:

    1. 人类可读,自描述,通过键值对即可清晰理解数据含义

    2. 支持层次结构,可以存储嵌套数据结构

    3. 被绝大多数编程语言支持,有大量开发库可以简化处理

    • 🚩重点:JSON/XML只是文本编码格式,不是代码,API需要通过反序列化将文本转换为可操作的数据对象。
  • YANG建模语言 :YANG是专门用于网络自动化的数据建模语言,由硬件厂商编写YANG模块对外发布,供开发者交互,2010年10月作为NetConf的建模语言发布在RFC 6020中。YANG将数据对象定义为YANG模块,可导出为Schema格式,定义模块属性、组件、读写权限、数据类型等。 YANG模型驱动协议栈结构:YANG Schema → 数据编码 → 通信协议 → 底层传输

设备级可编程 vs 控制器级可编程

  • 设备级可编程:类似传统工程师逐台管理设备的模式,即使使用自动化脚本,也是一次和一台设备交互,所有配置、查询操作都直接在设备上执行。

  • 控制器级可编程:将设备管理抽象到集中的控制器系统(例如Cisco DNA Center),工程师或脚本只和控制器交互,控制器再和所有底层设备交互,返回结果到上层。

    • 🚩核心优势:控制器支持批量管理设备,可以按照业务功能、数据中心、地理位置分组管理,控制器负责设备交互的调度。
  • 实例说明:升级一批高可用Cisco Firepower设备的OS,为了不影响业务,需要逐台升级:主设备下线升级→上线→再升级备设备。如果有上百组高可用对,手动操作工作量极大,控制器可以内置高级逻辑,逐台升级,每台升级完成验证成功后再执行下一台,升级失败立即停止流程发送通知,人工介入处理。

  • 控制器级方案的优势

    1. 提供全网状态的统一视图,工程师单点即可获取全网信息

    2. 作为网络自动化和服务的统一聚合点

    3. 实现设备抽象,屏蔽不同厂商、不同型号设备的API差异,开发者只需要和控制器交互

    4. 支持集中化安全管理,可限制直接访问底层设备,仅开放控制器访问,单点即可实现访问控制、日志、报表、审计

    5. 内置多设备管理、复杂变更处理的高级逻辑

  • 控制器级方案的不足:需要培训员工、验证所有设备配置才能和控制器同步,需要调整业务流程适配控制器,落地周期长,不一定适合所有企业。

  • 设备级方案的优势:是网络工程师熟悉的传统模式,对单设备可以提供更细粒度的控制,适配定制化需求,多厂商环境、特殊设备更容易适配,不需要找到支持所有异构设备的控制器。

    • 🚩重点:控制器级可编程的前提是网络设备本身具备可编程接口,没有设备API就不可能存在集中控制器。

DevOps文化与理念

  • DevOps定义:DevOps是文化和流程的变革,核心是促进原本分隔的开发和运维团队之间的协作与沟通。两个团队目标不同,但需求互通,互相依赖。

  • 开发与运维的目标差异

    • 开发团队:目标是快速发布小版本变更,交付新功能,更偏向创新变更。

    • 运维团队:目标是保障系统稳定、可靠、可预测,聚焦服务可用性,需要严格控制变更。

  • 传统开发模式的问题:传统瀑布开发模式会拉大两个团队的分歧,破坏协作,损害企业整体收益。

  • DevOps开发生命周期

    1. 文化(Culture):DevOps需要企业级推动,高管支持,从文化层面转变,不能只在团队层面推行。

    2. 自动化(Automation):通过自动化将重复任务交给机器完成,让人类聚焦于更适合人的工作,释放人力。

    3. 精益(Lean):梳理所有系统和流程,裁剪消除低效环节,范围从老旧设备更新到人工流程优化都包含在内。

    4. 度量(Measurement):优化必须可量化,不能只凭感受判断优化效果,成本论证也需要量化数据支撑。

    5. 分享(Share):Agile方法要求团队分享信息,分享成功经验与失败教训,所有人共同学习,进步速度远高于个人摸索。

DevOps工具分类 DevOps工具类比OSI七层模型,每个工具只负责DevOps栈中特定层级的工作,共同构建敏捷工作流,支撑协作与开发管理,共分为六大类:

  1. 持续集成(CI):编排整体开发流水线,管理所有服务的测试。常见工具:Jenkins、Travis CI、Circle CI、TeamCity、Visual Studio Team Services。选择工具需要考虑速度、组织易用性、合规要求、已有技术栈适配等因素。

  2. 配置管理(CM):确保只使用预先审批的配置模板和模型,核心是流程管理。常见工具:Puppet、Chef、SaltStack、Ansible、Heat。工具选择通常取决于团队已有经验,或者合作团队的技术栈。

  3. 协作工具:为团队沟通提供支撑,支持跨位置、跨企业协作,支持机器人实现自动通知、消息转发、翻译、提醒等功能,还可以提供沟通归档方便回溯。常见工具:Slack、Cisco Webex Teams、HipChat。工具选择通常取决于企业已有许可和文化习惯。

  4. 环境工具:提供开箱即用、可重复的开发沙箱,让开发者聚焦代码开发,无需担心环境配置差异。常见工具:Vagrant、Packer、Docker。模块化的环境配置让问题不会阻塞整体开发进度。

  5. 源码与镜像控制:提供代码托管,支持版本管理,支持多人协作,避免修改冲突。常见工具:GitHub、GitLab、Bitbucket、JFrog。

  6. 平台层:提供运行DevOps工作流的底层平台,选择范围广,从免费公共平台到企业级付费平台都有,需要根据使用场景(个人学习/企业生产/金融合规)选择,需要关注数据主权、数据控制权等合规问题。

课程总结 完成本入门课后,已经掌握网络自动化基础,能够解释自动化的必要性、现有API类型、应用生命周期常用工具、模型驱动可编程概念、DevOps理念与工具分类;能够区分不同自动化方法、层级和工具,将其应用到思科网络产品中。

  • 🚩核心结论:如果需要扩展网络管理规模,必须使用网络自动化。

  • 不同类型的API有不同优势和适用场景,需要按需选择。

  • 掌握这些概念可以为后续深入学习各个自动化工具打下坚实基础。

💡 核心概念
  • RESTful API:基于Web服务的通用API架构,具备快速、简单、安全的特点,广泛用于网络设备交互

  • NetConf:IETF制定的网络设备配置标准协议,使用XML编码的远程过程调用

  • RESTCONF:基于REST架构的NetConf子集,兼具REST的易用性和NetConf的配置功能

  • YANG:Yet Another Generation Model,专门用于网络配置管理的数据建模语言,为API定义数据结构,RFC 6020定义

  • gRPC:谷歌发起的开源远程过程调用框架,广泛用于网络自动化

  • 模型驱动可编程:基于标准化数据模型构建API的网络可编程架构,数据模型定义结构,API负责传输

  • 零接触开通:新设备接入网络时,自动化自动完成初始化配置的流程

  • ChatOps:通过即时聊天工具和自动化交互的DevOps工作模式

  • DevOps:促进开发与运维团队协作的文化与流程方法,消除部门墙,提升交付效率

  • 持续集成(CI):DevOps中编排开发流水线、管理自动化测试的实践

✨ 课堂金句
  • "API不是独立使用的,而是端到端架构的一部分。"

  • "企业同时需要开发和运维,两者互相依赖,协作比各自为战更好。"

  • "通过学习从其他人的成败中学习,我们所有人进步的速度,比我们自己摸索要快得多。"

  • "如果你需要扩展网络管理,你必须使用网络自动化。"

📝 待办事项
  • 复习重点:梳理不同API类型的差异、设备级与控制器级可编程的优缺点、DevOps生命周期五大阶段

  • 后续学习:深入学习Git、Ansible、Puppet、Chef等具体自动化工具

相关推荐
AI创界者1 小时前
打造内网安全防线:使用 Kali Linux 进行企业级漏洞风险自查与防御指南
linux·运维·安全
数字新视界1 小时前
档案库房环境安全监控解决方案
大数据·运维·数据库·物联网·环境监控系统
大耳朵-小飞象10 小时前
智能调光4巨头争霸!轨道照明如何破局?
运维·智慧城市·智慧路灯·智能照明·楼宇智控·0-10v调光模块
CHENKONG_CK10 小时前
晨控CK-FR102ANS-EIP与基恩士KVX520系列PLC配置EtherNet/IP通讯连接手册
网络
sanzk10 小时前
firefly开发板ubuntu安装ros2下的micro-ROS Agent
linux·运维·ubuntu
草根站起来11 小时前
“双算法SSL证书”伪方案、国产SSL证书营销话术与等保绑定乱象批判
网络·网络协议·ssl
努力进修11 小时前
Docker+cpolar 实战:打造灵活可控的远程办公系统
运维·docker·容器
Bobolink_12 小时前
跨境业务网络环境评估,“干净、一致、独享”三个关键指标
开发语言·网络·php·跨境网络·网络环境
其实防守也摸鱼12 小时前
运维--怎么看接口的请求和返回
运维·学习·网络安全·网络攻击模型·burpsuite·攻防对抗·蓝队