ZTP(Zero Touch Provisioning)
定义
ZTP(Zero Touch Provisioning)开局是指新出厂或空配置设备上电启动时采用的一种自动加载开局文件(包括系统软件、配置文件、补丁文件等)的功能。
目的
在部署网络设备时,设备安装完成后,需要软调工程师到安装现场,对设备进行软件调试。当设备数量较多、分布较广时,维护人员需要在每一台设备上进行手工配置,既影响了设备部署的效率,又大大增加了人力成本。
设备运行ZTP开局功能,可以从文件服务器获取开局文件并自动加载,实现设备的免现场配置、部署,从而降低人力成本,并提高了设备部署的效率。
ZTP开局基本原理
典型组网
如图1所示,设备作为DHCP客户端定时向DHCP服务器发送DHCP请求报文以获得配置信息,然后DHCP服务器向待配置设备响应DHCP应答报文,报文内容包括分配给待配置设备的IP地址、中间文件服务器的IP地址、中间文件服务器的登录方式,通过登录中间文件服务器获取开局文件的配置信息,最后设备根据获取的配置信息向指定的开局文件服务器自动获取开局文件并设置为下次启动加载的文件,待设备重启后,设备就实现了开局文件的自动加载。
- 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所示。
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已经下发的配置保留在设备上。