DHCP Option 43是什么?你学会了吗?

网络 网络优化
option 43是一个自定义选项,用于表示AC IP地址。AP通过DHCP的option 43字段,获取AC IP地址信息,再发送单播报文找到对应AC,实现AP的零配置上线。这里说的AP,都是指FIT AP。

背景

当AP和AC在同一个网段时,AP会主动发送广播报文,就能直接找到网段内的AC。当AP和AC在不同网段时,广播报文无法跨网段传播,只能在AP上指定AC IP地址,AP才能找到AC进行上线。

图片

如果AP数量只有几个,可以采用简单的、手工指定AC的方式,就是登陆AP,并在AP上敲入指定AC的命令。如果AP数量多,手工指定AC的方式,操作复制,工作量大,就不适用了,得用批量指定AC的方式,即通过DHCP option 43字段,指定AC IP地址,实现AP批量上线。

option 43

option 43是一个自定义选项,用于表示AC IP地址。AP通过DHCP的option 43字段,获取AC IP地址信息,再发送单播报文找到对应AC,实现AP的零配置上线。这里说的AP,都是指FIT AP。

图片


图片

使用option 43有前提条件,即AP和DHCP服务器路由可达,确保AP能跟DHCP服务器正常交互报文;AP和AC路由可达,确保AP能跟AC交互报文。

option 43格式

option 43的值,有三种表示法:十六进制、十进制和ASCII码。举个栗子,AC IP地址为192.168.100.1时,用十六进制表示时,值为c0a86401;用十进制表示时,值为192.168.100.1;用ASCII码表示时,值为3139322e3136382e3130302e31,其中“.”对应2e。最常见的格式是十六进制值,也是兼容性最好的。

有时,还会配合option 60字段使用,option 60表示设备厂商名称。

华为配置option 43

以华为设备为例,配置option 43,AC IP地址是192.168.100.1。

dhcp server option 43 hex 0104c0a86401。

其中,01表示类型1,华为一共有三种类型,即十六进制、十进制、ASCII码。04表示字段长度,每个IP地址占4个字节,计算公式是IP地址个数乘4。c0a86401是192.168.100.1的十六进制数。

华三配置option 43

以华三设备为例,配置option 43,AC IP地址是192.168.100.1。

[AC]dhcp server ip-pool vlan10[AC-dhcp-pool-vlan100] network 192.168.10.0 mask 255.255.255.0[AC-dhcp-pool-vlan100] gateway-list 192.168.10.1[AC-dhcp-pool-vlan100] option 43 hex 80070000 01 C0A86401。

其中,80​表示类型,是固定值。07​表示后面内容的长度,也是说后面有7个十六进制数,有一个AC IP地址。如果值为0B,表示后面有11个十六进制数,即两个AC IP地址。0000​表示服务类型,是固定值。01​表示后面IP地址的个数。c0a86401是192.168.100.1的十六进制数。

cisco配置option 43

以cisco设备为例,配置option 43,AC IP地址是192.168.100.1。

Cisco(config)#ip dhcp pool APCisco(dhcp-config)#network 192.168.10.0 /24Cisco(dhcp-config)#default-route 102.168.10.1Cisco(dhcp-config)#option 43 hex f1040c0a86401。

其中,f1表示类型,是固定值。04表示后面内容长度,即4个十六进制数,有一个AC IP地址。c0a86401是192.168.100.1的十六进制数。

Linux ISC DHCP服务器配置option 43

以Linux ISC DHCP服务器为例,配置option 43和option 60,思科AC IP地址是192.168.247.5,华为AC IP地址是192.168.247.55。

配置文件路径

/etc/dhcp/dhcpd.conf

#ddns-update-style interim;option space Cisco_LWAPP_AP; option Cisco_LWAPP_AP.server-address code 241 = array of ip-address; option space Huawei-AP6050DN; option Huawei-AP6050DN.server-address code 1 = array of ip-address;
subnet 192.3.1.0 netmask 255.255.255.0 { authoritative; range 192.3.1.100 192.3.1.254; option subnet-mask 255.255.255.0; option broadcast-address 192.3.1.255; option routers 192.3.1.1; option domain-name "huawei.com"; option domain-name-servers 192.168.247.2, 192.168.247.3; default-lease-time 300;
class "Cisco-AP-c1700" { match if option vendor-class-identifier = "Cisco-AP-c1700"; option vendor-class-identifier "Cisco-AP-c1700"; vendor-option-space Cisco_LWAPP_AP; option Cisco_LWAPP_AP.server-address 192.168.247.5; }
class "huawei AP" { match if option vendor-class-identifier = "huawei AP"; option vendor-class-identifier "huawei AP"; vendor-option-space Huawei-AP6050DN; option Huawei-AP6050DN.server-address 192.168.247.55; }
subnet 192.168.1.0 netmask 255.255.255.0 { }#

Windows DHCP服务器配置option 43

以Windows DHCP服务器为例,配置option 43,AC IP地址是192.168.22.1。

进入Window DHCP服务器配置界面

图片

在“二进制”里写入十六进制数

图片

其中,03表示类型3,0C表示后面内容的长度,也是说后面有12个十六进制数,把192.168.22.1当做字符串,并转成十六进制。31 39 32 2E 31 36 38 2E 32 32 2E 31就是IP地址192.168.22.1对应的ASCII码。0-9分别对应30-39,“.”对应2E。“ASCII”无需填入,根据“二进制”内容自动生成的。

Infoblox DHCP服务器配置option 43

以Infoblox服务器为例,配置option 43,AC IP地址是10.6.2.1。

IP地址10.6.2.1转换成03:08:31:30:2e:36:2e:32:2e:31的格式,两个字符之间需要用冒号隔开。

图片

其中,03表示类型3,08表示后面内容的长度,也是说后面有8个十六进制数,把10.6.2.1当做字符串,并转成十六进制。31:30:2e:36:2e:32:2e:31就是IP地址10.6.2.1对应的ASCII码。

最后

上述option 43配置,仅用于举例说明。实际使用时,需要分别查看DHCP服务器和AP的产品说明,使用都能匹配的格式或者类型,才能保证AP能够识别option 43的内容。比如:配置aruba ap时,可以直接在Infoblox上填写AC IP地址,而不需要转换格式。

责任编辑:姜华 来源: 网络技术平台
相关推荐

2022-06-16 07:50:35

数据结构链表

2022-07-13 08:16:49

RocketMQRPC日志

2022-07-08 09:27:48

CSSIFC模型

2022-04-26 08:41:54

JDK动态代理方法

2022-09-29 08:32:14

查询语句OR

2022-04-19 08:28:34

main函数

2022-10-09 09:30:33

CSS浏览器十六进制

2022-04-29 08:55:43

前端开发规范

2022-05-06 09:00:56

CSS元素Flex

2022-03-08 08:39:22

gRPC协议云原生

2022-11-02 07:37:07

WebAssembl浏览器服务器

2022-10-18 17:59:46

Bootstrap源码父类

2022-11-16 08:33:29

监听Spring监听器

2022-11-09 07:20:43

调用日志502报错nginx

2022-10-24 09:55:32

ESLintJavaScript

2021-11-26 11:30:07

身高重建队列

2021-11-14 16:06:54

实战中文Linkerd

2022-01-17 07:50:37

Go代码规范

2022-07-26 08:03:27

Kubernetes节点磁盘

2022-11-03 08:16:33

MySQL·窗口函数
点赞
收藏

51CTO技术栈公众号