DHCP Option 43是什麼?你學會了嗎?

2022.11.20
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 { }#
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.

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地址,而不需要转换格式。