Sử dụng nhiều bảng (The Use of Multiple Tables)
Việc sử dụng nhiều bảng cho phép lồng các luồng hoặc nói một cách khác, nó cho phép chia nhỏ một luồng thành một số luồng con song song. Ví dụ, một mục trong Bảng 0 xác định một luồng bao gồm các gói truyền qua mạng từ một địa chỉ IP nguồn cụ thể đến một địa chỉ IP đích cụ thể. Khi một tuyến đường có chi phí thấp nhất giữa hai điểm cuối này được thiết lập, tất cả lưu lượng giữa hai điểm cuối này có thể có ý nghĩa theo tuyến đường đó và bước tiếp theo trên tuyến đường đó từ thiết bị chuyển mạch này có thể được nhập vào Bảng 0. Trong Bảng 1, Các đề mục riêng biệt cho
25
luồng này có thể được xác định cho các giao thức tầng vận chuyển khác nhau, chẳng hạn như TCP và UDP. Đối với các luồng con này, cùng một cổng đầu ra có thể được giữ lại để các luồng con đều đi theo cùng một lộ trình. Tuy nhiên, TCP bao gồm các cơ chế kiểm soát tắc nghẽn phức tạp thường khơng được tìm thấy với UDP, vì vậy có thể hợp lý để xử lý luồng con TCP và UDP khác nhau về các tham số liên quan đến QoS. Bất kỳ mục nào trong Bảng 1 có thể ngay lập tức định tuyến luồng con tương ứng của nó tới cổng đầu ra, nhưng một số hoặc tất cả các đề mục có thể gọi Bảng 2, chia nhỏ hơn nữa từng luồng con.
Bảng nhóm (Group table)
Trong quá trình xử lý đường ống, flow table có thể hướng một luồng gói đến bảng nhóm chứ khơng phải đến một flow table khác. Bảng nhóm và các hành động nhóm cho phép OpenFlow đại diện cho một tập hợp các cổng như một thực thể duy nhất để chuyển tiếp các gói. Các loại nhóm khác nhau được cung cấp để đại diện cho các yếu tố trừu tượng chuyển tiếp khác nhau, chẳng hạn như đa hướng và phát sóng. Mỗi bảng nhóm bao gồm một số hàng, được gọi là đề mục nhóm, mỗi hàng có bốn thành phần (tham khảo Hình 6c):
Group identifier (Định danh nhóm): Đây là một số nguyên không dấu 32
bit dùng để nhận dạng duy nhất nhóm. Một nhóm được định nghĩa là một mục nhập trong bảng nhóm.
Group type (Loại nhóm): Thành phần này xác định ngữ nghĩa của nhóm,
như được giải thích ở phần sau của chương này.
Counters (Bộ đếm): Thành phần này được cập nhật khi các gói được xử lý
bởi một nhóm.
Action buckets (Nhóm hành động): Đây là danh sách có thứ tự các nhóm
hành động, trong đó mỗi nhóm hành động chứa một tập hợp các hành động để thực thi và các tham số được liên kết.
Mỗi nhóm bao gồm một tập hợp một hoặc nhiều nhóm hành động. Mỗi nhóm chứa một danh sách các hành động. Khơng giống như nhóm hành động được liên kết với đề mục flow table, là danh sách các hành động được tích lũy trong khi gói được xử lý bởi mỗi flow table, danh sách hành động trong một nhóm được thực thi khi một gói đến một nhóm. Danh sách hành động được thực hiện theo trình tự và thường kết
26
thúc bằng hành động đầu ra, hành động này sẽ chuyển tiếp gói tin đến một cổng được chỉ định. Danh sách hành động cũng có thể kết thúc bằng hành động nhóm, hành động này sẽ gửi gói tin đến một nhóm khác. Điều này cho phép xâu chuỗi các nhóm để xử lý phức tạp hơn.
Giao thức OpenFlow (OpenFlow Protocol)
Giao thức OpenFlow mô tả các trao đổi tin nhắn diễn ra giữa bộ điều khiển OpenFlow và thiết bị chuyển mạch OpenFlow. Thông thường, giao thức được triển khai trên TLS, cung cấp một kênh OpenFlow an toàn.
Giao thức OpenFlow cho phép bộ điều khiển thực hiện các hành động thêm, cập nhật và xóa đối với các flow entry trong flow table. Nó hỗ trợ ba loại thơng báo:
Controller-to-switch: Các thông báo này được khởi tạo bởi bộ điều khiển
và trong một số trường hợp, yêu cầu phản hồi từ thiết bị chuyển mạch. Lớp thông báo này cho phép bộ điều khiển quản lý trạng thái logic của thiết bị chuyển mạch, bao gồm cấu hình và chi tiết của các flow entry và group table entry . Cũng bao gồm trong lớp này là thơng báo gói tin, được gửi bởi bộ điều khiển đến một thiết bị chuyển mạch khi thiết bị chuyển mạch đó gửi một gói đến bộ điều khiển và bộ điều khiển quyết định khơng bỏ gói mà chuyển nó đến một cổng đầu ra của thiết bị chuyển mạch.
Asynchronous (không đồng bộ): Các loại thông báo này được gửi mà
khơng có sự thu hút từ bộ điều khiển. Lớp này bao gồm các thông báo trạng thái khác nhau tới bộ điều khiển. Cũng bao gồm thơng điệp gói trong, có thể được sử dụng bởi thiết bị chuyển mạch để gửi một gói đến bộ điều khiển khi khơng có bảng luồng phù hợp.
Symmetric (Đối xứng): Những tin nhắn này được gửi mà không cần sự mời
mọc từ bộ điều khiển hoặc thiết bị chuyển mạch. Chúng đơn giản nhưng hữu ích. Thơng báo Hello thường được gửi qua lại giữa bộ điều khiển và thiết bị chuyển mạch khi kết nối được thiết lập lần đầu tiên. Thiết bị hoặc bộ điều khiển có thể sử dụng các thơng báo trả lời và yêu cầu bằng tiếng vang để đo độ trễ hoặc băng thông của kết nối bộ điều khiển-thiết bị chuyển mạch hoặc chỉ cần xác minh rằng thiết bị đang hoạt động. Thông báo người thử nghiệm được sử dụng để hiển thị các tính năng sẽ được tích hợp vào các phiên bản OpenFlow trong tương lai.
27
Nói chung, giao thức OpenFlow cung cấp cho bộ điều khiển SDN ba loại thông tin được sử dụng để quản lý mạng:
Thông báo dựa trên sự kiện: Được gửi bởi thiết bị chuyển mạch tới bộ điều khiển khi xảy ra sự thay đổi liên kết hoặc cổng.
Thống kê luồng: Được tạo bởi thiết bị chuyển mạch dựa trên lưu lượng truy cập. Thông tin này cho phép bộ điều khiển giám sát lưu lượng, cấu hình lại mạng khi cần và điều chỉnh các thông số lưu lượng để đáp ứng các yêu cầu QoS.
Các gói được đóng gói: Được bộ chuyển mạch gửi đến bộ điều khiển bởi vì có một hành động rõ ràng để gửi gói này trong một flow table entry hoặc vì thiết bị chuyển mạch cần thơng tin để thiết lập một luồng mới.
Giao thức OpenFlow cho phép bộ điều khiển quản lý cấu trúc logic của một thiết bị chuyển mạch mà không cần quan tâm đến chi tiết về cách thiết bị chuyển mạch thực hiện kiến trúc logic OpenFlow.
5. SDN Control Plane ( Mặt phẳng điều khiển SDN)
Control Plane Functions
Lớp điều khiển SDN ánh xạ các yêu cầu dịch vụ lớp ứng dụng thành các lệnh và chỉ thị đến các công tắc mặt phẳng dữ liệu và các ứng dụng cung cấp với thông tin về cấu trúc liên kết và hoạt động của mặt phẳng dữ liệu. Lớp điều khiển được triển khai như một máy chủ hoặc tập hợp các máy chủ hợp tác được gọi là bộ điều khiển SDN. Phần này cung cấp một cái nhìn tổng quan về chức năng của mặt phẳng điều khiển.
28
HÌNH 8 Các chức năng và giao diện mặt phẳng điều khiển SDN
Hình minh họa các chức năng cần thiết mà bất kỳ bộ điều khiển nào cũng cần cung cấp, bao gồm những điều sau:
Shortest path forwarding: (Chuyển tiếp đường dẫn ngắn nhất) Sử dụng
thông tin định tuyến được thu thập từ chuyển sang thiết lập các tuyến đường ưu tiên.
Notification manager: (Trình quản lý thơng báo) Nhận, xử lý và chuyển
tiếp đến một các sự kiện ứng dụng như thông báo báo động, cảnh báo bảo mật và trạng thái những thay đổi.
Security mechanisms: (Cơ chế bảo mật) Cung cấp cách ly và thực thi bảo
mật giữa các ứng dụng và dịch vụ.
Topology manager: (Trình quản lý cấu trúc liên kết) Xây dựng và duy trì
kết nối chuyển mạch thông tin cấu trúc liên kết.
Statistics manager: (Quản lý thống kê) Thu thập dữ liệu về lưu lượng truy
29
Device manager: (Trình quản lý thiết bị) Cấu hình chuyển đổi các thơng số
và thuộc tính vàquản lý các bảng lưu lượng.
Chức năng được cung cấp bởi bộ điều khiển SDN có thể được xem như một hệ điều hành mạng (NOS). Như với một hệ điều hành thông thường, một NOS cung cấp các dịch vụ thiết yếu, các API phổ biến và phần tóm tắt của lớp thấp hơn các yếu tố đối với nhà phát triển. Các chức năng của SDN NOS, chẳng hạn như những chức năng được liệt kê ở trên, cho phép các nhà phát triển xác định chính sách mạng và quản lý mạng mà không cần quan tâm đến các chi tiết về đặc điểm của thiết bị mạng, mà có thể khơng đồng nhất và động. Khu vực phía bắc, sau đó đã thảo luận, cung cấp một phương tiện thống nhất cho các nhà phát triển ứng dụng và quản lý mạng để truy cập dịch vụ SDN và thực hiện quản lý mạng các nhiệm vụ. Hơn nữa, các giao diện hướng bắc được xác định rõ ràng cho phép các nhà phát triển tạo phần mềm không chỉ độc lập với các chi tiết của mặt phẳng dữ liệu mà cịn để có thể sử dụng ở mức độ lớn với nhiều loại máy chủ điều khiển SDN.
Note: NOS là một hệ điều hành dựa trên máy chủ được định hướng cho mạng máy tính. Nó có thể bao gồm dịch vụ thư mục, quản lý mạng, giám sát mạng, chính sách mạng, nhóm người dùng quản lý, bảo mật mạng và các chức năng khác liên quan đến mạng.
Southbound Interface
Chức năng của mặt phẳng điều khiển có thể nhìn thấy qua bốn giao diện, được đặt tên địa lý [LATI20]. Southbound Interface (SBI) cung cấp kết nối logic giữa bộ điều khiển SDN và thiết bị chuyển mạch mặt phẳng dữ liệu, như trong Hình 9. Một số
30
sản phẩm bộ điều khiển và cấu hình chỉ hỗ trợ một giao thức hướng nam duy nhất. Một linh hoạt hơn phương pháp tiếp cận là việc sử dụng lớp trừu tượng hướng nam cung cấp một giao diện cho các chức năng mặt phẳng điều khiển trong khi hỗ trợ nhiều các API hướng nam.
HÌNH 9 Giao diện bộ điều khiển SDN
API hướng nam được triển khai phổ biến nhất là OpenFlow.
Northbound Interface
Northbound Interface (NBI) cho phép các ứng dụng truy cập mặt phẳng điều khiển các chức năng và dịch vụ mà không cần biết chi tiết về các chuyển mạch mạng. Giao diện hướng bắc thường được xem như một API phần mềm hơn là một giao thức.
31
các nhà phát triển / nhà cung cấp khác nhau có thể sử dụng cho giao diện hướng bắc. Một lý do cho sự thiếu tiêu chuẩn này là sự thay đổi trong các ứng dụng và yêu cầu của họ. Tuy nhiên, có sự đồng thuận về kiến trúc phương pháp tiếp cận được gọi là NBI mục đích và một số gói SDN nguồn mở sử dụng nó.
Về cơ bản, có hai cách tiếp cận để phát triển NBI:
Prescriptive: (Mô tả) Ứng dụng chỉ định hoặc hạn chế lựa chọn và phân bổ,
ảo hóa và trừu tượng hóa hoặc lắp ráp và nối tài nguyên cần thiết để đáp ứng yêu cầu.
Nonprescriptive: (Khơng mơ tả) Đây cịn được gọi là NBI có ý định. Ứng
dụng mô tả các yêu cầu của nó bằng ngơn ngữ hướng ứng dụng và bộ điều khiển trở thành một hộp đen thơng minh tích hợp mạng lõi dịch vụ xây dựng các ứng dụng mạng để phục vụ yêu cầu của người dùng.
Một tài liệu tham khảo quan trọng về mục đích NBI là một tài liệu do Open
Networking Foundation [ONF16] phát hành, mơ tả mơ hình NBI có ý định, tiện ích và thuộc tính của nó cũng như cấu trúc triển khai tiềm năng của nó. Hình 10, từ tài liệu đó, cung cấp một biểu diễn sơ đồ của kiến trúc.
32
HÌNH 10 Biểu diễn sơ đồ của kiến trúc NBI
Kiến trúc sử dụng các ánh xạ có thể dịch các yêu cầu NBI có ý định thành các biểu mẫu mà các thực thể cấp thấp hơn có thể hiểu được. Ánh xạ là một cơ chế trung gian thông tin cho phép người tiêu dùng và hệ thống nhà cung cấp để giao tiếp theo các thuật ngữ tự nhiên đối với mỗi nhà cung cấp. Ý định môi trường năng động. Hệ thống ý định, về cơ bản là phần mềm trung gian giữa các ứng dụng và bộ điều khiển SDN, liên tục đánh giá mối quan hệ giữa một số yếu tố:
Yêu cầu hiện có và ý định mới Ánh xạ
Các tập hợp và trạng thái tài nguyên được kiểm soát
33
giao diện với bộ điều khiển và giao diện NBI với các ứng dụng được quản lý bởi một thành phần người quản lý dịch vụ tiêu dùng. Cơng cụ ý định có năm thành phần chính:
Information repository (repo): (Kho lưu trữ thông tin (repo)): Đây chứa
tập hợp các dịch vụ đang hoạt động ý định và ánh xạ giá trị tra cứu.
Map_Read API handler (Trình xử lý API Map_Read): Điều này có trách
nhiệm phản ánh tới repo nắm bắt cập nhật các giá trị tra cứu ánh xạ.
Intent NBI handler (Trình xử lý Intent NBI): Điều này chịu trách nhiệm
nhận các ý định dịch vụ từ hệ thống người tiêu dùng và phản ánh chúng đến repo (trong bản gốc biểu mẫu) và để phản ánh các thông báo tới hệ thống người tiêu dùng.
Intent active loop (Vịng lặp hoạt động có ý định): Phần tử này chịu trách
nhiệm liên tục đánh giá ý định dịch vụ đang hoạt động và ánh xạ từ repo và thơng tin mạng từ trình xử lý SBI và thực hiện các hành động cần thiết để tạo mới hoặc sửa đổi thích hợp các cấu hình dịch vụ hiện có như một chức năng của các thay đổi ý định được phát hiện (repo) và / hoặc ánh xạ thay đổi (repo) và / hoặc thay đổi mạng (được SBI phản ánh xử lý). Tính tốn các đầu vào thích hợp để được phản ánh tới SBI xử lý kết quả như sau:
o Đầu vào cho trình xử lý SBI có thể tuân theo một số biểu mẫu dựa trên mơ hình, chẳng hạn như chỉ định một hoặc nhiều cặp điểm cuối cho từng phần kết nối với nhau, cùng với các ràng buộc về tham số như vậy kết nối. Khi đó, chức năng của vịng lặp hoạt động ý định sẽbao gồm bất kỳ phân tích cú pháp và bản dịch bắt buộc và thích hợp nào của điều
34
khoản yêu cầu ý định vào mẫu mơ hình như vậy. Hướng dẫn được chuyển tiếp tới trình xử lý SBI sẽ dựa trên mơ hình này và sử dụng thuật ngữ là kết quả của việc tra cứu ánh xạ.
o Trường hợp điều kiện mạng không cho phép các hướng dẫn cung cấp tất cả các khía cạnh của ý định dịch vụ cụ thể, thơng báo thích hợp được tổng hợp để được phản ánh tới trình xử lý NBI có ý định
Controller-specific SBI handler: (Bộ xử lý SBI dành riêng cho bộ điều khiển) Đây là bộ điều khiển duy nhất dành riêng cho bộ điều khiển thành phần
của cơng cụ ý định và có các chức năng sau:
o Nó nhận đầu vào từ vịng lặp hoạt động ý định và cung cấp hình thức sửa đổi thích hợp của các đầu vào đó, như cung cấp hướng dẫn tới bộ điều khiển SDN.
o Nó nhận thơng tin (ví dụ: thơng tin cấu trúc liên kết) từ SDN bộ điều khiển và chuyển tiếp nó đến vịng lặp hoạt động có ý định trong một hình thức sửa đổi phù hợp.
Hình cũng mơ tả một hệ thống nguồn thơng tin bản đồ. Về mặt khái niệm, hệ thống này liên kết các điều khoản cụ thể của NBI có mục đích, được gọi là khóa hoặc chỉ số, với điều khiển các đối tượng và hoạt động NBI.
Kiến trúc này có một số điểm mạnh và lợi ích:
Khai báo ý định là khai báo và phục vụ để phân biệt người tiêu dùng và triển khai hệ thống của nhà cung cấp. Họ nhằm mục đích tạo ra con người và / hoặc các yêu cầu của người tiêu dùng máy được chuyển tiếp đến nhà cung cấp hệ
35
thống càng đơn giản càng tốt. Bộ điều khiển SDN có thể tính tốn kết quả tối ưu để thực hiện yêu cầu mục đích.
Yêu cầu mục đích độc lập với nền tảng bộ điều khiển và triển khai. Nó chỉ thể hiện các yêu cầu đối với ứng dụng lớp và sử dụng từ vựng và thông tin liên