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!