Because of a typo that sent me down a rabbit hole, I am writing this post as a reminder to myself.
First reminder: Option 60 is not needed for modern APs.
It is only used to define VCI (Vendor Class Identifier) so we can return different option 43 results based on “who asks?” (E.g. a Cisco 9115AX AP might need to connect to a different controller than your Cisco 2802 AP)
Cisco documentation [Link]
Note: TLV values for the Option 43 suboption: Type + Length + Value. Type is always the suboption code 0xf1. Length is the number of controller management IP addresses times 4 in hex. Value is the IP address of the controller listed sequentially in hex. For example, suppose there are two controllers with management interface IP addresses, 192.168.10.5 and 192.168.10.20. The type is 0xf1. The length is 2 * 4 = 8 = 0x08. The IP addresses translates to c0a80a05 (192.168.10.5) and c0a80a14 (192.168.10.20). When the string is assembled, it yields f108c0a80a05c0a80a14. The Cisco IOS command that is added to the DHCP scope is option 43 hex f108c0a80a05c0a80a14.
DHCP option structure
The Option 43-string is a divided into three parts
(TLV – Type + Length + Value) = Type, Number of WLCs and IP-addresses of WLCs:
* f1 – Type is always suboption code “F1”
* 04 (or 08, 12) – Number of WLCs
* aabbccdd – IP-address(es)
Microsoft DHCP example
Microsoft type is denoted as 00f1 rather than just f1.
In the photo, the WLC-controller with IP 126.96.36.199 (Hex AC 0A FA 0A)
Convert your IP to Hex using any available tool.
[01/08/2020 16:09:21.2920] ipv6 gw config loop in set IPv4 addr task [01/08/2020 16:09:31.3450] PNP:Server not reachable, Start CAPWAP Discovery
[01/08/2020 16:09:31.3450] [01/08/2020 16:09:31.3450] CAPWAP State: Discovery
[01/08/2020 16:09:31.3460] Got WLC address 188.8.131.52 from DHCP. [01/08/2020 16:09:31.3460] IP DNS query for CISCO-CAPWAP-CONTROLLER.domain.local
[01/08/2020 16:09:31.3560] Discovery Request sent to 184.108.40.206, discovery type DHCP(2) [01/08/2020 16:09:31.3570] Discovery Response from 220.127.116.11
[01/08/2020 16:09:31.3570] Discovery Request sent to 255.255.255.255, discovery type UNKNOWN(0) [01/08/2020 16:09:31.3570]
[01/08/2020 16:09:31.3570] CAPWAP State: Discovery [05/20/2020 13:14:53.0000]
[*05/20/2020 13:14:53.0000] CAPWAP State: DTLS Setup