1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Báo cáo tiến Độ môn học hệ thống mạng và máy tính chủ Đề sdn load balancing and resource allocation

31 0 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Sdn: Load Balancing And Resource Allocation
Tác giả Mai Văn Bách, Lê Đức Đại, Đào Đình Hân, Nguyễn Thành Hưng, Dương Anh Vũ, Dương Thanh Vũ
Người hướng dẫn TS. Ngô Thị Hiền
Trường học Đại Học Bách Khoa Hà Nội
Chuyên ngành Hệ Thống Mạng Và Máy Tính
Thể loại Báo Cáo Tiến Độ
Năm xuất bản 2024
Thành phố Hà Nội
Định dạng
Số trang 31
Dung lượng 69,04 KB

Cấu trúc

  • 1. Giới thiệu (Introduction) (3)
  • 2. Load Balancing in SDN (4)
  • 3. Resource Allocation in SDN (6)
  • 4. Mối quan hệ giữa Load Balancing và Resource Allocation trong SDN (8)
  • 5. Các giải pháp Load Balancing và Resource Allocation trong SDN (11)
  • 6. Các Thách Thức Hiện Tại (16)
  • 1) Bài giảng về SDN - Software Defined Network bởi SOICT - HUST (20)
  • 2) Lecture 14: Software Defined Networking by Mohammad Alizadeh, MIT (24)
  • 3) A study on load balancing techniques in SDN by Anish Ghosh, Mrs. T (25)
  • 4) Adaptive Resource Allocation for Software Defined Networking Controllers (27)

Nội dung

Trong mạng truyền thống, cân bằng tải thường được thực hiện thông qua các thiết bị phần cứng load balancers với các thuật toán: - Static Algorithms Round Robin, Weighted Round Robin, IP

Giới thiệu (Introduction)

1.1 Software Defined Network - SDN là gì?

- Software Defined Networking (SDN) hay còn được gọi là mạng lưới định nghĩa phần mềm vốn là một kiến trúc mạng hiện đại, giúp mạng trở nên linh hoạt, dễ quản lý hơn

- Khác với mạng truyền thống, nơi phần cứng điều khiển các thiết bị mạng,

Software Defined Network tập trung quản lý mạng bằng phần mềm, tạo ra một hệ thống thông minh và tự động hóa cao.

Về cơ bản, SDN hoạt động như sau:

Tách biệt mặt phẳng dữ liệu (Data Plane) và mặt phẳng điều khiển (Control Plane)

- Mặt phẳng dữ liệu (Data Plane): Thực hiện việc chuyển tiếp dữ liệu, bao gồm các thiết bị mạng như router, switch, firewall, v.v.

- Mặt phẳng điều khiển (Control Plane): Tập trung vào việc điều khiển và cấu hình mạng, thực hiện các chức năng như định tuyến, chuyển mạch, bảo mật,

Việc tách biệt này giúp quản lý mạng trở nên tập trung và dễ dàng hơn.

Sử dụng bộ điều khiển tập trung (Controller)

Bộ điều khiển trung tâm (Controller) là "bộ não" của SDN, nơi tập trung quản lý và điều khiển toàn bộ mạng lưới Controller giao tiếp với các thiết bị mạng thông qua giao thức mở, cho phép cấu hình và điều chỉnh mạng linh hoạt theo nhu cầu

Các giao thức SDN phổ biến bao gồm OpenFlow, OVSDB,

Tại sao SDN lại quan trọng?

 Kết nối mạng tốt hơn: SDN cung cấp kết nối mạng rất tốt hơn cho bán hàng, dịch vụ và truyền thông nội bộ SDN cũng giúp chia sẻ dữ liệu nhanh hơn.

 Triển khai ứng dụng tốt hơn: Triển khai các ứng dụng, dịch vụ mới và nhiều mô hình kinh doanh có thể được tăng tốc bằng cách sử dụng Software

 Bảo mật tốt hơn: Software Defined Networking cung cấp khả năng hiển thị tốt hơn trên toàn mạng Người vận hành có thể tạo các vùng riêng biệt cho các thiết bị yêu cầu các mức độ bảo mật khác nhau SDN mang lại nhiều tự do hơn cho các nhà khai thác.

 Kiểm soát tốt hơn với tốc độ cao: Mạng được xác định bằng phần mềm cung cấp tốc độ tốt hơn các loại mạng khác bằng cách áp dụng bộ điều khiển dựa trên phần mềm tiêu chuẩn mở.

Load Balancing in SDN

Cân bằng tải là một phương pháp phân phối khối lượng công việc trên nhiều tài nguyên thông qua các đường dẫn mạng thích hợp Phương pháp này cho phép đạt được việc sử dụng tối ưu các nguồn lực, tối đa hóa thông lượng và giảm thiểu thời gian truyền Mục tiêu chính của các thuật toán cân bằng tải là phân phối tải hiệu quả trên các tài nguyên trong kiến trúc đám mây.

Trong mạng truyền thống, cân bằng tải thường được thực hiện thông qua các thiết bị phần cứng (load balancers) với các thuật toán:

- Static Algorithms (Round Robin, Weighted Round Robin, IP Hash)

- Dynamic Algorithms (Least Connection, Weighted Least Connection, Least Reponse Time)

Trong SDN (Software-Defined Networking), load balancing có thể được thực hiện bằng cách tách biệt tầng điều khiển (control plane) và tầng dữ liệu (data plane).

2.2 Các thách thức khi triển khai Load Balancing trong SDN Đối với các thuật toán cân bằng tải được sử dụng trong các mạng dựa trên SDN có các cơ chế phức tạp Việc lựa chọn các thuật toán cân bằng tải phụ thuộc vào nhiều yếu tố Việc phân tích các chính sách và đặc điểm chính như thời gian phản hồi, thông lượng được lưu trữ thông qua việc sử dụng các thuật toán cân bằng tải khác nhau cung cấp khả năng lựa chọn các giải pháp cân bằng tải tốt hơn cho các loại mạng dựa trên SDN khác nhau.

Các giải pháp kiến trúc SDN dựa trên các nguyên tắc của lớp phủ hoặc lớp phủ mạng Ý tưởng cơ bản của lớp phủ là tận dụng cơ sở hạ tầng mạng vật lý hiện có và áp dụng các tính năng và chức năng như cung cấp có thể được sử dụng thông qua trừu tượng Các chức năng quản lý trong lớp phủ Mạng dựa trên SDN được chuyển từ mặt phẳng điều khiển của mạng sang máy chủ Trong trường hợp này, các chức năng như ảo hóa máy chủ, lập lịch tác vụ, cân bằng tải L4-L7 và bảo mật được sử dụng Do đó, việc triển khai SDN như một mạng lớp phủ cho phép tách cấu trúc liên kết và cấu hình mạng ảo khỏi cấu trúc liên kết mạng vật lý Mạng ảo tạo đường dẫn và chuyển tiếp dữ liệu giữa các thành phần ảo, mạng vật lý chỉ cung cấp các gói tin đến nút đích Cách tiếp cận này cho phép xây dựng lại và hiện đại hóa mạng vật lý khi cần thiết, mà không thay đổi bất cứ điều gì ở cấp độ ảo.

2.3 Các phương pháp Load Balancing hiện nay

Các thuật toán cân bằng tải có thể được chia thành tĩnh và động

Thuật toán cân bằng tải tĩnh (Static Algorithms) dựa trên thông tin về hành vi trung bình của hệ thống; Các quyết định chuyển giao độc lập với trạng thái hệ thống hiện tại thực tế Các quy trình cân bằng tải tĩnh được sử dụng với sự có mặt của kiến thức trước về các dịch vụ và ứng dụng thông tin thống kê về môi trường mạng Mục tiêu của phương pháp cân bằng tải tĩnh là giảm thời gian thực hiện và giảm thiểu độ trễ truyền thông.

Trong thuật toán Round Robin, các quá trình thực thi được phân chia giữa tất cả các bộ xử lý Mỗi quá trình được gán cho bộ xử lý theo thứ tự vòng tròn Tuy nhiên, sự phân bố khối lượng công việc giữa các bộ xử lý bằng nhau nhưng thời gian xử lý cho các quy trình khác nhau không giống nhau Vì vậy, tại bất kỳ thời điểm nào, một số nút có thể được tải nặng và những nút khác vẫn không hoạt động.

Cân bằng tải IP Hash nguồn sử dụng thuật toán lấy địa chỉ IP nguồn và đích của máy khách và máy chủ để tạo khóa băm duy nhất Khóa này được sử dụng để phân bổ máy khách cho một máy chủ cụ thể.

Trong các thuật toán cân bằng tải động (Dynamic Algorithms), khối lượng công việc được phân phối giữa các bộ xử lý trong thời gian chạy Chỉ định các quy trình mới cho dựa trên thông tin mới được thu thập

Cân bằng tải kết nối ít nhất là thuật toán cân bằng tải động trong đó các yêu cầu của máy khách được phân phối đến máy chủ ứng dụng có số lượng kết nối hoạt động ít nhất tại thời điểm nhận được yêu cầu của máy khách.

Phương pháp thời gian phản hồi ít nhất kết hợp thời gian phản hồi của máy chủ và các kết nối đang hoạt động để xác định máy chủ tốt nhất Bộ cân bằng tải sử dụng thuật toán này để đảm bảo dịch vụ nhanh hơn cho tất cả người dùng.

Resource Allocation in SDN

3.1 Khái niệm Resource Allocation trong SDN (Phân bổ tài nguyên trong mạng SDN):

Resource Allocation (Phân bổ tài nguyên) trong mạng SDN là quá trình quản lý và phân chia các tài nguyên mạng, bao gồm băng thông, CPU, bộ nhớ, lưu lượng, và các thành phần khác một cách tối ưu cho các ứng dụng và dịch vụ hoạt động trên mạng Trong SDN, việc phân bổ tài nguyên rất quan trọng vì nó ảnh hưởng trực tiếp đến hiệu suất mạng và trải nghiệm người dùng.

Các loại tài nguyên cần phân bổ trong mạng SDN có thể bao gồm:

 Băng thông: Đảm bảo lưu lượng truyền tải trên mạng được phân bổ đúng cách để tránh tắc nghẽn.

 CPU: Quản lý tài nguyên xử lý trên các thiết bị mạng (switch, router) để tối ưu hóa việc xử lý các gói dữ liệu.

 Bộ nhớ: Dùng để lưu trữ bảng điều khiển (flow table) và các thông tin khác trên các thiết bị mạng.

 Các tài nguyên khác: Bao gồm các tài nguyên lưu trữ tạm thời (buffer) hoặc năng lượng trong các hệ thống SDN có yêu cầu về hiệu suất và tiêu thụ năng lượng.

3.2 Vai trò của Resource Allocation trong SDN:

Phân bổ tài nguyên có vai trò quan trọng trong việc đảm bảo chất lượng dịch vụ (QoS) và hiệu suất mạng trong môi trường SDN Các lý do chính bao gồm:

 Đảm bảo QoS (Quality of Service): Phân bổ tài nguyên hợp lý giúp đảm bảo rằng các dịch vụ quan trọng có được mức độ ưu tiên cần thiết Điều này rất quan trọng với các ứng dụng yêu cầu độ trễ thấp (ví dụ: truyền thông thời gian thực, dịch vụ streaming).

 Tối ưu hóa hiệu suất mạng: Quản lý tài nguyên hiệu quả giúp giảm thiểu tắc nghẽn, phân phối lưu lượng mạng đều đặn và tránh lãng phí tài nguyên Điều này giúp duy trì hiệu suất ổn định của mạng và tránh tình trạng quá tải trên các thiết bị.

 Tính linh hoạt và động: Mạng SDN có khả năng cung cấp khả năng linh hoạt cao trong việc điều chỉnh cấu hình mạng và phân bổ tài nguyên theo thời gian thực, tùy thuộc vào yêu cầu của ứng dụng và sự thay đổi của điều kiện mạng.

 Tăng cường khả năng kiểm soát mạng: Do SDN sử dụng một kiến trúc tách biệt giữa mặt điều khiển (control plane) và mặt dữ liệu (data plane), việc phân bổ tài nguyên được thực hiện từ các bộ điều khiển tập trung, giúp quản lý dễ dàng hơn và tăng khả năng kiểm soát trên toàn mạng.

3.3 Các chiến lược Resource Allocation trong SDN:

Có nhiều chiến lược để phân bổ tài nguyên trong SDN, mỗi chiến lược có ưu điểm và nhược điểm riêng tùy thuộc vào yêu cầu của mạng:

 Static vs Dynamic Allocation: o Static Allocation (Phân bổ tĩnh): Tài nguyên được phân bổ cố định theo một cấu hình nhất định, dựa trên các yêu cầu và thông số mạng được xác định trước Ưu điểm của phân bổ tĩnh là đơn giản, dễ triển khai, tuy nhiên, nhược điểm là thiếu tính linh hoạt và không thích nghi tốt với sự thay đổi trong yêu cầu mạng hoặc lưu lượng dữ liệu. o Dynamic Allocation (Phân bổ động): Tài nguyên được phân bổ theo nhu cầu thay đổi của mạng và ứng dụng trong thời gian thực Đây là một cách tiếp cận linh hoạt hơn, cho phép điều chỉnh tài nguyên theo tình hình hiện tại của mạng (ví dụ như lưu lượng dữ liệu cao hoặc thấp) Nhược điểm của phân bổ động là yêu cầu hệ thống điều khiển phức tạp hơn và có thể phát sinh thêm chi phí tính toán.

 Centralized vs Distributed Allocation: o Centralized Allocation (Phân bổ tập trung): Phân bổ tài nguyên được thực hiện từ một bộ điều khiển trung tâm, có cái nhìn tổng thể về toàn bộ mạng Chiến lược này có ưu điểm là cung cấp khả năng kiểm soát và tối ưu hóa toàn diện Tuy nhiên, nó có thể gặp phải các vấn đề về khả năng mở rộng và nguy cơ tắc nghẽn tại điểm điều khiển trung tâm. o Distributed Allocation (Phân bổ phân tán): Tài nguyên được phân bổ dựa trên sự hợp tác của nhiều bộ điều khiển hoặc thiết bị mạng, mỗi bộ điều khiển có thông tin hạn chế về phần mạng mà nó quản lý Chiến lược này giúp giảm tải cho các bộ điều khiển trung tâm và cải thiện tính linh hoạt, nhưng có thể kém tối ưu hơn do thiếu cái nhìn tổng quát về toàn mạng.

 QoS-aware Allocation: Chiến lược này tập trung vào việc phân bổ tài nguyên theo các yêu cầu QoS cụ thể của các dịch vụ hoặc ứng dụng (như độ trễ, băng thông) Mục tiêu là đảm bảo rằng các ứng dụng quan trọng có đủ tài nguyên để hoạt động ổn định và không bị ảnh hưởng bởi các ứng dụng khác.

 Energy-efficient Allocation: Phân bổ tài nguyên với mục tiêu tiết kiệm năng lượng, đặc biệt quan trọng đối với các mạng lớn và phức tạp Điều này có thể đạt được bằng cách tắt các thành phần không cần thiết hoặc điều chỉnh động mức năng lượng dựa trên tải công việc thực tế.

 Load Balancing: Phân bổ tài nguyên theo cách cân bằng tải giữa các thành phần của mạng, tránh quá tải cho một thiết bị hoặc đường truyền nhất định, trong khi các thành phần khác không được sử dụng hết khả năng.

Mối quan hệ giữa Load Balancing và Resource Allocation trong SDN

- Tương tác giữa Load Balancing và Resource Allocation: Cách hai yếu tố này tác động lẫn nhau trong SDN

Load Balancing và Resource Allocation có mối quan hệ chặt chẽ, vì một khi lưu lượng được cân bằng, tài nguyên mạng có thể được phân bổ linh hoạt hơn Ngược lại, việc phân bổ tài nguyên tốt giúp hỗ trợ Load Balancing, đảm bảo rằng có đủ tài nguyên để cân bằng tải mạng Sự phối hợp giữa hai yếu tố này là cần thiết để đảm bảo hiệu quả hoạt động và tính ổn định của mạng SDN.

- Cân bằng tải không chỉ giúp giảm tải cho các nút bận rộn mà còn tạo điều kiện thuận lợi cho việc phân bổ tài nguyên linh hoạt hơn, tối ưu hóa hiệu suất mạng.

- Việc phân bổ tài nguyên hợp lý là điều kiện tiên quyết để thực hiện cân bằng tải hiệu quả trong SDN Nếu tài nguyên không được phân bổ đúng cách, các thuật toán cân bằng tải sẽ không thể hoạt động hiệu quả, dẫn đến tình trạng tắc nghẽn và giảm chất lượng dịch vụ.

- Các bài toán tối ưu cần giải quyết: Sự cần thiết của việc tối ưu cả hai khía cạnh này đồng thời để đạt hiệu quả tối đa trong mạng SDN.

Bài toán tối ưu hóa định tuyến

Vấn đề: Mục tiêu là tối ưu hóa lộ trình cho lưu lượng mạng để cân bằng tải và giảm thiểu độ trễ Trong môi trường SDN, các lưu lượng có thể biến đổi liên tục, do đó, việc tìm ra lộ trình tối ưu trong thời gian thực là rất quan trọng.

 Thuật toán Dijkstra: Sử dụng để tìm đường đi ngắn nhất giữa hai điểm trong đồ thị, có thể mở rộng để cân nhắc đến trọng số là tải của các liên kết.

 Thuật toán A*: Một cải tiến của Dijkstra, cho phép tối ưu hóa hơn bằng cách sử dụng hàm ước lượng (heuristic) để hướng dẫn quá trình tìm kiếm.

Cách cài đặt: Có thể cài đặt bằng Python sử dụng thư viện NetworkX để xây dựng đồ thị và thực hiện các thuật toán tìm kiếm đường đi.

Bài toán phân bổ tài nguyên theo yêu cầu dịch vụ

Vấn đề: Cần phát triển một phương pháp phân bổ tài nguyên hiệu quả dựa trên nhu cầu dịch vụ hiện tại và các điều kiện mạng khác nhau để đảm bảo không có tắc nghẽn và tài nguyên được sử dụng tối ưu.

 Học máy (Machine Learning): Các mô hình hồi quy hoặc mạng nơ-ron có thể được sử dụng để dự đoán lưu lượng và yêu cầu dịch vụ, từ đó điều chỉnh tài nguyên.

 Thuật toán phân bổ tài nguyên động: Sử dụng các thuật toán như Genetic Algorithm hoặc Particle Swarm Optimization để tìm kiếm giải pháp tối ưu cho việc phân bổ tài nguyên.

Cách cài đặt: Sử dụng các thư viện học máy như Scikit-learn hoặc TensorFlow để xây dựng mô hình dự đoán Sau đó, có thể tích hợp chúng vào một hệ thống SDN thông qua OpenFlow để tự động điều chỉnh tài nguyên theo lưu lượng.

Bài toán tối ưu hóa đa mục tiêu

Vấn đề: Mục tiêu là tối ưu hóa đồng thời cả hai khía cạnh: cân bằng tải và phân bổ tài nguyên, trong khi vẫn duy trì chất lượng dịch vụ (QoS) và giảm thiểu độ trễ. Thuật toán:

 Lập trình đa mục tiêu: Sử dụng các phương pháp như Non-dominated

Sorting Genetic Algorithm II (NSGA-II) để tìm kiếm các giải pháp tối ưu cho bài toán đa mục tiêu.

 Multi-Objective Particle Swarm Optimization (MOPSO): Một biến thể của thuật toán đàn ong, giúp tìm ra các giải pháp tối ưu cho bài toán đa mục tiêu.

Cách cài đặt: Có thể sử dụng các thư viện Python như DEAP (Distributed

Evolutionary Algorithms in Python) cho lập trình di truyền và mô phỏng các thuật toán tối ưu hóa đa mục tiêu.

Bài toán mô hình hóa lưu lượng và tài nguyên

Vấn đề: Phát triển một mô hình để theo dõi và dự đoán lưu lượng, từ đó điều chỉnh tài nguyên trong thời gian thực để đảm bảo cân bằng tải.

 Mô hình ARIMA: Dùng để dự đoán lưu lượng theo thời gian.

 Time-Series Forecasting: Sử dụng các kỹ thuật học sâu như LSTM để dự đoán xu hướng lưu lượng.

Cách cài đặt: Sử dụng thư viện Statsmodels để cài đặt mô hình ARIMA hoặc Keras/TensorFlow cho mô hình LSTM, sau đó tích hợp chúng vào hệ thống SDN để tự động điều chỉnh tài nguyên.

Bài toán quản lý chính sách chất lượng dịch vụ (QoS Management Policy)

 Mô tả: Bài toán này liên quan đến việc phát triển các chính sách QoS để đảm bảo rằng các dịch vụ mạng được cung cấp một cách ổn định và hiệu quả.

 Thuật toán: Sử dụng các kỹ thuật tối ưu hóa như Linear Programming và Dynamic Programming để phát triển các chính sách phù hợp.

Bài toán tối ưu hóa chi phí (Cost Optimization)

 Mô tả: Tối ưu hóa chi phí liên quan đến việc giảm thiểu chi phí vận hành trong khi vẫn duy trì hiệu suất mạng cao.

 Thuật toán: Các mô hình tối ưu hóa chi phí sử dụng Mixed Integer Linear Programming (MILP) và Heuristic Methods để đạt được giải pháp tối ưu.

Tài liệu tham khảo: "Optimization Algorithms in SDN: Routing, Load Balancing, and Delay Optimization" by Maria Daniela Tache et al.; "Software-Defined

Networking: Design and Deployment" by Patricia A Morreale and James M Anderson; "Dynamic Load Balancing Schemes for Software-Defined Networking (SDN)"; "An SDN-Based Self-Adaptive Resource Allocation Mechanism for Service Customization"

Các giải pháp Load Balancing và Resource Allocation trong SDN

- Giải pháp tập trung (Centralized Solutions): Giải thích cách mà SDN controller có thể kiểm soát toàn bộ mạng để thực hiện cân bằng tải và phân bổ tài nguyên.

“In a centralized Software-Defined Networking (SDN) architecture, the control plane is decoupled from the data plane The SDN controller is responsible for managing the entire network infrastructure, enabling it to monitor traffic flows, detect anomalies, and optimize resource utilization By having a global view of the network, the controller can implement sophisticated load balancing strategies For example, it can analyze the current state of network links and dynamically adjust flow entries in the switches to distribute traffic evenly across the available paths This not only improves network performance but also enhances fault tolerance, as the controller can quickly reroute traffic in the event of a link failure.”

(Software-Defined Networking: Design Patterns" của Haroon Meer, et al.)

Trong kiến trúc (SDN) tập trung, mặt điều khiển được tách rời khỏi mặt dữ liệu

Bộ điều khiển SDN (SDN Controller) chịu trách nhiệm quản lý toàn bộ hạ tầng mạng, cho phép nó theo dõi lưu lượng, phát hiện bất thường và tối ưu hóa việc sử dụng tài nguyên Bằng cách có cái nhìn tổng thể về mạng, bộ điều khiển có thể thực hiện các chiến lược cân bằng tải tinh vi Chẳng hạn, nó có thể phân tích trạng thái hiện tại của các liên kết mạng và điều chỉnh động các mục lưu lượng trong các switch để phân phối lưu lượng đồng đều qua các đường dẫn có sẵn Điều này không chỉ cải thiện hiệu suất mạng mà còn nâng cao khả năng chịu lỗi, vì bộ điều khiển có thể nhanh chóng chuyển hướng lưu lượng khi xảy ra sự cố liên kết.

 SDN controller là trung tâm điều khiển của mạng SDN, nơi mà tất cả các quyết định về cấu hình và quản lý tài nguyên được thực hiện Nó có khả năng quan sát và điều khiển toàn bộ mạng, từ các thiết bị chuyển mạch đến các ứng dụng.

 Thu thập thông tin: Controller thu thập thông tin về trạng thái của mạng (băng thông, tải, độ trễ, v.v.) thông qua giao thức như OpenFlow.

 Phân tích: Controller phân tích dữ liệu thu thập được để xác định điểm nghẽn và các vấn đề tiềm ẩn trong mạng.

 Quyết định: Dựa trên thông tin và phân tích, controller có thể đưa ra quyết định để điều chỉnh các dòng dữ liệu (flow) trong mạng, nhằm phân bổ lại tài nguyên và tối ưu hóa băng thông.

 Triển khai quy tắc: Sau khi đưa ra quyết định, controller triển khai các quy tắc (rules) mới đến các thiết bị mạng để thực hiện các thay đổi cần thiết. Ưu điểm:

 Dễ dàng quản lý và tối ưu hóa mạng toàn diện.

 Tăng cường khả năng giám sát và phân tích mạng.

- Giải pháp phân tán (Distributed Solutions): Mô tả các phương pháp phi tập trung và cách chúng hoạt động trong mạng SDN.

“Distributed SDN solutions leverage the capabilities of individual nodes in the network to make localized decisions In this setup, each node or switch has access to its metrics and can communicate with neighboring nodes to share information about their load and available resources This collaboration allows nodes to implement load balancing autonomously For instance, if one switch is experiencing high traffic, it can alert adjacent switches to take over some of the load This decentralized approach reduces the reliance on a central controller and can lead to faster response times in dynamic environments, ultimately enhancing the overall resilience and adaptability of the network.”

(Software-Defined Networking: Design Patterns" của Haroon Meer, et al.)

Các giải pháp SDN phân tán tận dụng khả năng của từng nút trong mạng để đưa ra các quyết định cục bộ Trong thiết lập này, mỗi nút hoặc switch có quyền truy cập vào các chỉ số của nó và có thể giao tiếp với các nút lân cận để chia sẻ thông tin về khối lượng công việc và tài nguyên có sẵn Sự hợp tác này cho phép các nút thực hiện cân bằng tải một cách tự động Chẳng hạn, nếu một switch đang gặp phải lưu lượng cao, nó có thể thông báo cho các switch liền kề để đảm nhận một phần khối lượng công việc Cách tiếp cận phân tán này giảm sự phụ thuộc vào bộ điều khiển trung tâm và có thể dẫn đến thời gian phản hồi nhanh hơn trong các môi trường động, cuối cùng nâng cao khả năng chống chịu và khả năng thích ứng tổng thể của mạng.

Phương pháp phi tập trung:

 Trong các giải pháp phân tán, không có một controller duy nhất quản lý toàn bộ mạng Thay vào đó, các nút trong mạng có thể tự quyết định cách cân bằng tải và phân bổ tài nguyên dựa trên thông tin cục bộ hoặc thông tin từ các nút lân cận.

 Tự động điều chỉnh: Các nút mạng có khả năng tự động điều chỉnh lưu lượng của chúng dựa trên tình trạng hiện tại của mạng mà không cần phải tham khảo ý kiến của controller trung tâm.

 Chia sẻ thông tin: Các nút có thể chia sẻ thông tin về trạng thái của chúng với nhau để đưa ra quyết định tốt hơn về cách phân bổ tài nguyên.

 Đề xuất giải pháp: Hệ thống có thể sử dụng các thuật toán phân tán (như thuật toán đồng thuận) để đồng bộ hóa các quyết định giữa các nút. Ưu điểm:

 Tăng cường khả năng mở rộng và tính linh hoạt của mạng.

 Giảm thiểu độ trễ và tăng cường độ tin cậy do không phụ thuộc vào một điểm duy nhất.

Kết luận: Cả hai giải pháp tập trung và phân tán đều có ưu và nhược điểm riêng, và sự lựa chọn giữa chúng phụ thuộc vào yêu cầu cụ thể của mạng, quy mô và mục tiêu quản lý Sự kết hợp của cả hai giải pháp cũng có thể được áp dụng để tối ưu hóa hiệu suất mạng trong nhiều trường hợp.

- Ví dụ thực tiễn: Các mô hình hoặc framework thực tế áp dụng Load Balancing và Resource Allocation trong SDN (như OpenFlow, ONOS, ).

 OpenFlow: Giao thức OpenFlow cho phép SDN controller điều khiển các thiết bị chuyển mạch trong mạng bằng cách gửi các quy tắc và dòng dữ liệu, giúp thực hiện cân bằng tải và phân bổ tài nguyên.

“OpenFlow là một trong những giao thức đầu tiên cho phép triển khai mạng định nghĩa phần mềm (SDN) Nó cho phép tách biệt mặt điều khiển khỏi mặt dữ liệu, cung cấp một giao diện chuẩn cho bộ điều khiển SDN để tương tác với các thiết bị mạng OpenFlow cho phép bộ điều khiển quản lý lưu lượng một cách linh hoạt bằng cách cài đặt, chỉnh sửa hoặc xóa các mục lưu lượng trong các switch Chẳng hạn, khi bộ điều khiển phát hiện rằng một đường dẫn cụ thể đang bị tắc nghẽn, nó có thể chuyển hướng lưu lượng bằng cách cập nhật các mục lưu lượng để hướng các gói dữ liệu qua các đường dẫn ít được sử dụng hơn Việc cấu hình lại động này là rất quan trọng để thực hiện cân bằng tải hiệu quả và phân bổ tài nguyên trong các mạng hiện đại.”

Các Thách Thức Hiện Tại

a Khó Khăn Trong Việc Mở Rộng Quy Mô

“As organizations scale their networks, the challenges associated with managing a growing number of devices and increasing traffic volumes become pronounced The SDN architecture must be capable of efficiently handling an ever-increasing amount of data and maintaining performance without degradation Scalability in the control plane and data plane is critical to ensure that the network can adapt to the changing demands of users and applications.”

("Software-Defined Networking: A Comprehensive Approach" của Paul

Khi các tổ chức mở rộng mạng lưới của họ, những thách thức liên quan đến việc quản lý một số lượng thiết bị ngày càng tăng và khối lượng lưu lượng tăng lên trở nên rõ ràng Kiến trúc SDN phải có khả năng xử lý hiệu quả một lượng dữ liệu ngày càng tăng và duy trì hiệu suất mà không bị suy giảm Khả năng mở rộng trong mặt điều khiển và mặt dữ liệu là rất quan trọng để đảm bảo rằng mạng có thể thích ứng với những nhu cầu thay đổi của người dùng và các ứng dụng b Bảo Mật

“The centralized nature of SDN introduces new security challenges that must be addressed The SDN controller represents a single point of failure, and any compromise of the controller can lead to a complete network failure Furthermore, communication channels between the controller and switches must be secured to prevent eavesdropping and tampering with flow rules, making security a top priority in SDN deployments.”

("SDN Security: A Survey" của H K K E T M Subrahmanyam và M V

Tính chất tập trung của SDN tạo ra những thách thức an ninh mới cần được giải quyết Bộ điều khiển SDN đại diện cho một điểm thất bại duy nhất, và bất kỳ sự xâm phạm nào đối với bộ điều khiển có thể dẫn đến sự cố hoàn toàn của mạng Hơn nữa, các kênh giao tiếp giữa bộ điều khiển và các switch phải được bảo mật để ngăn chặn việc nghe lén và can thiệp vào các quy tắc lưu lượng, khiến an ninh trở thành ưu tiên hàng đầu trong các triển khai SDN. c Khả Năng Tương Thích Với Các Công Nghệ Khác

“The transition from traditional networking to SDN is not without its difficulties Ensuring compatibility with legacy systems poses a significant challenge, as many existing devices and protocols are not designed to work with the SDN paradigm Organizations must carefully plan their migration strategies to minimize disruptions and maximize interoperability.”

(“Networking for Cloud Computing" của G W (William) Smith)

Việc chuyển đổi từ mạng truyền thống sang SDN không phải là không có khó khăn Đảm bảo tính tương thích với các hệ thống kế thừa đặt ra một thách thức đáng kể, vì nhiều thiết bị và giao thức hiện có không được thiết kế để hoạt động với mô hình SDN Các tổ chức cần lên kế hoạch cẩn thận cho các chiến lược di chuyển của mình để giảm thiểu gián đoạn và tối đa hóa khả năng tương tác.

Xu Hướng Tương Lai a AI/ML-Based Load Balancing

“The integration of artificial intelligence and machine learning in networking is revolutionizing the approach to load balancing By analyzing traffic patterns and learning from historical data, AI-driven systems can predict traffic surges and dynamically adjust resource allocation to ensure optimal performance This shift towards intelligent load balancing is crucial for meeting the demands of modern applications.”

(“Artificial Intelligence for Networking: A Comprehensive Approach" của K S Choo và J R Lee)

Sự tích hợp trí tuệ nhân tạo và máy học trong mạng lưới đang cách mạng hóa cách tiếp cận cân bằng tải Bằng cách phân tích các mẫu lưu lượng và học hỏi từ dữ liệu lịch sử, các hệ thống điều khiển bởi AI có thể dự đoán các đợt tăng lưu lượng và điều chỉnh phân bổ tài nguyên một cách linh hoạt để đảm bảo hiệu suất tối ưu Sự chuyển mình này hướng tới cân bằng tải thông minh là rất quan trọng để đáp ứng nhu cầu của các ứng dụng hiện đại. b QoS-Aware Resource Allocation

“As the demand for diverse applications grows, the need for Quality of Service (QoS) in resource allocation becomes increasingly important Future research will focus on developing QoS-aware mechanisms that prioritize traffic based on specific application requirements, ensuring that critical services receive the necessary bandwidth and low latency while optimizing resource utilization across the network.”

("Quality of Service in Wireless Networks" của J R Choudhury và N M Khan)

Khi nhu cầu về các ứng dụng đa dạng gia tăng, sự cần thiết về Chất lượng Dịch vụ (QoS) trong phân bổ tài nguyên trở nên ngày càng quan trọng Nghiên cứu trong tương lai sẽ tập trung vào phát triển các cơ chế nhận thức về QoS, ưu tiên lưu lượng dựa trên yêu cầu cụ thể của ứng dụng, đảm bảo rằng các dịch vụ quan trọng nhận được băng thông cần thiết và độ trễ thấp, đồng thời tối ưu hóa việc sử dụng tài nguyên trên toàn mạng. c Network Slicing

“Network slicing represents a significant advancement in the management of network resources By enabling multiple virtual networks to operate over a single physical infrastructure, network slicing allows for tailored solutions that meet the unique demands of various applications This approach enhances flexibility and resource optimization in the context of Software-Defined Networking.”

("5G Mobile Networks: A Comprehensive Guide" của D M S B F C Adhikari)

Phân đoạn mạng (network slicing) đại diện cho một bước tiến đáng kể trong việc quản lý tài nguyên mạng Bằng cách cho phép nhiều mạng ảo hoạt động trên một hạ tầng vật lý duy nhất, phân đoạn mạng cho phép tạo ra các giải pháp tùy chỉnh phù hợp với những yêu cầu riêng biệt của các ứng dụng khác nhau Cách tiếp cận này nâng cao tính linh hoạt và tối ưu hóa tài nguyên trong bối cảnh mạng định nghĩa phần mềm (SDN). d Tích Hợp Blockchain

Công nghệ blockchain có thể được áp dụng trong SDN để cải thiện tính bảo mật và quản lý quyền truy cập Việc ghi lại các quyết định quản lý mạng trên blockchain có thể cung cấp một lớp bảo mật bổ sung và minh bạch, giảm thiểu rủi ro từ các cuộc tấn công mạng.

Bài giảng về SDN - Software Defined Network bởi SOICT - HUST

Router: Data plane, Control plane, Management plane

Kiến trúc của router truyền thống bao gồm 3 mặt phẳng chức năng trên cùng một thiết bị:

• Data plane: xử lý và phân phối các gói tin căn cứ theo trạng thái chuyển tiếp cục bộ trên chuyển mạch (bảng chuyển tiếp)

Trạng thái chuyển tiếp + header gói tin à quyết định chuyển tiếp

Lọc, lưu trữ và lập lịch

• Control plane: tính toán duy trì, cập nhật bảng chuyển tiếp cho chuyển mạch để data plan hoạt động được hiệu quả

Xác định cách chuyển tiếp các gói tin Định tuyến, traffic engineering, phát hiện và phục hồi sự cố/lỗi

• Management plane: cung cấp giao diện cho quản trị cấu hình và tinh chỉnh thiết bị/mạng

Traffic engineering, ACL config, cấu hình thiết bị, b) Về SDN

- Control tách khỏi Data về mặt vật lý.

Một mạng mà trong đó control plan được tách khỏi data plan về mặt vật lý, i.e không cùng trên một thiết bị

Chức năng control plan của router truyền thống được chuyển đến một chương trình tập trung

Chương trình tập trung điều khiển một số thiết bị chuyển tiếp (đóng vai trò switch)

• Sự phát triển của các thế hệ chuyển mạch và mặt phẳng điều khiển:

Năm 90: Chức năng chuyển tiếp tầng 2, định tuyến được thực hiện bằng phần mềm Năm 95: Chuyển tiếp tầng 2 được hardware hóa, định tuyến bằng phần mềm

Năm 2000: Chuyển tiếp tầng 2, chuyển tiếp tầng 3 được hardware hóa

• Việc hardware hóa các thành phần tầng thấp làm cho dữ liệu được chuyển tiếp nhanh hơn, phù hợp tốc độ đường truyền

• Control plan phân tán không còn phù hợp với mạng hiện đại • Xu hướng thiết kế các thiết bị mạng trước đây

Mạng hoạt động phân tán

Nguyên tắc plug-and-play được đề cao è Các nút xử lý và ra quyết định chuyển tiếp dữ liệu độc lập

Các nút phối hợp để xây dựng các bảng chuyển tiếp

Sử dụng Spanning Tree Protocol để xây dựng bảng chuyển tiếp MAC trên switch

Sử dụng các routing protocol để phối hợp xây dựng các bảng định tuyến của router.

→ Tốc độ hội tụ chậm (mức độ hàng chục giây, do quá trình trao đổi thông tin giữa các nút)

→ Tốc độ hội tụ này khó được chấp nhận trong mô hình mạng hiện đại, ví dụ Data center

• Nhu cầu đơn giản hóa các nút mạng

• Chức năng của nút mạng theo mô hình xử lý độc lập ngày càng trở nên phức tạp

• Cần đơn giản hóa các nút mạng bằng cách tách control plan khỏi thiết bị dẫn đến

Dễ dàng tối ưu các tuyến đường nhờ thông tin toàn cục

Dễ dàng và nhanh chóng tự động hóa công việc quản lý thiết bị theo chính sách

• Sự ra đời của các trung tâm dữ liệu thuê chung (multi-tenant data center)

Một data center với các thiết bị vật lý được thuê bởi nhiều khách hàng (tenant)

• Mỗi khách muốn nhìn/điều khiển phần mạng ảo (bao gồm cả server, storage, phần mềm) như mạng thật Ảo hóa, xây dựng và quản lý mạng ảo được thực hiện dễ dàng hơn khi control plan được tập trung lại như trong mô hình SDN.

Cụ thể: các topology ảo của mỗi khách hàng được thiết lập bằng một tập các cấu hinh switch, tính toán và cài đặt bởi control plan tập trung.

- Thành phần: Control program (App), Network OS (Controller), SDN switch.

• SDN network: Gồm 3 thành phần:

Control program (App): ứng dụng điều khiển sở hữu bởi mỗi tenant

Network OS (Controller): Phần mềm tập trung điều khiển thiết bị chuyển tiếp dữ liệu

Thiết bị chuyển tiếp dữ liệu: SDN switch - Nằm phân tán

Vẫn là một thành phần của tầng mạng

Là ứng dụng điều khiển hoạt động của mạng theo cách mong muốn của người dùng (quản trị)

VD: Định nghĩa cơ chế chuyển tiếp dữ liệu: đường đi, phân luồng v.v…

• Control program điều khiển tập trung dựa trên khung nhìn toàn cục về mạng Input: khung nhìn toàn cục (topo, csdl trạng thái)

Output: cấu hình cho mỗi thiết bị trong mạng

Biểu diễn các thiết bị mà nó điều khiển (thiết bị chuyển mạch) theo một mô hình trừu tượng cho các App phía trên điều khiển.

Cung cấp giao diện cho các App lấy trạng thái của các switch

Ra lệnh cho các switch chuyển tiếp dữ liệu

Các app thông qua Network OS thiết lập các flow trên các switch.

Thường chạy trên một máy chủ

• Có nhiều phần mềm network OS có sẵn: nNOX, ONIX, ONOS, Floodlight, Trema, OpenDaylight, HyperFlow, Kandoo, Beehive, Beacon, Maestro,

• Flow table: định nghĩa cách xử lý đối với mỗi nhóm gói tin bằng luật:

Gói tin thỏa mãn điều kiện X thì được xử lý theo cách Y.

• Packet processing: Đối chiếu mỗi gói tin đến switch lần lượt với các Flow table và thực hiện hành động được định nghĩa trong flow table tương ứng

Nếu không tìm được flow phù hợp gói tin được chuyển lên cho Controller xử lý tiếp.

• Switch giao tiếp với controller nhờ tầng API theo giao thức Openflow. c) Bài tập về SDN

Mininet: giả lập các chuyển mạch + các liên kết giữa các chuyển mạch à giả lập mạng vật lý Dùng script để tạo lập topo: thêm switch, định nghĩa kết nối giữa các switch http://mininet.org/

Openvswitch: giả lập từng chuyển mạch riêng

Opendaylight (6653): https://docs.opendaylight.org/en/latest/getting-started-guide/index.html

ONOS (cổng 6653): https://wiki.onosproject.org/display/ONOS/Basic+ONOS+Tutorial

• Cấu hình các chuyển mạch SDN để kết nối đến controller.

Cung cấp cho các chuyển mạch IP của máy cài Controller và cổng của controller. Mininet cung cấp cơ chế để đưa thông tin này cho các chuyển mạch

Có 1 số bài tập về SDN, có thể dùng ở bài giảng này

Lecture 14: Software Defined Networking by Mohammad Alizadeh, MIT

b) OpenFlow basics c) Why is SDN happening now? (a brief history) d) 4D discussion

A study on load balancing techniques in SDN by Anish Ghosh, Mrs T

- In systems administration terms, stack is normally alluded to the measure of information conveyed by the system.

- A heap balancer or server stack balancer, is an equipment or programming based gadget that productively disperses system or application movement over various server

A heap balancer: change the solicitations to an alternate server.

Stack balancers: enhance the execution of systems and applications. b) Software defined networks

- Its main motive is to program effectively the network with the software that is running on a centralized setup.

- Network switches and routers can make their own decisions (Control tách khỏi Data về mặt vật lý like Lecture 14 above)

- Comparison between SDN and Traditional Network

Traditional network: Governance of traffic forwarding are directed by protocols of shared control- plane Traditional networking protocols do not adapt to situations dynamically If they have to work together, network components in the forwarding domain, have to follow similar regulations as per common standards.

SDN:The control plane is separated from the data plane Now the control plane is present in the centralized controller that administers and governs where networks are connected with the hosts and what the topology of this network connecting to all of these hosts’ together looks like A central controller which is available everywhere allows network engineers to make use of efficient advancing methods controlled only by the software running on it

Enabling Innovation: c) Traditional vs software defined networks

These networks are static and are not flexible.

It has a distributed control plane

Traditional networks are made up of hardware devices

These networks are dynamically programmable which means they can be programmed before deployment and while the network is running.

It has a centralised control plane

These use APIs to configure as per the needs

Software defined networks are created using open softwares d) Open flow

- It was defined as a protocol for communication in SDN environments, which is used to enable the SDN controller in order to interact directly with network devices like routers and switches.Hence it can adapt better with the change in business requirements e) Load balancing

- The main goals of load balancing are: i) Improving system performance ii) Maintaining stability in the system iii) Building a system which is tolerant to faults iv) To be able to make modifications in the future

- There are actually two types of load balancing algorithms: Static Algorithm, Dynamic Algorithm f) Network load balancing

- Network Load Balancing also ensures that the traffic in the network is rerouted to all the remaining hosts in the network if any of the hosts within the cluster fail unexpectedly A Network Load Balancing cluster can scale up to 32 servers.This helps in working on critical operations hassle free. g) Works related to load balancing

- Now we list down some of the techniques used by Load balancers:

Agent Based Adaptive Load Balancing

Software Defined Networking (SDN) Adaptive

Adaptive Resource Allocation for Software Defined Networking Controllers

Controllers by Masoud Soursouri, Mahmood Ahmadi - Department of

Computer Engineering and Information Technology, Razi University,

3) Cloud-based Software Defined Networking

4.2) Adaptive resource allocation in SDN controller 4.2.1) Load measurement

4.2.4) A discussion on resource allocation/ releasing

Mục tiêu là thực hiện cân bằng tải nhưng đồng thời đảm bảo độ trễ là tối thiểu Sử dụng thuật toán Dijkstra để tìm nhiều đường đi có cùng độ dài, giúp giảm phạm vi tìm kiếm xuống một khu vực nhỏ trong cấu trúc topology dạng cây béo (fat tree topology) Cũng cần lưu ý rằng OpenDaylight mặc định chuyển tiếp lưu lượng đến tất cả các cổng Vì vậy, có thể cần phải đẩy các quy tắc cụ thể để có được kết quả cân bằng tải hợp lý Hiện tại, chương trình chỉ đơn giản là tìm đường đi có tải thấp nhất và chuyển tiếp lưu lượng trên đường đó.

1 SDN Controller - Floodlight v1.2 or OpenDaylight Beryllium SR1

4 OS - Ubuntu 14.04 LTS Ý tưởng triển khai: Ý tưởng chính: Sử dụng các API REST để thu thập thông tin vận hành của topology và các thiết bị trong mạng.

- Kích hoạt thu thập thống kê trong trường hợp dùng Floodlight (TX tức là Tốc độ Truyền, RX tức là Tốc độ Nhận, v.v.) Bước này không áp dụng cho

- Tìm thông tin về các host được kết nối như IP của chúng, Switch mà chúng được kết nối, Địa chỉ MAC, Mapping Cổng, v.v.

- Thu thập thông tin về đường đi/tuyến (sử dụng thuật toán Dijkstra, từ đó giới hạn tìm kiếm tới các đường đi ngắn nhất và chỉ trong một đoạn của topology dạng cây béo) từ Host 1 đến Host 2, tức là giữa các host cần thực hiện cân bằng tải.

- Tìm tổng chi phí liên kết cho tất cả các đường đi giữa Host 1 và Host 2 Trong trường hợp dùng Floodlight, đó là TX và RX, nhưng đối với OpenDaylight chỉ có dữ liệu đã truyền Do đó, cần thực hiện các yêu cầu REST tiếp theo để tính toán điều này, dẫn đến tăng độ trễ cho ứng dụng (khi dùng OpenDaylight).

- Các luồng (flow) được tạo tùy thuộc vào chi phí truyền tải thấp nhất của các liên kết tại thời điểm đó.

- Dựa trên chi phí, đường đi tốt nhất được quyết định và các luồng tĩnh (static flows) được đẩy vào mỗi switch trong đường đi hiện tại tốt nhất Các thông tin như In-Port, Out-Port, IP nguồn, IP đích, MAC nguồn, MAC đích được cung cấp cho các luồng này.

- Chương trình tiếp tục cập nhật thông tin này mỗi phút, giúp duy trì tính động.

Ngày đăng: 15/11/2024, 18:26

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w