当前位置: 首页 > news >正文

ZTP(Zero Touch Provisioning)

定义

ZTP(Zero Touch Provisioning)开局是指新出厂或空配置设备上电启动时采用的一种自动加载开局文件(包括系统软件、配置文件、补丁文件等)的功能。

目的

在部署网络设备时,设备安装完成后,需要软调工程师到安装现场,对设备进行软件调试。当设备数量较多、分布较广时,维护人员需要在每一台设备上进行手工配置,既影响了设备部署的效率,又大大增加了人力成本。

设备运行ZTP开局功能,可以从文件服务器获取开局文件并自动加载,实现设备的免现场配置、部署,从而降低人力成本,并提高了设备部署的效率。

ZTP开局基本原理

典型组网

如图1所示,设备作为DHCP客户端定时向DHCP服务器发送DHCP请求报文以获得配置信息,然后DHCP服务器向待配置设备响应DHCP应答报文,报文内容包括分配给待配置设备的IP地址、中间文件服务器的IP地址、中间文件服务器的登录方式,通过登录中间文件服务器获取开局文件的配置信息,最后设备根据获取的配置信息向指定的开局文件服务器自动获取开局文件并设置为下次启动加载的文件,待设备重启后,设备就实现了开局文件的自动加载。

图1 ZTP开局典型组网图

  • DHCP服务器:用来为执行ZTP开局的设备分配临时管理IP地址、缺省网关、DNS服务器地址、中间文件服务器地址等信息。
  • Syslog服务器:用来将ZTP开局过程中记录的用户日志上传到网管侧。
  • DHCP中继:当执行ZTP开局的设备与DHCP服务器位于不同网段时,需要通过DHCP中继转发DHCP交互报文。
  • 中间文件服务器:用来保存ZTP开局过程中设备需要的中间文件,中间文件的类型可以是ini格式的中间文件和Python格式的中间文件。
  • 通过解析中间文件,执行ZTP开局的设备可以获取开局文件服务器地址、开局文件等信息。中间文件服务器仅支持SFTP、HTTP、TFTP、FTP类型的服务器。
  • 开局文件服务器:用来保存设备需要的开局文件,如系统软件、配置文件、补丁文件。开局文件服务器可以和中间文件服务器部署在同一个文件服务器上,仅支持SFTP、HTTP、TFTP、FTP类型的服务器。
  • DNS服务器:用来提供域名和IP地址之间的映射关系。执行ZTP的设备可以通过DNS服务器将文件服务器的域名解析为IP地址,以便于从文件服务器获取需要的文件。

开局方式

设备支持多种ZTP开局方式,不同ZTP开局方式适用于不同场景,如表1所示。用户可以根据需要选择合适的开局方式。
在这里插入图片描述
DHCP方式的ZTP开局部署简单,用户只要部署DHCP服务器,就可以使用此开局方式。但DHCP方式的ZTP开局存在数据可能被泄露和截获问题,有一定的安全隐患。对于安全性要求较高的开局场景,用户可以通过部署专用的BootStrap服务器,通过双向认证和数据加密的方式,解决DHCP方式的ZTP开局数据的可信问题,相关内容请参见SZTP开局基本原理及配置DHCP方式的ZTP开局(无控制器场景)。

开局流程

设备开局流程分为设备空配置开局和设备带配置开局。

  • 设备空配置上电后,如果设备收到DHCP Option 143字段的报文,设备进入SZTP开局流程,否则进入DHCP方式的ZTP开局流程。
  • 设备带配置上电,缺省情况下不支持ZTP开局,以配置文件正常启动。

在这里插入图片描述
设备空配置开局时,建议用户不要通过其他的配置方式对接口下发与ZTP开局执行的相同配置,如果开局失败会导致该配置被删除。
ZTP运行依赖OPS,可以通过执行ops stop process process-id 命令停止正在执行的ZTP流程,注意该方式可能会导致ZTP已经下发的配置保留在设备上。

SZTP开局基本原理

背景信息

SZTP又称安全ZTP,适用于安全要求高的场景。DHCP方式的ZTP开局部署简单,用户只要部署DHCP服务器,就可以使用此开局方式,但DHCP方式的ZTP存在数据被泄露和截获问题,有一定的安全隐患。用户通过部署DHCP服务器和专用的BootStrap服务器,通过双向认证和数据加密的方式,解决了DHCP方式的ZTP的数据可信问题。

基本组网

如图1所示,设备作为DHCP客户端定时向DHCP服务器发送DHCP请求报文以获得配置信息,然后DHCP服务器向待配置设备响应DHCP应答报文,报文内容包括分配给待配置设备的IP地址、BootStrap服务器的IP地址或域名,设备利用预置证书与BootStrap服务器建立双向认证,并建立HTTPS连接,在信任连接的基础上,从BootStrap服务器获取开局文件信息,最后设备连接开局文件服务器,自动获取开局文件并设置为下次启动加载的文件,待设备重启后,设备就实现了版本开局文件动加载。

在这里插入图片描述

  • DHCP服务器:用来为执行SZTP开局的设备分配临时管理IP地址、缺省网关、DNS服务器地址、BootStrap服务器地址或域名等信息。
  • DHCP中继:当执行SZTP开局的设备与DHCP服务器位于不同网段时,需要通过DHCP中继转发DHCP交互报文。
  • BootStrap服务器:用于引导设备SZTP开局的服务器,它和设备建立信任连接后,给设备发送开局文件信息(开局文件服务器地址和开局文件版本等信息)。
  • 开局文件服务器:用来保存设备需要的开局文件,如系统软件、配置文件、补丁文件。
  • DNS服务器:用来提供域名和IP地址之间的映射关系。执行SZTP的设备可以通过DNS服务器将BootStrap服务器的域名解析为IP地址。
  • Syslog服务器:用来将SZTP开局过程中记录的用户日志上传到网管侧。
  • SZTP的开局文件服务器仅支持HTTPS类型的服务器。

信任连接

SZTP开局中,设备首先和BootStrap服务器进行双向认证,建立信任连接后,获取BootStrap中设置的开局文件信息,然后设备作为HTTPS客户端和开局文件服务器建立HTTPS链接,下载开局文件。SZTP信任连接建立依赖各类证书,涉及相关证书如表1。
在这里插入图片描述

  • 用户在BootStrap服务器中设置开局文件信息(如开局文件服务器地址,开局文件名称等),在BootStrap服务中开局文件信息会被存储在Onboarding Information中。
  • 设备没有预先内置用户的信任根证书时,先和BootStrap建立不信任连接,BootStrap服务器将Onboarding信息,所有权凭证和所有者证书,封装成BootStrapping数据(BootStrapping Data)发送给设备。
  • 设备先通过验签所有权凭证后如图2,取出内置华为根二级CA证书,然后对所有者证书进行认证,从而形成完整的信任链,最后再对Onboarding信息进行签名校验,设备从获取的是Onboarding信息中解析出开局文件信息,使用HTTPS连接开局文件服务器,下载开局文件。

在这里插入图片描述

实际使用中,用户可以根据安全性要求,部署一台或多台BootStrap服务器。此时BootStrap服务器中设置的可能是重定向的BootStrap服务器地址信息,发送设备时,重定向信息会被存储在Redirect Information中。设备和BootStrap建立不信任连接时,BootStrap服务器会将Redirect Information,所有权凭证和所有者证书,封装成BootStrap数据发送给设备,然后建立信任连接。信任连接建立后,设备从获取的是Redirect Information中解析出重定向BootStrap服务器的IP地址和其信任锚证书,安装信任锚证书后,继续和重定向后的BootStrap服务器建立信任连接,直到设备最终获取到Onboarding信息,即开局文件信息。

开局流程

SZTP开局的流程如图3所示。

图3 SZTP开局流程图
SZTP的实现流程分以下几个阶段:

1.设备上电启动

设备上电启动后,如果设备有配置文件,则退出ZTP开局流程,以该配置文件正常启动;如果是空配置设备,则进入ZTP开局流程。

2.DHCP信息获取

设备在管理网口、以太接口上广播发送DHCP请求报文。DHCP服务器向设备发送DHCP应答报文,设备解析应答报文,如应答报文中包含DHCP Option143字段,则设备进入SZTP开局流程。应答报文中不包含DHCP Option143字段,设备则进入DHCP方式的ZTP开局流程。进入SZTP开局流程后,从DHCP服务器获取设备的IP地址、缺省网关、Syslog服务器地址、BootStrap服务器地址等信息。同时设备根据DHCP应答报文中获取Syslog服务器的IPv4地址,启动Syslog服务器。当SZTP启动过程中的重要阶段信息记录到用户日志中,Syslog服务器将用户日志上传到网管侧。

3.获取开局文件信息

设备根据DHCP Option143字段解析出BootStrap服务器地址,与BootStrap服务器建立安全连接,获取开局文件信息。

4.重新启动阶段

设备将下载的开局文件设置为下次启动文件,然后重新启动,完成自动部署。

说明:
设备空配置开局时,建议用户不要通过其他的配置方式对接口下发与ZTP开局执行的相同配置,如果开局失败会导致该配置被删除。
SZTP运行依赖OPS,可以通过执行ops stop process process-id 命令停止正在执行的SZTP流程,注意该方式可能会导致SZTP已经下发的配置保留在设备上。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 情侣点餐小程序(零基础小白)(零成本运营)
  • Python计算机视觉编程——第四章 照相机模型与增强现实
  • 用户变渠道,Xinstall引领手游推广新潮流
  • 【网络安全】服务基础第一阶段——第五节:Windows系统管理基础---- DHCP部署与安全
  • 相机常见名词详解
  • 设计模式 18 备忘录模式
  • win11,vscode上用docker环境跑项目
  • graalvm jenkins maven 配置
  • 探索Ansible自动化运维:提高效率的关键工具
  • 【C++】手动实现String类的封装(分文件编译)
  • 程序员秋招经典面试题:简单聊聊DNS?
  • 什么是AOP(面向切面编程)
  • 一 lua学习笔记:概述
  • springboot酒店管理系统
  • C++类和对象2
  • 收藏网友的 源程序下载网
  • Android 初级面试者拾遗(前台界面篇)之 Activity 和 Fragment
  • android高仿小视频、应用锁、3种存储库、QQ小红点动画、仿支付宝图表等源码...
  • Angular js 常用指令ng-if、ng-class、ng-option、ng-value、ng-click是如何使用的?
  • Cookie 在前端中的实践
  • Octave 入门
  • quasar-framework cnodejs社区
  • SAP云平台里Global Account和Sub Account的关系
  • Sass Day-01
  • Work@Alibaba 阿里巴巴的企业应用构建之路
  • 对超线程几个不同角度的解释
  • 工程优化暨babel升级小记
  • 七牛云假注销小指南
  • 悄悄地说一个bug
  • 让你成为前端,后端或全栈开发程序员的进阶指南,一门学到老的技术
  • 实现菜单下拉伸展折叠效果demo
  • 实现简单的正则表达式引擎
  • 算法之不定期更新(一)(2018-04-12)
  • 我感觉这是史上最牛的防sql注入方法类
  • 我看到的前端
  • 小程序开发中的那些坑
  • 用Visual Studio开发以太坊智能合约
  • 怎样选择前端框架
  • ​14:00面试,14:06就出来了,问的问题有点变态。。。
  • ​如何在iOS手机上查看应用日志
  • #周末课堂# 【Linux + JVM + Mysql高级性能优化班】(火热报名中~~~)
  • $.ajax,axios,fetch三种ajax请求的区别
  • $.type 怎么精确判断对象类型的 --(源码学习2)
  • (03)光刻——半导体电路的绘制
  • (1/2)敏捷实践指南 Agile Practice Guide ([美] Project Management institute 著)
  • (2020)Java后端开发----(面试题和笔试题)
  • (21)起落架/可伸缩相机支架
  • (AtCoder Beginner Contest 340) -- F - S = 1 -- 题解
  • (Java实习生)每日10道面试题打卡——JavaWeb篇
  • (仿QQ聊天消息列表加载)wp7 listbox 列表项逐一加载的一种实现方式,以及加入渐显动画...
  • (附源码)python房屋租赁管理系统 毕业设计 745613
  • (每日持续更新)信息系统项目管理(第四版)(高级项目管理)考试重点整理 第13章 项目资源管理(七)
  • (十三)Flink SQL
  • (四)c52学习之旅-流水LED灯
  • (四)软件性能测试