神奇的H3C设备自动配置功能,不用按Ctrl-D/C了

简介: 神奇的H3C设备自动配置功能,不用按Ctrl-D/C了


自动配置简介

自动配置功能是指设备在启动时自动获取并执行配置文件。网络管理员只需将配置文件保存在指定的存储介质上,设备启动时可以自动从存储介质上获取并执行配置文件,实现自动配置,从而简化了网络配置,大大降低了网络管理员的工作量,便于实现对设备的集中管理。

服务器自动配置

管理员将配置文件保存在文件服务器上,设备在启动时可以自动从文件服务器上获取并执行配置文件,实现自动配置功能。当网络规模较大,设备位置相对分散时,网络管理员在每一台设备上进行自动配置的工作量很大,这时管理员可以考虑使用服务器自动配置。

自动配置过程分析

我们先从设备启动过程看一下,一般来讲,设备空配置启动时,首先自动检查存储介质的根目录下是否存配置文件。如果存在,则直接执行此文件;如果不存在,则通过自动从文件服务器上获取并执行配置脚本文件或配置文件,实现自动配置功能。

第一步我们看到的是,提示没有可用的接口。按照流程来讲,现在缺少物理网络,那就接一根线。

引入新的问题,是接管理口还是普通的业务口呢

先按照设备有带外管理口试一下。

因为带外管理口一般为三层口,所以直接在接口上使能DHCP自动获取IP地址,但是因为没有DHCP服务器,所以未能获取IP地址。

再测试一下使用业务口的情况。

可以看到设备自动使能了虚接口VLAN-inf1,并且使能DHCP,但同样未能获取IP地址。

如果开启DHCP,并且同时连接带外管理口和业务口呢?

可以看到,设备先用带外管理口去拿地址、获取配置,再使用VLAN虚接口去尝试,虽然这次拿到了地址,但是因为缺少配置文件,所以再次失败了。

总结一下,设备的自动配置需要DHCP服务器和文件服务器(TFTP服务器或HTTP服务器),可选DNS服务器

设备自动配置实验

实验环境

准备一个简单的组网如下:

实验环境为HCL。路由器MSR36-20(Version 7.1.075, Alpha 7571),是本次测试的自动配置上线设备;交换机S5820V2-54QS-GE(Version 7.1.075, Alpha 7571),承担DHCP服务器的角色;PC上安装3CDaemon,作为存储设备配置的TFTP服务器。

实验步骤

从前面可以看到,设备请求了两个配置文件network.cfg和device.cfg,我们先在本地创建这两个文件。

配置文件内容如下:

network.cfg

#
sysname network

device.cfg

#
sysname device

先不配置交换机,使设备可以直接从TFTP服务器(开启DHCP)获取配置。

对比服务器侧日志,可以看到,设备先后下载了两个配置文件。

在下载network.cfg之后,找不到hostname相关的配置,所以这个network.cfg的配置文件应该是记录主机名用的。按照华三官网的说明,network.cfg为主机名文件,主机名文件用来保存主机IP地址与主机名称的映射关系,需要上传到TFTP服务器

随即下载了device.cfg,并成功加载到运行配置中。可以看到,设备名称变成了device。

查看设备存储信息,没有保存下载的配置文件。

并且在设备加载完配置之后,自动配置获取的IP地址释放。

再从抓包看一下过程。

首先是设备通过DHCP获取IP地址。

然后是请求network.cfg,下载之后进行DNS请求,请求自己的域名/主机名。但是,设备发送的是广播请求,没有返回结果。

然后设备开始获取device.cfg,加载之后释放IP地址。

中间还夹杂着SSDP(Simple Service Discovery Protocol,简单服务发现协议)请求,组播地址为239.255.255.250,好像是路由器的UPNP服务使用的。

总结

1、设备的自动配置需要DHCP服务器和文件服务器(TFTP服务器或HTTP服务器),可选DNS服务器;

2、获取初始配置时,带外管理口优先级高于业务口;

3、按照流程来看,可以先记录设备的MAC地址,然后通过手工绑定DHCP来使设备获取指定的IP地址,再通过network.cfg或DNS服务器反向解析得到自己的主机名,再从TFTP服务器上拉取与设备名称对应的配置文件,最后完成配置加载;

4、本文是最简单的设备自动配置,除设备外,仅需要一台电脑,即可实现设备初始化。


相关文章
|
Oracle Ubuntu Java
Ubuntu安装JDK
一. Ubuntu 安装JDK的两种方式 1. 通过apt安装. 2. 通过官网下载安装包安装. 这里推荐第1种,因为可以通过 apt-get upgrade 方式方便获得jdk的升级 二. 通过apt安装(jdk有很多版本, 这里介绍两种: openjdk和oracle的JDK) 1.
71769 4
|
Dubbo Java 数据库连接
利用FactoryBean接口实例化,来实现dubbo接口调用和mybatis接口调用
Java编程规范中声明,Java接口类是不能直接实例化的,但是我们在平时的开发中经常会遇到只声明接口就可以直接使用的。 eg: 1. Mybatis中只用使用`@MapperScan`声明要扫描的Mapper接口类就可以直接从Spring中获取使用,进行操作数据库 2. Dubbo中只要用Dubbo提供的`@Service`注解,同样可以直接从Spring中获取使用进行远程调用。
633 0
|
Linux Docker Windows
docker pull 报错解决:error pulling image configuration: Get https:..
docker pull 报错解决:error pulling image configuration: Get https:..
4479 0
|
3月前
|
人工智能 JSON 前端开发
告别无效调参!ReAct代理设计:让LLM精准执行复杂任务的终极方案
ReAct模式通过“推理+行动”循环,使大语言模型能自主调用工具、获取实时信息并执行多步骤任务,有效突破LLM固有局限,提升任务准确性和智能化水平。
539 0
|
9月前
|
存储 人工智能 算法
AAAI 2025| S5VH: 基于选择性状态空间的高效自监督视频哈希
AAAI 2025 论文 S5VH 提出基于选择性状态空间模型的高效自监督视频哈希方法,通过双向 Mamba 层和 Self-Local-Global 学习范式,显著提升视频检索性能与推理效率。
425 16
|
存储 关系型数据库 MySQL
在 MySQL 中使用创建表
【8月更文挑战第11天】
1471 0
|
Ubuntu 安全 数据安全/隐私保护
Ubuntu系统中开启root用户的方法
Ubuntu系统中开启root用户的方法
1006 0
|
网络协议 网络虚拟化 数据中心
|
算法 安全 Linux
Linux 下共享内存方式 :System V共享内存、共享文件映射(mmap)、POSIX共享内存对比...
Linux 下共享内存方式 :System V共享内存、共享文件映射(mmap)、POSIX共享内存对比...
374 2