capwap學習筆記——初識capwap(二)

來源:互聯網
上載者:User

標籤:http   tar   com   使用   strong   art   

2.5.1 AC發現機制

WTP使用AC發現機制來得知哪些AC是可用的,決定最佳的AC來建立CAPWAP串連。

WTP的發現過程是可選的。如果在WTP上靜態配置了AC,那麼WTP並不需要完成AC的發現過程。

WTP首先發送一個 Discovery Request message給受限的廣播位址,或者CAPWAP的多播地址(224.0.1.140),或者是預配置的AC的單播地址。在IPV6網路中,由於廣播並不存在,因此使用"All ACs multicast address" (FF0X:0:0:0:0: 0:0:18C)來代替。

當接收到Discovery Request message訊息,AC發送一個單播Discovery Response message給WTP。

WTP可以通過Discovery Response message中所帶的AC優先順序,支援的CAPWAP binding來選擇與哪個AC建立會話。

除了上面的發現機制,WTP還可以使用DNS或者DHCP來發現AC。

2.5.2 DTLS握手

WTP首先發送一個ClientHello訊息來發起握手,說明它支援的密碼演算法列表、壓縮方法及最高協議版本和其他一些需要的訊息。

AC回複一個HelloVerifyReuqest 訊息,client必須重傳添加了cookie的ClientHello。server然後驗證cookie,如果有效話才開始進行握手。

AC回應一個ServerHello訊息,包含伺服器選擇的串連參數,源自用戶端初期所提供的ClientHello,確定了這次通訊所需要的演算法,然後發過去自己的認證(裡麵包含了身份和自己的公開金鑰)。

Client在收到這個訊息後會產生一個秘密訊息,用SSL伺服器的公開金鑰加密後傳過去,SSL伺服器端用自己的私密金鑰解密後,工作階段金鑰協商成功,雙方可以用同一份工作階段金鑰來通訊了。

2.5.3 DTLS認證和授權

    DTLS支援終端認證方式為:認證(certificate)和預先共用金鑰(pre-shared key)。

    CAPWAP認證中使用認證支援的演算法是

¢   TLS_RSA_WITH_AES_128_CBC_SHA [RFC5246](MUST SUPPORT)

¢   TLS_DHE_RSA_WITH_AES_128_CBC_SHA [RFC5246](SHOULD SUPPORT)

¢   TLS_RSA_WITH_AES_256_CBC_SHA [RFC5246](MAY SUPPORT)

¢   TLS_DHE_RSA_WITH_AES_256_CBC_SHA [RFC5246] ](MAY SUPPORT)

在RFC4279中定義了多種預先共用金鑰的認證方式,CAPWAP中主要關心下面兩種:

¢  Pre-Shared Key (PSK) key exchange algorithm

¢  DHE_PSK key exchange algorithm

同樣,CAPWAP定義了預先共用金鑰支援的演算法

¢  TLS_PSK_WITH_AES_128_CBC_SHA [RFC5246] (MUST SUPPORT)

¢  TLS_DHE_PSK_WITH_AES_128_CBC_SHA [RFC5246] (MUST SUPPORT)

¢  TLS_PSK_WITH_AES_256_CBC_SHA [RFC5246] ](MAY SUPPORT)

¢  TLS_DHE_PSK_WITH_AES_256_CBC_SHA [RFC5246] ](MAY SUPPORT)

2.5.4 CAPWAP狀態機器

CAPWAP狀態機器,是被AC和WTP同時使用的。對於每個定義的狀態,只有特定的訊息才被允許收發。

因為WTP只會和單個AC通訊,因此只會有一個CAPWAP的狀態機器。而AC與WTP有很大差別,因為AC同時和許多WTP通訊。

DTLS和CAPWAP的狀態機器由命令和通告的API介面聯絡起來。

DTLS狀態機器的變遷由CAPWAP狀態機器的命令觸發。

CAPWAP狀態機器的變遷由DTLS狀態機器的通告觸發

CAPWAP狀態機器:

2.5.4.1 CAPWAP to DTLS Commands

¢  DTLSStart

開啟DTLS會話的建立

¢  DTLSListen

監聽DTLS會話請求

¢  DTLSAccept

允許DTLS會話建立

¢  DTLSAbortSession

導致進行中中的DTLS會話的中斷

¢  DTLSShutdown

關閉DTLS會話

¢  DTLSMtuUpdate

改變DTLS模組的MTU設定大小。預設大小為1468位元組

2.5.4.2 DTLS to CAPWAP Notifications

¢  DTLSPeerAuthorize

DTLS會話建立過程中,通知CAPWAP模組來認證會話。

¢  DTLSEstablished

通知CAPWAP模組DTLS會話已經成功建立

¢  DTLSEstablishFail

DTLS會話建立失敗

¢  DTLSAuthenticateFail

DTLS會話建立過程由於認證失敗而終止。

¢  DTLSAborted

通知CAPWAP模組它要求的DTLS會話建立過程已經終

¢  DTLSReassemblyFailure

通知CAPWAP模組DTLS分區組裝失敗

¢  DTLSDecapFailure

通知CAPWAP模組發生了一個解碼錯誤

¢  DTLSPeerDisconnect

通知CAPWAP模組DTLS會話已經關閉

2.5.5 AC線程

AC使用了三個“線程”(thread)的概念。

¢  監聽線程:

通過DTLSlisten命令,AC監聽線程處理DTLS會話建立請求。建立的時候,監聽線程開啟DTLS Setup狀態。當狀態機器進入Authorize狀態,且DTLS會話生效之後,監聽線程建立一個指定的WTP指定會話服務線程和狀態空間。

¢  發現線程:

AC的發現線程負責接收和響應發現請求訊息。

¢  服務線程:

AC的服務進程處理每個WTP的狀態和每個WTP串連的線程。這個線程在認證後被監聽線程建立。一旦建立,服務線程會繼承監聽線程的一份狀態機器空間的拷貝。當與WTP之間的通訊完成後,服務線程關閉,所有的資源都會被釋放。

注意,在這裡使用了線程這個術語,但是並不代表實現者就必須使用線程。這隻是一個實現AC狀態機器的可用的方法。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.