TỔNG QUAN
Giới thiệu đề tài
Trong kiến trúc mạng truyền thống, thành phần chuyển tiếp dữ liệu và thành phần điều khiển đều nằm trên một thiết bị vật lý, dẫn đến sự phức tạp khi số lượng thiết bị tăng lên Điều này gây khó khăn cho quản trị mạng trong quá trình vận hành và điều khiển Để khắc phục vấn đề này, một kiến trúc mạng mới đã được phát triển, tách rời phần chuyển tiếp dữ liệu và phần điều khiển Nhiệm vụ điều khiển mạng được thực hiện bởi các bộ điều khiển, cho phép thao tác trực tiếp với phần cứng và chức năng của các thiết bị định tuyến và chuyển mạch Kết quả là mạng trở nên linh hoạt, hiệu suất cao và dễ quản lý hơn.
Với sự phát triển nhanh chóng của công nghệ, các ứng dụng hiện nay yêu cầu tính di động và ảo hóa để quản lý tập trung, đồng thời phải nhanh chóng thích ứng với nhu cầu người dùng Hệ thống mạng truyền thống không còn đáp ứng đủ yêu cầu này Việc chuyển đổi từ IPv4 sang IPv6 đã bắt đầu hơn một thập kỷ trước nhưng vẫn chưa hoàn tất, trong khi IPv6 chỉ là một bản cập nhật giao thức Để phù hợp với các mạng IP hiện tại, cần có một giao thức định tuyến mới.
Việc thiết kế, đánh giá và triển khai kiến trúc Internet mới hoàn toàn có thể mất từ 5 đến 10 năm, và việc thay thế IP hiện tại được coi là một nhiệm vụ khó khăn, thậm chí không khả thi trong thực tế.
Mạng định nghĩa bằng phần mềm (SDN) là một khái niệm mới nhưng kế thừa các ý tưởng từ mạng truyền thống, được xây dựng dựa trên các mạng có thể lập trình như Mạng - chế độ truyền không đồng bộ (ATM) SDN cho phép tách biệt phần điều khiển mạng (Control Plane) với chức năng vận chuyển dữ liệu (Forwarding Plane hay Data Plane), tương tự như giao thức điều khiển mạng (NCP).
Mạng định nghĩa bằng phần mềm (SDN) cho phép điều khiển tập trung tại lớp điều khiển, tách biệt giữa phần điều khiển mạng và chức năng vận chuyển dữ liệu Điều này tạo điều kiện cho việc lập trình mạng trở nên dễ dàng hơn và giúp cơ sở hạ tầng mạng độc lập với các ứng dụng và dịch vụ Người dùng có thể cấu hình thiết bị mạng mà không cần trực tiếp tiếp xúc, chỉ cần sử dụng giao diện lập trình ứng dụng (API) để xây dựng ứng dụng cho toàn bộ hệ thống mạng.
Hiện nay, SDN (Software-Defined Networking) đang thu hút sự chú ý lớn trong nghiên cứu và ứng dụng nhờ vào khả năng quản lý tập trung và logic, cho phép kiểm soát chuyển tiếp trên các thiết bị như router và switch Công nghệ SDN hứa hẹn mang lại hiệu quả vượt trội so với mạng truyền thống, cả về hoạt động lẫn quản lý mạng.
Nhu cầu nghiên cứu và giảng dạy về công nghệ mạng SDN ngày càng tăng, nhưng chi phí thiết bị mạng hỗ trợ SDN như router và switch vẫn rất cao Do đó, việc sử dụng các công cụ giả lập mã nguồn mở trở thành giải pháp hiệu quả Bài viết này tập trung vào việc triển khai và thử nghiệm các mô hình mạng SDN thông qua công cụ mô phỏng Mininet, nhằm so sánh và đánh giá hiệu quả triển khai trên nhiều môi trường phần cứng và các bộ điều khiển khác nhau.
Mục tiêu đề tài
Mục tiêu của đề tài là triển khai các mô hình mạng SDN (gồm mô hình mạng đơn, mạng cây và mạng tuyến tính) trên nền tảng Mininet, sử dụng mã nguồn mở Đề tài sẽ thử nghiệm trên nhiều môi trường phần cứng khác nhau, bao gồm môi trường ảo hóa và máy tính Raspberry Pi, với các bộ điều khiển như bộ điều khiển mặc định, POX và Ryu Qua đó, nghiên cứu sẽ đánh giá các mô hình mạng SDN với số nút mạng khác nhau dựa trên các tiêu chí như thời gian thực thi và khả năng đáp ứng.
Nội dung thực hiện
Bài viết này đánh giá khả năng mở rộng của công cụ mô phỏng Mininet trong việc thực thi các mô hình mạng Thời gian thực thi từ lúc khởi động đến khi dừng của các mô hình mạng sẽ được so sánh trên hai môi trường phần cứng khác nhau, cụ thể là máy tính sử dụng VirtualBox Oracle VM và máy tính Raspberry Pi 3, cùng với các bộ điều khiển khác nhau Đề tài cũng thực hiện cài đặt công cụ Mininet và lập trình điều khiển bằng ngôn ngữ Python.
Các mô hình mạng được áp dụng trong thử nghiệm bao gồm mô hình mạng đơn, mô hình mạng cây và mô hình mạng tuyến tính Ngoài ra, các bộ điều khiển SDN được sử dụng trong nghiên cứu này gồm bộ điều khiển mặc định, bộ điều khiển POX và bộ điều khiển Ryu.
Một số nghiên cứu liên quan
Nghiên cứu của Faris Keti và Shavan Askar đã mô phỏng mạng SDN bằng Mininet trên hai máy tính với cấu hình khác nhau, nhằm so sánh thời gian thực thi khi tạo mô hình mạng cây với số nút mạng khác nhau Vipin Gupta, Karamjeet Kaur và Sukhveer Kaur đã chỉ ra rằng việc sử dụng Raspberry Pi làm bộ chuyển mạch SDN không chỉ tiết kiệm chi phí mà còn mang lại tính di động, mở ra khả năng thử nghiệm SDN với các thiết bị chuyển mạch và máy chủ lưu trữ trong tương lai Một nghiên cứu khác của Jehad Ali, Seungwoon Lee và Byeong-hee Roh đã phân tích hiệu suất của các bộ điều khiển POX và Ryu, cho thấy Ryu có hiệu suất vượt trội hơn.
Đóng góp của luận văn
Nghiên cứu đã tiến hành đánh giá mô phỏng mạng SDN bằng công cụ Mininet, thông qua việc so sánh thời gian thực thi trên hai môi trường phần cứng khác nhau Kết quả cho thấy sự khác biệt trong hiệu suất giữa các nền tảng, từ đó cung cấp cái nhìn sâu sắc về khả năng tối ưu hóa mạng SDN trong các điều kiện phần cứng khác nhau.
Các thử nghiệm khả năng mở rộng trong môi trường ảo hóa và máy tính Raspberry Pi đã được thực hiện trên ba mô hình mạng: mô hình mạng đơn, mô hình mạng cây và mô hình mạng tuyến tính, sử dụng các bộ điều khiển như bộ điều khiển mặc định, POX và Ryu Kết quả cho thấy rằng thông số môi trường phần cứng và số nút mạng trong mô hình có ảnh hưởng đến thời gian thực thi của cả ba kiểu mô hình Mặc dù vậy, cả hai môi trường mô phỏng đều đáp ứng tốt cho việc giả lập mạng SDN, phục vụ cho nghiên cứu và học tập, ngay cả khi số nút mạng lớn.
Các nghiên cứu tiếp theo sẽ tiếp tục đánh giá hiệu suất của các mô hình mạng SDN, tập trung vào băng thông, khả năng định tuyến và chuyển tiếp gói tin trong các môi trường giả lập và với các bộ điều khiển khác nhau.
MẠNG ĐỊNH NGHĨA BẰNG PHẦN MỀM
Định nghĩa SDN
Kiến trúc mạng SDN hiện có nhiều định nghĩa khác nhau, nhưng theo tổ chức phi lợi nhuận Open Networking Foundation (ONF), định nghĩa về SDN được công nhận là một tiêu chuẩn quan trọng trong việc phát triển, tiêu chuẩn hóa và thương mại hóa công nghệ này.
Mạng được định nghĩa bằng phần mềm (SDN) là một kiến trúc mạng tiên tiến, trong đó phần điều khiển mạng (Control Plane) và chức năng vận chuyển dữ liệu (Data Plane) được tách biệt Kiến trúc này cho phép phần điều khiển mạng có khả năng lập trình trực tiếp, mang lại sự linh hoạt và hiệu quả trong quản lý mạng.
SDN được xác định bởi hai đặc điểm chính: tách rời phần điều khiển mạng (Control Plane) khỏi chức năng vận chuyển dữ liệu (Data Plane) và khả năng lập trình trên phần điều khiển Mặc dù vậy, những đặc điểm này không hoàn toàn mới mẻ trong kiến trúc mạng.
Nhiều nghiên cứu trước đây đã được thực hiện nhằm cải thiện khả năng lập trình mạng, trong đó có việc điều khiển mạng theo thời gian thực thông qua phần mềm Một ví dụ điển hình là SwitchWare, giải pháp cho phép các gói dữ liệu truyền qua mạng và linh hoạt điều chỉnh hoạt động của mạng Ngoài ra, các bộ định tuyến phần mềm trên phần cứng PC thông thường như Click, XORP, Quagga và BIRD cũng nhằm mục tiêu phát triển các bộ định tuyến có thể mở rộng bằng cách lập trình các thiết bị mạng.
Trong thập kỷ qua, ý tưởng tách rời phần điều khiển mạng (Control Plane) và chức năng vận chuyển dữ liệu (Data Plane) đã trở nên phổ biến Năm 2004, Caesar và cộng sự giới thiệu nền tảng điều khiển định tuyến (Routing Control Platform - RCP), thay thế giao thức BGP bằng điều khiển định tuyến tập trung nhằm giảm độ phức tạp trong tính toán đường đi Cùng năm, IETF ra mắt bộ khung phân tách phần điều khiển mạng và phần chuyển tiếp dữ liệu (ForCES).
Đã có 15 kiến trúc đường dẫn tính toán yếu tố (PCE) được phát triển để tính toán các đường dẫn chuyển tiếp trong mạng MPLS và GMPLS Năm 2007, Casado và cộng sự giới thiệu một thiết bị chuyển mạch Ethernet với bộ điều khiển tập trung để quản lý luồng Nguyên tắc tách rời phần điều khiển mạng và chức năng vận chuyển dữ liệu đã được nghiên cứu và áp dụng rộng rãi trong công nghệ mạng hiện nay Các sản phẩm thương mại như bộ định tuyến Cisco ASR 1000 và bộ chuyển mạch Nexus 7000 cũng đã áp dụng mô hình tách rời này, giúp tối ưu hóa hiệu suất mạng.
Mạng định nghĩa bằng phần mềm (SDN) nổi bật với khả năng lập trình nhờ vào việc tách biệt phần điều khiển mạng và chức năng vận chuyển dữ liệu Thay vì tạo ra các thiết bị mạng phức tạp như trong mạng truyền thống, SDN cung cấp các thiết bị mạng lập trình đơn giản Kiến trúc của SDN cho phép điều khiển mạng thực hiện riêng biệt trên bộ điều khiển mà không ảnh hưởng đến luồng dữ liệu, giúp tách rời bộ não của mạng khỏi các thiết bị chuyển mạch Điều này cho phép các thiết bị chuyển mạch được điều khiển bên ngoài bằng phần mềm mà không cần cấu hình trực tiếp, mang lại môi trường lập trình đơn giản và linh hoạt hơn cho phần mềm bên ngoài trong việc xác định mạng.
Kiến trúc của mạng SDN
Kiến trúc của SDN bao gồm ba lớp riêng biệt: lớp ứng dụng, lớp điều khiển và lớp cơ sở hạ tầng Lớp ứng dụng (Application layer) chịu trách nhiệm cho các dịch vụ và ứng dụng mạng, trong khi lớp điều khiển (Control layer) quản lý và điều phối hoạt động của mạng Cuối cùng, lớp cơ sở hạ tầng (Infrastructure layer) đảm nhận vai trò chuyển tiếp dữ liệu trong mạng.
Lớp ứng dụng (Application layer)
Các ứng dụng kinh doanh hoạt động trên mạng và kết nối với lớp điều khiển qua API, cho phép lập trình và cấu hình lại mạng Điều này bao gồm việc điều chỉnh các tham số như độ trễ, băng thông và định tuyến thông qua lớp điều khiển.
Lớp ứng dụng cung cấp giao diện lập trình mở, cho phép nhà cung cấp dịch vụ điện toán đám mây tự động hóa các dịch vụ đám mây công cộng Điều này giúp các tổ chức và doanh nghiệp dễ dàng triển khai và tận dụng các giải pháp đám mây linh hoạt và hiệu quả.
“Đám mây ảo” được tách biệt nhờ vào hạ tầng cơ sở đám mây công cộng tự phục vụ, cho phép người dùng kiểm soát toàn bộ các dịch vụ và ứng dụng mới.
2.2.1 Lớp điều khiển (Control layer)
Các bộ điều khiển mạng đóng vai trò quan trọng trong việc điều chỉnh cấu hình mạng theo yêu cầu từ lớp ứng dụng và khả năng của mạng Chúng có thể là phần mềm lập trình, giúp kết nối và điều khiển lớp hạ tầng mạng hiệu quả.
Hình 2.1: Kiến trúc của SDN [1]
17 khiển sử dụng các giao thức như OpenFlow, ONOS, NETCONF, SNMP hoặc thông qua các cơ chế riêng biệt [1]
2.2.2 Lớp cơ sở hạ tầng (Infrastructure latyer)
Thiết bị mạng, bao gồm cả vật lý và ảo hóa, thực hiện việc chuyển tiếp gói tin dưới sự điều khiển của lớp điều khiển Mỗi thiết bị có thể được điều khiển bởi nhiều bộ điều khiển khác nhau, điều này góp phần nâng cao khả năng ảo hóa của mạng.
Như vậy Kiến trúc mạng SDN được định nghĩa với 4 trụ cột (Hình 2.2)
Phần điều khiển và phần chuyển tiếp dữ liệu của thiết bị mạng hiện nay đã được tách rời, không còn gắn liền như trước Chức năng điều khiển đã được loại bỏ khỏi các thiết bị mạng, giúp chúng tập trung vào việc vận chuyển gói tin một cách đơn giản và hiệu quả hơn.
Các thiết bị mạng quyết định chuyển tiếp dữ liệu dựa trên luồng dữ liệu thay vì địa chỉ MAC hoặc IP Luồng dữ liệu là tập hợp các gói tin được chuyển từ thiết bị nguồn đến thiết bị đích, với các chính sách dịch vụ giống nhau áp dụng cho tất cả gói tin Kiến trúc SDN sử dụng giao thức OpenFlow cho phép thống nhất hành vi của nhiều loại thiết bị mạng như bộ định tuyến, bộ chuyển mạch và tường lửa Việc lập trình luồng dữ liệu mang lại sự linh hoạt cao hơn, với khả năng thực thi dựa trên bảng luồng dữ liệu Điều khiển logic được chuyển giao cho bộ điều khiển SDN hoặc hệ điều hành mạng (NOS), một nền tảng phần mềm trên máy chủ cung cấp các tài nguyên và mức độ trừu tượng cần thiết cho việc lập trình thiết bị chuyển tiếp.
Mô hình quản lý tập trung logic và sơ đồ tổng quát của hệ thống mạng ảo đóng vai trò quan trọng, tương tự như một hệ điều hành truyền thống Mục đích chính của nó là tối ưu hóa hiệu suất và quản lý tài nguyên một cách hiệu quả.
Mạng có thể lập trình thông qua phần mềm ứng dụng chạy trên hệ điều hành mạng (NOS), cho phép tương tác hiệu quả với các thiết bị chuyển tiếp dữ liệu Đây là một đặc điểm cơ bản của Mạng Định Nghĩa Phần Mềm (SDN) và được coi là giá trị cốt lõi nhất của công nghệ này.
Những điểm khác nhau cơ bản giữa mạng truyển thống và mạng SDN
Trong mạng truyền thống, phần điều khiển mạng và phần vận chuyển dữ liệu đều tích hợp trong thiết bị mạng Ngược lại, trong mạng định nghĩa bằng phần mềm (SDN), phần điều khiển mạng được tách biệt khỏi thiết bị mạng và chuyển đến một vị trí khác, được gọi là bộ điều khiển SDN.
Hình 2.2: Kiến trúc tổng quan mạng SDN [2]
Trong mạng truyền thống, việc thu thập và xử lý thông tin diễn ra ở tất cả các phần tử trong mạng, trong khi ở mạng định nghĩa bằng phần mềm (SDN), quy trình này được tập trung tại bộ điều khiển SDN Mạng truyền thống kết hợp phần điều khiển và phần vận chuyển dữ liệu trên một thiết bị vật lý, dẫn đến việc không thể lập trình bằng ứng dụng và yêu cầu cấu hình thủ công cho từng thiết bị Ngược lại, mạng SDN tách biệt phần điều khiển khỏi phần vận chuyển dữ liệu, cho phép lập trình mạng thông qua các ứng dụng và bộ điều khiển SDN có khả năng tương tác với tất cả các thiết bị trong mạng.
Phần điều khiển mạng được tập trung tại bộ điều khiển SDN, cho phép các thiết bị phần cứng không cần xử lý giao thức phức tạp mà chỉ cần vận chuyển dữ liệu theo chỉ huy của bộ điều khiển Nhờ vào bộ điều khiển SDN, nhà khai thác và quản trị mạng có thể lập trình cấu hình một cách hiệu quả, thay vì thực hiện thủ công hàng ngàn lệnh trên từng thiết bị Điều này mang lại khả năng triển khai ứng dụng và dịch vụ mạng nhanh chóng, linh hoạt.
2.4 Những ƣu điểm và những hạn chế của mạng SDN
Mạng định nghĩa bằng phần mềm SDN tách biệt phần điều khiển và chức năng vận chuyển dữ liệu, cho phép kiểm soát mạng tốt hơn thông qua lập trình SDN không chỉ chuyển tiếp gói ở cấp chuyển đổi mà còn điều chỉnh ở mức liên kết dữ liệu, phá vỡ rào cản của các lớp mạng Với khả năng thu thập trạng thái mạng tức thời, SDN cho phép kiểm soát tập trung thời gian thực dựa trên trạng thái mạng và chính sách người dùng, từ đó tối ưu hóa cấu hình và cải thiện hiệu suất mạng Ưu điểm của SDN được thể hiện rõ qua việc cung cấp nền tảng thuận tiện để thử nghiệm các kỹ thuật và thiết kế mạng mới nhờ khả năng lập trình và tạo ra các mạng ảo bị cô lập.
Nâng cao cấu hình mạng là một yếu tố quan trọng trong quản lý mạng, đặc biệt khi thêm thiết bị mới vào hệ thống Cấu hình phù hợp giúp đồng bộ hóa mạng và tối ưu hóa hiệu suất, nhưng sự không đồng nhất giữa các nhà sản xuất thiết bị dẫn đến việc cấu hình thủ công tốn thời gian và dễ xảy ra lỗi Đầu tư khắc phục sự cố mạng do lỗi cấu hình cũng là một gánh nặng Mạng SDN (Software-Defined Networking) giải quyết vấn đề này bằng cách hợp nhất phần điều khiển mạng trên các thiết bị như bộ chuyển mạch, bộ định tuyến, NAT, tường lửa và bộ cân bằng tải Điều này cho phép tự động cấu hình và quản lý mạng từ một bộ điều khiển SDN duy nhất, giúp tối ưu hóa mạng theo chương trình dựa trên trạng thái hiện tại.
Cải thiện hiệu suất mạng là một mục tiêu quan trọng nhằm tối đa hóa việc sử dụng cơ sở hạ tầng đã đầu tư Tuy nhiên, việc tối ưu hóa hiệu suất toàn bộ mạng gặp khó khăn do sự tồn tại của nhiều công nghệ và bên liên quan khác nhau Các phương pháp hiện tại thường chỉ tập trung vào một số mạng con, dẫn đến hiệu suất không tối ưu Sự xuất hiện của mạng SDN (Software-Defined Networking) mang đến cơ hội mới để cải thiện hiệu suất trên toàn mạng thông qua điều khiển tập trung và chia sẻ thông tin giữa các lớp trong kiến trúc mạng Điều này giúp quản lý các vấn đề tối ưu hóa phức tạp hơn nhờ vào các thuật toán tập trung được thiết kế hợp lý Các giải pháp mới như lập lịch lưu lượng, kiểm soát tắc nghẽn, định tuyến gói, cân bằng tải, và cải thiện chất lượng dịch vụ (QoS) có thể được phát triển và triển khai dễ dàng, từ đó xác minh hiệu quả trong việc nâng cao hiệu suất mạng.
Sự đổi mới trong mạng hiện nay cần được khuyến khích thay vì chỉ dự đoán và đáp ứng yêu cầu của các ứng dụng tương lai Tuy nhiên, việc triển khai và thử nghiệm các ý tưởng mới thường gặp khó khăn do rào cản từ phần cứng độc quyền Các thử nghiệm hiện tại thường đơn giản hóa và không đủ khả năng để thích ứng với thiết kế mạng mới SDN (Mạng Định Nghĩa Phần Mềm) hỗ trợ đổi mới bằng cách cung cấp nền tảng mạng có thể lập trình, cho phép thực hiện và thử nghiệm các ý tưởng, ứng dụng và dịch vụ mới một cách linh hoạt Khả năng cấu hình cao của SDN tạo ra sự phân tách giữa các mạng ảo, cho phép thử nghiệm trong môi trường thực tế, và việc triển khai các ý tưởng mới có thể chuyển tiếp liền mạch từ giai đoạn thử nghiệm sang giai đoạn vận hành.
Kiến trúc mạng SDN cho phép lập trình trực tiếp các bộ điều khiển, giúp điều chỉnh và thay đổi cấu hình mạng một cách dễ dàng mà không cần can thiệp trực tiếp vào thiết bị mạng Với việc quản lý tập trung thông qua bộ điều khiển, việc cấu hình hạ tầng có thể được thực hiện trên lớp ứng dụng và truyền đạt xuống các lớp bên dưới SDN còn giúp ảo hóa thiết bị mạng, từ đó giảm thiểu chi phí mua sắm phần cứng cho các dịch vụ mạng Nhờ vào khả năng lập trình cao, kiến trúc mạng SDN hỗ trợ người dùng trong việc thiết kế, triển khai, quản lý và mở rộng mạng một cách hiệu quả Sự phát triển mạnh mẽ của SDN trong những năm gần đây đã tạo cơ hội cho các doanh nghiệp cung cấp thiết bị mạng, khi phần điều khiển được tách rời khỏi phần cứng.
Hiện nay, bảo mật trở thành một thách thức lớn đối với công nghệ mạng SDN, khi mà SDN được quản lý tập trung thông qua một bộ điều khiển duy nhất.
Mục tiêu chính của tin tặc là bộ điều khiển mạng, và khi họ xâm nhập thành công vào hệ thống này, họ có khả năng chiếm toàn bộ quyền điều khiển mạng.
Việc chuyển đổi từ hệ thống mạng truyền thống sang hệ thống mạng mới, như SDN, sẽ là một quá trình dài và phức tạp, tương tự như ảo hóa Một thách thức lớn là khả năng tương thích để tích hợp các giải pháp SDN vào mạng hiện tại, khi mà hạ tầng mạng truyền thống và kiến trúc mạng phi tập trung có sự khác biệt rõ rệt Điều này đặt ra câu hỏi cho các nhà nghiên cứu về khả năng thực hiện công nghệ SDN, đặc biệt khi thị trường trung tâm dữ liệu vẫn đang trì trệ.
Mạng SDN hứa hẹn sẽ mang lại cấu hình nâng cao và hiệu suất cải thiện, đồng thời khuyến khích đổi mới, nhưng vẫn đang ở giai đoạn sơ khai Nhiều vấn đề cơ bản vẫn chưa được giải quyết triệt để, dẫn đến những thách thức trong việc phát triển công nghệ này.
Vấn đề bảo mật rất quan trọng, vì nếu tin tặc xâm nhập vào hệ thống, họ có khả năng truy cập và thay đổi các thiết lập từ bất kỳ địa điểm và thời gian nào.
Quá trình triển khai mạng SDN diễn ra từng bước và kéo dài, không thể thay thế toàn bộ thiết bị hiện có bằng switch OpenFlow ngay lập tức do chi phí cao.
SDN mang lại nền tảng cho các kỹ thuật mạng thông minh, nhưng việc chuyển đổi từ mạng truyền thống sang SDN có thể gặp phải gián đoạn Những lo ngại phổ biến bao gồm khả năng tương tác của SDN với thiết bị mạng cũ và sự thiếu hụt chuyên gia hỗ trợ kỹ thuật Hiện tại, việc triển khai SDN chủ yếu giới hạn ở các thử nghiệm nhỏ phục vụ cho mục đích nghiên cứu, chưa được áp dụng rộng rãi trong thực tế.
2.5 Phần điều khiển mạng và Chức năng vận chuyển dữ liệu
Hình 2.3: Control plane và Data plane [11]
2.5.1 Phần điều khiển mạng (Control Plane)
Phần điều khiển mạng và Chức năng vận chuyển dữ liệu
Hình 2.3: Control plane và Data plane [11]
2.5.1 Phần điều khiển mạng (Control Plane)
Phần điều khiển mạng (Control Plane) đóng vai trò là lớp trung gian giữa các ứng dụng và chức năng vận chuyển dữ liệu (Data Plane) Trong kiến trúc mạng SDN, phần điều khiển được gọi là bộ điều khiển, được xem như bộ não của hệ thống Bộ điều khiển này thực hiện giao tiếp với các ứng dụng và thiết bị chuyển tiếp thông qua các API, vì vậy việc thiết kế giao diện và bộ điều khiển sao cho thân thiện và hiệu quả là rất quan trọng.
Control Plane là phần quan trọng trong mạng, chịu trách nhiệm điều khiển và quản lý thông tin định tuyến Nó sử dụng các thuật toán và giao thức để tính toán và lưu trữ dữ liệu lên bảng FIB (Forwarding Information Base), giúp xác định đường đi tối ưu cho từng gói tin trong quá trình vận chuyển dữ liệu.
Phần điều khiển mạng (Control Plane) trong chuyển tiếp thì thực hiện cơ chế tự học địa chỉ MAC thông qua việc phát sóng gói tin, trong khi đó, ở bộ định tuyến, phần điều khiển mạng bao gồm các giao thức định tuyến như OSPF, EIGRP và BGP.
2.5.2 Chức năng vận chuyển dữ liệu (Data Plane)
Thành phần vận chuyển dữ liệu (Data Plane) chủ yếu có nhiệm vụ chuyển tiếp gói tin, đồng thời hỗ trợ các dịch vụ mạng khác nhau như bộ nhớ đệm và chuyển mã.
Khi nhận gói tin, thiết bị chuyển mạch xác định quy tắc chuyển tiếp phù hợp và chuyển tiếp gói tới bước tiếp theo Trong kiến trúc mạng SDN, việc chuyển tiếp gói không chỉ dựa vào địa chỉ IP hoặc MAC mà còn có thể dựa trên các tham số khác như cổng TCP/UDP và VLAN Việc sử dụng một vectơ để quyết định chuyển tiếp làm tăng độ phức tạp trong xử lý và tính toán, dẫn đến sự đánh đổi giữa chi phí và hiệu quả trong xử lý gói tin.
Data Plane là phần thực hiện chức năng vận chuyển dữ liệu thông qua bảng FIB do phần điều khiển mạng xây dựng Dữ liệu được chuyển đến các bộ chuyển tiếp hoặc bộ định tuyến tại các cổng như 10Gb, 100Gb Ethernet và cũng được xuất ra từ các cổng tương ứng.
Giao thức OpenFlow
Giao thức OpenFlow cung cấp một API để kết nối giữa bộ điều khiển và các thiết bị chuyển tiếp, yêu cầu cả hai bên phải hiểu rõ giao thức này Bộ điều khiển có khả năng quản lý các bảng luồng của thiết bị chuyển tiếp thông qua việc thêm, cập nhật và xóa các mục luồng.
Bộ điều khiển giao tiếp với các thiết bị chuyển tiếp qua một kênh an toàn, cho phép hỗ trợ chuyển tiếp dựa trên luồng Các thiết bị này giữ một hoặc nhiều bảng luồng, giúp xác định cách xử lý các gói tin đã cho.
Hình 2.4: Sơ đồ Giao thức OpenFlow [12]
Các mục luồng duy trì bộ đếm để thu thập số liệu thống kê cho từng loại luồng, như số lượng byte truyền Khi thiết bị chuyển tiếp nhận gói tin gây lỗi trong quá trình so khớp với bảng chuyển tiếp, gói tin có thể được chuyển đến bộ điều khiển, bảng lưu lượng tiếp theo hoặc bị hủy Bộ điều khiển quyết định xử lý gói tin, có thể thả gói hoặc thêm mục nhập luồng để hướng dẫn cách chuyển tiếp gói tương tự trong tương lai Từ phiên bản 1.1, Giao thức OpenFlow hỗ trợ nhiều bảng luồng và xử lý luồng, cho phép tiếp tục so khớp trên bảng luồng tiếp theo cho các gói không khớp Các phiên bản OpenFlow đã được phát hành với nhiều tính năng khác nhau: Phiên bản 1.2 hỗ trợ cấu trúc khớp linh hoạt và nhiều giao thức hơn như IPv6, trong khi phiên bản 1.3 cung cấp hỗ trợ cho các giao thức như MPLS BoS và tiêu đề mở rộng IPv6.
Phiên bản 1.4 của giao thức OpenFlow cải thiện khả năng chuyển đổi và nâng cao các phương tiện đo, cung cấp khả năng phân loại linh hoạt hơn cho người dùng Nó hỗ trợ cổng quang và tách biệt phần điều khiển với chức năng vận chuyển dữ liệu, cho phép lập trình cho lớp điều khiển OpenFlow là tiêu chuẩn đầu tiên cho phép truyền thông giữa lớp điều khiển và lớp chuyển tiếp trong kiến trúc mạng SDN, giúp truy cập trực tiếp và điều khiển chức năng vận chuyển dữ liệu của các thiết bị mạng như switch và router, cả thiết bị vật lý lẫn ảo, từ đó di chuyển phần điều khiển mạng ra khỏi thiết bị chuyển mạch thực tế tới phần mềm điều khiển trung tâm.
OpenFlow là giao thức hoạt động giữa lớp điều khiển (control layer) và lớp cơ sở hạ tầng (Infrastructure layer) Giao thức OpenFlow có hai nhiệm vụ chính: [9, 13]
- Giám sát hoạt động của các thiết bị mạng: Lưu lượng mạng, trạng thái hoạt động của các nút mạng, các thông tin cơ bản về các thiết bị…
- Điều khiển hoạt động của thiết bị mạng: Điều khiển luồng dữ liệu (routing), bảo mật …
Giao thức OpenFlow nổi bật với khả năng hoạt động hiệu quả giữa các thiết bị mạng ảo và vật lý, điều này càng trở nên quan trọng trong bối cảnh công nghệ ảo hóa đang phát triển mạnh mẽ Việc đồng bộ hóa giữa hai loại thiết bị này giúp SDN giải quyết các ứng dụng băng thông cao và biến đổi động, từ đó làm cho mạng linh hoạt hơn trước những thay đổi trong nhu cầu kinh doanh Ngoài ra, OpenFlow còn giúp giảm thiểu đáng kể các hoạt động và quản lý phức tạp trong hệ thống mạng.
2.6.1 Các đặc trƣng của giao thức OpenFlow
Giao thức OpenFlow cho phép các ứng dụng phần mềm bên ngoài quản lý chức năng vận chuyển dữ liệu của thiết bị mạng, tương tự như cách mà tập lệnh của CPU điều khiển hoạt động của một hệ thống máy tính.
Giao thức OpenFlow được triển khai trên cả hai giao diện của kết nối giữa các thiết bị cơ sở hạ tầng mạng và phần mềm điều khiển SDN
OpenFlow sử dụng khái niệm luồng (flow) để nhận diện lưu lượng mạng dựa trên các quy tắc được lập trình sẵn Giao thức này cho phép xác định cách thức truyền tải lưu lượng qua các thiết bị mạng dựa trên các tham số như mô hình lưu lượng, ứng dụng và tài nguyên đám mây Nhờ đó, OpenFlow cho phép lập trình mạng theo luồng lưu lượng, mang lại khả năng kiểm soát chi tiết và phản ứng nhanh chóng với sự thay đổi trong thời gian thực của ứng dụng Trong khi đó, mạng IP hiện tại không cung cấp mức độ kiểm soát này, buộc tất cả các luồng lưu lượng giữa hai điểm cuối phải đi qua cùng một đường, mặc dù yêu cầu của chúng có thể khác nhau.
Một thiết bị OpenFlow bao gồm ít nhất ba thành phần:
- Flow table: Một liên kết hành động với mỗi luồng, giúp thiết bị xử lý các luồng thế nào
Kênh bảo mật là một kết nối giữa thiết bị và bộ điều khiển, cho phép gửi lệnh và gói tin một cách an toàn giữa bộ điều khiển và thiết bị chuyển tiếp.
- OpenFlow protocol: Giao thức cung cấp phương thức tiêu chuẩn và mở cho một bộ điều khiển truyền thông với thiết bị
Giao thức OpenFlow là chìa khóa cho mạng định nghĩa bằng phần mềm, đóng vai trò là giao thức tiêu chuẩn duy nhất trong mạng SDN, cho phép điều khiển chức năng vận chuyển dữ liệu của các thiết bị mạng Từ việc áp dụng ban đầu trên mạng Ethernet, mạng SDN sử dụng OpenFlow có thể triển khai trên cả mạng vật lý và ảo hóa hiện có.
Giao thức OpenFlow đang được nhiều nhà cung cấp cơ sở hạ tầng hỗ trợ thông qua việc triển khai firmware đơn giản hoặc nâng cấp phần mềm Kiến trúc mạng SDN sử dụng OpenFlow cho phép tích hợp dần dần với cơ sở hạ tầng hiện có của doanh nghiệp hoặc nhà khai thác mạng, đồng thời cung cấp phương thức tích hợp dễ dàng cho các phần của mạng cần chức năng SDN.
2.6.2 OpenFlow switch và OpenFlow Controller
Bằng cách sử dụng bộ điều khiển OpenFlow, quản trị mạng có khả năng xác định cách thức và tuyến đường truyền dữ liệu, thiết lập quy tắc ưu tiên cho việc xử lý gói tin, và chuyển hướng dữ liệu qua các thiết bị chuyển mạch trong mạng nội bộ hoặc mạng toàn cầu Bài viết này sẽ giới thiệu các thành phần cơ bản của mạng SDN dựa trên giao thức OpenFlow, bao gồm OpenFlow Switch và OpenFlow Controller, trong đó bộ điều khiển giao tiếp với các OpenFlow Switch thông qua giao thức OpenFlow.
Hình 2.5: Sơ đồ tương tác giữa switch và controller theo giao thức OpenFlow [15]
Bộ chuyển mạch OpenFlow bao gồm Bảng nhóm, các Bảng luồng và một kênh OpenFlow Channel, trong đó Bảng luồng và Bảng nhóm chứa thông tin do bộ điều khiển cung cấp để định tuyến các gói tin Kênh OpenFlow Channel đảm nhận vai trò liên lạc giữa bộ điều khiển và chuyển mạch OpenFlow.
Hình 2.6: Cấu trúc OpenFlow Switch [14]
Bộ điều khiển trong khái niệm OpenFlow là yếu tố cốt lõi và trung tâm của mạng SDN, đóng vai trò quan trọng trong việc tập trung các chức năng điều khiển mạng.
Hệ điều hành trên bộ điều khiển không trực tiếp điều khiển mạng mà chỉ hỗ trợ giao diện lập trình API cho việc điều khiển mạng Do đó, việc giải quyết các vấn đề liên quan đến điều khiển mạng chủ yếu được thực hiện thông qua các ứng dụng được triển khai.
Hình 2.6: Cấu trúc OpenFlow Switch [14]
API của hệ điều hành cần có tính tổng quát cao để hỗ trợ đa dạng ứng dụng, từ đó giúp giải quyết hiệu quả các vấn đề liên quan đến điều khiển mạng.
Công cụ Mininet và các bộ điều khiển của SDN
Hiện nay, thiết bị mạng vật lý cho mạng SDN có chi phí cao, do đó, việc áp dụng công cụ ảo hóa để mô phỏng là giải pháp hiệu quả và tiết kiệm.
Các nhà khoa học đang tích cực nghiên cứu về công nghệ mạng định nghĩa bằng phần mềm (SDN), nhưng hiện tại chỉ có một số ít công cụ hỗ trợ mô phỏng ảo hóa cho kiến trúc mạng này Trong số các công cụ đó, Mininet nổi bật là một giải pháp hiệu quả cho việc giả lập mạng SDN.
Mininet là một công cụ phổ biến và miễn phí, hỗ trợ tốt cho giao thức Openflow, cho phép người dùng nhanh chóng tạo và tùy chỉnh mạng SDN Nó có khả năng chạy các phần mềm thực tế như máy chủ web, giám sát giao thức TCP và Wireshark, đồng thời cho phép tùy chỉnh việc chuyển tiếp gói tin Mininet dễ sử dụng và không yêu cầu cấu hình phần cứng đặc biệt, có thể cài đặt trên laptop, server, máy ảo hoặc cloud (Linux) Nhờ vào tính ảo hóa, Mininet cho phép chạy nhiều host và switch trên một nhân hệ điều hành Công cụ này hỗ trợ đầy đủ các tác vụ cần thiết cho học tập, nghiên cứu, tạo mẫu và thử nghiệm, với các host và switch ảo kết nối với các bộ điều khiển thực tế thông qua phần mềm Người dùng có thể thực hiện truy cập từ xa (SSH) vào các host trong Mininet và chạy bất kỳ phần mềm nào đã cài trên hệ thống Linux.
Mininet là công cụ lý tưởng cho phép người dùng dễ dàng tạo ra và mô phỏng các mô hình mạng Đặc biệt, người dùng còn có khả năng tùy chỉnh các mô hình mạng (topo) thông qua lập trình, mang lại sự linh hoạt và sáng tạo trong việc thiết kế mạng.
Trong mininet ta có thể tạo một topology bằng dòng lệnh, ví dụ:
# sudo mn topo linear,4 Đây là mô hình mạng tuyến tính với 4 switch, và mỗi một host sẽ được nối với một switch
Ngoài ra ta cũng có thể tạo mô hình mạng single hoặc mô hình mạng cây bằng dòng lệnh đơn giản
Ngoài việc tạo topology bằng dòng lệnh, người dùng còn có thể tùy chỉnh mô hình mạng thông qua lập trình Sau khi đã lập trình xong, người dùng chỉ cần đưa file vào Mininet và thực hiện lệnh để chạy mô hình mạng.
2.7.2 Các bộ điều khiển của SDN
Nền tảng của bộ điều khiển
Trong kiến trúc mạng SDN, bộ điều khiển đóng vai trò trụ cột quan trọng, với mục tiêu phát triển phần mềm thân thiện với lập trình viên và người dùng, đồng thời đảm bảo khả năng mở rộng và sẵn sàng cao Các nền tảng điều khiển phân tán phải đối mặt với nhiều thách thức, bao gồm độ trễ giữa các thiết bị chuyển tiếp, khả năng chịu lỗi, cân bằng tải, tính nhất quán và đồng bộ hóa Nghiên cứu cũng tập trung vào cách kết hợp các chức năng và mô-đun khác nhau để tối ưu hóa hiệu suất mạng.
Tính mô đun và tính linh hoạt của bộ điều khiển SDN đang trở thành trọng tâm của nhiều nghiên cứu, với RAON đề xuất một mô hình đệ quy cho các bộ điều khiển OpenFlow, trong đó mỗi bộ điều khiển coi các bộ điều khiển bên dưới như các OpenFlow switch Các vấn đề nghiên cứu mở bao gồm việc xác định giao diện giữa các lớp trong hệ thống phân cấp bộ điều khiển và phát triển API để hỗ trợ thiết kế phân cấp nhằm nâng cao khả năng mở rộng, mô đun hóa và bảo mật Mỗi cấp độ trong hệ thống phân cấp có thể cung cấp các tóm tắt và phạm vi khác nhau cho định tuyến, từ đó cải thiện khả năng mở rộng Về mặt bảo mật, mỗi cấp độ cũng có thể thuộc về các miền tin cậy khác nhau, cho phép thực thi chính sách bảo mật nội bộ và liên miền Tuy nhiên, sự thiếu hụt tính mô đun trong hầu hết các bộ điều khiển SDN hiện tại khiến các nhà phát triển phải tái triển khai các dịch vụ mạng cơ bản cho mỗi ứng dụng mới, dẫn đến khó khăn trong việc xây dựng, bảo trì và mở rộng bộ điều khiển Các nghiên cứu tiếp theo, như Corybantic, đang nỗ lực để đạt được tính mô đun hóa trong các chương trình kiểm soát SDN.
Có 35 phương pháp khác nhau để phát triển các bộ điều khiển mô-đun, được lấy cảm hứng từ các lĩnh vực khác trong khoa học máy tính, chẳng hạn như các nguyên tắc từ Hệ điều hành.
Khả năng tương tác và tính di động của ứng dụng là rất quan trọng trong lĩnh vực mạng, đặc biệt là khi các bộ điều khiển cần giao tiếp hiệu quả với nhau Mặc dù đã có những sáng kiến như Pyretic, SDNi và ForCES để cải thiện khả năng tương tác, nhưng vẫn cần một giải pháp tốt hơn để giải quyết xung đột và nâng cao tính di động Statesman đã đề xuất một khung giúp nhiều ứng dụng mạng có thể hoạt động đồng thời trên cùng một phần điều khiển mà không làm giảm hiệu suất Khung này tự động xử lý các xung đột, tạo điều kiện thuận lợi cho việc phát triển ứng dụng Ngoài ra, ý tưởng về ảo hóa SDN thành phần cho phép các ứng dụng từ các ngôn ngữ và nền tảng khác nhau cùng hoạt động, nhờ vào các quy tắc OpenFlow đơn giản và dễ quản lý.
Bộ điều khiển SDN cần đảm bảo tính sẵn sàng cao trong sản xuất, hoạt động hiệu quả dưới áp lực từ các ứng dụng khác nhau Để đối phó với các rủi ro tiềm ẩn, cần áp dụng nhiều giải pháp tiến bộ, tận dụng kết quả từ các hệ thống phân tán và cộng đồng bảo mật trong thập kỷ qua Gần đây, các kho lưu trữ dữ liệu phù hợp và có khả năng chịu lỗi đã được đề xuất để xây dựng các bộ điều khiển phân tán đáng tin cậy, mở ra hướng đi mới cho việc phát triển bộ điều khiển.
Việc phát triển các bộ điều khiển SDN có độ trễ thấp và khả dụng cao có thể được thực hiện thông qua khai thác cục bộ và các mô hình cổ điển như LOCAL và CONGEST Những mô hình này hỗ trợ việc phát triển các giao thức phối hợp, cho phép bộ điều khiển thực hiện hành động độc lập với các sự kiện trong khu vực lân cận Một thách thức chính là sự đánh đổi giữa mô hình nhất quán phân phối trạng thái và yêu cầu về tính nhất quán của ứng dụng điều khiển Ứng dụng lý tưởng nên không nhận thức mơ hồ về trạng thái phân tán, yêu cầu một mô hình nhất quán mạnh mẽ có thể đạt được qua kho dữ liệu phân tán Tuy nhiên, việc duy trì dữ liệu kiểm soát trong kho lưu trữ nhất quán là không khả thi do vấn đề hiệu suất Do đó, các giải pháp lai yêu cầu các nhà phát triển nhận thức được sự đánh đổi của việc sử dụng mô hình nhất quán Tính sẵn sàng cao có thể đạt được thông qua API và mô hình chính thức của bộ điều khiển, nhằm tối đa hóa khả năng phục hồi và mở rộng Các thiết bị chuyển tiếp kết nối với nhiều bộ điều khiển đã chỉ ra rằng tính sẵn sàng cao và kết nối mạnh mẽ với phần điều khiển mạng có thể đạt được khi kết nối với hai hoặc ba bộ điều khiển.
Số lượng bộ điều khiển cần thiết chủ yếu phụ thuộc vào cấu trúc liên kết hơn là kích thước mạng, và đối với hầu hết các cấu trúc liên kết phổ biến, ít hơn mười bộ điều khiển thường là đủ Để nâng cao hiệu quả hoạt động, bộ điều khiển SDN có thể ủy quyền các chức năng điều khiển như báo cáo thay đổi giá trị trạng thái, cảnh báo vượt ngưỡng và lỗi phần cứng Các thông báo này thường sử dụng mô hình xuất bản/đăng ký, cho phép bộ điều khiển và ứng dụng đăng ký theo yêu cầu cho lớp thông báo mà họ quan tâm Hơn nữa, các hệ thống con này có thể cung cấp tính đáng tin cậy và khả năng phục hồi cao.
Một số lý do để ủy quyền điều khiển cho mặt phẳng dữ liệu bao gồm:
- Đáp ứng độ trễ thấp cho một loạt các sự kiện mạng;
- Lượng luồng phải được xử lý trong chức năng vận chuyển dữ liệu (Data plane), đặc biệt là trong các mạng quy mô lớn như trung tâm dữ liệu;
Các hàm mức thấp, bao gồm các hàm định hướng theo byte hoặc bit, là cần thiết cho việc lặp lại SDH (Phân cấp kỹ thuật số đồng bộ) trong phần ghép kênh.
- Các chức năng được hiểu rõ và được tiêu chuẩn hóa, chẳng hạn như mã hóa, chèn BIP, AIS, học MAC và trao đổi CCM;
Khả năng chịu lỗi của bộ điều khiển cho phép các chức năng mạng thiết yếu duy trì hoạt động mạng cơ bản, ngay cả khi bộ điều khiển gặp sự cố.
Các chức năng cấp thấp cơ bản thường được tích hợp trong chức năng vận chuyển dữ liệu (Data plane), bao gồm máy trạng thái chuyển mạch bảo vệ, bộ đếm CCM và bộ hẹn giờ.
- Tất cả các chức năng không thêm bất kỳ giá trị nào khi di chuyển từ dữ liệu đến phần điều khiển mạng (Control plane)