CAPWAP Control and Provisioning of Wireless Access Points – Quản lý và Cung cấp kết nối cho các điểm truy cập không dây do tập đoàn Cisco phát triển và hỗ trợ là một bước đột phá mới tro
Trang 1ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
Trang 2ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
Ngành: Công nghệ thông tin
Chuyên ngành: Hệ thống thông tin
Trang 3MỤC LỤC
MỤC LỤC 1
MỞ ĐẦU 7
Chương 1 ĐẶT VẤN ĐỀ 9
1 1 Giới thiệu 9
1.2 Mô tả bài toán 10
1.3 Vấn đề bảo mật 12
Chương 2 CÁC GIẢI PHÁP TRƯỚC CAPWAP 13
2.1 Giới thiệu 13
2.2 Kiến trúc tự trị 14
2.2.1 Giới thiệu 14
2.2.2 Bảo mật 15
2.3 Kiến trúc tập trung 16
2.3.1 Kết nối giữa WTP và AC 18
2.3.2 Ba biến thể của kiến trúc tập trung 19
2.4 Kiến trúc phân tán mạng lưới 21
Chương 3 GIAO THỨC CAPWAP 22
3.1 Tổng quan 22
3.1.1 Tổng quan về thiết lập phiên làm việc CAPWAP 23
3.1.2 Máy trạng thái của giao thức CAPWAP 26
3.1.2.1 Các bước chuyển trạng thái của giao thức CAPWAP 27
3.1.2.2 Giao diện CAPWAP/DTLS 36
3.2 Định dạng gói tin giao thức CAPWAP 38
3.2.1 CAPWAP Preamble 40
3.2.2 CAPWAP DTLS Header 41
3.2.3 CAPWAP Header 42
Trang 43.2.4 Thông điệp dữ liệu CAPWAP 44
3.2.4.1 CAPWAP Data Channel Keep – Alive 44
3.2.4.2 Data Payload 44
3.2.5 Thông điệp điều khiển của giao thức CAPWAP 45
3.2.5.1 Định dạng thông điệp điều khiển 46
3.2.5.2 Truyền lại gói tin bị mất 48
3.2.6 Các thành phần thông điệp CAPWAP 49
Chương 4 BÀI TOÁN PHÂN CHIA TẦN SỐ TRONG MẠNG WIFI VỚI CAPWAP 52
4.1 Giới thiệu 54
4.2 Phân chia tần số với vị trí AP được xác định 55
4.2.1 Hướng tiếp cận truyền thống 55
4.2.2 Sử dụng các kỹ thuật lập trình tuyến tính 55
4.3 Hướng tiếp cận không quan tâm tới vị trí các AP 56
4.3.1 Hướng tiếp cận tô màu đồ thị 56
4.4 Thuật toán phân chia tần số tập trung 57
4.5 Thí nghiệm 60
5 KẾT LUẬN 62
TÀI LIỆU THAM KHẢO 63
Tiếng Anh 63
Trang 5DANH MỤC KÝ HIỆU, CHỮ VIẾT TẮT
dữ liệu, bằng 1 megabit trên 1 giây
không dây
không dây, hoạt động tương tự như 1 switch hoặc router trong mạng
có dây thông thường
không dây
Trang 6DANH MỤC BẢNG BIỂU
Bảng 1 Ba biến thể của kiến trúc tập trung 20
Bảng 2 Các kiểu thông điệp điều khiển của giao thức CAPWAP 47
Bảng 3 Thuật toán phân chia tần số 59
Bảng 4 Kết quả so sánh thuật toán LCCS 61
Trang 7DANH MỤC HÌNH VẼ
Hình 1 Kiến trúc tự trị mạng WLAN 14
Hình 2 Kiến trúc tập trung mạng WLAN 16
Hình 3 Kết nối trực tiếp giữa WTP và AC 18
Hình 4 Kết nối giữa WTP và AC thông qua switch 18
Hình 5 Kết nối giữa WTP và AC thông qua router 19
Hình 6 Kiến trúc phân tán lưới 21
Hình 7 Thiết lập phiên làm việc CAPWAP 25
Hình 8 Máy trạng thái của giao thức CAPWAP 26
Hình 9 Định dạng Discovery Request / Response 38
Hình 10 Định dạng gói tin điều khiển giao thức CAPWAP với DTLS 38
Hình 11 Định dạng gói tin dữ liệu CAPWAP không mã hóa 38
Hình 12 Định dạng gói tin dữ liệu CAPWAP với DTLS 39
Hình 13 CAPWAP Preamble 40
Hình 14 Định dạng CAPWAP DTLS Header 41
Hình 15 Định dạng CAPWAP Header 42
Hình 16 CAPWAP Data Payload theo chuẩn 802.3 44
Hình 17 Định dạng thông điệp điều khiển 46
Hình 18 Các kênh truyền ở dải tần 2.4GHz 52
Hình 19 Topo thông thường của một mạng Wifi 53
Hình 20 Đánh giá các thuật toán phân chia tần số 61
Trang 8
MỞ ĐẦU
Sau kỷ nguyên bùng nổ của máy tính để bàn cá nhân thì vào thập kỷ thứ 2 của thế
kỷ XXI, ngành công nghiệp máy tính đã chứng kiến sự đổ bộ ào ạt của các thiết bị di động như laptop, tablet hay smartphone
Một trong những đặc trưng quan trọng nhất của các thiết bị di động thông minh kể trên, là khả năng kết nối Internet của nó Cho tới hôm nay, có thể nói hầu như các thiết
bị kể trên đều có khả năng kết nối Wifi – đối với nhiều thiết bị thì đó là kết nối duy nhất mà thiết bị sở hữu
Cùng với sự phát triển của các thiết bị như vậy, thì các mạng không dây cũng ngày càng phổ biến, và đóng vai trò quan trọng hơn trước Những mạng không dây với khu vực phủ sóng rất rộng không còn hiếm gặp nữa
Hoàn toàn khác với mạng có dây truyền thống, việc cấu hình và quản lý mạng không dây luôn luôn phải đối mặt với bài toán chống nhiễu và phân hoạch tài nguyên mạng Nếu trong mạng có dây, gần như không có nhiễu hay xung đột giữa hai dây cable mạng, thì việc này lại rất thường gặp trong mạng không dây
Bài toán phân chia tần số nhằm tránh xung đột và tận dụng tối đa tài nguyên mạng
là một bài toán tương đối kinh điển trong mạng không dây
CAPWAP (Control and Provisioning of Wireless Access Points – Quản lý và Cung cấp kết nối cho các điểm truy cập không dây) do tập đoàn Cisco phát triển và hỗ trợ là một bước đột phá mới trong vấn đề này, và đã nhận được khá nhiều sự quan tâm của giới công nghiệp Cisco kỳ vọng sẽ đưa CAPWAP thành chuẩn chung để quản lý các mạng WLAN Tuy nhiên, giao thức này vẫn chỉ ở dạng bản nháp, và đang được tổ chức IETF xúc tiến hết sức khẩn trương để có thể đưa thành chuẩn
Luận văn sẽ nghiên cứu về giao thức CAPWAP, phát triển một sản phẩm demo để xem xét hiệu năng của giao thức, đề xuất các cải tiến và hướng nghiên cứu tiếp theo Luận văn sẽ tập trung vào việc cấu hình tần số phát sóng cho các AP trong mạng không dây được quản trị bởi CAPWAP
Luận văn được tổ chức như sau:
Chương 1, giới thiệu tổng quan về các yêu cầu và vấn đề đặt ra cho giao thức
Trang 9Chương 1 ĐẶT VẤN ĐỀ
1 1 Giới thiệu
Năm 1997, IEEE giới thiệu chuẩn mạng không dây (wireless LANs - WLANs)2
Sau thời gian khởi động chậm chạp, chuẩn 802.11 đã nhanh chóng trở nên quen thuộc
và phổ biến trong cả lĩnh vực công nghiệp và dân dụng
Trong những phiên bản đầu tiên, chuẩn 802.11 chỉ cung cấp một tốc độ truy cập tương đối hạn chế, chỉ có 1 hoặc 2 Mbps, khiến cho việc sử dụng công nghệ không dây tương đối bị hạn chế Tuy nhiên, một số doanh nghiệp đã bắt đầu tiên phong sử dụng 802.11, mặc dù mục đích chủ yếu là để thử nghiệm
Vào năm 1999, IEEE đã thông qua chuẩn 802.11a3
và 802.11b4, tăng băng thông tối
đa của các chuẩn 802.11 lên tương ứng là 54 Mbps và 11Mbps, và sử dụng thêm các dải tần radio Những hạn chế căn bản trong việc ngăn chặn 802.11 trở thành một chuẩn được ứng dụng rộng rãi đã bị gỡ bỏ Tuy nhiên, việc phổ cập 802.11 trong công nghiệp cũng bị giới hạn bởi các đặc tả về chức năng mà chuẩn 802.11 đã mô tả về AP Những đặc tả này yêu cầu việc sử dụng rộng rãi các chức năng chuyển mạch ở lớp 2 của mô hình OSI và các VLAN để đảm bảo sự hoạt động chính xác của các giao thức ở các lớp cao hơn Việc cài đặt một mạng WLAN 802.11 với khoảng vài ngàn AP cũng đã được mô tả trong thời gian này
Tuy nhiên, việc cài đặt mạng WLAN 802.11 trên diện rộng cũng đã dẫn tới các vấn
đề phát sinh, mà chúng ta sẽ xem xét trong mục này Giới nghiên cứu mạng máy tính hẳn sẽ không ngạc nhiên khi bắt gặp vấn đề khi mở rộng mạng LAN, bởi những vấn
đề này cũng đã phát sinh trong những năm đầu thập niên 1980 khi mạng LAN có dây được mở rộng và kết nối với nhau Xử lý việc triển khai một mạng WLAN trên diện rộng là đề tài chủ yếu của luận văn này
Trang 101.2 Mô tả bài toán
Như đã trình bày ở trên, việc triển khai một mạng WLAN trên diện rộng sẽ vấp phải một số vấn đề phát sinh
Đầu tiên, chúng ta có thể, và phải gán địa chỉ IP cho mỗi AP trong mạng WLAN, nên sẽ cần có các chức năng quản lý, giám sát và điều khiển Việc triển khải một mạng WLAN trên diện rộng thông thường sẽ nhân đôi số lượng các thiết bị cơ sở hạ tầng cần được quản lý Đồng nghĩa với đó, là tài nguyên mạng sẽ phải được tăng cường, và trở thành rào cản đối với việc sử dụng mạng WLAN Một phần nguyên nhân là các AP gần nhau thường có cấu hình tương tự nhau – tính chất này không mấy quan trọng trong mạng có dây, nhưng trong môi trường không dây, khi mà các AP có thể di chuyển vị trí, thì tính chất này sẽ dễ dàng dẫn tới việc cấu hình sai và hoạt động sai của mạng WLAN
Thứ hai, phân phối và duy trì một cấu hình thống nhất và phù hợp cho tất cả các AP trong mạng WLAN là một bài toán hóc búa Một cấu hình của AP bao gồm cả các thông tin tĩnh được sử dụng lâu dài, như các thông tin về địa chỉ và cấu hình của phần cứng, cũng như các thông tin mang tính chất động, như cấu hình của mạng WLAN và các tham số bảo mật Một mạng WLAN lớn cần phải cập nhật các thông tin động này cho tất cả các AP trong mạng Một mạng WLAN sẽ có nhiều cấu hình khác nhau, tương ứng với các AP khác nhau, và mạng WLAN cũng phải gửi các cấu hình này tới các AP tương ứng
Thứ ba, như chúng ta đã biết, bản chất của mạng WLAN là tính bất ổn và chia sẻ của kết nối Tính bất ổn của kết nối là một đặc trưng mà mạng WLAN thừa hưởng từ tính chất vật lý của các kết nối không dây, còn các kết nối WLAN có tính chia sẻ bởi
vì chúng ta phải phát sóng trong không gian, và không giống như mạng có dây, khi cable mạng được nối giữa 2 điểm cố định, có rất nhiều các thiết bị khác có thể bắt và truy cập sóng của mạng WLAN Kết nối WLAN được chia sẻ giữa các AP trong cùng một mạng WLAN, giữa các AP khác mạng WLAN, và các thiết bị khác không phải
AP Xử lý một cách hiệu quả vấn đề này cũng là một bài toán khó Các tham số quản
lý mạng WLAN trên mỗi AP phải được theo dõi thường xuyên và điều chỉnh một cách tương tác với nhau để mạng WLAN đạt được hiệu suất tối đa Như vậy, bản thân các
AP cũng phải có sự tương tác với nhau Nếu các công việc theo dõi và hiệu chỉnh này được làm thủ công thì sẽ tiêu tốn rất nhiều thời gian và công sức
Thứ tư, việc bảo mật các thông tin được truyền qua mạng WLAN, cũng như ngăn các AP không được phép truy cập vào mạng, cũng là một thách thức cho các nhà thiết
kế mạng WLAN Xét ví dụ mạng LAN có dây, chúng ta có thể đưa tất cả các thiết bị cần được bảo vệ vào trong một căn phòng, và việc truy cập vào mạng LAN giữa các thiết bị này sẽ cần tới các tấn công về mặt vật lý như là đột nhập Tuy nhiên, điều này
Trang 11bất khả thi trong mạng WLAN Chúng ta không thể giới hạn việc phát sóng không dây, đặc biệt trong các khu vực địa hình phức tạp
Đã có một vài đề xuất từ các hãng công nghiệp nhằm xử lý một số, hoặc tất cả các bài toán được đặt ra ở trên Những đề xuất này bao gồm các công nghệ chuyển mạch, quản lý và điều khiển tập trung, cũng như phát sóng không dây cho các thiết bị có những nền tảng khác nhau Các nhà quản trị mạng đã có nhiều sự lựa chọn hơn, nhưng đồng thời cũng xuất hiện nhu cầu chuẩn hóa các giải pháp này Chương 2 của luận văn
sẽ trình bày tổng quan về các giải pháp này
Xem xét một mô hình thực tế, một mạng WLAN thông thường bao gồm một hoặc nhiều AP có hỗ trợ chuẩn 802.11, và một hoặc nhiều thiết bị điều khiển trung tâm, thông thường được mô tả bằng khái niệm AC Lưu ý rằng, các AP và AC có thể thuộc nhiều hãng khác nhau
Trong khuôn khổ giới hạn của mình, luận văn không thể giải quyết tất cả các bài toán trên, mà chỉ tập trung vào bài toán phân chia tần số trong mạng Wifi, sử dụng giao thức CAPWAP
Trước khi CAPWAP ra đời, các mạng WLAN đều sử dụng các giải pháp thương mại, đồng thời các giải pháp này cũng không tương thích lẫn nhau Nhiệm vụ của CAPWAP là thống nhất và tối ưu các giải pháp quản lý mạng WLAN đã tồn tại
Trang 121.3 Vấn đề bảo mật
Cũng giống như các mạng LAN thông thường, các AP trong mạng WLAN cũng sử dụng mạng này để trao đổi các gói tin, cũng như truy cập Internet CAPWAP cần cung cấp các giải pháp để ngăn ngừa và phòng chống việc sử dụng sai mục đích của các AP Một số yêu cầu có thể kể ra, đó là: tính tinh tưởng, tính tích hợp, và xác thực Những yêu cầu này sẽ dẫn tới quản lý tập trung, giám sát và điều khiển các AP từ AC Một khi mà AC và AP xác thực lẫn nhau thành công, ở mức cơ bản của công việc xác thực sẽ cho phép giám sát, điều khiển và cung cấp truy cập giữa các thiết bị này Nếu
có thể, chúng ta cũng cần thêm các mức xác thực cao hơn, kèm thêm các giải pháp bảo mật ở lớp phần cứng
Nhằm tăng cường khả năng hội tụ của sóng radio, các AP thường được đặt ở các vị trí khó khăn cho giữ gìn, và khả năng AP bị mất cắp hoàn toàn có thể xảy ra Như vậy, CAPWAP cần hỗ trợ việc bảo mật nếu một AP nào đó bị đánh cắp, với các tham số bảo mật vẫn còn lưu trong thiết bị Đương nhiên, chúng ta cần lưu giữ các AC tại các địa điểm an toàn, được bảo vệ vật lý
Trang 13Chương 2 CÁC GIẢI PHÁP TRƯỚC CAPWAP
2.1 Giới thiệu
Mục này sẽ trình bày các kiến trúc và giải pháp đã được các hãng công nghiệp đề xuất trước khi CAPWAP ra đời, qua đó chúng ta thấy rõ hơn mục tiêu chuẩn hóa và thống nhất các giải pháp công nghiệp trong quản lý mạng không dây của CAPWAP Chuẩn 802.11 là chuẩn mạng không dây định nghĩa một giao thức truyền qua không khí giữa các STA và AP Chuẩn 802.11 còn mô tả cách một thiết bị di động có thể tương tác với tập các dịch vụ cơ bản (BSS – Basic Service Set) Một BSS được định danh bởi BSSID (Basic Service Set Identifier) hoặc tên của BSS Kiến trúc mạng WLAN có thể được xem xét như là một dạng kiến trúc kiểu “ô”, trong đó mỗi ô là một BSS, và mỗi BSS được điều khiển bởi một AP Khi hai hoặc nhiều hơn các AP kết nối với nhau thông qua các giao thức broadcast ở tầng 2 và tất cả các AP này đều sử dụng chung một SSID, ta sử dụng khái niệm tập dịch vụ mở rộng (ESS – Extended Service Set)
Chúng ta sử dụng một hệ thống phân tán (DS – Distributed System) để kết nối các BSS với nhau Một AP, về bản chất là một STA, nhưng có thêm chức năng cung cấp truy cập Một mô hình khác, không sử dụng hệ thống phân tán, mà sử dụng hệ thống tập trung, nhằm tích hợp chức năng của mạng WLAN vào mạng LAN có dây truyền thống
Chuẩn 802.11 không định nghĩa cụ thể và tường minh về DS Thay vào đó, chuẩn này định nghĩa các dịch vụ để cung cấp các chức năng cho phép lớp LLC (Link Layer Control) gửi các MSDU (MAC Service Data Unit) giữa hai node trong mạng Những dịch vụ này có thể chia thành 2 nhóm chính: nhóm các dịch vụ trạm SS (Station Service) và nhóm các dịch vụ phân tán DSS (Distribution System Service) Cả hai nhóm dịch vụ này đều được sử dụng bởi các lớp con của tầng 2 trong chuẩn 802.11 Cũng tương tự như với DS, chuẩn 802.11 không định nghĩa cách lập trình và cài đặt các dịch vụ này
Tiếp theo, chúng ta sẽ xem xét ba dạng kiến trúc cơ bản của mạng WLAN sử dụng chuẩn 802.11
Trang 142.2 Kiến trúc tự trị
2.2.1 Giới thiệu
Trong Hình 1, chúng ta thấy một ví dụ về mạng WLAN theo kiến trúc tự trị.Kiến trúc này thực hiện tất cả các chức năng của chuẩn 802.11 trên một thiết bị vật lý, mà chúng ta gọi là WTP – Wireless Termination Point Trong kiến trúc này, WTP sẽ đóng vai trò trung gian chuyển đổi giữa các frame của chuẩn 802.11 và frame của chuẩn 802.3 thông thường
Ethernet switch Ethernet connection
Hình 1 Kiến trúc tự trị mạng WLAN
Chúng ta có thể cấu hình thiết bị WTP vật lý hoạt động như nhiều WTP logic, qua
đó hỗ trợ nhiều hơn một SSID Trong một số trường hợp, việc cấu hình này có thể yêu cầu gắn thêm các tag VLAN cho các frame được gửi từ mạng WLAN tới mạng Ethernet, và đồng thời xóa bỏ các tag của chuẩn 802.1Q
Việc định danh của chuẩn 802.11 trong kiến trúc tự trị có thể được thực hiện tại WTP hoặc sử dụng một server định danh khác
Trang 152.2.2 Bảo mật
Do tất cả chức năng của mạng WLAN được thực hiện bởi WTP, nên các vấn đề về bảo mật cũng sẽ tập trung tại thiết bị này Như vậy, các thiết bị nằm trong cùng BSS với WTP không cần thiết phải tăng cường các chức năng an ninh như là xác thực và
mã hóa WTP sẽ thực hiện các công việc như AAA5 và sinh khóa được quy định trong chuẩn 802.11i
Một vấn đề khác về bảo mật cần được xem xét trong kiến trúc tự trị, là việc xác thực hai chiều giữa WTP và cơ sở hạ tầng Ethernet Đương nhiên, vì đây là nhiệm vụ bảo mật trên mạng Ethernet, nên chúng ta có thể sử dụng các giải pháp có sẵn như giao thức 802.1X dùng để bảo mật kết nối giữa WTP và switch của mạng Ethernet Một vấn đề khác, rất nghiêm trọng, mà chúng ta cần xem xét, là việc WTP có thể bị đánh cắp, trong khi các thông tin về bảo mật vẫn được lưu trong WTP, làm tăng cao các nguy cơ về bảo mật
5
http://en.wikipedia.org/wiki/AAA_protocol
Trang 162.3 Kiến trúc tập trung
Như chúng ta đã xem xét ở trên, nhược điểm cơ bản của kiến trúc tự trị là việc tập trung toàn bộ chức năng của mạng WLAN vào WTP, bao gồm cả việc cung cấp kết nối cũng như quản trị hệ thống WLAN Thay vào đó, trong kiến trúc tập trung, các chức năng của mạng WLAN sẽ được cài đặt trên một hoặc nhiều các thiết bị điều khiển tập trung AC (Access Controller), nhằm tăng cường khả năng giám sát trên mạng diện rộng, khả năng quản lý và cấu hình một cách mềm dẻo
Hình 2 cho chúng ta một ví dụ về kiến trúc tập trung trong mạng WLAN, trong đó một AC sẽ kết nối tới nhiều WTP Kết nối giữa AC và WTP có thể là kết nối trực tiếp, thông qua các switch tầng 2, hoặc thông qua các router tầng 3, như được mô tả tại mục 2.3.1 AC sẽ trao đổi thông tin cấu hình và điều khiển với các WTP, như vậy sẽ cho phép quản trị mạng WLAN từ một điểm tập trung
Interconnection
AC
Hình 2 Kiến trúc tập trung mạng WLAN
Trong hình 2, chúng ta có thể thấy rằng, AC trở thành một thiết bị vật lý duy nhất cung cấp tất cả các chức năng của mạng, và đóng vai trò gần tương tự WTP trong kiến trúc tự trị Tuy nhiên, chúng ta có thể có nhiều AC để phân tán chức năng của thiết bị này Một lý do để chúng ta sử dụng nhiều AC là do những giới hạn về hiệu năng của
Trang 17phần cứng Những thuật toán điều khiển sóng radio phức tạp sẽ tiêu tốn rất nhiều khả năng xử lý của CPU, và yêu cầu những tài nguyên khác nữa như bộ nhớ RAM trên
AC Lưu trữ hay download những file image sẽ yêu cầu tới dung lượng bộ nhớ ngoài
Do đó, phân tán những chức năng của mạng WLAN trên nhiều AC sẽ giúp tận dụng được tài nguyên phần cứng tốt hơn Ngoài ra, chúng ta có thể cài đặt những chức năng khác nhau trên những thiết bị phần cứng đặc thù, nhờ đó làm tăng hiệu năng xử lý Như vậy, trong hình 2, chúng ta có thể coi hình chữ nhật có chữ AC là một tập hợp
về mặt logic các chức năng của WLAN, chứ không phải một thiết bị duy nhất AC có thể tự thực hiện tất cả, hoặc chỉ một số chức năng nhất định, và yêu cầu những chức năng khác (ví dụ, hỗ trợ giao thức SNMP, hay thực hiện các thủ tục xác thực và định danh, …) từ những thiết bị khác
Lý do để chúng ta vẽ duy nhất một AC trong hình 2, là vì chúng ta đang cần mô tả kiến trúc tập trung Lưu ý rằng, chữ “tập trung” ở đây được hiểu với nghĩa quản lý tập trung về mặt logic, chứ không phải tập trung chức năng vào một thiết bị vật lý – đó là kiến trúc tự trị
Trang 18Ethernet LAN
Hình 4 Kết nối giữa WTP và AC thông qua switch
Trang 19Hình 5 Kết nối giữa WTP và AC thông qua router
2.3.2 Ba biến thể của kiến trúc tập trung
Quản lý mạng WLAN một cách linh động và phù hợp là một trong những mục tiêu quan trọng nhất khi đề xuất kiến trúc mạng tập trung Để có thể thỏa mãn một tập hợp lớn nhất những yêu cầu từ phía nhà quản trị mạng, đã xuất hiện các biến thể khác nhau của kiến trúc tập trung Chúng ta sẽ lần lượt xem xét các biến thể này, bao gồm các cách tiếp cận MAC cục bộ (Local MAC), MAC phân chia (Split MAC), và MAC từ
xa (Remote MAC) Với mỗi cách tiếp cận trên, ta sẽ đưa ra đặc trưng ánh xạ của các chức năng khác nhau từ các nhà sản xuất vào các thành phần mạng
Tên gọi của các cách tiếp cận được đưa ra tương ứng với cách mà, các chức năng của lớp MAC, đặc biệt là lớp MAC của chuẩn 802.11 được cài đặt trên các thiết bị thực tế Cái tên MAC cục bộ chỉ ra rằng, các chức năng của lớp MAC được cài đặt tại WTP, trong khi với MAC từ xa, các chức năng này được cài đặt tại AC, còn với MAC phân chia, thì chức năng này được chia ra ở cả WTP và AC Thông thường, trong cách tiếp cận MAC phân chia, các chức năng thời gian thực được thực hiện tại WTP, trong khi các chức năng không yêu cầu nghiêm ngặt về thời gian được thực hiện tại AC Cũng lưu ý rằng, chuẩn 802.11 không đưa ra định nghĩa về các chức năng thời gian thực, và do đó, việc lựa chọn các chức năng để cài đặt tại WTP hay AC hoàn toàn phụ thuộc vào nhà sản xuất Đương nhiên, có những chuẩn mực chung mà các nhà sản xuất đều tuân theo
Bảng 1 tóm tắt ngắn gọn về các biến thể của kiến trúc tập trung
Trang 20CAPWAP CAPWAP CAPWAP
802.11
MAC
WTP
Các chức năng lớp MAC không thời gian thực (Non - realtime)
802.11 MAC
802.11 PHY
Các chức năng lớp MAC thời gian thực
802.11 PHY MAC cục bộ
(Local MAC)
MAC phân chia (Split MAC)
MAC từ xa (Remote MAC)
Bảng 1 Ba biến thể của kiến trúc tập trung
Trang 212.4 Kiến trúc phân tán mạng lưới
Một ví dụ về kiến trúc phân tán mạng lưới (Distributed Mesh Architecture) được trình bày ở Hình 6
wireless link
wireless link
Hình 6 Kiến trúc phân tán lưới
Mỗi một node mesh có thể hoạt động như một AP trong BSS của nó, đồng thời cung cấp kết nối tới node mesh bên cạnh Đương nhiên, cũng có thể tồn tại những node mesh không phục vụ một BSS nào cả, mà chỉ làm nhiệm vụ cung cấp kết nối tới các node mesh khác Như vậy, thay vì phải cung cấp kết nối có dây tới từng AP, chúng
ta đã giảm được độ phức tạp khi thiết lập mạng về mặt vật lý
Các node mesh có thể lưu giữ thông tin trạng thái về node kế bên, cũng như các node xa hơn nữa, bằng cách trao đổi thông tin định kỳ Nhờ đó, kiến trúc phân tán này
hỗ trợ rất tốt cho các cấu hình mạng hay thay đổi Đây cũng là điểm khác nhau căn bản giữa kiến trúc phân tán và kiến trúc tập trung – các chức năng CAPWAP được cài đặt thông qua mạng các node mesh phân tán, chứ không phải thông qua một điểm quản lý tập trung
Trang 22Chương 3 GIAO THỨC CAPWAP
3.1 Tổng quan
Giao thức CAPWAP định nghĩa giao tiếp giữa AC và WTP thông qua các cơ chế giao tiếp của CAPWAP Các thông điệp điều khiển CAPWAP (CAPWAP Control messages), và có thể là các thông điệp dữ liệu CAPWAP (CAPWAP Data messages) được bảo mật bởi giao thức DTLS
Như vậy, tầng giao vận của giao thức CAPWAP bao gồm hai loại thông điệp: thông điệp điều khiển và thông điệp dữ liệu Thông điệp dữ liệu được đóng gói trong các frame của mạng không dây Thông điệp điều khiển là thông điệp quản lý được trao đổi giữa WTP và AC Các gói tin điều khiển và dữ liệu này được gửi bởi các cổng UDP riêng biệt Độ dài tối đa của các thông điệp dữ liệu và điều khiển có thể vượt qua MTU, nên chúng có thể bị phân mảnh
Bước đầu tiên của giao thức CAPWAP là Khám phá (Discovery) Các WTP gửi các thông điệp Discovery Request AC nào nhận được Discovery Request sẽ trả lời bằng thông điệp Discovery Response WTP sẽ lựa chọn giữa các Discovery Response mà nó nhận được, và thiết lập kết nối DTLS tới AC đã được chọn Sau khi kết nối DTLS được thiết lập, hai thiết bị sẽ trao đổi với nhau các thông tin cấu hình
Sau khi các thông tin cấu hình được trao đổi xong, WTP và AC sẽ sử dụng giao thức CAPWAP để đóng gói các frame được truyền giữa hai thiết bị Lưu ý rằng, trong toàn bộ quá trình trao đổi, các packet có thể bị phân mảnh để phù hợp với MTU
Thông qua giao thức CAPWAP, AC gửi các lệnh tới WTP nhằm quản lý các thiết bị đang kết nối với WTP CAPWAP cũng cung cấp các cơ chế nhằm kiểm tra sự tồn tại cũng như kiểm tra kết nối giữa WTP và AC (cơ chế keep – alive)
Trang 233.1.1 Tổng quan về thiết lập phiên làm việc CAPWAP
Hình 6 mô tả quá trình thiết lập và trao đổi thông tin giữa WTP và AC trong giao thức CAPWAP, với giả thiết kết nối được bảo mật bằng giao thức DTLS
<===============================
( - WTP yêu cầu xác thực AC -) Certificate (tùy chọn), ClientKeyExchange, CertificateVerify (tùy chọn), ChangeCipherSpec,
Trang 24Finished*
=========================> ( - AC yêu cầu xác thực WTP -)
ChangeCipherSpec, Finished
<=========================== ( - Phiên làm việc DTLS được khởi tạo -)
Yêu cầu gia nhập
============================>
Trả lời yêu cầu
<============================= [ - Trạng thái gia nhập thành công -] ( - Giả thiết không cần cập nhật cấu hình -)
Yêu cầu tình trạng cấu hình
==============================>
Trả lời tình trạng cấu hình
<============================== [ - Trạng thái cấu hình thành công -] Yêu cầu sự kiện thay đổi trạng thái
===============================> Trả lời sự kiện thay đổi trạng thái
<=============================== [ - Trạng thái kiểm tra dữ liệu thành công -] ( - bước vào trạng thái hoạt động -)
:
Trang 25: Yêu cầu Echo
============================>
Trả lời Echo
<============================
: : Yêu cầu sự kiện
=============================>
Trả lời sự kiện
<==============================
: :
Hình 7 Thiết lập phiên làm việc CAPWAP
Trang 263.1.2 Máy trạng thái của giao thức CAPWAP
Hình 8 Máy trạng thái của giao thức CAPWAP
Trang 27Chú ý rằng máy trạng thái này được sử dụng đồng thời bởi WTP và AC Từng bước chuyển trạng thái sẽ được mô tả chi tiết ở dưới Với mỗi bước chuyển trạng thái, chỉ một thông điệp toàn vẹn mới được chấp thuận để gửi hoặc nhận
Như chúng ta đã biết, mỗi WTP chỉ kết nối với 1 AC, nên sẽ chỉ có 1 máy trạng thái như tại Hình 8 hoạt động trên 1 WTP Với AC, do có kết nối với nhiều WTP tại một thời điểm, nên sẽ có nhiều máy trạng thái cùng hoạt động trên AC Trên AC, chúng ta
có khái niệm các luồng xử lý (thread) hoạt động song song, nhưng cần lưu ý rằng khái niệm thread ở đây chỉ mang tính logic, chứ không phải khái niệm thread trong một ngôn ngữ lập trình cụ thể
Listener Thread: Listener Thread trên AC xử lý các yêu cầu khởi tạo phiên làm việc DTLS Listener Thread được khởi tạo ở trạng thái Setup trên máy trạng thái tại Hình 8 Khi phiên làm việc DTLS đã được thông qua, Listener Thread sẽ khởi tạo một Service Thread tương ứng với phiên làm việc DTLS Discovery Thread: Nhận và xử lý các thông điệp Discovery Request
Service Thread: Mỗi Service Thread đảm nhiệm xử lý một WTP, và tồn tại tới khi kết nối tới WTP bị hủy bỏ
3.1.2.1 Các bước chuyển trạng thái của giao thức CAPWAP
Phần này sẽ mô tả chi tiết các bước chuyển trạng thái trong máy trạng thái của giao thức CAPWAP, đã được trình bày tại Hình 8 Các con số và ký tự được lấy tương ứng
từ Hình 8, nhằm mục đích dễ theo dõi
(0) Start Idle: Xảy ra khi quá trình khởi động thiết bị hoàn tất
WTP: Bước chuyển này được sử dụng để khởi động máy trạng thái CAPWAP trên WTP
AC: Trong bước chuyển này, AC tạo ra Discovery Thread và Listener Thread, cũng như khởi động máy trạng thái
(1) Idle Discovery: Bước chuyển này nhằm hỗ trợ quá trình tìm kiếm của CAPWAP
WTP: chuyển đi thông điệp Discovery Request đầu tiên Đồng thời, WTP sẽ khởi tạo DiscoveryInternalTimer, dùng để xác định khoảng thời gian time-out cho các kết nối tới AC WTP cũng khởi tạo biến DiscoveryCount về giá trị 0, biến này được dùng
để đếm số lần cố gắng kết nối của WTP
AC: Bước chuyển này được thực hiện bởi Discovery Thread, khi Discovery Thread nhận được một thông điệp Discovery Request AC sẽ phản hồi lại Request này
Trang 28(#) Discovery Discovery: WTP xác định AC để kết nối
WTP: Nếu DiscoveryInternalTimer được khởi tạo tại bước (1) kết thúc, WTP sẽ gửi lại các Discovery Request cho các AC Mỗi một lần gửi lại các Discovery Request này, biến DiscoveryCount sẽ được tăng thêm 1 đơn vị
AC: Không tồn tại bước chuyển này
(2) Discovery Idle: Xảy ra trên AC khi quá trình tìm kiếm kết thúc
AC: Không tồn tại bước chuyển này
(@) Sulking Idle: Xảy ra khi WTP tái khởi động tiến trình tìm kiếm
WTP: Khi SilentTimerInterval tới hạn, WTP sẽ thực hiện bước chuyển này
AC: Không tồn tại bước chuyển này
(&) Sulking Sulking: Trạng thái Sulking được thiết kế nhằm làm giảm các cuộc tấn công từ chối dịch vụ
WTP: Không hoạt động
AC: Không tồn tại bước chuyển này
(3) Idle DTLS Setup: Thiết lập phiên làm việc bảo mật DTLS
WTP: Gọi tới lệnh DTLSStart, đồng thời khởi động WaitDTLSTimer Do quá trình tìm kiếm được bỏ qua, ta hiểu rằng WTP đã được cấu hình các AC từ trước
AC: Sau khi chuyển từ trạng thái Start sang trạng thái Idle, Listener Thread sẽ tự động chuyển AC qua trạng thái DTLS Setup, và gọi lệnh DTLSListen, đồng thời khởi động WaitDTLSTimer
(%) Discovery DTLS Setup: Tương tự bước (3)
Trang 29WTP: Tương tự bước (3), tuy nhiên việc thực hiện bước chuyển này là kết quả của quá trình tìm kiếm
AC: Không tồn tại bước chuyển này
($) DTLS Setup Idle: Xảy ra khi quá trình thiết lập kết nối DTLS thất bại
WTP: WTP thực hiện bước chuyển này khi nhận được cảnh báo DTLSEstablishFail
từ DTLS, và 2 biến đếm FailedDTLSSessionCount hoặc FailedDTLSAuthFailCount chưa đạt tới giá trị MaxFailedDTLSSessionRetry WTP cũng thực hiện bước chuyển này khi WaitDTLSTimer tới hạn
AC: Không tồn tại bước chuyển này
(*) Sulking Sulking: Khi các nỗ lực kết nối DTLS của WTP thất bại vượt quá số lần cho phép
WTP: WTP thực hiện bước chuyển này khi 1 trong 2 biến đếm FailedDTLSSessionCount hoặc FailedDTLSAuthFailCount đạt tới giá trị MaxFailedDTLSSessionRetry Khi bước vào trạng thái Sulking, WTP khởi động SilentIntervalTimer
AC: Không tồn tại bước chuyển này
(4) DTLS Setup DTLS Setup: Khi việc thiết lập phiên làm việc DTLS thất bại WTP: Không tồn tại bước chuyển này
AC:Listener Thread thực hiện bước chuyển này khi nhận được cảnh báo DTLSEstablishFail từ DTLS Listener Thread tăng biến đếm FailedDTLSSessionCount lên 1, và gọi tới lệnh DTLSListen
(5) DTLS Setup Authorize: Bước chuyển này xảy ra khi một phiên làm việc DTLS được khởi tạo, và cần được xác thực
WTP: Bước chuyển này xảy ra khi WTP nhận được thông báo DTLSPeerAuthorize Chi tiết về quá trình xác thực sẽ được trình bày ở các mục sau
AC: Module DTLS trên AC sẽ khởi tạo thông báo DTLSPeerAuthorize, và sau đó bước chuyển này sẽ được kiểm soát bởi Listener Thread Listener Thread sẽ sử dụng hàm fork để tạo ra 1 bản copy của Service Thread, sau đó Service Thread mới tạo này
sẽ tiến hành việc xác thực với WTP
(6) Authorize DTLS Setup: Listener Thread sẽ thực hiện bước chuyển này để kích hoạt chức năng lắng nghe các phiên làm việc mới
WTP: Không tồn tại bước chuyển này
Trang 30AC: Bước chuyển này xảy ra khi Listener Thread tạo ra Service Thread, sau đó gọi lệnh DTLSListen
(a) Authorize DTLS Connect: Bước chuyển này diễn ra để thông báo cho stack DTLS rằng phiên làm việc đã được khởi tạo
WTP: Bước chuyển này diễn ra khi WTP đã xác thực thành công AC WTP sẽ gọi lệnh DTLSAccept để kết thúc bước chuyển
AC: Bước chuyển này diễn ra khi AC xác thực WTP thành công AC cũng gọi lệnh DTLSAccept để kết thúc bước chuyển
(b) Authorize DTLS Teardown: Bước chuyển này diễn ra để thông báo cho stack DTLS biết rằng phiên làm việc đã bị hủy bỏ
WTP: Bước chuyển này diễn ra khi WTP không thể xác thực AC WTP sẽ gọi lệnh DTLSAbortSession Bước chuyển này cũng có thể diễn ra khi WaitDTLSTimer tới hạn WTP sẽ khởi động DTLSSessionDeleteTimer
AC: Tương tự, bước chuyển này diễn ra khi AC không thể xác thực WTP, hoặc WaitDTLSTimer tới hạn AC cũng gọi lệnh DTLSAbortSession và sau đó khởi động DTLSSessionDeleteTimer
(c) DTLS Connect DTLS Teardown: Bước chuyển này xảy ra khi việc khởi tạo phiên làm việc DTLS thất bại
WTP: Xảy ra khi WTP nhận được thông báo DTLSAborted hoặc DTLSAuthenticateFail, hoặc WaitDTLSTimer tới hạn Tương ứng, WTP sẽ tăng các biến đếm FailedDTLSSessioncount hoặc FailedDTLSAuthFailCount, và khởi động DTLSSessionDeleteTimer
AC: Xảy ra khi AC nhận được thông báo DTLSAborted hoặc DTLSAuthenticateFail, và 2 biến đếm FailedDTLSSessionCount và FailedDTLSAuthFailCount chưa đạt tới giá trị MaxFailedDTLSSessionRetry Bước chuyển này cũng xảy ra trên AC khi WaitDTLSTimer tới hạn, và AC khởi động DTLSSessionDeleteTimer
(d) DTLS Connect Join: Bước chuyển này xảy ra khi phiên làm việc DTLS được khởi tạo thành công
WTP: Bước chuyển này xảy ra khi WTP nhận được thông báo DTLSEstablished Khi đó, biến đếm FailedDTLSSessionCount được xác định giá trị về 0 WTP chuyển vào trạng thái Join bằng cách truyền đi Join Request tới AC WTP ngừng WaitDTLSTimer
Trang 31AC: Bước chuyển này xảy ra khi AC nhận được thông báo DTLSEstablished AC xác định lại FailedDTLSSessionCount về 0, dừng WaitDTLSTimer, và khởi động WaitJoinTimer
(e) Join DTLS Teardown: Bước chuyển này xảy ra khi tiến trình Join thất bại WTP: Bước chuyển này xảy ra khi WTP nhận được thông điệp Join Response với Result Code chứa lỗi, hoặc WTP nhận được một trong các thông báo: DTLSAborted, DTLSReassemblyFailure, hoặc DTLSPeerDisconnect WTP sẽ gọi lệnh DTLSShutdown, và khởi động DTLSSessionDeleteTimer
AC: Bước chuyển này xảy ra khi WaitJoinTimer tới hạn, hoặc AC trả về thông điệp JoinRespone với mã lỗi cho WTP AC gọi lệnh DTLSShutdown AC cũng thực hiện bước chuyển khi nhận được một trong các thông báo: DTLSAborted, DTLSReassemblyFailure, hoặc DTLSPeerDisconnect, và sau đó sẽ khởi động DTLSSessionDeleteTimer
(f) Join Image Data: Bước chuyển này được sử dụng bởi WTP và AC để download firmware
WTP: WTP bước vào trạng thái Image Data khi nó nhận được một thông điệp Join Respone với trạng thái thành công, và xác định được phiên bản của firmware trong thông điệp khác với phiên bản mà WTP đang có, cũng như trong các bộ nhớ khác mà WTP có thể truy cập WTP khởi tạo EchoIntervaltimer, và gửi ImageDataRequest tới
AC, để yêu cầu bắt đầu việc download firmware
AC: Khi AC nhận được ImageDataRequest từ WTP thì AC sẽ thực hiện bước chuyển này AC bắt buộc phải trả lời bằng ImageDataRespone cho WTP
(g) Join Configure: WTP và AC sử dụng bước chuyển này để trao đổi các thông tin cấu hình
WTP: WTP bước vào trạng thái Configure khi nó nhận được JoinRespone với mã thành công, và xác định được rằng nó không cần cập nhật firmware WTP sẽ gửi thông điệp ConfigurationStatusRequest tới AC trong đó mô tả chi tiết cấu hình hiện tại của WTP
AC: Bước chuyển này xảy ra khi AC nhận được ConfigurationStatusRequest từ WTP AC ngừng WaitJoinTimer AC sẽ gửi đi ConfigurationStatusRespone, và khởi động ChangeStatePendingTimer
(h) Configure Reset: Bước chuyển này được sử dụng để reset kết nối giữa WTP
và AC, có thể bởi vì xuất hiện lỗi trong quá trình kết nối, cũng có thể vì WTP cần khởi động lại để các cấu hình mới có hiệu lực
Trang 32WTP: WTP thực hiện bước chuyển này khi nó nhận được một ConfigurationStatusRespone thông báo lỗi, hoặc WTP cần khởi động lại để áp dụng các cấu hình mới
AC: AC bước vào trạng thái Reset khi nó nhận được ChangeStateEvent từ WTP, hoặc ChangeStatePendingTimer tới hạn
(i) Configure DTLS Teardown: Bước chuyển này xảy ra khi tiến trình cấu hình
bị hủy bởi lỗi DTLS
WTP: WTP bước vào trạng thái này khi nó nhận được một trong các thông báo sau của DTLS: DTLSAborted, DTLSReassemblyFailure, DTLSPeerDisconnect WTP cũng có thể thực hiện bước chuyển này nếu nó thường xuyên nhận được thông báo DTLSDecapFailure WTP khởi động DTLSSessionDeleteTimer
AC: AC bước vào trạng thái này khi nó nhận được một trong các thông báo sau của DTLS: DTLSAborted, DTLSReassemblyFailure, DTLSPeerDisconnect, hoặc có thể thực hiện bước chuyển khi thường xuyên nhận được thông báo DTLSDecapFailure
AC cũng khởi động DTLSSessionDeleteTimer
(j) Image Data Image Data: Trạng thái Image Data được sử dụng bởi WTP và
AC trong suốt quá trình download firmware
WTP: WTP bước vào trạng thái Image Data khi nó nhận được thông điệp ImageDataResponse, có nghĩa rằng AC vẫn còn dữ liệu chưa gửi Bước chuyển này cũng xảy ra khi WTP nhận được các ImageDataRequest kế tiếp, khi đó WTP sẽ reset giá trị của ImageDataStartTimer để chắc chắn rằng ImageDataRequest tiếp theo sẽ được gửi từ AC Bước chuyển này cũng có thể xảy ra khi EchoIntervalTimer tới hạn, trong trường hợp WTP gửi EchoRequest và reset EchoIntervalTimer Bước chuyển này cũng có thể xảy ra khi WTP nhận EchoResponse từ AC
AC: Bước chuyển trạng thái này xảy ra khi AC nhận được thông điệp ImageDataResponse từ WTP trong khi AC đang ở trạng thái Image Data Bước chuyển trạng thái này cũng xảy ra khi AC nhận EchoRequest từ WTP, trong trường hợp nó trả lời bằng EchoResponse, và reset EchoIntervalTimer
(k) Image Data Reset: Bước chuyển này được sử dụng để reset kết nối DTLS trước khi khởi động lại WTP sau khi download firmware
WTP: Khi quá trình download hoàn tất, hoặc ImageDataStartTimer tới hạn, WTP bước vào trạng thái Reset WTP có thể chuyển tới trạng thái này nếu nhận được thông báo lỗi qua ImageDataRequestRespone từ AC