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

Tìm hiểu về kiến trúc 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.73 MB, 46 trang )

Đồ án tốt nghiệp

Mục lục

MỤC LỤC
LỜI CẢM ƠN ............................................................................................................................ i
MỤC LỤC .................................................................................................................................ii
THUẬT NGỮ VIẾT TẮT ....................................................................................................... iv
DANH MỤC HÌNH VẼ ............................................................................................................ v
LỜI NÓI ĐẦU........................................................................................................................... 1
CHƯƠNG 1: TỔNG QUAN VỀ SDN .................................................................................... 2
1.1 GIỚI THIỆU CHUNG .................................................................................................... 2
1.2

ĐẶT VẤN ĐỀ ................................................................................................................. 2

1.3

KHÁI NIỆM VÀ CẤU TRÚC MẠNG SDN .................................................................. 5

1.4

ƯU NHƯỢC ĐIỂM CỦA SDN SO VỚI MẠNG IP ...................................................... 8

1.5

KẾT LUẬN CHƯƠNG ................................................................................................. 10

CHƯƠNG 2: MẶT BẰNG DỮ LIỆU SDN VÀ OPENFLOW ........................................... 11
2.1 MẶT BẰNG DỮ LIỆU SDN ........................................................................................ 11
2.1.1 Chức năng của mặt bằng dữ liệu ............................................................................. 11


2.1.2 Các giao thức trong mặt bằng dữ liệu ...................................................................... 12
2.2

THIẾT BỊ MẠNG OPENFLOW ................................................................................... 12
2.2.1 Cấu trúc flow table .................................................................................................. 15
2.2.2 Thành phần chỉ thị ................................................................................................... 16
2.2.3 Đường dẫn bảng luồng ............................................................................................ 17
2.2.4 Sử dụng nhiều bảng ................................................................................................. 20

2.3

GIAO THỨC OPENFLOW .......................................................................................... 21

2.4

KẾT LUẬN CHƯƠNG ................................................................................................. 22

CHƯƠNG 3: MẶT BẰNG ĐIỀU KHIỂN SDN .................................................................. 23
3.1 KIẾN TRÚC CỦA MẶT BẰNG ĐIỀU KHIỂN SDN ................................................. 23
3.1.1 Các chức năng mặt bằng điều khiển ........................................................................ 23
3.1.2 Giao diện hướng Nam ............................................................................................. 25
3.1.3 Giao diện hướng Bắc ............................................................................................... 26
3.1.3 Định tuyến ............................................................................................................... 28
3.2

OPENDAYLIGHT ........................................................................................................ 29
3.2.1 Kiến trúc OpenDaylight........................................................................................... 29
3.2.2 REST ....................................................................................................................... 31
3.2.3 Bộ điều khiển tập trung và phân tán ........................................................................ 32
3.2.4 OpenDaylight SDNi ................................................................................................ 33


3.3

KẾT LUẬN CHƯƠNG ................................................................................................. 34

CHƯƠNG 4: MÔ PHỎNG MẠNG VỚI MININET VÀ OPENDAYLIGHT .................. 35
4.1 GIỚI THIỆU VỀ CÁC CÔNG CỤ SỬ DỤNG TRONG MÔ PHỎNG ....................... 35
4.1.1 Mininet .................................................................................................................... 35
Vương Văn Tĩnh – D13VT8

ii


Đồ án tốt nghiệp

Mục lục

4.1.2 OpenDaylight. ......................................................................................................... 35
4.2

GIỚI THIỆU VỀ MÔ HÌNH TRIỂN KHAI: ................................................................ 35

4.3

TRIỂN KHAI BỘ ĐIỀU KHIỂN DỰ PHÒNG ............................................................ 36
4.3.1 Cài đặt Mininet ........................................................................................................ 36
4.3.2 Cài đặt Opendaylight ............................................................................................... 36
4.3.3 Tiến hành thử nghiệm. ............................................................................................. 37

4.4


KẾT LUẬN CHƯƠNG ................................................................................................. 40

KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN ............................................................................ 41
TÀI LIỆU THAM KHẢO...................................................................................................... 42

Vương Văn Tĩnh – D13VT8

iii


Đồ án tốt nghiệp

Thuật ngữ viết tắt

THUẬT NGỮ VIẾT TẮT
API

Application Programming Interface

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

FTP

File Transfer Protocol

Giao thức truyền tải tệp

MAC


Media Access Contro

Điều khiển truy cập dịch vụ

ONF

Open Networking Foundation

ODL

OpenDaylight

IP

Internet Protocol

Giao thức Internet

ITU

International Telecommunication Union

Tổ chức Viễn thông quốc tế

PDU

Protocol Data Unit

Đơn vị dữ liệu giao thức


QoS

Quality of Service

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

SDN

Software Defined Networking

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

SNMP

Simple Network Management Protocol

Giao thức quản lý mạng đơn giản

SMTP

Simple Mail Transfer Protocol

Giao thức truyền thư đơn giản

TCP

Transmission Control Protocol

Giao thức điều khiển truyền tải


TLS

Transport Layer Security

Bảo mật lớp truyền tải

UDP

User Datagram Protocol

Giao thức truyền tải gói người dùng

VLAN

Virtual Local Area Network

Mạng LAN ảo

Vương Văn Tĩnh – D13VT8

iv


Đồ án tốt nghiệp

Danh mục bảng biểu & hình vẽ

DANH MỤC HÌNH VẼ
Hình 1.1 So sánh kiến trúc mạng truyền thống và SDN............................................................. 5
Hình 1.2 Kiến trúc mạng SDN ................................................................................................... 7

Hình 2.1 Mặt bằng dữ liệu của thiết bị mạng ........................................................................... 11
Hình 2.2 Môi trường OpenFlow ............................................................................................... 13
Hình 2.3 OpenFlow switch ....................................................................................................... 14
Hình 2.4 Định dạng của một OpenFlow table entry ................................................................. 15
Hình 2.5 Sơ đồ khối của luồng gói tin khi qua một OpenFlow Switch.................................... 18
Hình 2.6 Luồng gói tin qua một OpenFlow switch (xử lý đầu vào)......................................... 19
Hình 2.7 Luồng gói tin qua một OpenFlow switch (xử lý đầu ra) ........................................... 20
Hình 2.9 Ví dụ về các flow lồng nhau ...................................................................................... 21
Hình 3.1 Các giao diện và chức năng mặt bằng điều khiển ..................................................... 23
Hình 3.2 Các giao diện của bộ điều khiển SDN ....................................................................... 25
Hình 3.3 Cấp độ của giao diện hướng bắc................................................................................ 27
Hình 3.4 Các API của bộ điều khiển SDN ............................................................................... 27
Hinh 3.5 Kiến trúc của Opendaylight ....................................................................................... 29
Hình 3.8 Mô hình lớp dịch vụ trừu tượng ................................................................................ 31
Hình 3.9 Cấu trúc miền SDN.................................................................................................... 32
Hình 4.1: Mô hình triển khai demo .......................................................................................... 35
Hình 4.2: Trang đăng nhập OpenDaylight ............................................................................... 36
Hình 4.3 Hiển thị mô hình mạng trong OpenDaylight ............................................................. 38
Hình 4.4: Kiểm tra kết nối giữa các host. ................................................................................. 38
Hình 4.5: Bảng Flow hiển thị Action của h1 và h2 .................................................................. 39
Hình 4.6: Kiểm tra kết nối giữa h1 và h2 ................................................................................. 39
Hình 4.7: Flow Table ................................................................................................................ 39
Hình 4.8: Kiểm tra kết nối giữa h1 và h3 ................................................................................. 39

Vương Văn Tĩnh – D13VT8

v


Đồ án tốt nghiệp


Lời nói đầu

LỜI NÓI ĐẦU
Internet ngày càng phát triển và quan trọng đối với mỗi chúng ta. Sự phát triển
hàng ngày, hàng giờ với các tính năng mới mang đến cho người dùng những trải
nghiệm và phục vụ tốt hơn nhu cầu cuộc sống mỗi người.
Đi xuống một cấp độ thấp hơn, cấp độ mạng, chúng ta có thể nhận ra rằng, sự
phát triển ở cấp độ này diễn ra chậm hơn rất nhiều. Không có nghi ngờ nào về sự phát
triển ngày càng mạnh mẽ của cơ sở hạ tầng mạng internet trên “mặt số lượng”, băng
thông tổng cộng tăng lên nhanh chóng, các kỹ thuật mới ở Layer 2 được áp dụng, tuy
nhiên sự thay đổi về mặt cấu trúc đến thời điểm hiện tại là gần như không đáng kể.
Một trong những nguyên nhân cho vấn đề này là vì cấu trúc mạng “ nguyên khối ”, nó
chứa tập hợp các chức năng trong đó kể cả các ứng dụng mạng. Việc áp dụng chức
năng mới yêu cầu phải hiện đại hóa toàn mạng với hàng triệu thiết bị. Hãy thử tưởng
tượng rằng chúng ta phải tiến hành cập nhật tất cả các thiết bị mỗi khi chúng ta cài một
ứng dụng mới, đó thực sự là một công việc khó khăn và mất rất nhiều thời gian, công
sức. Nói cách khác, sự đổi mới trên cấp độ mạng trong khuôn khổ cấu trúc ngày nay là
rất khó khăn. Các chức năng và các tính năng mới làm tăng tính phức tạp của hệ thống
lên rất nhiều lần, việc thử nghiệm chúng cũng vậy và nếu áp dụng chúng vào thực tế
cũng đòi hỏi chi phí rất cao và tiềm ẩn nhiều nguy cơ khác. Chính vì thế rất nhiều
chuyên gia đã đặt kỳ vọng vào một mô hình mạng mới, mạng điều khiển bởi phần
mềm SDN.
Đồ án đưa ra một cái nhìn tổng quan về mạng SDN và giao thức OpenFlow.
Nội dung đồ án bao gồm 4 phần chính:
 Chương 1: Tổng quan về SDN
 Chương 2: Mặt bằng dữ liệu SDN và OpenFlow
 Chương 3: Mặt bằng điều khiển SDN
 Chương 4: Mô phỏng mạng với Mininet và OpenDaylight


Vương Văn Tĩnh – D13VT8

1


Đồ án tốt nghiệp

Chương 1: Tổng quan về SDN

CHƯƠNG 1: TỔNG QUAN VỀ SDN
1.1 GIỚI THIỆU CHUNG
Chính thức ra đời vào khoảng 2008 tại đại học Stanford, Mĩ nhưng Mạng khả
trình (Software Defined Networking – SDN) đã tạo ra một cuộc cách mạng trong nền
công nghiệp IT, và dự đoán rằng trong thời gian tới, SDN sẽ thay thế toàn bộ hệ thống
mạng truyền thống. Hầu hết các mạng thông thường đều theo kiến trúc phân cấp, được
xây dựng với các tầng của thiết bị chuyển mạch Ethernet, được sắp xếp theo cấu trúc
cây. Thiết kế này thực sự hiệu quả khi mô hình tính toán client – server chiếm ưu thế,
nhưng kiến trúc cố định như vậy không thích hợp với yêu cầu tính toán đa dạng, linh
hoạt và nhu cầu lưu trữ dữ liệu tại các trung tâm dữ liệu của doanh nghiệp, trường học
và trong môi trường của các nhà cung cấp dịch vụ. Một số xu hướng tính toán quan
trọng dẫn tới yêu cầu ngày càng tăng cho một mô hình mạng mới bao gồm: sự thay đổi
mô hình lưu lượng; hướng tới người dùng CNTT; sự phát triển của các dịch vụ điện
toán đám mây; “Dữ liệu lớn” yêu cầu nhiều băng thông hơn.
1.2

ĐẶT VẤN ĐỀ

Bộ giao thức truyền thống TCP/IP được xem như là một chuẩn sử dụng từ giữa
những năm 80 của thế kỷ trước. Đây là một hệ thống điều khiển cồng kềnh và không
linh hoạt đối với mạng máy tính. Vì nó vừa “ nghĩ” vừa “làm”, điều đó có nghĩa là đầu

tiên nó phải giải quyết bài toán xây dựng định tuyến, sau đó là áp dụng các tuyến
đường này.
Trong các mạng hiện tại, chức năng điều khiển và truyền tải dữ liệu được kết
hợp, đi liền với nhau, nó làm cho việc kiểm soát, điều khiển rất phức tạp. Cách tiếp
cận dựa trên TCP/IP này gây ra một số hạn chế rất nghiêm trọng trong hoạt động với
các tài nguyên của mạng.
Dễ thấy rằng số lượng và tính phức tạp của các giao thức rất lớn và phức tạp
(Ngày nay số giao thức và các phiên bản giao thức được sử dụng thường xuyên đã
vượt quá 600), việc kết hợp sự điều khiển và truyền dữ liệu làm cho quá trình kiểm
soát cũng như điều khiển hoạt động mạng trở nên quá phức tạp đòi hỏi người quản lý
phải có tay nghề và chuyên môn cao. Vấn đề bảo mật đến thời điểm hiện tại vẫn không
có giải pháp nào có độ tin cậy quá cao. Việc thêm vào bất kỳ sự thay đổi nào trong các
thiết bị của mạng đều mất rất nhiều thời gian, chi phí cao và bắt buộc phải có sự tham
gia của nhà sản xuất (vì tính độc quyền). Và vì thế, không ai có thể đảm bảo rằng
những thiết bị mạng này chỉ chứa các chức năng đã được mô tả trong các tài liệu đính
kèm sản phẩm. Đây là lí do vì sao có rất nhiều vụ bê bối nghe lén và đánh cắp dữ liệu
diễn ra thời gian qua. Các thiết bị của mạng ngày nay là những thiết bị mang tính độc
quyền, thiết bị “đóng”, cản trở cho sự đổi mới, cập nhật và phát triển từ hướng người
chủ của mạng, hay cộng đồng mạng.
Vương Văn Tĩnh – D13VT8

2


Đồ án tốt nghiệp

Chương 1: Tổng quan về SDN

Việc đáp ứng tất cả các nhu cầu hiện tại của thị trường gần như là không thể với
mô hình mạng truyền thống. Phòng quản trị mạng của các công ty phải tìm cách hạn

chế tối đa mạng của mình với việc sử dụng các công cụ điều khiển ở mức độ thiết bị
và sử dụng các quá trình điều khiển bằng tay, lý do của vấn đề này chính là vì ngân
sách được chi cho họ ngày càng bị cắt giảm, nếu may mắn thì chỉ được duy trì không
đổi. Với những nhà khai thác mạng, họ cũng gặp vấn đề tương tự. Ta có thể thấy nhu
cầu đối với tính di động và băng thông đang bùng phát (ngày nay số lượng người dung
mạng máy tính trên kỹ thuật không dây vượt quá số người dùng mạng cố định, số
lượng thiết bị di động trên đầu người ở các nước phát triển đã lớn hơn 3) trong khi đó
lợi nhuận thu về ngày càng ít do các chi phí cho thiết bị và do việc giảm thu nhập. Các
cấu trúc hiện tại của mạng không được tạo ra để thỏa mãn nhu cầu của người dùng
hiện đại, của các công ty hay nhà khai thác mạng. Chúng ta sẽ phân tích một số giới
hạn của mạng hiện tại, bao gồm:
- Tính phức tạp dẫn đến tình trạng trì trệ: Các kỹ thuật mạng ngày nay bao gồm
các bộ giao thức rời rạc. Những giao thức này dùng để nối các host với nhau một cách
tin cậy, với khoảng cách, tốc độ liên lạc, topo bất kỳ. Để thỏa mãn nhu cầu kinh doanh
và yêu cầu kỹ thuật trong hơn chục năm trở lại đây, ngành công nghiệp đã phát triển
các giao thức mạng dể hỗ trợ hiệu suất cũng như độ tin cậy cao hơn, có thể kết nối
rộng hơn và độ bảo mật nghiêm ngặt hơn. Các giao thức này, về nguyên tắc, được tạo
ra một cách cô lập, tuy nhiên mỗi giao thức giải quyết một vấn đề cụ thể. Điều này dẫn
đến một trong những hạn chế chính của mạng hiện tại đó là tính phức tạp. Ví dụ : để
thêm vào hoặc dịch chuyển một thiết bị bất kỳ, người quản trị phải can thiệp đến một
số thiết bị khác như : các bộ chuyển mạch, định tuyến, tường lửa… và phải cập nhật
lại danh sách ACL (Access Control List), VLANs, QoS, và cả các cơ chế khác. Liên
quan đến tính phức tạp này, các mạng hiện tại vì thế được xem như ở trạng thái “tĩnh”
vì người quản trị phải cố gắng hạn chế đến mức thấp nhất những nguy cơ gián đoạn
cung cấp dịch vụ. Tính “tĩnh” của mạng hiện tại lại là một mâu thuẫn rất lớn đối với
đặc tính “động” của môi trường server ngày nay, ở đó việc ảo hóa các server làm tăng
số lượng host một cách chóng mặt, đồng thời nó làm thay đổi quan điểm về vị trí vật
lý của các host. Trước ảo hóa, các ứng dụng đều nằm trên một server và trao đổi traffic
với các client. Ngày nay, các ứng dụng phân bố rời rạc trên một vài máy ảo (VMVirtual Machine), những máy ảo này trao đổi các luồng dữ liệu với nhau. Các VM này
“tái định cư” để làm tối ưu hóa và cân bằng tải trên server. Ngoài việc áp dụng kỹ

thuật ảo hóa, nhiều công ty đã làm việc trên nền mạng hội tụ IP để truyền dữ liệu,
thoại, video... Trong khi đó, mạng hiện tại hỗ trợ các mức độ khác nhau của QoS cho
các ứng dụng khác nhau và cung cấp những tài nguyên này hoàn toàn bằng tay. Người
quản trị cần phải cài đặt thiết bị của từng nhà cung cấp một cách riêng lẻ, và dĩ nhiên
phải thiết lập các tham số như băng thông, QoS trên từng phiên làm việc cho mỗi ứng
Vương Văn Tĩnh – D13VT8

3


Đồ án tốt nghiệp

Chương 1: Tổng quan về SDN

dụng. Do tính “tĩnh” của mình, mạng hiện tại không thể điều chỉnh một cách linh động
so với những traffic luôn thay đổi của các ứng dụng và người dùng.
- Các chính sách không đồng nhất: Để thực hiện các chính sách mạng, người
quản trị mạng cần phải cấu hình hàng ngàn thiết bị. Ví dụ mỗi lần áp dụng một máy ảo
mới, phải tốn hàng giờ, thỉnh thoảng là hàng ngày để cấu hình lại các danh sách ACL
trên toàn mạng. Tính phức tạp của mạng hiện tại làm cho công việc này trở nên khó
khăn đối với các nhà quản trị để có thể áp dụng một bộ phối hợp truy cập, hay quy tắc
bảo mật, QoS và các chính sách người dùng khác.
- Không có khả năng mở rộng: Vì các nhu cầu đối với các Data Center tăng
nhanh chóng, nên mạng cũng buộc phải tăng (kích thước) theo. Tuy nhiên, mạng vì thế
quá phức tạp với hàng trăm, hàng ngàn thiết bị, những thiết bị này lại cần phải được
cấu hình và điều khiển. Các nhà quản trị cũng buộc phải dựa trên các dự báo về traffic
để mở rộng mạng. Nhưng trong các Trung tâm dữ liệu ảo hóa ngày nay, traffic là khác
niệm “động” không tưởng và gần như không thể dự báo trước. Các nhà khai thác lớn
như Google, Yahoo, Facebook… đã gặp phải các vấn đề phức tạp trong mở rộng kích
thước mạng. Những nhà cung cấp dịch vụ này sử dụng các thuật toán xử lý song song

ở quy mô lớn. Vì quy mô các ứng dụng đối với một người dùng cụ thể ngày càng tăng,
số lượng các phần tử cần tính toán từ đó cũng tăng lên đến mức “bùng nổ” và các dữ
liệu trao đổi giữa các node có thể đạt đến PB (Petabyte=1000 TB). Những công ty này
cần phải đảm bảo hiệu suất cao, chi phí kết nối giữa hàng ngàn thiết bị thấp… Quy mô
như vậy là không thể thực hiện với cách cấu hình bằng tay. Để duy trì khả năng cạnh
tranh, các nhà khai thác cần phải thực hiện, cung cấp nhiều hơn các dịch vụ riêng biệt,
khác biệt cho các client. Tính đa nhiệm cũng làm phức tạp bài toán hơn, vì mạng cần
phục vụ nhiều nhóm người dùng với các ứng dụng khác nhau và các nhu cầu về hiệu
suất khác nhau. Những nhà khai thác lớn, những nhà khai thác đóng vai trò chủ đạo
trong quản lý traffic client rất khó để đáp ứng các nhu cầu với quy mô hiện tại của họ.
- Phụ thuộc vào nhà sản xuất: Các nhà mạng và các công ty cố gắng áp dụng các
khả năng và dịch vụ mới trong việc đáp ứng các nhu cầu (những nhu cầu này thay đổi
liên tục và rất nhanh) kinh doanh hoặc nhu cầu người dùng. Tuy nhiên khả năng của
họ phụ thuộc vào các chu kỳ cập nhật firmware thiết bị của nhà sản xuất. Và điều đáng
nói là những chu kỳ này có thể kéo dài lên đến 3 năm hoặc nhiều hơn nữa. Ngoài ra
việc thiếu các chuẩn hóa, hay giao diện mở làm giới hạn khả năng điều chỉnh mạng
của các nhà mạng. Chính sự không tương ứng giữa nhu cầu trên thị trường và khả
năng của mạng đã dẫn đến “điểm gãy khúc”. Đáp lại vấn đề này, mạng điều khiển bởi
phần mềm SDN (Software-Defined Networking) đã được tạo ra.
.

Vương Văn Tĩnh – D13VT8

4


Đồ án tốt nghiệp

1.3


Chương 1: Tổng quan về SDN

KHÁI NIỆM VÀ CẤU TRÚC MẠNG SDN

Trước khi đưa ra khái niệm về SDN, ta thử đặt ra một giả thiết là nếu ta có thể
tách rời phần điều khiển ra khỏi các thiết bị mạng thì điều đó có thể làm cho khả năng
xử lý của thiết bị tăng lên hay không? Có thể tạo ra một mạng thông minh hơn và linh
hoạt hơn hay không?
Thực tế là dựa trên giả thiết đó, người ta đã nghiên cứu và phát triển thành một
mạng mà ở đó nhiệm vụ điều khiển mạng được xử lý bởi các bộ điều khiển và các bộ
điều khiển đó có thể thao tác tới phần cứng, bộ nhớ và các chức năng của các thiết bị
router, switch để đạt được mục đích của người sử dụng. Do đó, mạng trở nên linh hoạt
hơn, hiệu suất sử dụng cao hơn và dễ quản lý hơn bao giờ hết.
Để hiểu rõ hơn ta xem xét sự khác nhau giữa chức năng của các thiết bị của mạng
truyền thống và mạng SDN.

Hình 1.1 So sánh kiến trúc mạng truyền thống và SDN

Hình 1.1 (a) mô tả sơ đồ một mạng truyền thống đơn giản. Đối với mạng truyền
thống thì các thiết bị định tuyến hoặc chuyển mạch trao đổi các thông tin với nhau và
quá trình tính toán xử lý đều xảy ra ở mỗi node mạng ( ở tại mỗi router/switch). Chức
năng chính của các thiết bị mạng như router/switch là vận chuyển dữ liệu, như ta thấy
ở mô hình trên thì các thiết bị không được hoàn toàn tập trung vào chức năng đó.
Nhưng đối với mạng SDN thì điều đó lại là khác.
Hình 1.1 (b) mô tả sơ đồ mạng đơn giản với bộ điều khiển SDN. Theo như hình
1.1 (b) thì ta thấy việc thu thập thông tin của các thiết bị trong mạng và tính toán xử lý
các thông tin thu thập được đều được chuyển đến một bộ điều khiển mạng (Bộ điều
khiển SDN). Các thiết bị router/switch chỉ tập trung vào chức năng vận chuyển dữ

Vương Văn Tĩnh – D13VT8


5


Đồ án tốt nghiệp

Chương 1: Tổng quan về SDN

liệu. Điều đó làm cho việc quản lý mạng trở nên đơn giản hơn và các thiết bị phần
cứng có thể nâng công suất làm việc lên.
Từ sự so sánh trên ta rút ra được một số điểm khác nhau giữa 2 mạng đó là:
 Phần điều khiển và phần vận chuyển dữ liệu:
- Mạng truyền thống: Đều được tích hợp trong thiết bị mạng.
- Mạng SDN: Phần điều khiển được tách riêng khỏi thiết bị mạng và được
chuyển đến một thiết bị được gọi là bộ điều khiển SDN.
 Phần thu thập và xử lý các thông tin:
- Mạng truyền thống: Được thực hiện ở tất cả các phần tử trong mạng.
- Mạng SDN: Được tập trung xử lý ở bộ điều khiển SDN.
 Khả năng lập trình bởi các ứng dụng:
- Mạng truyền thống: mạng không thể được lập trình bởi các ứng dụng. Các
thiết bị mạng phải được cấu hình một cách riêng lẽ và thủ công.
- Mạng SDN: Mạng có thể lập trình bởi các ứng dụng, bộ điều khiển SDN có,
thể tương tác đến tất cả các thiết bị trong mạng.
Hiện nay có rất nhiều định nghĩa về mạng SDN nhưng theo ONF (Open
Networking Foundation - một tổ chức phi lợi nhuận đang hỗ trợ việc phát triển SDN
thông qua việc nghiên cứu các tiêu chuẩn mở phù hợp) thì mạng SDN được định nghĩa
như sau: “ Sofware Defined Network (SDN) là một kiểu kiến trúc mạng mới, động, dễ
quản lý, chi phí hiệu quả, dễ thích nghi và rất phù hợp với nhu cầu mạng ngày càng
tăng hiện nay. Kiến trúc này phân tách phần điều khiển mạng (Control Plane) và chức
năng vận chuyển dữ liệu (Forwarding Plane or Mặt bằng dữ liệu), điều này cho phép

việc điều khiển mạng trở nên có thể lập trình và cơ sở hạ tầng mạng độc lập với các
ứng dụng và dịch vụ mạng”. Phần điều khiển được tách rời và được tập trung ở bộ
điều khiển SDN. Điều này có nghĩa là các thiết bị mạng ở lớp thiết bị phần cứng
không cần phải hiểu và xử lý các giao thức phức tạp mà chúng chỉ chấp nhận và vận
chuyển dữ liệu theo một con đường nào đó dưới sự chỉ huy của bộ điều khiển SDN.
Dựa vào bộ điều khiển SDN mà các nhà khai thác mạng và quản trị mạng có thể lập
trình cấu hình trên đó thay vì phải thực hiện thủ công hàng ngàn câu lệnh cấu hình trên
các thiết bị riêng lẽ. Ngoài ra nó còn có thể triển khai các ứng dụng mới và các dịch vụ
mạng một cách nhanh chóng. Để có cái nhìn tổng quan hơn về SDN, ta xét tới cấu trúc
của nó.

Vương Văn Tĩnh – D13VT8

6


Đồ án tốt nghiệp

Chương 1: Tổng quan về SDN

Hình 1.2 Kiến trúc mạng SDN

Hình trên cho ta thấy một cái nhìn tổng quát về mạng SDN. Trung tâm là bộ điều
khiển SDN thực hiện tất cả các chức năng phức tạp như định tuyến, đưa ra các chính
sách mạng, kiểm tra bảo mật…Tất cả các bộ điều khiển này cấu thành nên lớp điều
khiển của mạng SDN. Các bộ điều khiển SDN xác định các luồng dữ liệu sẽ đi qua
trong lớp dữ liệu phía dưới và mỗi luồng dữ liệu đi qua mạng đều phải có sự cho phép
của bộ điều khiển SDN và khi được sự cho phép đó thì bộ điều khiển sẽ tính toán một
lộ trình cho dòng dữ liệu đó. Cụ thể là các bộ điều khiển sẽ thiết lập một tập hợp dữ
liệu nội bộ sử dụng để tạo ra các entry của bảng chuyển tiếp, những bảng này lần lượt

được sử dụng bởi lớp chuyển tiếp (mặt bằng dữ liệu) để truyền các luồng dữ liệu giữa
các cổng vào và ra trên thiết bị. Tập hợp dữ liệu này được sử dụng để lưu trữ topo
mạng và được gọi là thông tin định tuyến RIB (RIB – Routing Information Base). RIB
thường được duy trì đồng nhất bằng cách trao đổi thông tin giữa các lớp điều khiển
trong mạng. Các entry của bảng chuyển tiếp thường được gọi là thông tin chuyển tiếp
FIB (FIB – Forwarding Information Base) và thường được ánh xạ giữa mặt bằng điều
khiển và mặt phẳng chuyển tiếp của các thiết bị điển hình. Dựa vào các thông tin
chuyển tiếp mà bộ điều khiển cung cấp, các thiết bị ở lớp chuyển tiếp xử lý các gói tin
Vương Văn Tĩnh – D13VT8

7


Đồ án tốt nghiệp

Chương 1: Tổng quan về SDN

đầu vào và tìm kiếm, so sánh với bảng thông tin định tuyến để xử lý với các gói tin. Vì
vậy các thiết bị chuyển mạch ở lớp dưới chỉ đơn giản là quản lý các bảng “định tuyến”
được cung cấp bởi bộ điều khiển SDN. Giao tiếp giữa lớp điều khiển và các thiết bị ở
lớp dữ liệu là các giao diện mở API và hiện tại đang phổ biến đó là sử dụng các API
của giao thức OpenFlow. Giao thức này sẽ được đề cập ở chương sau.
Kiến trúc SDN rất linh hoạt, nó có thể hoạt động với các loại thiết bị chuyển
mạch và các giao thức khác nhau. Trong kiến trúc SDN, thiết bị chuyển mạch thực
hiện các chức năng sau:
 Đóng gói và chuyển tiếp các gói tin đầu tiên đến bộ điều khiển SDN để bộ điền
khiển SDN quyết định các flow-entry sẽ được thêm vào flow table của switch.
 Chuyển tiếp các gói tin đến các cổng thích hợp dựa trên flow table.
 Flow table có thể bao gồm các thông tin ưu tiên được quyết định bởi bộ điều
khiển SDN.

 Switch có thể hủy các gói tin trên một luồng riêng một cách tạm thời hoặc vĩnh
viễn nhưng dưới sự cho phép của bộ điều khiển.
Nói một cách đơn giản, bộ điều khiều khiển SDN quản lý các trạng thái chuyển
tiếp của các switch trong mạng SDN. Việc quản lý này được thực hiện thông qua một
bộ giao diện mở API, nó cho phép bộ điều khiển SDN có thể giải quyết các yêu cầu
hoạt động mà không cần thay đổi bất kỳ các khía cạnh cấp dưới của mạng, bao gồm cả
mô hình mạng.
Với sự tách rời miền điều khiển và miền dữ liệu, SDN cho phép các ứng dụng
được triển khai một cách dễ dàng mà không cần quan tâm chi tiết đến việc hoạt động
của các thiết bị mạng
1.4

ƯU NHƯỢC ĐIỂM CỦA SDN SO VỚI MẠNG IP

Đã có rất nhiều cuộc tranh luận nổ ra để bàn về vấn đề mạng IP và mạng SDN
loại nào tốt hơn. Mặc dù cả hai đều có những ưu nhược điểm riêng nhưng với những
thuộc tính quan trọng như thân thiện với người sử dụng, chi phí và độ phức tạp mạng
giảm thì người ta cho rằng mạng SDN phù hợp hơn so với mạng IP. Và bởi vì thế mà
ngày nay một số lượng ngày càng tăng của các nhà khai thác mạng đang lựa chọn
SDN nhiều hơn. Một số ưu điểm của SDN như sau:
 Dựa vào SDN các nhà quản trị có thể có quyền kiểm soát mạng một cách đơn
giản và hiệu quả mà không cần có quyền truy cập trực tiếp đến phần cứng.
 Thêm vào đó SDN cung cấp một cơ chế điều khiển duy nhất đối với cơ sở hạ
tầng mạng và giảm bớt sự phức tạp của các quá trình xử lý thông qua sự tự động hóa.
Điều đó rất có lợi đối với các nhà mạng để có thể quản lý các thay đổi của mạng theo
thời gian thực. Thời gian thực ở đây có nghĩa là các nhà mạng có thể đáp ứng một cách
nhanh chóng các yêu cầu của mạng một cách nhanh chóng và tự động. Các nhà quản
trị còn có thể điều khiển việc thay đổi cần thiết đúng thời điểm ở bất cứ nơi đâu. Việc
Vương Văn Tĩnh – D13VT8


8


Đồ án tốt nghiệp

Chương 1: Tổng quan về SDN

truy cập từ xa và thay đổi mạng có thể được thực hiện bởi hệ thống truy cập dựa trên
vai trò của người quản trị (Role based access system là một hệ thống cho phép người
dùng cá nhân dựa trên một vài trò xác định trong doanh nghiệp để có thể thực hiện các
thay đổi của mạng). Hệ thống truy cập này được cung cấp các giải pháp bảo mật để có
thể loại bỏ sự tấn công của các tin tặc vào mạng. Đối với mạng IP, việc truy cập và
thay đổi từ xa lại không thể thực hiện được. Nhà quản trị phải có quyền truy cập và
chỉnh sửa cấu hình bằng tay để thực hiện bất kỳ sự thay đổi chính sách nào trên mạng.
Việc thay đổi một chính sách mạng dẫn đến việc tác động trực tiếp đến phần cứng đó
làm cho hệ thống mạng trở nên cứng nhắc.
 SDN cho phép sử dụng không hạn chế và có thể thay đổi các chính sách mạng
để phát hiện sự xâm nhập, tường lửa và tạo sự cân bằng với sự thay đổi của phần mềm.
Điều đó làm cho sự quản lý mạng trở nên linh hoạt hơn.
 Mạng SDN có khả năng phân tách phần điều khiển và phần dữ liệu, với khả
năng đó cho phép người quản trị có thể tương tác và thay đổi các luồng dữ liệu, đảm
bảo các gói dữ liệu không phải xếp hàng đợi và làm giảm hiệu suất mạng. Một lợi thế
quan trọng hơn nữa của mạng SDN là chi phí dành cho nó rất thấp. Nó rẻ hơn so với
mạng IP bởi vì nó không yêu cầu nhiều người làm việc trên nó và các công ty đều có
thể cắt hết chi phí của các kỹ sư hệ thống và chỉ cần một vài quản trị viên hệ thống là
đủ.
Bên cạnh những ưu điểm đó thì SDN cũng còn tồn tại một số nhược điểm so
với mạng IP.
 Vấn đề đầu tiên là bảo mật, nếu tin tặc có thể tấn công vào hệ thống thì chúng
có thể truy cập các thiết lập và thay đổi chúng bất cứ ở nơi đâu, tại thời điểm nào. Và

chúng có thể truy cập bất kỳ tập tin được mã hóa nào miễn là nó ở trong mạng. Đối
với mạng IP thì điều này không thẻ xảy ra bởi để có thể truy cập vào mạng ta phải có
quyền truy cập vào phần cứng của nó. Hầu hết các công ty chỉ cho phép một số cá
nhân được quyền đó bởi vậy hệ thống sẽ an toàn và ít có khả năng bị truy cập bởi các
tin tặc.
 Thứ hai đó là quá trình triển khai SDN không thể hoàn thiện trong chốc lát mà
nó phải theo từng bước một. Chúng ta không thể một lúc thay thế toàn bộ các thiết bị
hiện có thành OpenFlow switch được bởi vì điều đó rất tốn kém.
 Thứ ba, SDN là một kiến trúc mạng kiểu mới, các giao thức tương tác giữa các
controller với nhau còn chưa được phát triển toàn diện nên việc phát triển mạng SDN
trên phạm vi toàn cầu vẫn đang còn hạn chế.
Nói tóm lại SDN có một số ưu điểm đáng chú ý sau:
 Có các giao diện mở, không phụ thuộc nhà sản xuất.
 Trừu tượng hóa mặt bằng điều khiển cho phép áp dụng nhanh chóng các đổi
mới.
 Giảm tính phức tạp nhờ tự động hóa.
Vương Văn Tĩnh – D13VT8

9


Đồ án tốt nghiệp

Chương 1: Tổng quan về SDN

 Nâng cao độ tin cậy và bảo mật cho mạng.
 Kiểm soát và điều khiển chi tiết hơn.
 Giảm CAPEX và OPEX.
1.5


KẾT LUẬN CHƯƠNG

Với xu hướng người dùng di động, ảo hóa máy chủ và các dịch vụ ngày càng
tăng dẫn đến kiến trúc mạng thông thường ngày nay không để đáp ứng xử lý kịp.
Mạng SDN cho chúng ta một cái nhìn mới, khái niệm mới về một kiến trúc mạng
động, dễ thích nghi, mở rộng và đáp ứng các dịch vụ phong phú. Với việc tách phần
điều khiển và dữ liệu, kiến trúc mạng SDN cho phép mạng có thể lập trình và quản lý
một cách dễ dàng hơn. SDN hứa hẹn sẽ chuyển đổi mạng lưới tĩnh ngày nay trở nên
linh hoạt hơn với nền tảng có thể lập trình với sự thông minh để có thể tự động xử lý
các hành vi một cách tự động. Với nhiều lợi thế của mình và động lực phát triển cao
kiến trúc SDN đang trên đường để trở thành một tiêu chuẩn mới cho các mạng.

Vương Văn Tĩnh – D13VT8

10


Đồ án tốt nghiệp

Chương 2: Mặt bằng dữ liệu SDN và OpenFlow

CHƯƠNG 2: MẶT BẰNG DỮ LIỆU SDN VÀ OPENFLOW
2.1

MẶT BẰNG DỮ LIỆU SDN

Mặt bằng dữ liệu SDN (SDN data plane) được gọi là lớp tài nguyên trong ITUT Y.3300 và cũng thường được gọi là lớp cơ sở hạ tầng, là nơi mà 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 của bộ điều
khiển SDN. Đặc điểm quan trọng của các thiết bị mạng trong mạng SDN là các thiết bị
này thực hiện chức năng chuyển tiếp đơn giản mà không cần phần mềm nhúng để đưa

ra các quyết định tự quản.
2.1.1 Chức năng của mặt bằng dữ liệu
Hình 2.1 mô tả các chức năng được thực hiện bởi các thiết bị mạng trong mặt
bằng dữ liệu (còn được gọi là các thành phần mạng mặt bằng dữ liệu hoặc các
switches). Các chức năng chính của thiết bị mạng bao gồm:

Hình 2.1 Mặt bằng dữ liệu của thiết bị mạng

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 kiểm soát tài nguyên. Switch giao tiếp với bộ
điều khiển và bộ điều khiển quản lý switch thông qua giao thức chuyển đổi OpenFlow.
Chức năng chuyển tiếp dữ liệu: Chấp nhận luồng dữ liệu đến từ các thiết bị mạng
và hệ thống đầu cuối, chuyển tiếp chúng dọc theo các đường chuyển tiếp dữ liệu đã
được tính toán và thiết lập theo các quy tắc được xác định bởi các ứng dụng SDN.
Những quy tắc chuyển tiếp này được sử dụng bởi thiết bị mạng và được thể hiện
trong các bảng chuyển tiếp. Bảng này cho biết loại gói tin, các bước truyền kế tiếp
trong tuyến đường đó là gì. Ngoài việc chuyển tiếp đơn giản một gói tin, thiết bị mạng
có thể thay đổi tiêu đề gói tin trước khi chuyển tiếp, hoặc hủy bỏ gói tin. Như trong
Vương Văn Tĩnh – D13VT8

11


Đồ án tốt nghiệp

Chương 2: Mặt bằng dữ liệu SDN và OpenFlow

hình vẽ, các gói dữ liệu đến có thể được đặt trong một hàng đợi đầu vào, đang chờ xử
lý bởi thiết bị mạng và các gói tin chuyển tiếp thường được đặt trong một hàng đợi đầu
ra, đang chờ để truyền đi.

Thiết bị mạng được trình bày trong hình 2.1 gồm ba cổng I/O: một cổng cung cấp
kết nối đ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 các
gói dữ liệu. Đây là một ví dụ đơn giản. 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
tin vào và ra trên thiết bị.
2.1.2 Các giao thức trong mặt bằng dữ liệu
Hình 2.1 cho thấy các giao thức được hỗ trợ bởi thiết bị mạng. Luồng dữ liệu gói
bao gồm luồng các gói tin IP. Luồng này quan trọng đối với bảng chuyển tiếp trong
việc xác định các mục dựa trên các trường trong các tiêu đề giao thức cấp trên, chẳng
hạn như TCP, UDP, hoặc một số giao thức truyền tải và ứng dụng khác. Thiết bị mạng
kiểm tra tiêu đề IP và có thể xem xét thêm các tiêu đề khác trong mỗi gói sau đó đưa
ra quyết định chuyển tiếp.
Một luồng lưu lượng quan trọng khác là thông qua giao diện lập trình ứng dụng
(API), bao gồm các đơn vị dữ liệu giao thức OpenFlow (PDU).
2.2 THIẾT BỊ MẠNG OPENFLOW
Khái niệm SDN đặt ra 2 vấn đề khi triển khai thực tế:
- Cần phần có một kiến trúc logic chung cho tất cả các switch, router 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 này có thể được triển
khai bằng nhiều cách khác nhau trên các thiết bị của các nhà cung cấp khác nhau và
phụ thuộc vào nhiều loại thiết bị mạng, miễn là bộ điều khiển SDN thấy được chức
năng chuyển mạch thống nhất.
- Một giao thức chuẩn, bảo mật để giao tiếp giữa bộ điều khiển SDN và các thiết
bị mạng.
OpenFlow được đưa ra để giải quyết cả hai vấn để đó. Đây là một giao thức giữa
bộ điều khiển SDN và các thiết bị mạng. OpenFlow được định nghĩa trong OpenFlow
Switch Specification, xuất bản bởi Open Networking Foundation (ONF).
Hình 2.2 chỉ ra các thành phần chính của môi trường OpenFlow, bao gồm bộ điều
khiển SDN vận hành phần mềm OpenFlow, chuyển mạch OpenFlow, và các hệ thống
đầu cuối.


Vương Văn Tĩnh – D13VT8

12


Đồ án tốt nghiệp

Chương 2: Mặt bằng dữ liệu SDN và OpenFlow

Hình 2.2 Môi trường OpenFlow

Hình 2.3 trình bày các thành phần chính của một OpenFlow switch. Bộ điều
khiển SDN giao tiếp với các chuyển mạch OpenFlow tương thích, sử dụng giao thức
OpenFlow chạy qua TLS (Transport Layer Security). Mỗi switch kết nối với các
chuyển mạch OpenFlow khác và với các thiết bị đầu cuối người dùng, là các nguồn và
đích đến của luồng gói tin. Giao diện giữa OpenFlow switch và bộ điều khiển SDN
được gọi là một kênh OpenFlow (OpenFlow channel), được sử dụng bởi bộ điều khiển
để quản lý switch. Thông qua giao diện này bộ điều khiển sẽ cấu hình và quản lý
switch, nhận các sự kiện từ switch và gửi các gói tin đến switch. Các kết nối này thông
qua cổng OpenFlow (OpenFlow port). Trong OpenFlow định nghĩa ba loại cổng:

Vương Văn Tĩnh – D13VT8

13


Đồ án tốt nghiệp

Chương 2: Mặt bằng dữ liệu SDN và OpenFlow


Hình 2.3 OpenFlow switch

- Cổng vật lý: Tương ứng với một giao diện phần cứng của switch. Ví dụ, trên
một switch Ethernet, các cổng vật lý ánh xạ 1-1 với các giao diện Ethernet.
- Cổng logic: Không tương ứng trực tiếp với một giao diện phần cứng của switch.
Các cổng logic trừu tượng hóa mức cao hơn có thể được định nghĩa trong switch sử
dụng các phương thức non-OpenFlow (ví dụ các nhóm kết hợp đường dẫn, đường
hầm, các giao diện loopback). Sự khác biệt duy nhất giữa các cổng vật lý và các cổng
logic là gói tin được liên kết với cổng logic có thể có một trường đường dẫn phụ được
gọi là Tunnel-ID liên kết với nó. Khi một gói tin nhận được trên cổng logic được gửi
tới bộ điều khiển thì cả thông số cổng logic và gói tin được báo cáo tới bộ điều khiển.
- Cổng riêng: Được định nghĩa bởi đặc tả của OpenFlow. Nó chỉ định các thao
tác chuyển tiếp chung như gửi và nhận từ bộ điều khiển, chuyển tiếp sử dụng các
phương thức non-OpenFlow, chẳng hạn như xử lý chuyển tiếp "NORMAL".
Khái niệm “flow” không được định nghĩa trong đặc tả của OpenFlow (OpenFlow
Specification). Hiểu một cách đơn giản, một flow là một chuỗi các gói tin đi qua một
mạng mà có chung một tập các giá trị trường header. Ví dụ, một flow có thể bao gồm
tất cả các gói tin với cùng địa chỉ nguồn và địa chỉ đích, hoặc tất cả các gói tin có cùng
VLAN id. Trong mỗi switch, một loạt các bảng flow (flow table) được sử dụng để
quản lý luồng gói tin đến switch.
Đặc tả của OpenFlow định nghĩa ba loại bảng trong kiến trúc logic của switch.
- Một low table sẽ ghép các gói tin đến vào một flow cụ thể và chỉ định các chức
năng sẽ được thực hiện trên các gói tin đó. Có thể có nhiều flow table vận hành trong
một đường dẫn (pipeline).

Vương Văn Tĩnh – D13VT8

14



Đồ án tốt nghiệp

Chương 2: Mặt bằng dữ liệu SDN và OpenFlow

- Một flow table có thể chuyển một luồng vào một Group Table, tại đó có thể
kích hoạt cùng một lúc nhiều hành động ảnh hưởng tới một hoặc nhiều flow.
- Một Meter Table có thể kích hoạt nhiều hành động liên quan tới hiệu năng trên
một flow.
2.2.1 Cấu trúc flow table
Khối cơ bản trong kiến trúc logic của switch là flow table. Mỗi gói tin đi vào một
switch đi qua một trong nhiều flow table. Mỗi flow table bao gồm một tập các flowentry. Mỗi entry này bao gồm bảy thành phần, được định nghĩa trong danh sách sau

Hình 2.4 Định dạng của một OpenFlow table entry

 Match fields: Sử dụng để chọn các gói tin phù hợp với các giá trị trong các trường.
- Ingress port: Định danh của cổng trên switch nơi gói tin đến. Đây có thể là một
cổng vật lý hoặc một cổng ảo. Cần thiết trong các bảng vào.
- Egress port: Định danh của cổng ra. Cần thiết trong các bảng ra.
- Ethernet source and destination addresses: Mỗi mục có thể là một địa chỉ chính
xác, một giá trị bitmasked cho một số bit địa chỉ được kiểm tra, hoặc một giá trị ký tự
đại diện.
- Ethernet type field: Cho biết loại tải tin Ethernet.
- IP: Phiên bản 4 hoặc 6.
- IPv4 or IPv6 source address, and destination address: Mỗi mục có thể là một địa
chỉ chính xác, một giá trị bitmasked, một giá trị subnet mask hoặc một giá trị ký tự đại
diện.
- TCP source and destination ports: Giá trị ký tự đại diện.
- UDP source and destination ports: Giá trị ký tự đại diện.
 Priority: Giá trị ưu tiên cho các gói tin của bảng. Đây là một trường bao gồm 16
bit, trong đó 0 tương ứng với mức ưu tiên thấp nhất. Về nguyên tắc, có thể có

65536 mức độ ưu tiên.
Vương Văn Tĩnh – D13VT8

15


Đồ án tốt nghiệp

Chương 2: Mặt bằng dữ liệu SDN và OpenFlow

 Counters: Đếm số các gói tin hợp lệ.
 Instructions: Chỉnh sửa tập các hành động hay xử lý đường dẫn lệnh.
 Timeouts: Thời gian chờ tối đa trước khi luồng hết hạn bởi switch. Mỗi flow-entry
có một idle_timeout và một hard_timeoutnonzer liên kết đến nó. Một trường
hard_timeout khác 0 làm cho flow-entry bị gỡ bỏ sau một số thời gian nhất định,
bất kể có bao nhiêu gói dữ liệu đã được kết hợp. Một trường idle_timeout khác 0
làm cho flow-entry bị gỡ bỏ khi nó không khớp được với các gói trong một thời
gian nhất định.
 Cookie: giá trị dữ liệu 64bit được chọn bởi bộ điều khiển. Có thể được sử dụng bởi
bộ điều khiển để lọc thống kê lưu lượng, điều chỉnh luồng và xóa luồng, không
được sử dụng khi xử lý các gói.
 Flags: Cờ thay đổi cách flow-entry được quản lý. Ví dụ: cờ
OFPFF_SEND_FLOW_REM kích hoạt luồng đã xóa các thông điệp cho flowentry đó.
Do đó, OpenFlow có thể được sử dụng với lưu lượng mạng liên quan đến nhiều
giao thức và dịch vụ mạng. Lưu ý rằng ở lớp MAC, chỉ Ethernet được hỗ trợ. Vì vậy,
OpenFlow như hiện tại được xác định không thể kiểm soát lưu lượng lớp 2 qua mạng
không dây.
2.2.2 Thành phần chỉ thị
Các thành phần chỉ thị của một bảng đầu vào bao gồm một tập các chỉ thị được
thực hiện nếu gói tin được so khớp với entry. Trước khi mô tả các loại chỉ thị, chúng ta

cần phải xác định thuật ngữ hành động (action) và tập hành động (action set). Các
action mô tả sự chuyển tiếp gói, sửa đổi gói tin, và các hoạt động xử lý bảng
nhóm. Đặc tả của OpenFlow bao gồm các action sau:
- Output: Chuyển tiếp gói tin đến cổng được chỉ định. Cổng có thể là một cổng
đầu ra cho một switch 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 bản tin đến bộ điều khiển.
- Set-Queue: Thiết lập ID hàng đợi cho một gói. Khi gói tin được chuyển tiếp đến
một cổng sử dụng hành động Output, ID hàng đợi xác định hàng đợi nào được gắn vào
cổng này được sử dụng để lên kế hoạch và chuyển tiếp gói tin. Hành vi chuyển tiếp
được đưa ra 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: Xử lý gói tin qua nhóm được chỉ định.
- Push-Tag/Pop-Tag: Đẩy hoặc bật một trường tag cho một gói VLAN hoặc gói
MPLS.
- Set-Field: Các Set-Field actions khác nhau được xác định bởi loại trường của
chúng và thay đổi các giá trị của các trường tiêu đề tương ứng trong gói.
- Change-TTL: Các Change-TTL actions khác nhau sẽ thay đổi các giá trị của
IPv4 Time To Live (TTL), IPv6 Hop Limit hoặc MPLS TTL trong gói tin.
Vương Văn Tĩnh – D13VT8

16


Đồ án tốt nghiệp

Chương 2: Mặt bằng dữ liệu SDN và OpenFlow

- Drop: Các gói tin không có action rõ ràng sẽ được loại bỏ.
Một action set là một danh sách các hành động liên quan đến một gói được tích
trữ trong khi gói tin được xử lý bởi mỗi bảng và được thực hiện khi gói tin thoát khỏi

đường dẫn xử lý.
Các chỉ thị có thể được phân thành bốn loại:
- Hướng gói thông qua đường dẫn: Chỉ thị Goto-Table hướng gói tin đến một
bảng xa hơn trong đường dẫn. Chỉ thị Meter hướng gói tin đến một bộ đếm cụ thể.
- Thực hiện action trên gói: Các action có thể được thực hiện trên các gói tin khi
nó được kết hợp với một table entry. Lệnh Apply-Actions áp dụng các hành động được
chỉ định ngay lập tức mà không có bất kỳ sự thay đổi nào đối với tập hành động liên
kết đến gói này. Chỉ thị này có thể được sử dụng để sửa đổi gói tin giữa hai bảng trong
đường dẫn.
- Cập nhật action set: Lệnh Write-Actions kết hợp các hành động được chỉ định
vào tập hành động hiện tại cho gói này. Chỉ thị Clear-Actions sẽ xóa tất cả các hành
động trong tập hành động.
- Cập nhật siêu dữ liệu (metadata): Một 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ừ một bảng này sang bảng khác.
Lệnh Write-Metadata 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.
2.2.3 Đường dẫn bảng luồng
Switch 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 sẽ được tổ chức dưới dạng một đường dẫn.Việc sử dụng nhiều bảng trong
một đường dẫn thay vì một flow table đơn sẽ cung cấp bộ điều khiển SDN một sự linh
hoạt đáng kể.
Đặc tả của OpenFlow định nghĩa hai giai đoạn xử lý:
- Xử lý đầu vào: Bắt đầu với table 0, sử dụng định danh của cổng đầu vào. Table
0 có thể là bảng duy nhất trong trường hợp xử lý đầu vào được đơn giản hóa để thực
hiện trên bảng đơn đó và không có xử lý đầu ra.
- Xử lý đầu ra: Là quá trình xử lý xảy ra sau khi xác định cổng đầu ra. Nếu nó
xảy ra, nó có thể liên quan đến một hoặc nhiều bảng. Việc tách hai giai đoạn được biểu
thị bằng số nhận dạng số của bảng thoát đầu tiên. Tất cả các bảng với một số thấp hơn
so với bảng ra đầu tiên phải được sử dụng như các bảng nhập, và không có bảng với
một số cao hơn hoặc bằng với bảng ra đầu tiên có thể được sử dụng như một bảng vào.
Khi một gói tin được chỉ định cho một bảng để kết hợp, đầu vào bao gồm gói tin,

định danh cổng nhập, giá trị siêu dữ liệu được liên kết và tập hành động được liên kết.
Đối với Table 0, giá trị metadata là trống và action set là null. Tại mỗi bảng, quá trình
xử lý diễn ra như sau (hình 2.5):

Vương Văn Tĩnh – D13VT8

17


Đồ án tốt nghiệp

Chương 2: Mặt bằng dữ liệu SDN và OpenFlow

Hình 2.5 Sơ đồ khối của luồng gói tin khi qua một OpenFlow Switch

Trường hợp 1: Nếu có sự so sánh trùng trên một hoặc nhiều entry và khác với với
table-miss entry thì việc ghép nối được thực hiện với entry trùng có mức ưu tiên cao
nhất. Sau đó các bước sau có thể được thực hiện:
a. Cập nhật bất kỳ counters nào liên kết đến entry này.

Vương Văn Tĩnh – D13VT8

18


Đồ án tốt nghiệp

Chương 2: Mặt bằng dữ liệu SDN và OpenFlow

b. Thực hiện bất kỳ chỉ thị nào liên kết đến entry này. Điều này có thể bao gồm

việc cập nhật action set, cập nhật giá trị metadata và thực hiện các hành động.
c. Gói này sau đó được chuyển tiếp tới một flow table kế tiếp dưới đường dẫn, tới
group table, meter table, hoặc hướng đến một cổng đầu ra.
Trường hợp 2: Nếu chỉ có sự so khớp trên một table-miss entry thì entry đó sẽ chỉ
định một trong ba hành động:
a. Gửi gói tin đến bộ điều khiển. Điều này sẽ cho phép bộ điều khiển xác định một
flow mới cho gói này và các gói tương tự nó, hoặc quyết định hủy gói tin.
b. Hướng gói tin đến một flow table khác nằm dưới đường dẫn.
c. Xóa bỏ gói tin.
Trường hợp 3: Nếu không có bất kỳ entry nào trùng và không có table-miss
entry, gói tin sẽ được xóa bỏ.
Đối với bảng cuối cùng trong đường dẫn sẽ không có lựa chọn chuyển tiếp đến một
flow table nào khác. Khi gói cuối cùng được đưa đến cổng ra, tập action set tích lũy sẽ
được thực hiện và gói tin nằm trong hàng đợi để chờ xuất ra. Hình 2.6 minh hoạ quá
trình xử lý đường dẫn lối vào.

Hình 2.6 Luồng gói tin qua một OpenFlow switch (xử lý đầu vào)
Vương Văn Tĩnh – D13VT8

19


Đồ án tốt nghiệp

Chương 2: Mặt bằng dữ liệu SDN và OpenFlow

Nếu quá trình xử lý đầu ra được liên kết với một cổng ra cụ thể thì sau khi một
gói hướng đến một cổng đầu ra, gói tin được chuyển đến flow table đầu tiên của
đường dẫn. Quá trình xử lý đường dẫn lối ra tiến hành theo cách tương tự như xử lý tại
đầu vào, trừ việc không có quá trình xử lý group table ở cuối đường dẫn. Quá trình xử

lý lối ra thể hiện trong hình 2.7.

Hình 2.7 Luồng gói tin qua một OpenFlow switch (xử lý đầu ra)
2.2.4 Sử dụng nhiều bảng

Việc sử dụng nhiều bảng cho phép sự lồng ghép vào nhau giữa các flows, hay nói
cách khác là sự phân chia từ một flow đơn ra các luồng con (subflows) song song.
Hình 2.8 minh họa thuộc tính này. Trong ví dụ này, một entry trong Table 0 xác định
một luồng bao gồm các gói đi 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 có cost thấp nhất giữa hai điểm cuối này được thiết
lập, nó có thể hướng tất cả lưu lượng giữa hai điểm cuối này theo tuyến đó. Khi đó
next hop trên tuyến đó được nhập vào Table 0. Trong Table 1, các entry riêng cho
luồng được xác định cho các giao thức lớp giao vận khác nhau, chẳng hạn như TCP và
UDP. Đối với các luồng con có cổng đầu ra như nhau có thể được giữ lại sao cho toàn
bộ các subflows đều theo cùng một tuyến. Tuy nhiên, TCP bao gồm các cơ chế kiểm
soát tắc nghẽn phức tạp mà UDP không có, do đó phải xử lý phù hợp các TCP và UDP
subflows khác nhau về các thông số liên quan đến chất lượng dịch vụ (QoS). Bất kỳ
entry nào của Table 1 cũng có thể ngay lập tức định tuyến subflow tương ứng đến
cổng đầu ra, nhưng một số hoặc tất cả các entry có thể dẫn ra Table 2, tiếp tục phân
chia từng subflows. Hình vẽ cho thấy rằng subflow TCP có thể được chia trên cơ sở
Vương Văn Tĩnh – D13VT8

20


Đồ án tốt nghiệp

Chương 2: Mặt bằng dữ liệu SDN và OpenFlow

giao thức chạy trên nền TCP, chẳng hạn như giao thức SMTP hoặc FTP. Tương tự,

luồng UDP có thể được chia nhỏ dựa trên các giao thức chạy trên UDP, chẳng hạn như
giao thức SNMP. Hình vẽ cũng chỉ ra các subflow khác trong Table 1 và 2, tại đó có
thể được sử dụng cho các mục đích khác.

Hình 2.9 Ví dụ về các flow lồng nhau

Việc sử dụng nhiều bảng làm đơn giản hoá quá trình xử lý trong bộ điều khiển
SDN và chuyển mạch OpenFlow. Các actions như next hop áp dụng cho luồng tổng có
thể được định nghĩa một lần bởi bộ điều khiển và được kiểm tra và thực hiện một lần
bằng switch. Việc thêm vào các subflows mới ở bất kỳ cấp nào dẫn đến việc thiết lập ít
hơn. Do đó việc sử dụng đường dẫn, sử dụng nhiều bảng làm tăng tính hiệu quả trong
vận hành mạng, cung cấp sự điều khiển chi tiết và cho phép mạng đáp ứng những thay
đổi theo thời gian thực ở các mức ứng dụng, người dùng và phiên.
2.3

GIAO THỨC OPENFLOW

Giao thức OpenFlow mô tả bản tin trao đổi giữa OpenFlow Controller và một
OpenFlow switch. Giao thức này được triển khai trên Secure Socket Layer (SSL) hoặc
Transport Layer Security (TLS), cung cấp kênh OpenFlow bảo mật. Giao thức
OpenFlow cho phép bộ điều khiển thực hiện các thao tác bổ sung, cập nhật và xóa các
hành động vào các flow-entry trong các flow tables. Nó hỗ trợ 3 loại bản tin: bộ điều
khiển-bộ chuyển mạch (Controller to Switch), giao tiếp bất đồng bộ (Asynchronous)
và đối xứng (Symmetic):
Giao tiếp Controller to Switch: được tạo bởi Controller và sử dụng để trực tiếp
quản lý và kiểm tra trạng thái của bộ chuyển mạch OpenFlow, có thể không đòi
hỏi sự phản hồi từ bộ chuyển mạch, bao gồm các bản tin:
- Bản tin Features: Khi Transport Layer Security (TLS) được thành lập, bộ điều
khiển sẽ gửi tin nhắn này đến bộ chuyển mạch và bộ chuyển mạch phải gửi phản hồi
xác định khả năng hỗ trợ của nó tới bộ điều khiển.

- Bản tin Configuaration: Bộ điều khiển có khả năng thiếp lập và cấu hình các
tham số của bộ chuyển mạch và bộ chuyển mạch phải sẽ phản hồi truy vấn từ bộ điều
khiển.
- Bản tin Modify-State: Thông điệp này nhằm quản lý trạng thái của bộ chuyển
mạch, thêm hoặc xóa các bản ghi trong bảng phân luồng.
Vương Văn Tĩnh – D13VT8

21


×