Cisco Access Point'lerin Wireless Controller'a Join Süreci

15 Ocak 2024 · 4 dakika okuma

CAPWAP Oturumunun Oluşturulması

CAPWAP (Control And Provisioning Wireless Access Point); Access Point'ler ve Wireless Controller arasında, güvenli bir tünel üzerinden iletişimi sağlayan bir protokoldür.

Cisco Access Point'lerin Wireless Controller'a Join Sürecini ayrıntılı olarak anlayabilmek için CAPWAP Oturumunun Oluşturulması Sürecini kavramanız önemlidir.

CAPWAP sürecini başlatabilmek için Access Point'in bir IP adresine sahip olması gerektiğini lütfen unutmayın. Access Point'in IP adresi yoksa CAPWAP Oturum Oluşturma Sürecini başlatamaz.

Bir Access Point'in CAPWAP Oturum Oluşturma Süreci şu adımlarla gerçekleşir:

  1. Access Point, Discovery Request (Keşif İsteği) gönderir. Bu konuda daha fazla bilgi için Wireless LAN Controller Keşif Yöntemleri bölümüne bakın.
  2. Wireless Controller, Discovery Response (Keşif Yanıtı) gönderir.
  3. DTLS Oturumunun Oluşturulması. Bundan sonraki tüm paketler şifrelenir ve herhangi bir paket analiz aracında (Wireshark, tcpdump vb.) DTLS Application Data Paketleri olarak gösterilir.
  4. Access Point, Join Request (Katılma İsteği) gönderir.
  5. Wireless Controller, Join Response (Katılma Yanıtı) gönderir.
  6. Access Point, imaj kontrolü (image check) gerçekleştirir. Wireless Controller ile aynı versiyon yazılıma sahipse bir sonraki adıma geçer. Aksi taktirde imajı Wireless Controller'dan indirir ve yeni imajı yüklemek için yeniden başlatılır. Böyle bir durumda 1. adımdan itibaren işlemleri tekrarlar.
  7. Access Point, Configuration Status Request (Yapılandırma Durumu İsteği) gönderir.
  8. Wireless Controller, Configuration Status Response (Yapılandırma Durumu Yanıtı) gönderir.
  9. Access Point, RUN durumuna geçer.
  10. RUN durumu sırasında CAPWAP Tunnel Maintenance (CAPWAP Tünel Bakımı) iki şekilde gerçekleştirilir:
    1. Keepalive'lar CAPWAP Data Tunnel'ı korumak için değiştirilir.
    2. Access Point, Wireless Controller'a Echo Response ile yanıtlanması gereken bir Echo Request gönderir. Bunun amacı, CAPWAP Control Tunnel'ı korumaktır.

CAPWAP Session Establishment Process

Not: RFC 5415 uyarınca CAPWAP, UDP 5246 (CAPWAP Control için) ve UDP 5247 (CAPWAP Data için) portlarını kullanır.

DTLS Oturumunun Oluşturulması

Access Point, Wireless Controller'dan geçerli bir Discovery Response (Keşif Yanıtı) aldığında, sonraki tüm paketleri güvenli bir tünel üzerinden iletmek için aralarında bir DTLS Tunnel kurulur. DTLS Oturumunu kurma işlemi şu şekildedir:

  1. Access Point, Client Hello (İstemci Merhaba) mesajı gönderir.
  2. Wireless Controller, doğrulama için Hello Verify Request (Merhaba Doğrulama İsteği) gönderir.
  3. Access Point, doğrulama için tekrar Client Hello (İstemci Merhaba) mesajı gönderir.
  4. Wireless Controller, şu paketleri sırayla gönderir:
    1. Server Hello (Sunucu Merhaba)
    2. Certificate (Sertifika)
    3. Server Key Exchange (Sunucu Anahtar Değişimi)
    4. Certificate Request (Sertifika İsteği)
    5. Server Hello Done (Sunucu Merhaba Tamamlandı)
  5. Access Point, şu paketleri sırayla gönderir:
    1. Certificate (Sertifika)
    2. Client Key Exchange (İstemci Anahtar Değişimi)
    3. Certificate Verify (Sertifika Doğrulama)
    4. Change Cipher Spec (Şifre Spesifikasyonunu Değiştir)
  6. Wireless Controller, Access Point'in Change Cipher Spec (Şifre Spesifikasyonunu Değiştir) mesajına kendi Change Cipher Spec (Şifre Spesifikasyonunu Değiştir) mesajıyla yanıt verir.
    1. Change Cipher Spec (Şifre Spesifikasyonunu Değiştir)

Wireless Controller tarafından gönderilen son Change Cipher Spec (Şifre Spesifikasyonunu Değiştir) mesajının ardından güvenli tünel kurulur ve her iki yönde gönderilen tüm trafik şifrelenir.

Wireless LAN Controller Keşif Yöntemleri

Access Point'lerin, ağdaki Wireless Controller'ı keşfetmeleri için çeşitli seçenekler vardır:

  • DHCP Option 43: Access Point'ler, DHCP sunucusundan IP ile birlikte Option 43 bilgisini de alırlar. Option 43, Access Point'lere Wireless Controller'ın IPv4 bilgisini sağlar. Wireless Controller'ın IPv4 bilgisini alan Access Point, bu IP'ye Discovery Request (Keşif İsteği) gönderir ve CAPWAP Oturumunun Oluşturulmasına başlanmış olur. Bu yöntem, farklı lokasyonlarda çalışan Access Point'lerin olduğu büyük dağıtımlar için uygundur.
  • DHCP Option 52: Access Point'ler, DHCP sunucusundan IP ile birlikte Option 52 bilgisini de alırlar. Option 52, Access Point'lere Wireless Controller'ın IPv6 bilgisini sağlar. Wireless Controller'ın IPv6 bilgisini alan Access Point, bu IP'ye Discovery Request (Keşif İsteği) gönderir ve CAPWAP Oturumunun Oluşturulmasına başlanmış olur. Option 43 ile aynı senaryoda kullanım için uygundur.
  • DNS Discovery: Access Point'ler, CISCO-CAPWAP-CONTROLLER.localdomain DNS kaydını sorgular. Bu sorguya cevap olarak alacakları IPv4 veya IPv6 adreslerine Discovery Request (Keşif İsteği) gönderirler. Dolayısıyla DNS sunucunuzda bu kaydı Wireless Controller'ın Wireless Interface IP adresini (Access Point'lerin Join isteği gönderdikleri IP) gösterecek şekilde oluşturmanız gerekmektedir. Bu yöntem, Access Point'lerin Wireless Controller ile aynı lokasyonda olduğu dağıtımlar için uygundur.
  • Layer 3 Broadcast: Access Point'ler, otomatik olarak 255.255.255.255 broadcast adresine Discovery Request (Keşif İsteği) gönderirler; Access Point ile aynı subnet'te olan bir Wireless Controller'ın Discovery Response (Keşif Yanıtı) vermesi beklenir. Bu yöntem, Access Point'ler ile Wireless Controller'ın aynı subnet'te olduğu senaryolar için uygundur.
  • Statik Konfigürasyon: Access Point'e console veya SSH bağlantısı yapıp capwap ap primary-base [wlc-hostname] [wlc-IP-address] komutuyla statik giriş yapabilirsiniz.
  • Mobility Discovery: Access Point; daha önce bir Mobility Group'a üye Wireless Controller'a Join olmuşsa, bu Access Point aynı zamanda bu Mobility Group'taki diğer Wireless Controller'ların da bir kaydını bulundurur.

Not: Listelenen Wireless Controller keşif yöntemlerinin herhangi bir öncelik sırası yoktur.

Wireless LAN Controller Seçimi

Access Point, Wireless LAN Controller keşif yöntemlerinden herhangi birini kullanarak bir WLC'den Discovery Response (Keşif Yanıtı) aldığında aşağıdaki kriterlere göre join olacağı Wireless Controller'ı seçer.

  1. Primary Controller: capwap ap primary-base [wlc-hostname] [wlc-IP-address] komutuyla yapılandırılmıştır.
  2. Secondary Controller: capwap ap secondary-base [wlc-hostname] [wlc-IP-address] komutuyla yapılandırılmıştır.
  3. Tertiary Controller: capwap ap tertiary-base [wlc-hostname] [wlc-IP-address] komutuyla yapılandırılmıştır.
  4. Daha önce hiçbir Primary (Birincil), Secondary (İkincil) veya Tertiary (Üçüncül) WLC yapılandırılmamışsa AP, Discovery Request'ine (Keşif İsteğine) yanıt veren ilk WLC'ye join olur.

CAPWAP Durumları

Access Point'e console bağlantısı yaparak Join sürecindeki tüm CAPWAP Durumlarını takip edebilirsiniz.

CAPWAP State: Discovery

Aşağıdaki log'larda öncelikle CAPWAP'in Init Durumu, ardından Discovery Durumu görülmektedir.

Log'u inceleyecek olursak; Access Point öncelikle, DHCP Option 43'ten WLC IP Adresini öğrenmektedir, ardından DNS sorgusuyla öğreniyor ve son olarak Layer 3 Broadcast yapmaktadır.

En alttaki Log satırında ise 10.26.1.10 IP'li WLC'den Discovery Response (Keşif Yanıt) mesajı geldiği görülüyor.

LOG:

[*01/15/2024 00:00:00.0100] CAPWAP State: Init
[*01/15/2024 00:00:00.0200] 
[*01/15/2024 00:00:00.0200] CAPWAP State: Discovery
[*01/15/2024 00:00:00.0300] Got WLC address 10.26.1.10 from DHCP.
[*01/15/2024 00:00:00.0400] IP DNS query for CISCO-CAPWAP-CONTROLLER.cisco.local
[*01/15/2024 00:00:00.0500] DNS resolved CISCO-CAPWAP-CONTROLLER.cisco.local
[*01/15/2024 00:00:00.0600] DNS discover IP addr: 10.26.1.10
[*01/15/2024 00:00:00.0700] Discovery Request sent to 10.26.1.10, discovery type STATIC_CONFIG(1)
[*01/15/2024 00:00:00.0800] Discovery Request sent to 10.26.1.10, discovery type DNS(3)
[*01/15/2024 00:00:00.0900] Discovery Request sent to 255.255.255.255, discovery type UNKNOWN(0)
[*01/15/2024 00:00:00.1000] 
[*01/15/2024 00:00:00.1000] CAPWAP State: Discovery
[*01/15/2024 00:00:00.1100] Discovery Response from 10.26.1.10

CAPWAP State: DTLS Setup

Burada Access Point ile Wireless Controller arasında DTLS Tunnel kurulmaktadır. Bundan sonraki tüm trafik şifrelenecektir.

LOG:

[*01/15/2024 00:01:00.0100] CAPWAP State: DTLS Setup
[*01/15/2024 00:01:00.0200] First connect to vWLC, accept vWLC by default
[*01/15/2024 00:01:00.0300] 
[*01/15/2024 00:01:00.0300] dtls_verify_server_cert: vWLC is using SSC, returning 1
[*01/15/2024 00:01:00.0400] sudi99_request_check_and_load: Use HARSA SUDI certificate

CAPWAP State: Join

DTLS Tunnel kurulduktan sonra Access Point Wireless Controller'a Join Request (Katılma İsteği) göndermektedir. Wireless Controller ise Join Response (Katılma Yanıtı) mesajıyla bu talebi onaylamıştır.

LOG:

[*01/15/2024 00:01:01.0100] CAPWAP State: Join
[*01/15/2024 00:01:01.0200] Sending Join request to 10.26.1.10 through port 5248, packet size 1376
[*01/15/2024 00:01:01.0300] Join Response from 10.26.1.10, packet size 1397
[*01/15/2024 00:01:01.0400] AC accepted previous sent request with result code: 0
[*01/15/2024 00:01:01.0500] Received wlcType 0, timer 30

CAPWAP State: Image Data

Access Point, kendi üstündeki yazılım versiyonuyla Wireless Controller versiyonunu karşılaştırmaktadır. Versiyonların farklı olması durumunda uyumlu versiyonu Wireless Controller üzerinden indirir ve kendini yeniden başlatarak versiyonunu günceller. Log'ları incelediğimizde versiyonların aynı olduğunu ve Access Point'in güncelleme işlemini atladığını görmekteyiz.

LOG:

[*01/15/2024 00:01:02.0100] CAPWAP State: Image Data
[*01/15/2024 00:01:02.0200] AP image version 17.9.4.27 backup 17.3.5.42, Controller 17.9.4.27
[*01/15/2024 00:01:02.0300] Version is the same, do not need update.
[*01/15/2024 00:01:02.0400] status 'upgrade.sh: Script called with args:[NO_UPGRADE]'
[*01/15/2024 00:01:02.0500] do NO_UPGRADE, part1 is active part

CAPWAP State: Configure

Access Point, Wireless Controller ile aynı versiyona sahip olduğunu doğruladıktan sonra mevcut yapılandırmalarını Wireless Controller'a bildirir. Genelde bu, Access Point'in yapılandırmalarını (Wireless Controller'da mevcutsa) korumasını istediği anlamına gelir.

LOG:

[*01/15/2024 00:01:03.0100] CAPWAP State: Configure
[*01/15/2024 00:01:03.0200] Telnet is not supported by AP, should not encode this payload
[*01/15/2024 00:01:03.0300] Radio [1] Administrative state DISABLED  change to ENABLED 
[*01/15/2024 00:01:03.0400] Radio [0] Administrative state DISABLED  change to ENABLED 
[*01/15/2024 00:01:03.0500] DOT11_DRV[0]: Stop Radio0
[*01/15/2024 00:01:03.0600] Stopped Radio 0
[*01/15/2024 00:01:03.0700] DOT11_DRV[1]: Stop Radio1
[*01/15/2024 00:01:03.0800] Stopped Radio 1

CAPWAP State: Run

Bu noktada Access Point, Wireless Controller'a Join olmuş ve konfigürasyonunu alarak çalışmaya başlamıştır.

LOG:

[*01/15/2024 00:01:04.0100] CAPWAP State: Run
[*01/15/2024 00:01:04.0200] AP has joined controller Catalyst-9800
[*01/15/2024 00:01:04.0300] Flexconnect Switching to Connected Mode!
[*01/15/2024 00:01:04.0400] IOT device ttyiot0 not found
[*01/15/2024 00:01:04.0500] Previous AP mode is 2, change to 2
[*01/15/2024 00:01:04.0600] Current session mode: ssh, Configured: Telnet-No, SSH-Yes, Console-Yes
[*01/15/2024 00:01:04.0700] Current session mode: telnet, Configured: Telnet-No, SSH-Yes, Console-Yes
[*01/15/2024 00:01:04.0800] Current session mode: console, Configured: Telnet-No, SSH-Yes, Console-Yes
[*01/15/2024 00:01:04.0900] chpasswd: password for user changed
[*01/15/2024 00:01:04.1000] chpasswd: password for user changed
[*01/15/2024 00:01:04.1100] Same LSC mode, no action needed
[*01/15/2024 00:01:04.1200] CLSM[00:00:00:00:00:00]: U3 Client RSSI Stats feature is deprecated; can no longer be enabled
[*01/15/2024 00:01:04.1300] Got WSA Server config TLVs
[*01/15/2024 00:01:04.1400] AP tag  change to new-policy-tag
[*01/15/2024 00:01:04.1500] flags value is 1 process iot_radio
[*01/15/2024 00:01:04.1600] Powering down BLE radio
[*01/15/2024 00:01:04.1700] set cleanair [slot0][band0] disable
[*01/15/2024 00:01:04.1800] set cleanair [slot1][band1] disable

Konfigürasyon

Statik WLC Tanımlaması

Configuration > Wireless > Access Points sayfasında üzerinde değişiklik yapacağınız Access Point'i seçip, High Availability sekmesinde Primary, Secondary ve Tertiary Controller bilgilerini girebilirsiniz.

Edit AP High Availability Primary Controller

Access Point'in High Availability sekmesinde girilen Primary, Secondary ve Tertiary Controller bilgilerinin AP Join Profile > CAPWAP > High Availability'de yapılandırılan Backup Primary ve Backup Secondary Controller'dan farklı olduğunu lütfen unutmayın.

Primary, Secondary ve Tertiary Controller'lar sırasıyla 1, 2 ve 3 öncelik değerlerine sahipken; Backup Primary ve Backup Secondary Controller'lar sırasıyla 4 ve 5 öncelik değerlerine sahiptir.

AP Join Profile > CAPWAP > High Availability sekmesindeki AP Fallback to Primary aktif edilse bile, Access Point öncelikle Primary Controller'a Join olmayı dener. Access Point ancak CAPWAP Down durumunda 4 ve 5 öncelik değerlerine sahip olan Backup Primary Controller ve Backup Secondary Controller'lara Join olur.

Edit AP Join Profile CAPWAP High Availability

Not: AP Join Profile'ın High Availability sekmesinde yapılandırılan Wireless Controller bilgileri Access Point'in High Availability sekmesinde yapılandırılan Wireless Controller bilgilerini etkilemez.

SSH'ın Aktif Edilmesi

Access Point'lerdeki log'lara erişmek ve CAPWAP Oturumunun durumunu incelemek için cihaza uzaktan erişim ihtiyacı duyabilirsiniz. Dolayısıyla SSH'ı aktif etmekte fayda var.

Adım 1: Access Point'lere SSH ile erişmek için AP Join Profile'da SSH'ı aktif edin.

Add AP Join Profile Management Device

Adım 2: SSH bağlantısında kullanacağınız Username ve Password'ü belirleyin ve Apply to Device butonuna tıklayın..

Add AP Join Profile Management User

Client (İstemci) bazlı bir sorunu Packet Capture (Paket Yakalama) yöntemiyle çözmeniz gereken bir durumda Configuration > Tags & Profiles > AP Join > CAPWAP > Advanced sekmesindeki Data Link Encryption seçeneğinin inaktif olduğundan emin olun. Aksi takdirde trafik şifrelenecektir.

Add AP Join Profile CAPWAP Advanced

Not: Data Encryption yalnızca CAPWAP DATA trafiğini şifreler. CAPWAP Control trafiği zaten DTLS aracılığıyla şifrelenmiştir.

Doğrulama

Access Point'in Wireless Controller'a Join olma sürecini analiz etmek için Wireless Controller'ın Packet Capture yeteneğinden faydalanabilirsiniz.

CAPWAP Packet Capture

Sorun Giderme

WLC Arayüzünden Yapılacak Kontroller

Wireless Controller arayüzünde, Monitoring > Wireless > AP Statistics > Join Statistics sayfasındaki Last Reboot Reason ve Last Reconnect Reason alanlarında ilgili Access Point'in son reboot ve son reconnect sebeplerini görebilirsiniz.

AP Statistics - Join Statistics

Ayrıntılı bilgi almak istediğiniz Access Point'e tıklayarak son join olma tarih ve saati gibi bilgilere erişebilirsiniz.

Join Statistics - General

Daha detaylı istatistik bilgileri için aynı sayfadaki Statistics sekmesine erişebilirsiniz.

Join Statistics - Statistics

Sorun Giderme Komutları

Aşağıdaki komutlar AP Join Troubleshooting (Sorun Giderme) sürecinde faydalı olacaktır.

Wireless Controller'da Kullanılan Komutlar

show ap summary
debug capwap error
debug capwap packet

Wave 2 ve Catalyst 11ax Access Point'lerde Kullanılan Komutlar

debug capwap client events
debug capwap client error
debug dtls client error
debug dtls client event
debug capwap client keepalive
test capwap restart
capwap ap erase all

Wave 1 Access Point'lerde Kullanılan Komutlar

debug capwap console cli
debug capwap client no-reload
show dtls stats
clear capwap ap all-config

Kaynak: Understand the AP Join Process with the Catalyst 9800 WLC