• DHCP option 43是什么


    背景

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

    2022111804

    如果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。

    2022111805

    2022111806

    使用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 AP

    Cisco(dhcp-config)#network 192.168.10.0 /24

    Cisco(dhcp-config)#default-route 102.168.10.1

    Cisco(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服务器配置界面

    2022111801

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

    2022111802

    其中,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的格式,两个字符之间需要用冒号隔开。

    2022111803

    其中,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地址,比如:192.168.100.1,而不需要转换格式。

  • 相关阅读:
    C#打包表情图片至Dll文件中供winform中调用
    一款EF Core下高性能、轻量级针对分表分库读写分离的解决方案
    oracle WAITED TOO LONG FOR A ROW CACHE ENQUEUE LOCK问题分析
    内网穿透隐秘隧道搭建
    基于springboot实现线上教学平台项目【项目源码+论文说明】
    时间跟踪工具:Timemator Mac汉化版
    Sendable 和 @Sendable 闭包 —— 代码实例详解
    SpringMVC之自定义注解
    数据结构——C语言实现String字符串操作
    Asp-Net-Core开发笔记:使用原生的接口限流功能
  • 原文地址:https://blog.csdn.net/networktp/article/details/128029054