自动配置技术白皮书
Copyright © 2022 新华三技术有限公司 版权所有,保留一切权利。
非经本公司书面许可,任何单位和个人不得擅自摘抄、复制本文档内容的部分或全部,并不得以任何形式传播。
除新华三技术有限公司的商标外,本手册中出现的其它公司的商标、产品标识及商品名称,由各自权利人拥有。
本文中的内容为通用性技术信息,某些信息可能不适用于您所购买的产品。
在部署网络设备时,设备硬件安装完成后,需要管理员到安装现场对设备进行软件调试。此种模式适合小规模安装,并容忍一定的人为出错几率。而对于较大型的项目,需要实施的网点多、设备数量多,手工配置的方式较为费时费力,安装和实施成本较高。因此,需要支持对完成硬件安装的设备进行自动配置的方案。
自动配置是指空配置设备上电启动时采用的一种自动获取并执行配置文件的功能。设备运行自动配置功能后,可以从U盘或文件服务器获取配置文件并自动加载配置文件,实现远程部署接入网络的设备,从而减少人力成本,并提高设备部署的效率。
空配置设备可以通过执行文件服务器上“.cfg”的文本类型配置文件、Python脚本文件或Tcl脚本文件实现自动配置。
后缀名为“.cfg”的文本类型配置文件是用来保存配置的文件。
文本类型的配置文件包括特定配置文件、部分或全部公用配置文件以及缺省配置文件(device.cfg)三种类型。具体如表1所示。
配置文件 |
适用的设备 |
文件名要求 |
支持的文件服务器 |
特定配置文件 |
具有特定配置需求的设备 |
配置文件名.cfg 为了方便辨识文件名,尽量不要使用包含空格的配置文件名 |
· HTTP服务器 · TFTP服务器 |
部分或全部共用配置文件 |
配置需求全部或者部分相同的设备 |
配置文件名.cfg “配置文件名”可以是任意文件名 |
· HTTP服务器 · TFTP服务器 |
缺省配置文件,包含一般设备启动的公用配置信息 |
无特殊配置需求的设备 |
固定配置文件名device.cfg |
TFTP服务器 |
ComwareV7系统提供扩展Python API,设备通过执行Python API脚本实现自动配置。Python脚本文件由管理员创建,并存放在文件服务器(HTTP服务器或TFTP服务器)上供设备获取,其后缀名为“.py”。
扩展Python API支持如下两种方式下发Comware配置命令:
channel方式用来执行Comware系统的命令并创建channel对象。脚本格式为channel(command=‘’)。command表示要下发的命令,缺省为空。channel下发命令是从用户视图开始,如果command中不指定视图,直接输入命令,表示该命令在用户视图下执行;当需要执行其它视图的命令时,需要先输入进视图的命令,再输入具体的配置命令。多条命令之间以空格加分号分隔,如’system-view ;display interface brief | include UP’。
CLI方式用来执行Comware系统的命令并创建CLI对象。脚本格式为CLI(command=‘’, do_print=True)。
· command:表示要下发的命令,缺省为空。CLI下发命令是从用户视图开始,如果command中不指定视图,直接输入命令,表示该命令在用户视图下执行;当需要执行其它视图的命令时,需要先输入进视图的命令,再输入具体的配置命令。多条命令之间以空格加分号分隔,如’system-view ;local-user test class manage’。
· do_print:表示是否输出执行结果,True表示输出执行结果,False表示不输出执行结果。缺省值为True。
管理员通过Python脚本可以实现丰富的功能,例如通过识别设备型号下载对应的配置文件、自动保存配置文件到文件服务器等等。本白皮书仅介绍自动配置的工作流程,不包含如何编辑Python脚本的内容。
ComwareV7系统内嵌了Tcl(Tool Command Language,工具命令语言)解析器,支持执行Tcl脚本命令,以实现通过Tcl脚本配置设备。Tcl脚本文件由管理员创建,并存放在文件服务器(HTTP服务器或TFTP服务器)上供设备获取,其后缀名为“.tcl”。Tcl脚本文件中包括设备可执行的Comware命令。例如:
system-view
telnet server enable
local-user user
password simple abcabc
service-type telnet
quit
user-interface vty 0 63
authentication-mode scheme
user-role network-admin
quit
interface gigabitethernet 1/0/1
port link-mode route
ip address dhcp-alloc
return
空配置的设备在上电后自动进入自动配置流程。设备首先尝试通过插入的U盘完成自动配置,如果U盘配置失败,再尝试通过服务器方式完成自动配置。
· U盘自动配置:管理员将配置文件保存在U盘上,设备在启动时可以自动从USB接口插入的U盘上获取并执行配置文件,实现自动配置功能。
· 服务器自动配置:网络中存在文件服务器、DHCP服务器和DNS服务器的情况下,空设备上电启动时,设备会自动运行DHCP Client服务,通过DHCP Server获取配置文件所在的URL地址或TFTP Server IP、TFTP Server name以及配置文件的文件名,然后从文件服务器下载配置文件进行配置加载并启动的过程。
不同实现方式下,配置文件的保存位置以及应用场景如表2所示。
实现方式 |
配置文件保存位置 |
应用场景 |
服务器自动配置 |
文件服务器 |
网络规模较大,设备位置相对分散 |
U盘自动配置 |
U盘 |
· 小规模网络:设备位置相对集中且缺少多余设备作为文件服务器 · 大规模网络:仅有少量设备的配置需要更新 仅支持USB口的设备支持U盘自动配置 |
设备空配置启动进入自动配置流程后,首先尝试通过从U盘进行自动配置。U盘自动配置支持如下两种方式:
· 使用ini格式的索引文件和索引文件指定的配置文件进行自动配置
· 仅使用.cfg格式的配置文件进行自动配置
使用ini格式的索引文件进行自动配置时,索引文件的名称必须为“smart_config.ini”。管理员需要将名称为“smart_config.ini”的索引文件、对设备进行配置的文件(如.cfg格式的配置文件)保存到U盘中。索引文件中各字段的含义如表3所示。
表3 ini索引文件字段含义
字段 |
描述 |
|
BEGIN LSW |
必选字段。起始标志,此字段不能修改 |
|
GLOBAL CONFIG |
必选字段。全局配置起始标志,此字段不能修改 |
|
TIMESN |
必选字段。数据变更时间标志,字符串格式,长度范围为1~16,不能包含空格。建议格式:年月日.时分秒。 例如,2011年06月28日08时09分10秒,可设置为TIMESN=20110628.080910。 每个TIMESN对应某台升级的设备。在U盘自动配置过程中,设备会在重启前记录此TIMESN(升级后不需要重启的则在升级完成后记录),下次升级不可使用此TIMESN。如果由于某些原因造成在设备重启后升级失败,则需要将TIMESN重新修改后再进行U盘自动配置 |
|
AUTODELFILE |
可选字段。表示是否允许升级后自动删除原有系统软件 · AUTODELFILE=YES:删除 · AUTODELFILE=NO:不删除 缺省情况下,AUTODELFILE为NO。如果该字段不存在、为空或是不合法值,均表示为缺省情况 有两种AUTODELFILE字段:全局字段和单台设备字段。 位于[GLOBAL CONFIG]字段内的是全局字段,位于[DEVICE DESCRIPTION]内的是单台设备字段。 如果单台设备设置了此字段的值为YES或NO,则以单台设备设置的生效。如果单台设备没有设置此字段或者此字段为空,则以全局设置的生效 |
|
AUTOOVERWRITEFILE |
可选字段。表示从U盘拷贝配置文件到设备上时,如果设备上有同名配置文件,是否允许覆盖设备上的同名配置文件 · AUTOOVERWRITEFILE =YES:覆盖 · AUTOOVERWRITEFILE =NO:不覆盖 缺省情况下,AUTOOVERWRITEFILE为YES。如果该字段不存在、为空或是不合法值,均表示为缺省情况 |
|
ACTIVEMODE |
可选字段。表示文件拷贝完成后的文件激活方式。 · DEFAULT:按照各个文件的默认方式激活。其中,系统软件默认激活方式是重启设备;配置文件、补丁文件默认激活方式是不重启设备,在线激活 · REBOOT:采用重启设备的方式激活。缺省情况下,ACTIVEMODE为DEFAULT。如果该字段不存在、为空或是不合法值,均表示为缺省情况。有两种ACTIVEMODE字段:全局字段和单台设备字段。位于[GLOBAL CONFIG]字段内的是全局字段,位于[DEVICE DESCRIPTION]内的是单台设备字段 如果单台设备设置了此字段的值为DEFAULT或REBOOT,则以单台设备设置的生效。如果单台设备没有设置此字段或者此字段为空,则以全局设置的生效 |
|
DEVICE DESCRIPTION |
必选字段。单台设备文件信息描述起始标志 DEVICE DESCRIPTION字段下表示单台设备信息的每个字段不可以重复出现,否则将不匹配这个DEVICE。 DEVICE按照文件中定义的顺序从上到下进行匹配,匹配到一组之后不会再匹配其它DEVICE |
|
OPTION |
可选字段。单台设备文件信息有效标志,表示该设备文件信息是否有效。 · OPTION=OK:有效 · OPTION=NOK:无效,此单台设备的文件信息都无需判断 缺省情况下,OPTION为OK。如果该字段不存在、为空或是不合法值,均表示为缺省情况 |
|
SN |
可选字段。设备序列号。如果SN=DEFAULT,表示不匹配ESN序列号,否则需要和设备匹配SN。 缺省情况下,ESN为DEFAULT。如果该字段不存在或为空,则表示为缺省情况 |
待升级的设备将在索引文件中按DEVICE从上往下进行匹配,匹配的优先级为:MAC > SN > DEVICETYPE > DEFAULT。一旦匹配上,则按匹配上的DEVICE信息加载文件,如果此过程出错,将不会再次进行匹配,只会输出错误报告 |
MAC |
可选字段。设备MAC地址,格式为:XXXX-XXXX-XXXX,X为十六进制数。如果MAC=DEFAULT,表示不匹配MAC地址,否则需要和设备匹配MAC地址 缺省情况下,MAC为DEFAULT。如果该字段不存在或为空,则表示为缺省情况 |
|
DEVICETYPE |
可选字段。表示与设备的类型匹配,例如S12700。如果DEVICETYPE=DEFAULT,表示不匹配设备类型。否则需要和设备的类型匹配 缺省情况下,DEVICETYPE为DEFAULT。如果该字段不存在或为空,则表示为缺省情况 |
|
DIRECTORY |
可选字段。文件在U盘中存放的目录。 此字段为空或不存在时,表示文件位于U盘根目录下。 DIRECTORY=/abc,表示文件位于U盘的abc文件夹下。 缺省情况下,DIRECTORY字段为空。 索引文件中文件目录的格式必须与设备的文件系统一致,且索引文件中文件目录需要符合如下要求: · 目录深度小于等于4级。目录必须以“/”开头,每一级目录以“/”隔开,但不能以“/”结束,例如/abc/test是合法目录,/abc/test/则是非法目录。 · 每一级目录的字符串长度范围是1~15。 · 目录名使用的字符不可以是空格、“~” 、“*” 、“/” 、“\” 、“:” 、“'” 、“"” 、“<” 、“>” 、“|” 、“?” 、“[” 、“]”、“%” 等字符,目录名称不区分大小写 |
|
SYSTEM-IPE= |
可选字段。系统版本名称,后缀名为“.ipe” |
|
SYSTEM-BOOT-BIN= |
可选字段。Boot软件包名称,后缀名为“.bin” |
|
SYSTEM-SYSTEM-BIN= |
可选字段。system软件包名称,后缀名为“.bin” |
|
SYSTEM-FEATURE-BIN= |
可选字段。特性软件包名称,后缀名为“.bin |
|
SYSTEM-PATCH-BIN= |
可选字段。系统软件名称,后缀名为“.bin” |
|
SYSTEM-CONFIG |
可选字段。配置文件名称,后缀名为“.cfg” |
|
END LSW |
必选字段。文件结束标志 |
通过ini格式的索引文件进行自动配置的流程如下:
(1) 设备检测到U盘在位。
(2) 设备检测U盘中是否存在“smart_config.ini”索引文件。
¡ 如果存在“smart_config.ini”索引文件,则进入步骤(3)。
¡ 如果不存在“smart_config.ini”索引文件,则U盘自动配置流程结束。
(3) 设备检测“smart_config.ini”索引文件格式的合法性。
¡ 如果合法,则进入步骤(4)。
¡ 如果不合法,则U盘自动配置失败,流程结束,在U盘中生成错误报告。
(4) 设备将“smart_config.ini”索引文件中指定的数据变更时间标志与设备中记录的上次U盘自动配置的时间标志进行比较。
¡ 如果不相同,则进入步骤(5)。
¡ 如果相同,则U盘自动配置失败,流程结束,在U盘中生成错误报告。
(5) 设备按照“smart_config.ini”索引文件中的描述信息从U盘中获取配置文件,并将其保存至默认的存储介质中。
¡ 如果获取配置文件成功,则进入步骤(6)。
¡ 如果获取配置文件失败,则U盘自动配置失败,流程结束,在U盘中生成错误报告。
(6) 设备根据获取的配置文件或者指定的激活方式,判断是否需要重启激活。
¡ 如果不需要重启,则在线激活相应文件,进入步骤(7)。
¡ 如果需要重启,设备会将相应的文件设置为下次启动文件,自动重启成功后,进入步骤(7)。
(7) U盘自动配置成功,流程结束。将U盘从设备中拔出。
使用.cfg格式的配置文件进行自动配置时,管理员需要将.cfg格式的配置文件保存到U盘中。使用.cfg格式的配置文件进行自动配置的流程如下:
(1) 设备检测到U盘在位,检测U盘中是否存在.cfg格式的配置文件。
¡ 如果存在,则进入步骤(2)。
¡ 如果不存在,则U盘自动配置流程结束。
(2) 设备从U盘获取到配置文件后,比较该配置文件与设备上的当前主配置文件内容是否相同:
¡ 如果文件内容相同,设备将直接使用当前主用配置文件,不使用U盘上的配置文件。
¡ 如果文件内容不相同,则设备将U盘中的配置文件复制到本地,并执行步骤(3)。
设备本地存储中有重名配置文件时,根据本地配置文件的属性采用如下处理方式:
- 如果本地重名配置文件为当前主用配置文件,则设备将该文件以“原名_bak.cfg”为名称另存。
- 如果本地重名配置文件不是当前主用配置文件,则设备直接使用U盘中的配置文件覆盖本地重名文件。
(3) 设备执行U盘配置文件。
¡ 若设备执行U盘配置文件成功,则自动将从U盘拷贝的配置文件设置为下次启动的主用配置文件。
¡ 若设备执行U盘配置文件中的某条命令失败时,则会忽略U盘配置文件中的所有配置,使用设备之前保存的配置文件;如果设备之前未保存配置文件,则设备空配置启动。
服务器自动配置的典型组网环境如图1所示。设备需要在DHCP服务器、文件服务器(TFTP服务器或HTTP服务器)和DNS服务器的配合下,实现服务器自动配置功能。
· DHCP服务器:自动配置开始运行时,待配置设备作为DHCP客户端向DHCP服务器请求网络配置信息。DHCP服务器上需要配置地址池(用来为待配置设备分配接口IP地址)、待配置设备的出口网关地址、Option参数(包括DHCP服务器需要向DHCP客户端分配的文件服务器的IP地址、需要加载的配置文件名称等信息)。
· DHCP中继:当待配置设备与DHCP服务器位于不同网段时,需要通过配置DHCP中继实现待配置设备与DHCP服务器之间的报文交互。
· 文件服务器:用来保存设备需要的配置文件或脚本文件。可以是TFTP或HTTP类型的服务器。
· DNS服务器:用来提供域名和IP地址之间的映射关系。执行自动配置的设备可以通过DNS服务器将文件服务器的域名解析为IP地址,以便于从文件服务器获取需要的文件。
待配置设备作为DHCP客户端定期向DHCP服务器发送DHCP请求报文以获得配置信息,然后DHCP服务器向待配置设备响应DHCP应答报文,设备根据收到的DHCP响应报文中携带的配置信息向指定的文件服务器自动获取并执行配置文件,完成自动配置。
服务器自动配置支持的配置文件类型包括配置文件和脚本文件两种。如图2所示,管理员可以根据不同的配置需求对DHCP服务器进行相应的配置,以便待配置设备根据DHCP服务器下发的配置信息进行自动配置。具体如下(下发脚本文件和下发配置文件实现一致,下面以下发配置文件为例):
· 如果管理员为每台设备分配特定配置文件,则需要在DHCP服务器上配置静态绑定关系,为每台设备分配特定的IP地址和配置文件名。由于一个地址池下只能配置一条配置文件名的命令,所以DHCP服务器上每一个地址池视图只能配置一个静态绑定关系。
· 如果管理员为局域网内的部分设备分配相同的配置文件,可以在DHCP服务器上为使用部分共用配置文件的设备配置静态绑定关系,并指定文件服务器和部分共用配置文件名。这时,这部分静态绑定关系需要在同一个DHCP地址池中配置。也可以使用动态分配IP地址的方式,管理员需要划分合适的动态地址段,为这部分设备分配IP地址,并指定文件服务器和部分共用配置文件名。
· 如果管理员为局域网内的所有设备分配相同的配置文件,则需要在DHCP服务器上配置动态分配IP地址的方式。为设备动态分配IP地址的同时,分配全部共用配置文件名。如果采用这种方式,全部共用配置文件中只能包含这些设备共有的配置,每个设备特有的配置还需要其他方式完成(如管理员使用Telnet登录到设备上手工配置)。
图2 不同配置需求下的DHCP服务器配置
待配置设备上电并自检成功后,设备检测是否存在配置文件,如果不存在,则进入自动配置流程。然后检查存储介质的根目录下是否存在autocfg.py、autocfg.tcl或autocfg.cfg配置文件:
· 对于autocfg.py脚本文件,设备执行Python脚本文件中的Comware命令进行自动配置;或者下载Python脚本文件中提供的配置文件路径中的配置文件,然后执行配置文件中的命令进行自动配置。
· 对于autocfg.tcl脚本文件,设备执行Tcl脚本文件中的Comware命令进行自动配置。
· 对于autocfg.cfg配置文件,设备执行配置文件中的Comware命令进行自动配置。
如果不存在上述文件,则进入如图3所示的服务器自动配置流程。
如果文件服务器为HTTP服务器,则服务器自动配置工作流程中,报文交互情况如图4所示。
如果文件服务器为TFTP服务器,则服务器自动配置工作流程中,报文交互情况如图5所示。
图4 服务器自动配置流程中的报文交互(HTTP)
待配置设备进入服务器自动配置流程后,运行过程如下:
(1) 待配置设备按照如下顺序选择启动DHCP客户端功能的接口。不同设备支持的接口类型不同,请以设备的实际情况为准。
a. 若有处于链路状态UP的管理以太网接口,则优先选取管理以太网接口。
b. 若没有处于链路状态UP的管理以太网接口,有处于链路状态UP的二层以太网接口,则选取默认VLAN对应的VLAN接口。
c. 若没有处于链路状态UP的二层以太网接口,则按照接口类型字典序、接口编号从小到大的顺序依次选择处于链路状态UP的三层以太网接口。
d. 若没有处于链路状态UP的三层以太网接口,则在30秒后开始下次服务器自动配置接口选择过程。
e. 如果没有可以用于启动DHCP客户端功能的接口,设备会重复执行步骤a~d,直到用户使用<Ctrl+C>或<Ctrl+D>快捷键终止执行步骤a~d。
建议管理员将设备的管理以太网接口连入网络中,以便设备快速选定启动DHCP客户端功能的接口,加快服务器自动配置的速度。
(2) 选定启动DHCP客户端功能的接口后,该接口以广播方式发送DHCP请求报文。
(3) 待配置设备收到DHCP服务器发送的DHCP响应报文,报文内容包括DHCP服务器分配给自己的IP地址、文件服务器的IP地址、缺省网关、Option选项信息等。DHCP响应报文中的部分常用信息如表4所示。
表4 DHCP响应报文中的部分常用信息
DHCP响应报文中的内容 |
含义 |
作用 |
Option 66 |
TFTP server name,TFTP服务器名选项 |
用来指定为客户端分配的TFTP服务器的域名 |
Option 67 |
Bootfile name,启动文件名选项 |
用来指定为客户端分配的启动文件名 例1:boot.cfg 例2:http://10.1.1.1/boot.cfg,其中10.1.1.1为HTTP服务器的IP地址 |
Option 150 |
TFTP服务器地址选项 |
用来指定为客户端分配的TFTP服务器的地址 |
文件服务器可通过如表5所示的方式提供配置文件。
提供配置文件的方式 |
举例 |
后缀名为.cfg的配置文件 |
后缀名为.cfg的配置文件中包含设备的配置信息。例如: |
Python脚本 |
通过Python脚本提供可执行的Comware系统命令,或者提供下载后缀名为.cfg的配置文件到本地: · 通过Python脚本提供可执行的Comware系统的命令。例如: · 提供下载后缀名为.cfg的配置文件到本地。这种情况下需要保证Python脚本中包含保存配置文件、重启设备的命令,否则设备不会执行获取到的配置文件。例如: |
Tcl脚本 |
Tcl脚本中包含可执行的Comware系统命令。例如: |
网络中文件服务器的类型不同时,待配置设备获取配置文件的方式不同。
文件服务器为TFTP服务器时,待配置设备获取配置文件的步骤如下:
a. 待配置设备从DHCP服务器发送的响应报文中获取配置文件名。
b. 待配置设备以单播方式向TFTP服务器发送Read request(读文件请求)报文,向TFTP服务器请求获取步骤中配置文件名对应的配置文件。该报文的源IP为DHCP服务器分配给待配置设备的IP地址,目的IP为TFTP服务器的IP地址。如果设备从DHCP应答报文中获取到的是TFTP服务器的域名,则通过DNS服务器将TFTP服务器的域名解析为TFTP服务器的IP地址。
c. 如果DHCP服务器发送的响应报文中未下发配置文件名或者配置文件名无效(例如aa.txt),待配置设备自动尝试获取名称为“network.cfg”的文件,即主机名文件。该文件中包含主机名(配置文件名称)和设备IP地址的对应关系(例如ip host host1 101.101.101.101,表示IP地址为101.101.101.101的设备使用名称为“host1”的配置文件)。待配置设备根据主机名和设备IP地址的对应关系获取到配置文件名称,然后执行步骤b。如果待配置设备未能通过此种方式获取到配置文件名称,待配置设备将自动尝试获取缺省配置文件“device.cfg”。
文件服务器为HTTP服务器时,待配置设备获取配置文件的步骤如下:
a. 待配置设备从DHCP服务器发送的响应报文中获取配置文件名。
b. 待配置设备以单播方式向HTTP服务器发送TCP报文并建立TCP连接。该报文的源IP为DHCP服务器分配给待配置设备的IP地址,目的IP为HTTP服务器的IP地址。如果设备从DHCP应答报文中获取到的是HTTP服务器的域名,则通过DNS服务器将HTTP服务器的域名解析为HTTP服务器的IP地址。
c. 待配置设备通过TCP连接向HTTP服务器发送get请求,该请求中包含待配置设备希望获取的配置文件名称。
d. 如果DHCP服务器发送的响应报文中未下发配置文件名,待配置设备将自动尝试获取缺省配置文件“device.cfg”。
¡ 待配置设备成功获取配置文件后,自动执行配置文件中的命令。执行配置文件成功后,整个服务器自动配置过程结束。
¡ 如果待配置设备在步骤(4)中未能获取到配置文件,待配置设备将自动尝试获取缺省配置文件device.cfg,如果获取失败,则本次自动配置失败,设备将继续尝试自动配置。用户可以等待尝试次数达到上限,设备自动结束自动配置。或者根据提示信息,使用<Ctrl+C>或<Ctrl+D>快捷键手工终止自动配置。自动配置失败并结束后,设备将以空配置启动。
待配置设备无法获取到IPv4地址,或者无法获取到使用IPv4地址的文件服务器上的配置文件,则进入如图6所示的IPv6服务器自动配置流程。
如果文件服务器为HTTP服务器,则服务器自动配置工作流程中,报文交互情况如图7所示。
如果文件服务器为TFTP服务器,则服务器自动配置工作流程中,报文交互情况如图8所示。
待配置设备进入服务器自动配置流程后,运行过程如下:
(1) 待配置设备按照如下顺序选择启动DHCPv6客户端功能的接口。不同设备支持的接口类型不同,请以设备的实际情况为准。
a. 若有处于链路状态UP的管理以太网接口,则优先选取管理以太网接口。
b. 若没有处于链路状态UP的管理以太网接口,有处于链路状态UP的二层以太网接口,则选取默认VLAN对应的VLAN接口。
c. 若没有处于链路状态UP的二层以太网接口,则按照接口类型字典序、接口编号从小到大的顺序依次选择处于链路状态UP的三层以太网接口。
d. 若没有处于链路状态UP的三层以太网接口,则在30秒后开始下次服务器自动配置接口选择过程。
e. 如果没有可以用于启动DHCP客户端功能的接口,设备会重复执行步骤a~d,直到用户使用<Ctrl+C>或<Ctrl+D>快捷键终止执行步骤a~d。
建议管理员将设备的管理以太网接口连入网络中,以便设备快速选定启动DHCPv6客户端功能的接口,加快服务器自动配置的速度。
(2) 选定启动DHCPv6客户端功能的接口后,该接口以组播方式发送Solicit报文。
(3) 待配置设备收到DHCPv6服务器发送的DHCPv6响应报文,报文中包含Option 59选项(Boot File Uniform Resource Locator (URL),启动文件统一资源定位器),例如:http://[2001:DB8::461]/bootup.cfg。DHCPv6服务器通过Option 59选项向待配置设备下发配置信息。
文件服务器可通过如表6所示的方式提供配置文件。
提供配置文件的方式 |
举例 |
后缀名为.cfg的配置文件 |
后缀名为.cfg的配置文件中包含设备的配置信息。例如: |
Python脚本 |
通过Python脚本提供可执行的Comware系统命令,或者提供下载后缀名为.cfg的配置文件到本地: · 通过Python脚本提供可执行的Comware系统的命令。例如: · 提供下载后缀名为.cfg的配置文件到本地。这种情况下需要保证Python脚本中包含保存配置文件、重启设备的命令,否则设备不会执行获取到的配置文件。例如: |
Tcl脚本 |
Tcl脚本中包含可执行的Comware系统命令。例如: |
文件服务器为TFTP服务器时,待配置设备获取配置文件的步骤如下:
a. 待配置设备从DHCPv6服务器发送的响应报文中获取配置文件名。
b. 待配置设备以单播方式向TFTP服务器发送Read request(读文件请求)报文,向TFTP服务器请求获取步骤中配置文件名对应的配置文件。该报文的源IPv6为DHCPv6服务器分配给待配置设备的IPv6地址,目的IPv6为TFTP服务器的IPv6地址。如果设备从DHCPv6应答报文中获取到的是TFTP服务器的域名,则通过DNS服务器将TFTP服务器的域名解析为TFTP服务器的IPv6地址。
c. 如果DHCPv6服务器发送的响应报文中未下发配置文件名,待配置设备自动尝试获取名称为“network.cfg”的文件,即主机名文件。该文件中包含主机名(配置文件名称)和设备IP地址的对应关系(例如ipv6 host host1 1001::1001,表示IPv6地址为1001::1001的设备使用名称为“host1”的配置文件)。待配置设备根据主机名和设备IPv6地址的对应关系获取到配置文件名称,然后执行步骤(5)。如果待配置设备未能通过此种方式获取到配置文件名称,待配置设备将自动尝试获取缺省配置文件“device.cfg”。
文件服务器为HTTP服务器时,待配置设备获取配置文件的步骤如下:
a. 待配置设备从DHCPv6服务器发送的响应报文中获取配置文件名。
b. 待配置设备以单播方式向HTTP服务器发送TCP报文并建立TCP连接。该报文的源IPv6为DHCPv6服务器分配给待配置设备的IPv6地址,目的IPv6为HTTP服务器的IPv6地址。如果设备从DHCPv6应答报文中获取到的是HTTP服务器的域名,则通过DNS服务器将HTTP服务器的域名解析为HTTP服务器的IPv6地址。
c. 待配置设备通过TCP连接向HTTP服务器发送get请求,该请求中包含待配置设备希望获取的配置文件名称。
d. 如果DHCP服务器发送的响应报文中未下发配置文件名,待配置设备将自动尝试获取缺省配置文件“device.cfg”。
(5) 待配置设备执行配置文件。
¡ 待配置设备成功获取配置文件后,自动执行配置文件中的命令。执行配置文件成功后,整个服务器自动配置过程结束。
¡ 如果待配置设备在步骤(4)中未能获取到配置文件,则本次自动配置尝试失败,设备将继续尝试自动配置。用户可以等待尝试次数达到上限,设备自动结束自动配置。或者根据提示信息,使用<Ctrl+C>或<Ctrl+D>快捷键手工终止自动配置。自动配置失败并结束后,设备将以空配置启动。
如图9所示某公司下属两个部门:市场部门和研发部门,两个部门通过不同的网关设备连入网络。要求连接终端主机的设备Switch D、Switch E、Switch F和Switch G执行自动配置功能,启动后自动获取并执行配置文件,以实现:
· 网络管理员能够通过Telnet方式登录、控制设备。
· 登录设备时需要进行认证,且登录不同部门的设备使用的用户名和密码不能相同,以提供一定的安全保证。
具体组网情况如下:
· Switch A作为DHCP服务器,分别为市场部和研发部的主机分配IP地址和其他网络配置参数。
· 网关Switch B和Switch C作为DHCP中继设备。
· 一台运行TFTP管理软件的TFTP服务器上保存配置文件。
如图10所示,某网络中新增两台空配置设备Switch A和Switch B,连接到现网设备Switch C上。Switch A和Switch B通过Switch C与DHCP服务器、HTTP服务器通信。
管理员将编写好的Python脚本存放在HTTP服务器的工作目录下,保证Switch A和Switch B获取到Python脚本。设备通过执行Python脚本实现:
· 网络管理员能够通过Telnet方式登录、控制设备。
· 登录设备时需要进行认证,以提供一定的安全保证。
如图11所示,某小区需要重新部署各个楼层的网络接入设备Router A、Router B和Router C。用户希望为小区内各楼层的新设备加载相同的配置文件;同时,由于待配置的设备较多,为了降低人工成本、节省部署时间,用户希望个楼层设备能够实现统一自动的配置。管理员将配置文件存放在TFTP服务器的工作目录下,保证Router A、Router B和Router C能够获取到需要加载的文件。将Router A、Router B和Router C上电,实现通过服务器自动配置加载配置文件。
如图12在某企业需要部署分支机构1、2、3中的空配置设备Router A、Router B和Router C。Router A、Router B和Router C跨越传输网络连接到设备Router D上。Router D作为企业总部的出口网关,跨越三层网络设备与总部设备Router E相连。
用户希望在Router A、Router B和Router C加载不同的配置文件;同时,为了降低现场配置的人力成本,用户希望能够对这些设备实现远程自动配置。管理员将配置文件存放在TFTP服务器的工作目录下,保证Router A、Router B和Router C能够获取到需要加载的文件。在企业总部的出口网关设备Router D上配置DHCP中继,在位于总部的设备Router E上配置DHCP服务器。实现DHCP服务器跨网段为待配置设备提供网络配置信息。将Router A、Router B和Router C上电,实现通过服务器自动配置加载配置文件。