Tải bản đầy đủ (.pdf) (49 trang)

TIỂU LUẬN HỌC PHẦN BÁO HIỆU VÀ ĐIỀU KHIỂN ĐỀ TÀI Kết nối mạng định nghĩa bằng phần mềm SDN

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.72 MB, 49 trang )

HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THƠNG
----------

TIỂU LUẬN HỌC PHẦN
BÁO HIỆU VÀ ĐIỀU KHIỂN
ĐỀ TÀI: Kết nối mạng định nghĩa bằng
phần mềm SDN
Giảng viên

: Hồng Trọng Minh

Nhóm 18
Ninh Minh Đức

: B18DCVT110

Nguyễn Trường An

: B18DCVT002

Nguyễn Văn Sơn

: B18DCVT350

Hà Nội - 2021


Nhóm18

Mục lục
Lời nói đầu.......................................................................................................................3


Dạnh mục hình.................................................................................................................4
Thuật ngữ viết tắt .............................................................................................................5
Phân chia công việc..........................................................................................................6
1 Các yêu cầu về mạng đang phát triển.........................................................................7
2 Phương pháp tiếp cận SDN.........................................................................................8
 Yêu cầu mạng hiện đại..........................................................................................8
 Kiến trúc SDN......................................................................................................9
 Đặc điểm của mạng định nghĩa bằng phần mềm..................................................11
3 Mặt phẳng dữ liệu SDN.............................................................................................12
 Các chức năng của mặt phẳng dữ liệu.................................................................12
 Giao thức mặt phẳng dữ liệu...............................................................................14
4 OpenFlow ..................................................................................................................14
 Cấu trúc bảng dòng chảy.....................................................................................17
 Bảng dòng chảy đường ống.................................................................................21
 Việc sử dụng nhiều bảng ....................................................................................23
 Bảng nhóm .........................................................................................................24
 Giao thức OpenFlow...........................................................................................25
5 Mặt phẳng điều khiển SDN ......................................................................................26
 Chức năng điều khiển máy bay...........................................................................27
 Giao diện hướng Nam.........................................................................................28
 Giao diện hướng bắc...........................................................................................29
 Giao diện hướng Đông........................................................................................34
 Giao diện hướng Tây...........................................................................................36
6 Mặt phẳng ứng dụng SDN........................................................................................36
 Kiến trúc mặt phẳng ứng dụng ...........................................................................36
 Giao diện hướng bắc...........................................................................................37
1


Nhóm18


 Lớp Tóm tắt Dịch vụ Mạng.................................................................................38
 Ứng dụng mạng..................................................................................................39
 Kỹ thuật lưu lượng..............................................................................................41
 Đo lường và giám sát..........................................................................................42
 Bảo mật và độ tin cậy..........................................................................................43
 Mạng trung tâm dữ liệu.......................................................................................43
 Tính di động và khơng dây..................................................................................44
 Mạng hướng thơng tin.........................................................................................45
Kết luận..........................................................................................................................47
Tài liệu tham khảo..........................................................................................................48

2


Nhóm18

Lời nói đầu
Software-Defined Networking (SDN) là một kiến trúc nhằm mục đích làm cho
các mạng trở nên linh hoạt hơn, mục tiêu của Software-Defined Networking
(SDN) là cho phép các kỹ sư và người quản trị cloud và mạng nhanh chóng đáp
ứng các yêu cầu kinh doanh thay đổi thông qua một bộ điều khiển tập trung. Trong
SDN, kỹ sư hoặc quản trị viên mạng có thể định hình lưu lượng truy cập từ bộ
điều khiển tập trung mà không phải thiết lập trên từng thiết bị riêng lẻ trong mạng.
Bộ điều khiển SDN tập trung quản lý các thiết bị cung cấp các dịch vụ mạng bất
cứ khi nào chúng cần, bất kể các loại kết nối nào giữa server và thiết bị. Quá trình
này là một bước đi từ kiến trúc mạng truyền thống, trong đó các thiết bị mạng
riêng lẻ đưa ra quyết định lưu lượng dựa trên các bảng định tuyến được định cấu
hình của chúng. SDN bao gồm nhiều loại công nghệ mạng được thiết kế để giúp
mạng trở nên linh hoạt hơn để hỗ trợ ảo hóa và cơ sở hạ tầng lưu trữ của trung

tâm dữ liệu hiện đại. Bố cục của bài tiểu luận gồm 6 phần:
1. Các yêu cầu về mạng đang phát triển
2. Phương pháp tiếp cận SDN
3. Mặt phẳng dữ liệu SDN
4. OPENFLOW
5. SDN Control Plane
6. SDN Application Plane
Bằng sự cố gắng và nỗ lực nhóm em đã hồn thành xong bài tiểu luận của nhóm.
Do có sự hạn chế về mặt thời gian và mức độ hiểu biết của bản thân nên khơng
thể tránh khỏi những thiếu sót trong q trình nghiên cứu. Vì thế, nhóm em rất
mong nhận được những lời góp ý và sự chỉ bảo thêm của các thầy cơ và các bạn
để em có thêm những kiến thức phục vụ cho học tập cũng như công việc sau này.

3


Nhóm18

Danh mục hình vẽ
Hình 1 Máy điều khiển và dữ liệu.............................................................................9
Hình 2 Kiến trúc SDN..............................................................................................10
Hình 3 Thiết bị mạng mặt phẳng dữ liệu...................................................................13
Hình 4 Bối cảnh chuyển đổi OpenFlow....................................................................15
Hình 5 Các thành phần chính của thiết bị chuyển mạch OpenFlow..........................16
Hình 6 Định dạng đề mục bảng OpenFlow..............................................................18
Hình 7 Luồng gói qua thiết bị chuyển mạch OpenFlow: Xử lý xâm nhập...............23
Hình 8 Các chức năng và giao diện mặt phẳng điều khiển SDN..............................27
Hình 9 Giao diện bộ điều khiển SDN.......................................................................29
Hình 10 Biểu diễn sơ đồ của kiến trúc NBI..............................................................32
Hình 11 Cấu trúc miền SDN.....................................................................................36

Hình 12 Các chức năng và giao diện mặt phẳng ứng dụng SDN.............................39

4


Nhóm18

Thuật ngữ viết tắt
SDN: Software-defined
networking

Mạng định nghĩa bằng phần mềm

API: Application programing
interface

Giao diện lập trình ứng dụng

VLAN: Virtual local area
networks

Mạng cục bộ ảo

VM: Virtual machine

Máy ảo

Qos: Quality of Service

Chất lượng dịch vụ


QoE: Quality of Experience

Chất lượng trải nghiệm

ODCA: Open Data Center
Alliance

Liên minh trung tâm dữ liệu mở

TCP: Transmission control
protocol

Giao thức điều khiển truyền dẫn

UDP: User Datagram Protocol

Giao thức dữ liệu người dùng

ONF: Open Networking
Foundation

Tổ chức phi lơị nhuâ ̣n điề u hành nhằm thúc đẩy mạng
thông qua mạng do phần mềm xác định (SDN) và
chuẩn hóa giao thức OpenFlow và các công nghệ liên
quan

TLS: Transport Layer Security

Bảo mật tầng giao vận


MPLS: Multiprotocol Label
Switching (MPLS)

Chuyển đổi nhãn đa giao thức

5


Nhóm18

NOS: Network operating system

Hệ điều hành mạng

NBI: Northbound interface

Giao diện hướng Bắc

IETF: Internet Engineering Task
Force

Nhóm đặc nhiệm kỹ thuật Internet

SLA: service-level agreement

Thoả thuận cấp độ dịch vụ

ICN: Information-centric
networking


Mạng lấy thông tin làm trung tâm

Phân chia công việc

1 Các yêu cầu về mạng đang phát triển
Nguyễn Văn Sơn

2 Phương pháp tiếp cận SDN
3 Mặt phẳng dữ liệu SDN

Ninh Minh Đức

4 OpenFlow
5 Mặt phẳng điều khiển SDN

Nguyễn Trường An

6 Mặt phẳng ứng dụng SDN

6


Nhóm18

1. Các yêu cầu về mạng đang phát triển
Các yêu cầu về mạng ngày càng phát triển đã dẫn đến nhu cầu về một cách tiếp cận
đáp ứng linh hoạt để kiểm soát các luồng lưu lượng trong mạng hoặc trên Internet.
Một yếu tố thúc đẩy chính là việc sử dụng ảo hóa máy chủ ngày càng rộng rãi. Về
bản chất, ảo hóa máy chủ che giấu tài nguyên máy chủ, bao gồm số lượng và danh

tính của từng máy chủ vật lý, bộ xử lý và hệ điều hành từ người dùng máy chủ. Điều
này giúp bạn có thể phân vùng một máy thành nhiều máy chủ độc lập và tiết kiệm
tài nguyên phần cứng. Nó cũng giúp bạn có thể nhanh chóng di chuyển máy chủ từ
máy này sang máy khác để cân bằng tải hoặc chuyển đổi động trong trường hợp máy
bị lỗi. Ảo hóa máy chủ đã trở thành yếu tố trung tâm trong việc xử lý các ứng dụng
dữ liệu lớn và triển khai cơ sở hạ tầng điện tốn đám mây. Nhưng nó tạo ra các vấn
đề với các kiến trúc mạng truyền thống. Một vấn đề là cấu hình mạng cục bộ ảo
(VLAN). Người quản lý mạng cần đảm bảo VLAN được sử dụng bởi máy ảo (VM)
được gán cho cùng một cổng chuyển mạch với máy chủ vật lý chạy VM. Nhưng với
máy ảo có thể di chuyển được, cần phải cấu hình lại VLAN mỗi khi máy chủ ảo
được di chuyển. Nói chung, để phù hợp với tính linh hoạt của ảo hóa máy chủ, người
quản lý mạng cần có khả năng thêm, bớt và thay đổi tài nguyên và cấu hình mạng
một cách linh hoạt. Điều này khó thực hiện với các bộ chuyển mạch mạng thơng
thường, vì logic điều khiển cho mỗi bộ chuyển mạch được gắn với logic chuyển
mạch.
Một hiệu ứng khác của ảo hóa máy chủ là các luồng lưu lượng truy cập về cơ bản
khác với các luồng lưu lượng trong mơ hình máy khách / máy chủ truyền thống.
Thơng thường, có một lượng lưu lượng đáng kể giữa các máy chủ ảo, cho các mục
đích như duy trì hình ảnh nhất quán của cơ sở dữ liệu và gọi các chức năng bảo mật
như kiểm soát truy cập. Các luồng từ máy chủ đến máy chủ này thay đổi về vị trí và
cường độ theo thời gian, đòi hỏi một cách tiếp cận linh hoạt để quản lý tài nguyên
mạng.
Một yếu tố khác dẫn đến nhu cầu phản ứng nhanh chóng trong việc phân bổ tài
nguyên mạng là việc nhân viên ngày càng sử dụng thiết bị di động, chẳng hạn như
điện thoại thông minh, máy tính bảng và máy tính xách tay, để truy cập tài nguyên
của doanh nghiệp. Người quản lý mạng phải có khả năng đáp ứng các yêu cầu về tài
nguyên, chất lượng dịch vụ (QoS) và bảo mật đang thay đổi nhanh chóng.
7



Nhóm18

Trước khi SDN ra đời, cơ sở hạ tầng mạng có thể đáp ứng các yêu cầu thay đổi đối
với việc quản lý các luồng lưu lượng, cung cấp các mức QoS và mức độ bảo mật
khác nhau cho các luồng riêng lẻ; nhưng quá trình này rất tốn thời gian nếu mạng
doanh nghiệp lớn và / hoặc liên quan đến các thiết bị mạng từ nhiều nhà cung cấp.
Người quản lý mạng phải định cấu hình thiết bị của từng nhà cung cấp riêng biệt và
điều chỉnh các thông số hiệu suất và bảo mật trên cơ sở mỗi phiên, mỗi ứng dụng.
Trong một doanh nghiệp lớn, mỗi khi một máy ảo mới được đưa lên, người quản lý
mạng có thể mất hàng giờ hoặc thậm chí vài ngày để thực hiện việc cấu hình lại cần
thiết [ ONF12 ].
Như đã thảo luận trong chương này, kiến trúc SDN và tiêu chuẩn OpenFlow cung
cấp một kiến trúc mở, trong đó chức năng điều khiển được tách biệt khỏi thiết bị
mạng và được đặt trong các máy chủ điều khiển có thể truy cập được. Điều này cho
phép cơ sở hạ tầng bên dưới được trừu tượng hóa cho các ứng dụng và dịch vụ mạng,
có thể coi mạng như một thực thể logic.

2. Phương pháp tiếp cận SDN
Phần này cung cấp tổng quan về SDN và chỉ ra cách nó được thiết kế để đáp ứng
các yêu cầu mạng đang phát triển.

Yêu cầu mạng hiện đại
Liên minh Trung tâm Dữ liệu Mở (ODCA) cung cấp một danh sách tốt, ngắn gọn
các yêu cầu đối với cách tiếp cận mạng hiện đại, bao gồm [ ODCA14 ] sau:
 Khả năng thích ứng: Mạng phải điều chỉnh và phản hồi động, dựa trên nhu
cầu ứng dụng, chính sách kinh doanh và điều kiện mạng.
 Tự động hóa: Các thay đổi chính sách phải được tự động truyền bá để có thể
giảm bớt công việc thủ công và các lỗi.
 Khả năng bảo trì: Việc giới thiệu các tính năng và khả năng mới (ví dụ:
nâng cấp phần mềm, các bản vá lỗi), phải liền mạch, với sự gián đoạn hoạt

động tối thiểu.
 Quản lý mơ hình: Phần mềm quản lý mạng phải cho phép quản lý mạng ở
cấp độ mơ hình hơn là thực hiện các thay đổi khái niệm bằng cách cấu hình
lại các phần tử mạng riêng lẻ.
8


Nhóm18

 Tính di động: Chức năng điều khiển phải phù hợp với tính di động, bao gồm
thiết bị người dùng di động và máy chủ ảo.
 Bảo mật tích hợp: Các ứng dụng mạng phải tích hợp bảo mật liền mạch như
một dịch vụ cốt lõi thay vì như một giải pháp bổ trợ.
 Mở rộng theo yêu cầu: Việc triển khai phải có khả năng mở rộng hoặc thu
nhỏ mạng và các dịch vụ của nó để hỗ trợ các yêu cầu theo yêu cầu.

Kiến trúc SDN
Khái niệm trung tâm đằng sau SDN là cho phép các nhà phát triển và nhà quản lý
mạng có cùng một kiểu kiểm sốt đối với thiết bị mạng mà họ có trên các máy chủ
x86. Cách tiếp cận SDN phân tách chức năng chuyển đổi giữa mặt phẳng dữ liệu và
mặt phẳng điều khiển nằm trên các thiết bị riêng biệt (xem Hình 1 b ). Mặt phẳng
dữ liệu chỉ chịu trách nhiệm chuyển tiếp các gói tin và mặt phẳng điều khiển cung
cấp “trí thơng minh” trong việc thiết kế các tuyến đường, thiết lập các tham số chính
sách định tuyến và ưu tiên để đáp ứng các yêu cầu về chất lượng dịch vụ (QoS) và
chất lượng trải nghiệm (QoE) và đối phó với thay đổi mơ hình giao thơng. Giao diện
mở được định nghĩa để phần cứng chuyển mạch hiển thị một giao diện thống nhất,
bất kể chi tiết triển khai bên trong. Tương tự, các giao diện mở được xác định để
cho phép các ứng dụng mạng giao tiếp với bộ điều khiển SDN.

9



Nhóm18

HÌNH 1 Máy điều khiển và dữ liệu
Hình 2 minh họa kiến trúc SDN. Mặt phẳng dữ liệu bao gồm các chuyển mạch vật
lý và chuyển mạch ảo, cả hai đều có nhiệm vụ chuyển tiếp các gói tin. Việc triển
khai bên trong bộ đệm, tham số ưu tiên và các cấu trúc dữ liệu khác liên quan đến
chuyển tiếp có thể phụ thuộc vào nhà cung cấp. Tuy nhiên, mỗi bộ chuyển mạch
phải thực hiện một mơ hình, hoặc một mơ hình trừu tượng, của chuyển tiếp gói thống
nhất và mở cho bộ điều khiển SDN. Mơ hình này được định nghĩa dưới dạng một
API mở giữa mặt phẳng điều khiển và mặt phẳng dữ liệu (tức là API hướng nam).
Ví dụ nổi bật nhất về một API mở như vậy là OpenFlow, sẽ được thảo luận ở phần
sau của chương này. Đặc tả OpenFlow xác định cả giao thức giữa mặt phẳng điều
khiển và dữ liệu và một API mà mặt phẳng điều khiển có thể gọi giao thức
OpenFlow.
Cần lưu ý rằng SDN có khả năng xử lý các thiết bị chuyển mạch vật lý cho cả liên
kết truyền dẫn khơng dây (ví dụ: Wi-Fi, mạng di động) và có dây (ví dụ: Ethernet).

10


Nhóm18

HÌNH 2 Kiến trúc SDN
Tương tự, bộ điều khiển SDN có thể được triển khai trực tiếp trên máy chủ hoặc trên
máy chủ ảo. OpenFlow hoặc một số API mở khác được sử dụng để điều khiển các
thiết bị chuyển mạch trong mặt phẳng dữ liệu. Ngoài ra, bộ điều khiển sử dụng thông
tin về dung lượng và nhu cầu thu được từ thiết bị mạng mà lưu lượng truyền qua đó.
Bộ điều khiển SDN cũng tiết lộ các API hướng bắc, có nghĩa là các nhà phát triển

và quản lý mạng có thể triển khai một loạt các ứng dụng mạng có sẵn và được xây
dựng tùy chỉnh, nhiều ứng dụng trong số đó khơng khả thi trước khi SDN ra đời. Vì
chưa có API hướng bắc chuẩn hóa và khơng có sự đồng thuận về API hướng bắc
mở.
Nói một cách dễ hiểu, bộ điều khiển SDN quản lý trạng thái chuyển tiếp của các bộ
chuyển mạch trong mạng do phần mềm xác định. Việc quản lý này được thực hiện
thông qua một API trung lập với nhà cung cấp cho phép bộ điều khiển giải quyết

11


Nhóm18

nhiều u cầu của người vận hành mà khơng thay đổi bất kỳ khía cạnh cấp thấp hơn
nào của mạng, bao gồm cả cấu trúc liên kết.
Với việc tách các mặt phẳng điều khiển và dữ liệu, SDN cho phép các ứng dụng xử
lý với một thiết bị mạng được tóm tắt duy nhất mà khơng cần quan tâm đến các chi
tiết về cách thiết bị hoạt động. Các ứng dụng mạng nhìn thấy một API duy nhất cho
bộ điều khiển. Do đó, có thể nhanh chóng tạo và triển khai các ứng dụng mới để
điều phối luồng lưu lượng mạng nhằm đáp ứng các yêu cầu cụ thể của doanh nghiệp
về hiệu suất hoặc bảo mật.
Ngồi ra cịn có các API ngang (ngang hàng). Các API này có hai loại:
 Eastbound API: Cho phép giao tiếp và hợp tác giữa các nhóm hoặc liên
đồn của bộ điều khiển.
 Westbound API: Cung cấp giao tiếp giữa các mạng SDN và không phải
SDN (hoặc kế thừa).
Ở mặt phẳng ứng dụng, nhiều ứng dụng tương tác với bộ điều khiển SDN. Các ứng
dụng SDN là các chương trình có thể sử dụng chế độ xem trừu tượng của mạng cho
các mục tiêu ra quyết định của chúng. Các ứng dụng này truyền tải các yêu cầu mạng
và hành vi mạng mong muốn của chúng tới bộ điều khiển SDN thông qua một API

hướng bắc. Ví dụ về các ứng dụng là mạng tiết kiệm năng lượng, giám sát an ninh,
kiểm soát truy cập và quản lý mạng.

Đặc điểm của mạng định nghĩa bằng phần mềm
Các đặc điểm chính của SDN như sau:
 Mặt phẳng điều khiển được tách ra khỏi mặt phẳng dữ liệu. Thiết bị mặt
phẳng dữ liệu là thiết bị chuyển tiếp gói đơn giản (xem Hình 1 ).
 Mặt phẳng điều khiển được thực hiện trong bộ điều khiển tập trung hoặc tập
hợp các bộ điều khiển tập trung phối hợp. Bộ điều khiển SDN có chế độ xem
tập trung của mạng hoặc các mạng dưới sự kiểm soát của nó. Bộ điều khiển
là phần mềm di động có thể chạy trên các máy chủ hàng hóa và có khả năng
lập trình các thiết bị chuyển tiếp dựa trên chế độ xem tập trung của mạng.

12


Nhóm18

 Giao diện mở được xác định giữa các thiết bị trong mặt phẳng điều khiển (bộ
điều khiển) và các thiết bị trong mặt phẳng dữ liệu.
 Mạng có thể lập trình bằng các ứng dụng chạy trên bộ điều khiển SDN. Bộ
điều khiển SDN trình bày một cái nhìn trừu tượng về tài nguyên mạng cho
các ứng dụng.

3. Mặt phẳng dữ liệu SDN
Mặt phẳng dữ liệu SDN , được gọi là lớp tài nguyên trong ITU-T Y.3300 ( Khuôn
khổ mạng do phần mềm xác định , tháng 6 năm 2014) và cũng thường được gọi là
lớp cơ sở hạ tầng , là nơi các thiết bị chuyển tiếp mạng thực hiện việc vận chuyển
và xử lý dữ liệu theo các quyết định do mặt phẳng điều khiển SDN đưa ra . Đặc
điểm quan trọng của các thiết bị mạng trong mạng do phần mềm xác định là các

thiết bị này thực hiện một chức năng chuyển tiếp đơn giản, khơng có phần mềm
nhúng để đưa ra các quyết định tự chủ.

Các chức năng của mặt phẳng dữ liệu
Hình 3 minh họa các chức năng được thực hiện bởi các thiết bị mạng mặt phẳng dữ
liệu (còn được gọi là các phần tử mạng mặt phẳng dữ liệu, hoặc bộ chuyển mạch).

13


Nhóm18

HÌNH 3 Thiết bị mạng mặt phẳng dữ liệu
Các chức năng chính của thiết bị mạng là:
 Chức năng hỗ trợ điều khiển: Tương tác với lớp điều khiển SDN để hỗ trợ
khả năng lập trình thơng qua các giao diện điều khiển tài nguyên. Thiết bị
chuyển mạch giao tiếp với bộ điều khiển và bộ điều khiển quản lý công tắc
thông qua giao thức thiết bị chuyển mạch OpenFlow.
 Chức năng chuyển tiếp dữ liệu: Chấp nhận các luồng dữ liệu đến từ các
thiết bị mạng và hệ thống đầu cuối khác và chuyển tiếp chúng dọc theo các
đường chuyển tiếp dữ liệu đã được tính tốn và thiết lập theo các quy tắc
được xác định bởi các ứng dụng SDN.
Các quy tắc chuyển tiếp được sử dụng bởi thiết bị mạng được thể hiện trong các
bảng chuyển tiếp cho biết đối với các loại gói đã cho, bước tiếp theo trong tuyến sẽ
là như thế nào. Ngoài việc chuyển tiếp gói tin đơn giản, thiết bị mạng có thể thay
đổi tiêu đề gói tin trước khi chuyển tiếp hoặc loại bỏ gói tin. Như đã trình bày, các
gói tin đến có thể được đặt trong một hàng đợi đầu vào, nơi chúng chờ xử lý bởi
thiết bị mạng. Các gói được chuyển tiếp thường được đặt trong một hàng đợi đầu ra,
nơi chúng chờ truyền.
Thiết bị mạng trong Hình 3 được hiển thị với ba cổng I / O: một cổng cung cấp giao

tiếp điều khiển với bộ điều khiển SDN và hai cổng cho đầu vào và đầu ra của gói dữ
liệu. Đây là một ví dụ đơn giản. Một thiết bị mạng có thể có nhiều cổng để giao tiếp
với nhiều bộ điều khiển SDN và có thể có nhiều hơn hai cổng I / O cho các luồng
gói vào và ra khỏi thiết bị.

Giao thức mặt phẳng dữ liệu
Hình 3 gợi ý các giao thức được hỗ trợ bởi thiết bị mạng. Luồng gói dữ liệu bao gồm
các luồng gói IP. Bảng chuyển tiếp có thể cần thiết để xác định các đề mục dựa trên
các trường trong tiêu đề giao thức cấp cao hơn, chẳng hạn như tiêu đề cho Giao thức
điều khiển truyền (TCP), Giao thức sơ đồ người dùng (UDP) hoặc một số giao thức
truyền tải hoặc ứng dụng khác. Thiết bị mạng kiểm tra tiêu đề IP và có thể là các
tiêu đề khác trong mỗi gói và đưa ra quyết định chuyển tiếp.

14


Nhóm18

Luồng lưu lượng quan trọng khác là thơng qua API hướng nam, bao gồm các đơn vị
dữ liệu giao thức OpenFlow (PDU) hoặc một số lưu lượng giao thức API hướng
nam tương tự.

4. OpenFlow
Để biến khái niệm SDN thành triển khai thực tế, cần đáp ứng hai yêu cầu:
 Phải có một kiến trúc logic chung trong tất cả các thiết bị chuyển mạch, bộ
định tuyến và các thiết bị mạng khác được quản lý bởi bộ điều khiển SDN.
Kiến trúc lơgic này có thể được triển khai theo nhiều cách khác nhau trên các
thiết bị của nhà cung cấp khác nhau và trong các loại thiết bị mạng khác nhau,
miễn là bộ điều khiển SDN thấy chức năng chuyển mạch lơgic thống nhất.
 Cần có một giao thức bảo mật tiêu chuẩn giữa bộ điều khiển SDN và thiết bị

mạng.
Cả hai yêu cầu này đều được giải quyết bởi OpenFlow, đây vừa là giao thức giữa bộ
điều khiển SDN và thiết bị mạng vừa là đặc điểm kỹ thuật của cấu trúc logic của
chức năng chuyển mạch mạng. OpenFlow được định nghĩa trong OpenFlow Switch
Specification [ONF15], được xuất bản bởi Open Networking Foundation (ONF). Ba
thuật ngữ hữu ích cho thảo luận:
 OpenFlow switch (thiết bị chuyển mạch OpenFlow): Một tập hợp các tài
nguyên OpenFlow có thể được quản lý như một thực thể duy nhất, bao gồm
một đường dẫn dữ liệu và một kênh điều khiển. Các thiết bị chuyển mạch
OpenFlow kết nối logic với nhau thông qua các cổng OpenFlow của chúng.
 OpenFlow port (cổng OpenFlow): Nơi các gói vào và ra khỏi đường ống
OpenFlow. Một gói có thể được chuyển tiếp từ một thiết bị chuyển mạch
OpenFlow sang một thiết bị chuyển mạch OpenFlow khác chỉ qua một cổng
OpenFlow đầu ra trên thiết bị chuyển mạch đầu tiên và một cổng OpenFlow
thâm nhập trên thiết bị chuyển mạch thứ hai.
 OpenFlow channel (kênh OpenFlow): Giao diện giữa thiết bị chuyển mạch
OpenFlow và bộ điều khiển OpenFlow, được bộ điều khiển sử dụng để quản
lý thiết bị chuyển mạch.

15


Nhóm18

Hình 4 minh họa các yếu tố chính của mơi trường OpenFlow, bao gồm các bộ điều
khiển SDN bao gồm phần mềm OpenFlow, thiết bị chuyển mạch OpenFlow và hệ
thống đầu cuối.

HÌNH 4 Bối cảnh chuyển đổi OpenFlow
Hình 5 hiển thị các thành phần chính của thiết bị chuyển mạch OpenFlow. Bộ điều

khiển SDN giao tiếp với các thiết bị chuyển mạch tương thích với OpenFlow bằng
giao thức OpenFlow chạy qua Bảo mật lớp truyền tải (TLS). Về phía thiết bị chuyển
mạch, giao diện được biết đến như một kênh OpenFlow. Mỗi thiết bị chuyển mạch
kết nối với các thiết bị chuyển mạch OpenFlow khác và có thể với các thiết bị của
người dùng cuối là nguồn và đích của các luồng gói. Các kết nối này thơng qua các
cổng OpenFlow. Một cổng OpenFlow cũng kết nối thiết bị chuyển mạch với bộ điều
khiển SDN.

16


Nhóm18

HÌNH 5 Các thành phần chính của thiết bị chuyển mạch OpenFlow
OpenFlow xác định ba loại cổng:
 Physical port (cổng vật lý): Tương ứng với giao diện phần cứng của thiết bị
chuyển mạch. Ví dụ, trên thiết bị chuyển mạch Ethernet, các cổng vật lý ánh
xạ 1-1 với các giao diện Ethernet.
 Logical port (cổng logic): Không tương ứng trực tiếp với giao diện phần cứng
của thiết bị chuyển mạch. Các cổng logic là sự trừu tượng hóa cấp cao hơn có
thể được xác định trong thiết bị chuyển mạch bằng cách sử dụng các phương
thức khơng phải OpenFlow (ví dụ: nhóm tổng hợp liên kết, đường hầm, giao
diện lặp lại). Các cổng logic có thể bao gồm đóng gói gói tin và có thể ánh xạ
tới các cổng vật lý khác nhau. Quá trình xử lý được thực hiện bởi cổng logic
phụ thuộc vào việc triển khai và phải minh bạch với quá trình xử lý OpenFlow.
Các cổng logic phải tương tác với xử lý OpenFlow theo cách tương tự như
các cổng vật lý OpenFlow.
 Reserved port (cổng dành riêng): Được xác định bởi đặc tả OpenFlow và
chỉ định các hành động chuyển tiếp chung, chẳng hạn như gửi đến và nhận từ
bộ điều khiển, ngập lụt hoặc chuyển tiếp bằng các phương pháp không phải

OpenFlow, chẳng hạn như xử lý chuyển đổi "bình thường".
17


Nhóm18

Trong mỗi thiết bị chuyển mạch, một loạt các bảng được sử dụng để quản lý các
luồng gói thơng qua thiết bị chuyển mạch. Đặc tả OpenFlow xác định ba loại bảng
trong kiến trúc chuyển mạch logic. Một flow table so khớp các gói đến với một luồng
cụ thể và chỉ định các chức năng sẽ được thực hiện trên các gói. Có thể có nhiều
flow table hoạt động theo kiểu đường ống, như được giải thích ngay sau đây. Một
flow table có thể hướng một luồng đến một bảng nhóm, có thể kích hoạt nhiều hành
động khác nhau ảnh hưởng đến một hoặc nhiều luồng. Bảng đồng hồ có thể kích
hoạt nhiều hành động liên quan đến hiệu suất trên một luồng. Sử dụng giao thức
chuyển mạch OpenFlow, bộ điều khiển có thể thêm, cập nhật và xóa các mục nhập
luồng trong bảng, cả theo cách phản ứng (phản ứng với các gói) và chủ động.
Trước khi tiếp tục, sẽ hữu ích khi xác định ý nghĩa của thuật ngữ "luồng (flow)".
Thật kỳ lạ, thuật ngữ này không được định nghĩa trong đặc tả OpenFlow, cũng như
chưa có nỗ lực định nghĩa nó trong hầu như tất cả các tài liệu về OpenFlow. Nói một
cách tổng quát, luồng là một chuỗi các gói đi qua một mạng chia sẻ một tập các giá
trị trường tiêu đề. Ví dụ: một luồng có thể bao gồm tất cả các gói có cùng địa chỉ IP
nguồn và đích hoặc tất cả các gói có cùng mã định danh LAN ảo (VLAN). Chúng
tơi cung cấp một định nghĩa cụ thể hơn ở phần sau của chương này.

Cấu trúc Flow Table (Flow Table Structure)
Khối xây dựng cơ bản của kiến trúc chuyển mạch logic là flow table. Mỗi gói đi vào
một bộ chuyển mạch sẽ đi qua một trong các flow table khác. Mỗi flow table bao
gồm một số hàng, được gọi là các đề mục (entries), bao gồm bảy thành phần (xem
Hình 6a). Các thành phần đề mục như sau:
 Match fields (Các trường khớp): Các trường này được sử dụng để chọn các

gói phù hợp với giá trị trong các trường. Các trường khớp (xem Hình 6b) xác
định các địa chỉ đi vào và đi ra ở các mức giao thức khác nhau. Mỗi trường
trong thành phần trường khớp có một giá trị cụ thể hoặc một giá trị ký tự đại
diện khớp với bất kỳ giá trị nào trong trường tiêu đề gói tương ứng. Một flow
table có thể bao gồm một table-miss flow entry, trong trường hợp đó, các ký
tự đại diện khớp với tất cả các trường (tức là mọi trường là một khớp, bất kể
giá trị) và đề mục có mức độ ưu tiên thấp nhất.

18


Nhóm18

 Priority (Mức độ ưu tiên): Trường này hiển thị mức độ ưu tiên tương đối
của các đề mục trong bảng. Nó là một trường 16 bit với 0 tương ứng với mức
độ ưu tiên thấp nhất. Về nguyên tắc, có thể có 216 = 64.000 mức độ ưu tiên.
 Counters (Bộ đếm): Trường này được cập nhật cho các gói phù hợp. Đặc tả
OpenFlow xác định nhiều bộ đếm. Bảng 7.1 liệt kê các bộ đếm bắt buộc phải
được hỗ trợ bởi thiết bị chuyển mạch OpenFlow.

HÌNH 6 Định dạng đề mục bảng OpenFlow
BẢNG 1 Bộ đếm OpenFlow bắt buộc

Bộ đếm
Số lượng tham chiếu (đề mục hoạt động)
Thời lượng (giây)
Gói tin đã nhận
Gói tin đã gửi
Thời lượng (giây)
Gói tin truyền đi

Thời lượng (giây)
Thời lượng (giây)

19

Sử dụng
Mỗi flow table
Mỗi flow entry
Mỗi cổng
Mỗi cổng
Mỗi cổng
Mỗi hàng đợi
Mỗi hàng đợi
Mỗi nhóm

Độ dài bit
32
32
64
64
32
64
32
32


Nhóm18

 Instructions (Hướng dẫn): Trường này chứa các hướng dẫn được thực hiện
nếu một khớp xảy ra.

 Timeouts (Hết thời gian chờ): Trường này cho biết lượng thời gian không
hoạt động tối đa trước khi thiết bị chuyển mạch hết hạn luồng. Mỗi flow entry
có một thời gian chờ nhàn rỗi và một thời gian chờ cứng được liên kết với nó.
Trường non-zero hard_timeout làm cho flow entry bị xóa sau số giây nhất
định, bất kể nó đã khớp bao nhiêu gói. Trường non-zero idle_timeout khiến
flow entry bị xóa khi nó khơng khớp với gói nào trong số giây nhất định.
 Cookie: Trường này chứa giá trị dữ liệu không rõ ràng 64 bit do bộ điều khiển
chọn. Nó có thể được bộ điều khiển sử dụng để lọc thống kê lưu lượng, sửa
đổi lưu lượng và xóa lưu lượng; nó khơng được sử dụng khi xử lý gói tin.
 Flags (cờ): Cờ thay đổi cách quản lý các flow entry; ví dụ: cờ
OFPFF_SEND_FLOW_REM kích hoạt thơng báo Đã xóa luồng (và xóa flow
entry) cho một flow entry.
Bây giờ có thể đưa ra một định nghĩa chính xác hơn về thuật ngữ luồng. Theo quan
điểm của một thiết bị chuyển mạch riêng lẻ, luồng là một chuỗi các gói phù hợp với
một đề mục cụ thể trong flow table. Định nghĩa được định hướng gói theo nghĩa rằng
nó là một chức năng của các giá trị của trường tiêu đề của gói tạo thành luồng chứ
khơng phải là một chức năng của đường dẫn mà gói đi qua mạng. Sự kết hợp của
các flow entry trên nhiều thiết bị chuyển mạch xác định một luồng được liên kết với
một đường dẫn cụ thể.
Thành phần hướng dẫn của một bảng đề mục bao gồm một tập hợp các lệnh được
thực thi nếu gói phù hợp với đề mục. Trước khi mơ tả các loại hướng dẫn, chúng ta
cần xác định các thuật ngữ hành động và bộ hành động. Các hành động mơ tả các
hoạt động chuyển tiếp gói, sửa đổi gói và xử lý bảng nhóm. Đặc tả OpenFlow bao
gồm các hành động sau:
 Output (đầu ra): Hành động này chuyển tiếp một gói đến cổng được chỉ định.
Cổng có thể là cổng đầu ra tới một thiết bị chuyển mạch khác hoặc cổng tới
bộ điều khiển. Trong trường hợp thứ hai, gói tin được đóng gói trong một
thơng báo tới bộ điều khiển.
 Set-Queue (Đặt hàng đợi): Hành động này đặt ID hàng đợi cho một gói. Khi
gói tin được chuyển tiếp đến một cổng bằng hành động đầu ra, ID hàng đợi

xác định hàng đợi nào gắn với cổng này được sử dụng để lập lịch trình và
20


Nhóm18

chuyển tiếp gói tin. Hành vi chuyển tiếp được quyết định bởi cấu hình của
hàng đợi và được sử dụng để cung cấp hỗ trợ QoS cơ bản.
 Group (Nhóm): Hành động này xử lý một gói thơng qua nhóm được chỉ định.
 Push-Tag/Pop-Tag: Hành động này đẩy hoặc bật một trường thẻ cho gói
VLAN hoặc chuyển đổi nhãn đa giao thức (MPLS).
 Set-Field (Trường Thiết lập): Các hành động Trường Thiết lập khác nhau
được xác định bởi loại trường của chúng và sửa đổi giá trị của các trường tiêu
đề tương ứng trong một gói.
 Change-TTL: Các hành động Change-TTL khác nhau sửa đổi các giá trị của
IPv4 TTL (thời gian tồn tại), giới hạn bước nhảy IPv6 hoặc MPLS TTL trong
gói.
 Drop (loại bỏ ): Khơng có hành động rõ ràng để đại diện cho drop. Thay vào
đó, các gói có bộ hành động khơng có hành động đầu ra sẽ bị loại bỏ.
Tập hợp hành động là danh sách các hành động liên kết với một gói được tích lũy
trong khi gói được xử lý bởi mỗi bảng và được thực thi khi gói ra khỏi đường ống
xử lý.
Các loại hướng dẫn có thể được nhóm thành bốn loại:
 Direct packet through pipeline (Gói trực tiếp qua đường ống): Lệnh GotoTable hướng một gói tin đến một bảng xa hơn trong đường ống. Lệnh Meter
hướng một gói đến một máy đo được chỉ định.
 Perform action on packet (Thực hiện hành động trên gói): Các hành động
có thể được thực hiện trên một gói khi nó được khớp với một đề mục trong
bảng. Hướng dẫn Áp dụng Hành động áp dụng các hành động được chỉ định
ngay lập tức, khơng có bất kỳ thay đổi nào đối với tập hành động được liên
kết với gói này. Lệnh này có thể được sử dụng để sửa đổi gói giữa hai bảng

trong đường dẫn.
 Update action set (Thiết lập hành động cập nhật): Lệnh Write-Actions kết
hợp các hành động được chỉ định thành thiết lập hành động hiện tại cho gói
này. Hướng dẫn Clear-Actions xóa tất cả các hành động trong thiết lập hành
động.
 Update metadata (Cập nhật siêu dữ liệu): Giá trị siêu dữ liệu có thể được
liên kết với một gói. Nó được sử dụng để mang thông tin từ bảng này sang
21


Nhóm18

bảng tiếp theo. Lệnh WriteMetadata cập nhật một giá trị siêu dữ liệu hiện có
hoặc tạo một giá trị mới.

Đường ống Flow Table (Flow Table Pipeline)
Một thiết bị chuyển mạch bao gồm một hoặc nhiều flow table. Nếu có nhiều hơn
một flow table, chúng được tổ chức như một đường ống, với các bảng được gắn nhãn
với số lượng tăng dần bắt đầu bằng 0. Việc sử dụng nhiều bảng trong một đường
ống, thay vì một flow table duy nhất, cung cấp cho bộ điều khiển SDN sự linh hoạt
đáng kể .
Đặc tả OpenFlow xác định hai giai đoạn xử lý:
 Ingress processing (Xử lý xâm nhập): Xử lý xâm nhập ln xảy ra và nó bắt
đầu bằng bảng 0 và sử dụng danh tính của cổng đầu vào. Bảng 0 có thể là
bảng duy nhất, trong trường hợp đó, xử lý nhập được đơn giản hóa thành xử
lý được thực hiện trên bảng đơn đó và khơng có xử lý đầu ra.
 Egress processing (Xử lý đầu ra): Xử lý đầu ra là quá trình xảy ra sau khi xác
định cổng đầu ra. Nó xảy ra trong bối cảnh của cổng đầu ra. Giai đoạn này là
tùy chọn. Nếu nó xảy ra, nó có thể liên quan đến một hoặc nhiều bảng. Sự
tách biệt của hai giai đoạn được chỉ định bằng số nhận dạng của bảng đầu tiên.

Tất cả các bảng có số thấp hơn bảng đầu tiên phải được sử dụng làm bảng
nhập và không bảng nào có số cao hơn hoặc bằng bảng đầu tiên có thể được
sử dụng làm bảng nhập
Quá trình xử lý đường ống ln bắt đầu với q trình xử lý xâm nhập ở flow table
đầu tiên: Trước tiên gói tin phải được khớp với các flow entry của flow table 0. Có
thể sử dụng các flow table xâm nhập khác, tùy thuộc vào kết quả của kết quả khớp
trong bảng đầu tiên. Nếu kết quả của xử lý xâm nhập là chuyển tiếp gói tin đến một
cổng đầu ra, thì cơng tắc OpenFlow có thể thực hiện xử lý đầu ra trong ngữ cảnh của
cổng đầu ra đó.
Khi một gói được trình bày cho một bảng để đối sánh, đầu vào bao gồm gói, danh
tính của cổng nhập, giá trị siêu dữ liệu liên quan và tập hợp hành động được liên kết.
Đối với Bảng 0, giá trị siêu dữ liệu là trống và tập hành động là rỗng. Tại mỗi bảng,
quá trình xử lý diễn ra như sau:
22


Nhóm18

 Nếu có một kết quả phù hợp trên một hoặc nhiều mục nhập khác với mục nhập
bỏ sót bảng, thì khớp đó được xác định là với mục nhập khớp có mức độ ưu
tiên cao nhất. Như đã đề cập trong phần thảo luận trước, mức độ ưu tiên là
một thành phần của mục nhập bảng và được đặt thông qua OpenFlow; mức
độ ưu tiên được xác định bởi người dùng hoặc ứng dụng gọi OpenFlow. Sau
đó có thể thực hiện các bước sau:
Bước 1. Cập nhật bất kỳ bộ đếm nào liên quan đến đề mục này.
Bước 2. Thực hiện bất kỳ hướng dẫn nào liên quan đến đề mục nhập này.
Điều này có thể bao gồm cập nhật nhóm hành động, cập nhật giá
trị siêu dữ liệu và thực hiện các hành động.
Bước 3. Sau đó, gói tin được chuyển tiếp đến một flow table ở phía dưới
đường ống, đến bảng nhóm, bảng đồng hồ đo hoặc đến một cổng

đầu ra.
 Nếu chỉ có khớp với table-miss entry, đề mục nhập bảng có thể chứa hướng
dẫn, như với bất kỳ đề mục nào khác. Trong thực tế, table-miss entry chỉ định
một trong ba hành động:
o Gửi gói đến bộ điều khiển. Điều này cho phép bộ điều khiển xác định
một luồng mới cho gói này và các gói tương tự hoặc quyết định bỏ
gói.
o Hướng gói tin đến một bảng lưu lượng khác ở phía dưới đường ống.
o Bỏ gói tin.
 Nếu khơng có mục nào trùng khớp trên bất kỳ đề mục nào và khơng có tablemiss entry nào, gói tin sẽ bị loại bỏ.
Đối với bảng cuối cùng trong đường ống, chuyển tiếp đến một bảng dịng khác khơng
phải là một tùy chọn. Nếu và khi một gói cuối cùng được chuyển hướng đến một
cổng đầu ra, thì tập hợp hành động tích lũy được thực thi và sau đó gói được xếp
hàng đợi để xuất. Hình 7.7 minh họa quy trình đường ống xâm nhập tổng thể.
Nếu quá trình xử lý đầu ra được liên kết với một cổng đầu ra cụ thể, thì sau khi một
gói được chuyển hướng đến một cổng đầu ra khi hồn thành q trình xử lý đi vào,
gói đó sẽ được chuyển hướng đến flow table đầu tiên của đường ống đầu ra. Quá
trình xử lý đường ống đầu ra tiến hành theo cùng một kiểu xử lý đường dẫn nhập,
ngoại trừ việc khơng có q trình xử lý bảng nhóm ở cuối đường ống đầu ra.
23


Nhóm18

HÌNH 7 Luồng gói qua thiết bị chuyển mạch OpenFlow: Xử lý xâm nhập

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
24


×