Wireless Access

last person joined: yesterday 

Access network design for branch, remote, outdoor, and campus locations with HPE Aruba Networking access points and mobility controllers.

DHCP Option 43 in dhcpd in CentOS7

This thread has been viewed 5 times
  • 1.  DHCP Option 43 in dhcpd in CentOS7

    Posted Sep 19, 2019 01:14 PM

    So I have a DHCP server (Internet Systems Consortium DHCP Server 4.2.5) running on CentOS Linux release 7.6.1810 (Core). We deployed some Aruba Access Points (APs) but these APs cannot seem to get the correct Vendor-Option Option 43 from the server but I can see from tcpdump that DHCP server is giving the IP. I followed the sample dhcpd.conf configuration from

    https://www.arubanetworks.com/techdocs/ArubaOS_64_Web_Help/Web_Help_Index.htm#ArubaFrameStyles/DHCP_Option_43/Linux_DHCP_Servers.htm%3FTocPath%3DDHCP%20with%20Vendor-Specific%20Options%7C_____3

    But I changed the "ArubaAP" to "ArubaInstantAP" because when I did the packet capture, it is ArubaInstantAP that's coming out, not ArubaAP - also one of my question why ArubaInstantAP is showing. Here's my dhcpd.conf:

    # dhcpd.conf
    #
    # Sample configuration file for ISC dhcpd
    #
    
    # option definitions common to all supported networks...
    option domain-name "garnet.local";
    option domain-name-servers 192.168.5.106;
    option serverip code 43 = ip-address;
    class "Vendor-Class" {
    	match option vendor-class-identifier;
    }
    
    default-lease-time 600;
    max-lease-time 7200;
    
    # Use this to enble / disable dynamic dns updates globally.
    #ddns-update-style none;
    
    # If this DHCP server is the official DHCP server for the local
    # network, the authoritative directive should be uncommented.
    #authoritative;
    
    # Use this to send dhcp log messages to a different log file (you also
    # have to hack syslog.conf to complete the redirection).
    log-facility local7;
    
    # No service will be given on this subnet, but declaring it helps the 
    # DHCP server to understand the network topology.
    
    subnet 0.0.0.0 netmask 0.0.0.0 {
    }
    
    # AP_Mgmt
    subnet 192.168.88.0 netmask 255.255.255.0 {
      default-lease-time 28800;
      max-lease-time 86400;
      option domain-name "garnet.local";
      option domain-name-servers 192.168.5.106, 8.8.8.8, 8.8.4.4;
      option routers 192.168.88.1;
      option broadcast-address 192.168.88.255;
      subclass "Vendor-Class" "ArubaInstantAP" {
        option vendor-class-identifier "ArubaInstantAP";
        option serverip 192.168.11.9;
      }
      range 192.168.88.10 192.168.88.100;
    }

    From tcpdump packet capture, here'sthe DHCP transaction:

    192.168.5.105.67 > 192.168.5.106.67: [udp sum ok] BOOTP/DHCP, Request from 00:4e:35:c4:e3:d0, length 300, hops 1, xid 0xf60a2647, Flags [none] (0x0000)
              Gateway-IP 192.168.88.1
              Client-Ethernet-Address 00:4e:35:c4:e3:d0
              Vendor-rfc1048 Extensions
                Magic Cookie 0x63825363
                DHCP-Message Option 53, length 1: Discover
                Client-ID Option 61, length 7: ether 00:4e:35:c4:e3:d0
                Vendor-Class Option 60, length 14: "ArubaInstantAP"
                Parameter-Request Option 55, length 13:
                  Subnet-Mask, Default-Gateway, Time-Server, Domain-Name-Server
                  Hostname, Domain-Name, BR, NTP
                  Vendor-Option, Vendor-Class, TFTP, BF
                  Option 148
                Agent-Information Option 82, length 14:
                  Circuit-ID SubOption 1, length 4: ^@^@^@^P
                  Remote-ID SubOption 2, length 6: M-^P M-B^W^OM-^@
                END Option 255, length 0
    17:37:45.917730 50:6b:8d:82:a9:4e > ec:9b:8b:f9:f2:d2, ethertype IPv4 (0x0800), length 382: (tos 0x0, ttl 64, id 57962, offset 0, flags [DF], proto UDP (17), length 368)
        192.168.5.106.67 > 192.168.88.1.67: [bad udp cksum 0xcb91 -> 0x7838!] BOOTP/DHCP, Reply, length 340, hops 1, xid 0xf60a2647, Flags [none] (0x0000)
              Your-IP 192.168.88.94
              Gateway-IP 192.168.88.1
              Client-Ethernet-Address 00:4e:35:c4:e3:d0
              Vendor-rfc1048 Extensions
                Magic Cookie 0x63825363
                DHCP-Message Option 53, length 1: Offer
                Server-ID Option 54, length 4: 192.168.5.106
                Lease-Time Option 51, length 4: 28800
                Subnet-Mask Option 1, length 4: 255.255.255.0
                Default-Gateway Option 3, length 4: 192.168.88.1
                Domain-Name-Server Option 6, length 12: 192.168.5.106,8.8.8.8,8.8.4.4
                Domain-Name Option 15, length 12: "garnet.local"
                BR Option 28, length 4: 192.168.88.255
                Vendor-Option Option 43, length 4: 192.168.11.9
                Vendor-Class Option 60, length 14: "ArubaInstantAP"
                Agent-Information Option 82, length 14:
                  Circuit-ID SubOption 1, length 4: ^@^@^@^P
                  Remote-ID SubOption 2, length 6: M-^P M-B^W^OM-^@
                END Option 255, length 0
    17:37:46.005757 ec:9b:8b:f9:f2:d2 > 50:6b:8d:82:a9:4e, ethertype IPv4 (0x0800), length 354: (tos 0xe0, ttl 255, id 55684, offset 0, flags [none], proto UDP (17), length 340)
        192.168.5.105.67 > 192.168.5.106.67: [udp sum ok] BOOTP/DHCP, Request from 00:4e:35:c4:e3:d0, length 312, hops 1, xid 0xf60a2647, secs 1, Flags [none] (0x0000)
              Gateway-IP 192.168.88.1
              Client-Ethernet-Address 00:4e:35:c4:e3:d0
              Vendor-rfc1048 Extensions
                Magic Cookie 0x63825363
                DHCP-Message Option 53, length 1: Request
                Client-ID Option 61, length 7: ether 00:4e:35:c4:e3:d0
                Vendor-Class Option 60, length 14: "ArubaInstantAP"
                Requested-IP Option 50, length 4: 192.168.88.94
                Server-ID Option 54, length 4: 192.168.5.106
                Parameter-Request Option 55, length 13:
                  Subnet-Mask, Default-Gateway, Time-Server, Domain-Name-Server
                  Hostname, Domain-Name, BR, NTP
                  Vendor-Option, Vendor-Class, TFTP, BF
                  Option 148
                Agent-Information Option 82, length 14:
                  Circuit-ID SubOption 1, length 4: ^@^@^@^P
                  Remote-ID SubOption 2, length 6: M-^P M-B^W^OM-^@
                END Option 255, length 0
    17:37:46.012438 50:6b:8d:82:a9:4e > ec:9b:8b:f9:f2:d2, ethertype IPv4 (0x0800), length 382: (tos 0x0, ttl 64, id 58050, offset 0, flags [DF], proto UDP (17), length 368)
        192.168.5.106.67 > 192.168.88.1.67: [bad udp cksum 0xcb91 -> 0x7537!] BOOTP/DHCP, Reply, length 340, hops 1, xid 0xf60a2647, secs 1, Flags [none] (0x0000)
              Your-IP 192.168.88.94
              Gateway-IP 192.168.88.1
              Client-Ethernet-Address 00:4e:35:c4:e3:d0
              Vendor-rfc1048 Extensions
                Magic Cookie 0x63825363
                DHCP-Message Option 53, length 1: ACK
                Server-ID Option 54, length 4: 192.168.5.106
                Lease-Time Option 51, length 4: 28800
                Subnet-Mask Option 1, length 4: 255.255.255.0
                Default-Gateway Option 3, length 4: 192.168.88.1
                Domain-Name-Server Option 6, length 12: 192.168.5.106,8.8.8.8,8.8.4.4
                Domain-Name Option 15, length 12: "garnet.local"
                BR Option 28, length 4: 192.168.88.255
                Vendor-Option Option 43, length 4: 192.168.11.9
                Vendor-Class Option 60, length 14: "ArubaInstantAP"
                Agent-Information Option 82, length 14:
                  Circuit-ID SubOption 1, length 4: ^@^@^@^P
                  Remote-ID SubOption 2, length 6: M-^P M-B^W^OM-^@
                END Option 255, length 0

    I actually saved this capture and opened in Wireshark - can someone please explain why I got a decimal like in Option: 43 when viewing in Wireshark? Here's the Option: 43

    Option: (43) Vendor-Specific Information (Aruba Instant AP)
        Length: 4
        Aruba Instant AP: \357\277\275\020\v\t
            Name Organisation: \357\277\275\020\v\t
            AMP IP Address: \357\277\275\020\v\t
            Password: \357\277\275\020\v\t
    Option: (60) Vendor class identifier
        Length: 14
        Vendor class identifier: ArubaInstantAP
    Option: (82) Agent Information Option
        Length: 14
        Option 82 Suboption: (1) Agent Circuit ID
            Length: 4
            Agent Circuit ID: 00000010
        Option 82 Suboption: (2) Agent Remote ID
            Length: 6
            Agent Remote ID: 9020c2170f80

    And the garbled

    Circuit-ID SubOption 1, length 4: ^@^@^@^P
    Remote-ID SubOption 2, length 6: M-^P M-B^W^OM-^@

    from tcpdump has now a nice looking value when viewed in Wireshark - can someone please explain those values also?


    So the situation we're in right now is - the APs cannot seem to get the correct Option 43 and (maybe) possibly the Option 60 which resulted in the APs not showing up in Mobility Controller automatically.


    Appreciate your help. Thank you!