{"id":1537,"date":"2023-04-08T20:01:31","date_gmt":"2023-04-08T18:01:31","guid":{"rendered":"https:\/\/www.boettrich.info\/blog\/?p=1537"},"modified":"2023-04-08T20:02:47","modified_gmt":"2023-04-08T18:02:47","slug":"cisco-catalyst-9800-wlc-ap-join-option-43-pfsense","status":"publish","type":"post","link":"https:\/\/www.boettrich.info\/blog\/beitrag\/cisco-catalyst-9800-wlc-ap-join-option-43-pfsense\/","title":{"rendered":"Cisco Catalyst 9800 WLC &#8211; AP Join &#8211; Option 43 &#8211; pfSense"},"content":{"rendered":"\n<p>I installed a couple of Catalyst 9800-CL at my homelab. I decided to host the access points in a separate L3-Subnet so I had to have a way to deploy the WLC ip address to the access points. A commonly used mechanism to achieve that besides DNS is option 43 via DHCP. <br>With option 43 the DHCP server provides the ip address of the controller to the access point in a hexadecimal encoded fashion.<\/p>\n\n\n\n<p>In my case the option looks like that:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.boettrich.info\/blog\/wp-content\/uploads\/2023\/04\/image.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"177\" src=\"https:\/\/www.boettrich.info\/blog\/wp-content\/uploads\/2023\/04\/image-1024x177.png\" alt=\"\" class=\"wp-image-1538\" srcset=\"https:\/\/www.boettrich.info\/blog\/wp-content\/uploads\/2023\/04\/image-1024x177.png 1024w, https:\/\/www.boettrich.info\/blog\/wp-content\/uploads\/2023\/04\/image-300x52.png 300w, https:\/\/www.boettrich.info\/blog\/wp-content\/uploads\/2023\/04\/image-768x133.png 768w, https:\/\/www.boettrich.info\/blog\/wp-content\/uploads\/2023\/04\/image.png 1228w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<p>f1 = Sub option<br>04 = payload length<br>0a to 0d = the controller ip address in hex<\/p>\n\n\n\n<p>Another example would be &#8211; if you would have two controllers kind of HA setup:<br><br>Controller 1 IP: 192.168.1.10<br>Controller 2 IP: 192.168.1.20<br><br>The resulting hex string will be:<br>option 43 hex f108c0a8010ac0a80114<br>f1 = Sub option<br>08 = payload length<br>c1 to 14 = the controller ip addresses in hex concatenated.<\/p>\n\n\n\n<p>There is a pretty handy litte tool on the web calculating the appropriate hex string:<br>https:\/\/shimi.net\/services\/opt43\/<\/p>\n\n\n\n<p>Another good source is Marco&#8217;s website &#8211; providing also hints for configuring other DHCP servers:<br>https:\/\/tcpip.wtf\/en\/unifi-l3-adoption-with-dhcp-option-43-on-pfsense-mikrotik-and-others.htm<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>Another option would be, to provide a dns domain and dns server via DHCP to the access point &#8211; then the AP would try to reach the controller via DNS.<br>A Cisco AP would try to resolve &#8222;CISCO-CAPWAP-CONTROLLER.your-provided-dns-domain.tld&#8220;<br><br><\/p>\n","protected":false},"excerpt":{"rendered":"<p>I installed a couple of Catalyst 9800-CL at my homelab. I decided to host the access points in a separate L3-Subnet so I had to have a way to deploy the WLC ip address to the access points. A commonly used mechanism to achieve that besides DNS is option 43 via DHCP. With option 43&hellip;&nbsp;<a href=\"https:\/\/www.boettrich.info\/blog\/beitrag\/cisco-catalyst-9800-wlc-ap-join-option-43-pfsense\/\" rel=\"bookmark\">Weiterlesen &raquo;<span class=\"screen-reader-text\">Cisco Catalyst 9800 WLC &#8211; AP Join &#8211; Option 43 &#8211; pfSense<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"neve_meta_sidebar":"","neve_meta_container":"","neve_meta_enable_content_width":"","neve_meta_content_width":0,"neve_meta_title_alignment":"","neve_meta_author_avatar":"","neve_post_elements_order":"","neve_meta_disable_header":"","neve_meta_disable_footer":"","neve_meta_disable_title":"","footnotes":""},"categories":[1,10,6],"tags":[],"class_list":["post-1537","post","type-post","status-publish","format-standard","hentry","category-beitrag","category-netzwerk","category-technik"],"_links":{"self":[{"href":"https:\/\/www.boettrich.info\/blog\/wp-json\/wp\/v2\/posts\/1537","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.boettrich.info\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.boettrich.info\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.boettrich.info\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.boettrich.info\/blog\/wp-json\/wp\/v2\/comments?post=1537"}],"version-history":[{"count":2,"href":"https:\/\/www.boettrich.info\/blog\/wp-json\/wp\/v2\/posts\/1537\/revisions"}],"predecessor-version":[{"id":1541,"href":"https:\/\/www.boettrich.info\/blog\/wp-json\/wp\/v2\/posts\/1537\/revisions\/1541"}],"wp:attachment":[{"href":"https:\/\/www.boettrich.info\/blog\/wp-json\/wp\/v2\/media?parent=1537"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.boettrich.info\/blog\/wp-json\/wp\/v2\/categories?post=1537"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.boettrich.info\/blog\/wp-json\/wp\/v2\/tags?post=1537"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}