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

Mô phỏng mạng SDN (software defined networking) sử dụng mã nguồn mở

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.21 MB, 68 trang )

BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƢỜNG ĐẠI HỌC NHA TRANG

ĐỖ VĂN KHOA

MÔ PHỎNG MẠNG SDN (SOFTWARE-DEFINED
NETWORKING) SỬ DỤNG MÃ NGUỒN MỞ

LUẬN VĂN THẠC SĨ

KHÁNH HÒA - 2020


BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƢỜNG ĐẠI HỌC NHA TRANG

ĐỖ VĂN KHOA

MÔ PHỎNG MẠNG SDN (SOFTWARE-DEFINED
NETWORKING) SỬ DỤNG MÃ NGUỒN MỞ
LUẬN VĂN THẠC SĨ

Ngành:

Công nghệ thông tin

Mã số:

8480201

Quyết định giao đề tài



514/QĐ-ĐHNT ngày 17/05/2019

Quyết định thành lập HĐ:

499/QĐ-ĐHNT ngày 25/05/2020

Ngày bảo vệ:

07/06/2020

Ngƣời hƣớng dẫn khoa học:

TS. TRẦN NGÔ NHƢ KHÁNH
Chủ tịch Hội đồng:
TS. NGUYỄN ĐỨC THUẦN
Phòng Đào tạo sau Đại học

KHÁNH HÒA - 2020


LỜI CAM ĐOAN
Tôi tên Đỗ Văn Khoa – hiện đang là học viên lớp cao học ngành Công nghệ Thông
tin – trường Đại học Nha Trang. Tôi xin cam đoan mọi kết quả của đề tài: “Mô phỏng
mạng SDN (Software-Defined Networking) sử dụng mã nguồn mở” là cơng trình
nghiên cứu của cá nhân tôi dưới sự hướng dẫn của TS. Trần Ngô Như Khánh và chưa
từng được công bố trong bất cứ cơng trình khoa học nào khác cho tới thời điểm này.
Những kết quả nghiên cứu của người khác và các số liệu được trích dẫn trong luận văn
đều được chú thích đầy đủ.
Tơi hồn tồn chịu trách nhiệm trước nhà trường về sự cam đoan này.

Lâm Đồng, Ngày 10 tháng 03 năm 2020
Tác giả luận văn

Đỗ Văn Khoa

i


LỜI CẢM ƠN
Trong suốt thời gian thực hiện đề tài, tơi đã nhận được sự giúp đỡ của q phịng
ban trường Đại học Nha Trang, Quý thầy cô trong khoa Công nghệ Thông tin trường Đại
học Nha Trang đã tạo điều kiện tốt nhất cho tơi được hồn thành đề tài. Đặc biệt là sự
hướng dẫn tận tình của TS. Trần Ngơ Như Khánh đã giúp tơi hồn thành tốt đề tài.
Để có đủ kiến thức và kỹ năng hồn thành đề tài tôi xin chân thành cảm ơn quý
thầy cô trường Đại học Nha Trang đã trang bị cho tơi trong suốt khóa học.
Tơi xin chân thành cảm ơn gia đình, bạn bè và đồng nghiệp đã ln ủng hộ, động
viên, tạo điều kiện, giúp đỡ để tơi có thể tập trung thực hiện việc học tập và nghiên cứu
trong suốt thời gian dài.
Mặc dù tơi đã có nhiều cố gắng hồn thiện luận văn, tuy nhiên khơng thể tránh khỏi
những thiếu sót, rất mong nhận được những đóng góp q báu của q thầy cơ và các
bạn.
Lâm Đồng, Ngày 10 tháng 03 năm 2020
Tác giả luận văn

Đỗ Văn Khoa

ii


MỤC LỤC

CHƢƠNG 1: TỔNG QUAN .................................................................................................................... 10
1.1.

Giới thiệu đề tài ......................................................................................................................... 10

1.2.

Mục tiêu đề tài ........................................................................................................................... 11

1.3.

Nội dung thực hiện.................................................................................................................... 12

1.4.

Một số nghiên cứu liên quan .................................................................................................... 12

1.5.

Đóng góp của luận văn ............................................................................................................. 12

CHƢƠNG 2: MẠNG ĐỊNH NGHĨA BẰNG PHẦN MỀM .................................................................. 14
(SOFTWARE-DEFINED NETWORKING) .......................................................................................... 14
2.1.

Định nghĩa SDN ........................................................................................................................ 14

2.2.

Kiến trúc của mạng SDN.......................................................................................................... 15


2.2.1.

Lớp ứng dụng (Application layer) ................................................................................... 16

2.2.2.

Lớp điều khiển (Control layer) ........................................................................................ 16

2.2.3.

Lớp cơ sở hạ tầng (Infrastructure latyer)....................................................................... 17

2.3.

Những điểm khác nhau cơ bản giữa mạng truyển thống và mạng SDN ............................. 18

2.4.

Những ƣu điểm và những hạn chế của mạng SDN ................................................................ 19

2.4.1.

Ƣu điểm.............................................................................................................................. 19

2.4.2.

Hạn chế .............................................................................................................................. 21

2.5.


Phần điều khiển mạng và Chức năng vận chuyển dữ liệu .................................................... 23

2.5.1.

Phần điều khiển mạng (Control Plane) ........................................................................... 23

2.5.2.

Chức năng vận chuyển dữ liệu (Data Plane) .................................................................. 24

2.6.

Giao thức OpenFlow ................................................................................................................. 24

2.6.1.

Các đặc trƣng của giao thức OpenFlow.......................................................................... 27

2.6.2.

OpenFlow switch và OpenFlow Controller .................................................................... 28

2.6.3.

Đánh giá bảo mật OpenFlow ........................................................................................... 31

2.7.

Công cụ Mininet và các bộ điều khiển của SDN .................................................................... 32


2.7.1.

Công cụ Mininet ................................................................................................................ 32

2.7.2.

Các bộ điều khiển của SDN .............................................................................................. 34

CHƢƠNG 3: MÔ PHỎNG MẠNG SDN. ............................................................................................... 41
3.1.

Giới thiệu ................................................................................................................................... 41

3.2.

Công cụ sử dụng........................................................................................................................ 42

3.3.

Các thử nghiệm và đánh giá .................................................................................................... 43

3.3.1.

So sánh giữa hai môi trƣờng thực thi.............................................................................. 48
iii


3.3.2.


So sánh giữa các bộ điều khiển ........................................................................................ 57

3.3.3.

Kết quả ............................................................................................................................... 61

CHƢƠNG 4: TỔNG KẾT VÀ HƢỚNG PHÁT TRIỂN ....................................................................... 63
4.1.

Tổng kết ..................................................................................................................................... 63

4.2.

Hƣớng phát triển ...................................................................................................................... 64

TÀI LIỆU THAM KHẢO ........................................................................................................................ 65

iv


DANH MỤC CHỮ VIẾT TẮT
SDN

Software-Defined Networking (Mạng định nghĩa bằng phần mềm)

ATM

Asynchronous transfer mode (Mạng chế độ truyền không đồng bộ)

NCP


Network control protocol (Giao thức điều khiển mạng)

API

Application programming interface (Giao diện lập trình ứng dụng)

ONF

Open Networking Foundation (Một tổ chức phi lợi nhuận)

PC

Personal Computer (Máy tính cá nhân)

RCP

Routing control platform (Nền tảng điều khiển định tuyến)

BGP

Border Gateway protocol (Giao thức tìm đường đi)

IETF

Internet Engineering Task Force (Là một tổ chức tiêu chuẩn mở, phát
triển và thúc đẩy các tiêu chuẩn Internet tự nguyện)

ONOS


Open Network Operating System (Hệ điều hành mã nguồn mở)

NETCONF

Network Configuration Protocol (Giao thức cấu hình mạng)

SNMP

Simple Network Management Protocol

MAC

Media Access Control (Kiểm soát truy cập phương tiện truyền thông)

IP

Internet Protocol (Địa chỉ giao thức Internet)

NOS

Network Operating System (Hệ điều hành mạng)

NAT

Network Address Translation (Bộ dịch địa chỉ mạng cho phép chuyển
đổi từ một địa chỉ IP này thành một địa chỉ IP khác)

FIB

Forwarding Information Base (Bảng chứa các thông tin chuyển tiếp)


OSPF

Open Shortest Path First (Là một giao thức định tuyến)

BGP

Border Gateway Protocol (Là một giao thức định tuyến)

EIGRP
CPU

Enhance Interio Gateway Routing Protocol (Là một giao thức định
tuyến)
Central Processing Unit (Bộ xử lý trung tâm)
v


SSH
VM

Secure Shell L(à một giao thức mạng dùng để thiết lập kết nối mạng
một cách bảo mật)
Virtual machine (Hệ thống máy ảo)

vi


DANH MỤC BẢNG
Bảng 3.1: Kết quả thử nghiệm của mô hình mạng đơn (Single) với bộ điều khiển mặc

định .................................................................................................................................... 48
Bảng 3.2: Kết quả thử nghiệm của mơ hình mạng cây (Tree) với bộ điều khiển mặc định
........................................................................................................................................... 49
Bảng 3.3: Kết quả thử nghiệm của mơ hình mạng tuyến tính (Linear) với bộ điều khiển
mặc định ............................................................................................................................ 50
Bảng 3.4: Kết quả thử nghiệm của mơ hình mạng đơn (Single) với bộ điều khiển POX 51
Bảng 3.5: Kết quả thử nghiệm của mơ hình mạng cây (Tree) với bộ điều khiển POX .... 52
Bảng 3.6: Kết quả thử nghiệm của mô hình mạng tuyến tính (Linear) với bộ điều khiển
POX ................................................................................................................................... 53
Bảng 3.7: Kết quả thử nghiệm của mơ hình mạng đơn (Single) với bộ điều khiển Ryu .. 54
Bảng 3.8: Kết quả thử nghiệm của mơ hình mạng cây (Tree) với bộ điều khiển Ryu ..... 55
Bảng 3.9: Kết quả thử nghiệm của mơ hình mạng tuyến tính (Linear) với bộ điều khiển
Ryu .................................................................................................................................... 56
Bảng 3.10: Kết quả thử nghiệm của mơ hình mạng cây (Tree) với mơi trường máy ảo .. 57
Bảng 3.11: Kết quả thử nghiệm của mô hình mạng tuyến tính (Linear) với mơi trường
máy ảo ............................................................................................................................... 58
Bảng 3.12: Kết quả thử nghiệm của mơ hình mạng cây (Tree) với môi trường máy
Raspberry .......................................................................................................................... 59
Bảng 3.13: Kết quả thử nghiệm của mơ hình mạng tuyến tính (Linear) với môi trường
máy Raspberry .................................................................................................................. 60

vii


DANH MỤC HÌNH

Hình 2.1: Kiến trúc của SDN ............................................................................................ 16
Hình 2.2: Kiến trúc tổng quan mạng SDN ........................................................................ 18
Hình 2.3: Control plane và Data plane .............................................................................. 23
Hình 2.4: Sơ đồ Giao thức OpenFlow .............................................................................. 25

Hình 2.5: Sơ đồ tương tác giữa switch và controller theo giao thức OpenFlow .............. 28
Hình 2.6: Cấu trúc OpenFlow Switch ............................................................................... 29
Hình 3.1: Cách tạo mơ hình mạng đơn (Single) ............................................................... 44
Hình 3.2: Mơ hình mạng đơn (Single) .............................................................................. 44
Hình 3.3: Cách tạo mơ hình mạng cây (Tree) ................................................................... 45
Hình 3.4: Mơ hình mạng cây (Tree) ................................................................................. 46
Hình 3.5: Cách tạo mơ hình mạng tuyến tính (Linear) ..................................................... 47
Hình 3.6: Mơ hình mạng tuyến tính (Linear) .................................................................... 47

viii


DANH MỤC BIỂU ĐỒ
Biểu đồ 3.1: So sánh thời gian thực thi của mơ hình mạng đơn (Single) với bộ điều khiển
mặc định ............................................................................................................................ 48
Biểu đồ 3.2: So sánh thời gian thực thi của mơ hình mạng cây (Tree) với bộ điều khiển
mặc định ............................................................................................................................ 49
Biểu đồ 3.3: So sánh thời gian thực thi của mơ hình mạng tuyến tính (Linear) với bộ điều
khiển mặc định .................................................................................................................. 50
Biểu đồ 3.4: So sánh thời gian thực thi của mơ hình mạng đơn (Single) với bộ điều khiển
POX ................................................................................................................................... 51
Biểu đồ 3.5: So sánh thời gian thực thi của mơ hình mạng cây (Tree) với bộ điều khiển
POX ................................................................................................................................... 52
Biểu đồ 3.6: So sánh thời gian thực thi của mơ hình mạng tuyến tính (Linear) với bộ điều
khiển POX ......................................................................................................................... 53
Biểu đồ 3.7: So sánh thời gian thực thi của mơ hình mạng đơn (Single) với bộ điều khiển
Ryu .................................................................................................................................... 54
Biểu đồ 3.8: So sánh thời gian thực thi của mơ hình mạng cây (Tree) với bộ điều khiển
Ryu .................................................................................................................................... 55
Biểu đồ 3.9: So sánh thời gian thực thi của mơ hình mạng tuyến tính (Linear) với bộ điều

khiển Ryu .......................................................................................................................... 56
Biểu đồ 3.10: So sánh thời gian thực thi của mô hình mạng cây (Tree) với mơi trường
máy ảo ............................................................................................................................... 57
Biểu đồ 3.11: So sánh thời gian thực thi của mô hình mạng tuyến tính (Linear) với mơi
trường máy ảo ................................................................................................................... 58
Biểu đồ 3.12: So sánh thời gian thực thi của mơ hình mạng cây (Tree) với mơi trường
máy Raspberry .................................................................................................................. 59
Biểu đồ 3.13: So sánh thời gian thực thi của mơ hình mạng tuyến tính (Linear) với mơi
trường máy Raspberry ....................................................................................................... 60

ix


CHƢƠNG 1: TỔNG QUAN
1.1.

Giới thiệu đề tài
Trong kiến trúc mạng truyền thống thành phần chuyển tiếp dữ liệu (Data plane)

và thành phần điều khiển (Control plane) đều cùng nằm trên một thiết bị vật lý (chế độ tự
trị) và mỗi thiết bị độc lập với nhau. Khi số lượng thiết bị càng nhiều, thì càng gây nên sự
phức tạp trong mạng và làm khó khăn cho người quản trị mạng trong quá trình vận hành
và điều khiển. Trong bối cảnh này, một kiến trúc mạng mới đã được nghiên cứu và phát
triển với hướng tiếp cận là tách rời phần chuyển tiếp dữ liệu với phần điều khiển mạng,
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ị định tuyến (router),
thiết bị chuyển mạch (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. [1]
Với sự phát triển nhanh chóng của cơng nghệ, ngày nay u cầu các ứng dụng
thường địi hỏi tính di động, ảo hóa để quản lý tập trung, cũng như đáp ứng nhanh chóng

những thay đổi theo nhu cầu của người dùng, vì vậy hệ thống mạng truyền thống không
thể đáp ứng được nhu cầu. Việc chuyển đổi từ IPv4 sang IPv6, đã bắt đầu từ hơn một
thập kỷ trước và vẫn chưa hoàn thành, trong khi thực tế IPv6 chỉ là một bản cập nhật giao
thức. Để đáp ứng được các mạng IP hiện tại, một giao thức định tuyến mới có thể mất từ
5 đến 10 năm để được thiết kế, đánh giá và triển khai đầy đủ. Tương tự, cách tiếp cận để
thay đổi kiến trúc Internet một cách mới hồn tồn (ví dụ: thay thế IP), được coi là một
nhiệm vụ khó khăn - đơn giản là khơng khả thi trong thực tế.
Mặc dù Mạng định nghĩa bằng phần mềm (SDN - Software-Defined Networking)
là một khái niệm mới, nhưng nó vẫn kế thừa các ý tưởng của mạng truyền thống. Cụ thể,
nó được xây dựng dựa trên ý tưởng các mạng có thể lập trình, ví dụ: Mạng - chế độ
truyền khơng đồng bộ (ATM-Asynchronous transfer mode) có thể lập trình và trên ý
tưởng cho phép phần điều khiển mạng (Control Plane) tách hẳn với chức năng vận
chuyển dữ liệu (Forwarding Plane hay Data Plane) như giao thức điều khiển mạng (NCPNetwork control protocol). [2]
10


Với mạng định nghĩa bằng phần mềm (SDN - Software-Defined Networking),
việc điều khiển được tập trung tại lớp điều khiển (Controller Layer), với ý tưởng tách
riêng phần điều khiển mạng (Control Plane) và chức năng vận chuyển dữ liệu (Data
Plane), điều này cho phép việc điều khiển mạng trở nên có thể lập trình được dễ dàng và
cơ sở hạ tầng mạng độc lập với các ứng dụng và dịch vụ mạng. Về phía người sử dụng,
người dùng khơng phải có mặt trực tiếp tại các thiết bị mạng để cấu hình cho các thiết bị
mạng mà chỉ cần thơng qua các giao diện lập trình ứng dụng (API-Application
programming interface) là đã có thể xây dựng ứng dụng cho tồn hệ thống mạng. [1, 3]
Hiện nay, SDN thực sự là một chủ đề được quan tâm đặc biệt trong cả nghiên cứu
lẫn ứng dụng. Đây là một mơ hình quản lý tập trung có tính logic có thể kiểm sốt chuyển
tiếp trên các thiết bị như thiết bị định tuyến (Router) và thiết bị chuyển mạch (Switch).
SDN hứa hẹn là một công nghệ mạng mới hiệu quả hơn công nghệ mạng truyền thống về
phương diện hoạt động và quản lý mạng.
Với nhu cầu nghiên cứu, thử nghiệm và giảng dạy về cơng nghệ mạng SDN rất

lớn tuy nhiên gặp khó khăn chủ yếu do các thiết bị mạng (router, switch,…) hỗ trợ SDN
rất đắt tiền. Vì vậy việc sử dụng các công cụ giả lập mã nguồn mở được xem là giải pháp
thay thế. Đề tài tập trung triển khai thử nghiệm các mơ hình mạng SDN sử dụng cơng cụ
mô phỏng mã nguồn mở Mininet để so sánh, đánh giá việc triển khai này trên nhiều môi
trường phần cứng và các bộ điều khiển (controller) khác nhau[1, 4]
1.2.

Mục tiêu đề tài
Mục tiêu của đề tài là sử dụng mã nguồn mở trên nền tảng công cụ mô phỏng

Mininet để triển khai các mơ hình mạng SDN (mơ hình mạng đơn - Single, mơ hình
mạng cây - Tree và mơ hình mạng tuyến tính - Linear) trên nhiều mơi trường phần cứng
khác nhau (mơi trường ảo hóa và mơi trường máy tính Raspberry Pi) với các bộ điều
khiển khác nhau (bộ điều khiển mặc định - Default controller, bộ điều khiển POX – POX
controller và bộ điều khiển Ryu – Ryu controller). Cụ thể, đề tài sẽ thử nghiệm triển khai
các mơ hình mạng SDN với số nút mạng khác nhau và đánh giá về các tiêu chí như thời
gian thực thi, khả năng đáp ứng.

11


1.3.

Nội dung thực hiện
Các thử nghiệm được thực hiện để đánh giá khả năng mở rộng (scalability) của

công cụ mô phỏng Mininet trong việc thực thi các mơ hình mạng. Cụ thể, thời gian thực
thi từ lúc chạy (start) và dừng (stop) của các mơ hình mạng khác nhau sẽ được so sánh
trên hai môi trường phần cứng khác nhau và so sánh trên các bộ điều khiển khác nhau.
Đề tài thực hiện cài đặt công cụ Mininet với các bộ điều khiển khác nhau trên hai

môi trường phần cứng là máy tính dùng cơng cụ ảo hóa (VirtualBox Oracle VM) và máy
tính Raspberry Pi 3. Việc lập trình điều khiển sử dụng ngơn ngữ Python.
Các mơ hình mạng được sử dụng trong các thử nghiệm gồm: Mơ hình mạng đơn
(Single), mơ hình mạng cây (Tree) và mơ hình mạng tuyến tính (Linear) và các bộ điều
khiển SDN được sử dụng là: bộ điều khiển mặc định (Default controller), bộ điều khiển
POX (POX controller) và bộ điều khiển Ryu (Ryu controller).
1.4.

Một số nghiên cứu liên quan
Một nghiên cứu mô phỏng mạng SDN sử dụng Mininet trên những môi trường

mô phỏng khác nhau được phát triển bởi Faris Keti và Shavan Askar [5]. Cụ thể nghiên
cứu sử dụng hai môi trường mơ phỏng là hai máy tính với cấu hình khác nhau để so sánh
thời gian thực thi tạo mơ hình mạng cây (Tree) với số nút mạng khác nhau. Vipin Gupta,
Karamjeet Kaur and Sukhveer Kaur [6] đã nghiên cứu sử dụng máy tính Raspberry Pi
làm bộ chuyển mạch SDN với chi phí thấp. Kết quả cho thấy sử dụng Raspberry Pi làm
bộ chuyển mạch có thể đáp ứng được, thiết bị này có chi phí thấp và di động so với các
thiết bị khác trên thị trường. Trong tương lai có thể thử nghiệm SDN bao gồm các thiết bị
chuyển mạch và máy chủ lưu trữ bằng máy tính Raspberry Pi. Trong một nghiên cứu
khác Jehad Ali, Seungwoon Lee và Byeong-hee Roh [7] phân tích hiệu suất của các bộ
điều khiển POX và Ryu với các cấu trúc mạng SDN khác nhau. Nghiên cứu cho thấy
rằng hiệu suất của bộ điều khiển Ryu là cao hơn.
1.5.

Đóng góp của luận văn
Nghiên cứu đã thử nghiệm đánh giá việc mô phỏng mạng SDN sử dụng công cụ

Mininet bằng cách so sánh thời gian thực thi trên hai môi trường phần cứng khác nhau
12



(mơi trường ảo hóa và máy tính Raspberry Pi). Các thử nghiệm khả năng mở rộng này
được tiến hành trên ba kiểu mơ hình mạng (mơ hình mạng đơn, mơ hình mạng cây và mơ
hình mạng tuyến tính) với các bộ điều khiển (bộ điều khiển mặc định, bộ điều khiển POX
và bộ điều khiển Ryu). Kết quả cho thấy thông số môi trường phần cứng và số nút mạng
trong mơ hình ảnh hưởng đến thời gian thực thi của cả ba kiểu mơ hình. Tuy nhiên, cả hai
mơi trường mô phỏng điều đáp ứng được việc giả lập mạng SDN phục vụ nghiên cứu và
học tập ngay cả với số nút mạng lớn.
Trong các nghiên cứu tiếp theo, sẽ tiếp tục đánh giá hiệu suất của các mơ hình
mạng SDN như về băng thông, khả năng định tuyến và chuyển tiếp gói tin trên những
mơi trường giả lập và các bộ điều khiển khác nhau.

13


CHƢƠNG 2: MẠNG ĐỊNH NGHĨA BẰNG PHẦN MỀM
(SOFTWARE-DEFINED NETWORKING)
2.1.

Định nghĩa SDN
Hiện nay có rất nhiều định nghĩa về kiến trúc mạng SDN nhưng theo ONF ( Open

Networking Foundation ) - tổ chức phi lợi nhuận đang hỗ trợ cho việc phát triển, tiêu
chuẩn hóa và thương mại hóa SDN đã định nghĩa về SDN như sau: [8]
Mạng được định nghĩa bằng phần mềm (SDN) là một kiến trúc mạng với hướng
tiếp cận trong đó phần điều khiển mạng (Control Plane) và chức năng vận chuyển dữ liệu
(Data Plane) được tách rời nhau và phần điều khiển mạng có khả năng được lập trình trực
tiếp.
Theo định nghĩa này, SDN được xác định bởi hai đặc điểm: đó là tách rời phần
điều khiển mạng (Control Plane) với chức năng vận chuyển dữ liệu (Data Plane) và có

khả năng lập trình trên phần điều khiển. Tuy nhiên, cả hai đặc điểm trên trong SDN đều
khơng hồn tồn mới trong kiến trúc mạng, như chi tiết trong phần sau đây:
Thứ nhất: Một số nghiên cứu trước đây đã được thực hiện để thúc đẩy khả năng
lập trình mạng. Ví dụ ý tưởng về việc điều khiển một mạng theo cách thức thời gian thực
bằng phần mềm. SwitchWare là một giải pháp cho điều đó, cho phép các gói dữ liệu
truyền qua mạng để sửa đổi hoạt động của mạng một cách linh hoạt. Tương tự, các bộ
định tuyến phần mềm trên phần cứng PC thông thường, như Click, XORP, Quagga và
BIRD, cũng cố gắng tạo các bộ định tuyến phần mềm có thể mở rộng bằng cách lập trình
các thiết bị mạng.
Thứ hai: Ý tưởng tách rời phần điều khiển mạng (Control Plane) và chức năng
vận chuyển dữ liệu (Data Plane) khá phổ biến trong thập kỷ qua. Caesar và cộng sự, lần
đầu tiên trình bày một nền tảng điều khiển định tuyến ( Routing control platform - RCP)
vào năm 2004, trong đó giao thức tìm đường đi BGP (Border Gateway protocol) được
thay thế bằng điều khiển định tuyến tập trung để giảm độ phức tạp của việc tính tốn
đường đi. Trong cùng năm đó, IETF đã cho ra mắt một bộ khung (Framework) mà ở đó
phân tách phần điều khiển mạng và phần chuyển tiếp dữ liệu (ForCES). Vào năm 2006,
14


kiến trúc đường dẫn tính tốn yếu tố (PCE) đã được trình bày để tính tốn các đường dẫn
chuyển tiếp riêng biệt với chuyển tiếp gói thực tế trong mạng MPLS và GMPLS. Vào
năm 2007, Casado và cộng sự trình bày một thiết bị chuyển mạch (Ethernet Switch) được
bổ sung bộ điều khiển tập trung để quản lý việc tiếp nhận và định tuyến các luồng. Trong
sự phát triển của công nghệ mạng ngày này, nguyên tắc tách rời phần điều khiển mạng
(Control Plane) và chức năng vận chuyển dữ liệu (Data Plane) đã được phát triển và
nghiên cứu nhiều hơn. Các sản phẩm, thiết bị mạng thương mại cũng đã áp dụng ý tưởng
tách rời phần điều khiển mạng và chức năng vận chuyển dữ liệu. Ví dụ, trong bộ định
tuyến Cisco ASR 1000 và bộ chuyển mạch Nexus 7000, phần điều khiển mạng được tách
rời với chức năng vận chuyển dữ liệu và được mơ đun hóa.
Với mạng định nghĩa bằng phần mềm (SDN), tính độc đáo của nó nằm ở chỗ

cung cấp khả năng lập trình thơng qua việc tách rời phần điều khiển mạng và chức năng
vận chuyển dữ liệu. Cụ thể, SDN cung cấp các thiết bị mạng lập trình đơn giản thay vì
làm cho các thiết bị mạng phức tạp hơn như trong trường hợp mạng truyền thống. Hơn
nữa, SDN đề xuất tách phần điều khiển mạng và chức năng vận chuyển dữ liệu trong
thiết kế kiến trúc mạng. Với thiết kế này, việc điều khiển mạng có thể được thực hiện
riêng trên bộ điều khiển mà không ảnh hưởng đến luồng dữ liệu. Như vậy, bộ não của
mạng có thể được tách hẳn ra khỏi các thiết bị chuyển mạch và được đặt trên bộ điều
khiển. Đồng thời, các thiết bị chuyển mạch giờ đây có thể được điều khiển bên ngồi
bằng phần mềm mà khơng cần cấu hình trực tiếp. Việc tách rời phần điều khiển mạng và
chức năng vận chuyển dữ liệu khơng chỉ cung cấp một mơi trường lập trình đơn giản hơn
mà còn linh hoạt hơn cho phần mềm bên ngoài để xác định mạng.
2.2.

Kiến trúc của mạng SDN
Kiến trúc của SDN gồm 3 lớp riêng biệt (Hình 2.1): lớp ứng dụng (Application

layer), lớp điều khiển (Control layer), và lớp cơ sở hạ tầng (lớp chuyển tiếp)
(Infrastructure layer):

15


Hình 2.1: Kiến trúc của SDN [1]
Lớp ứng dụng (Application layer)
Là các ứng dụng kinh doanh được triển khai trên mạng, được kết nối tới lớp
điều khiển thông qua các API, cung cấp khả năng cho phép lớp ứng dụng lập trình lại
(cấu hình lại) mạng (điều chỉnh các tham số trễ, băng thông, định tuyến, …) thông qua
lớp điều khiển [1, 9].
Lớp ứng dụng cung cấp các giao diện có khả năng lập trình mở, cho phép các nhà
cung cấp dịch vụ điện toán đám mây cung cấp các dịch vụ đám mây cơng cộng tự động

và có khả năng mở cho các doanh nghiệp. Các tổ chức, doanh nghiệp có thể tạo ra một
“đám mây ảo” tách biệt thông qua hạ tầng cơ sở đám mây công cộng tự phục vụ, giúp họ
kiểm sốt hồn tồn cho các dịch vụ và các ứng dụng mới cho người sử dụng [1, 9].
2.2.1. Lớp điều khiển (Control layer)
Là nơi tập trung các bộ điều khiển thực hiện việc điều khiển cấu hình mạng theo
các yêu cầu từ lớp ứng dụng và khả năng của mạng. Các bộ điều khiển này có thể là các
phần mềm được lập trình. Ngồi ra để kết nối, điều khiển lớp cơ sở hạ tầng, lớp điều
16


khiển sử dụng các giao thức như OpenFlow, ONOS, NETCONF, SNMP hoặc thông qua
các cơ chế riêng biệt [1].
2.2.2. Lớp cơ sở hạ tầng (Infrastructure latyer)
Là các thiết bị mạng thực tế (vật lý hay ảo hóa) thực hiện việc chuyển tiếp gói tin
theo sự điều khiển của lớp điểu khiển. Một thiết bị mạng có thể hoạt động theo sự điều
khiển của nhiều bộ điều khiển khác nhau, điều này giúp tăng cường khả năng ảo hóa của
mạng [1].
Như vậy Kiến trúc mạng SDN được định nghĩa với 4 trụ cột (Hình 2.2)
Phần điều khiển (control plane) và phần chuyển tiếp dữ liệu (data plane) của một
thiết bị mạng khơng cịn đi cặp với nhau như thường lệ mà được tách rời. Chức năng điều
khiển được loại bỏ khỏi các thiết bị mạng, lúc này các thiết bị mạng sẽ tập trung vào chức
năng vận chuyển gói tin đơn giản.
Các thiết bị mạng đưa ra quyết định chuyển tiếp dựa trên luồng dữ liệu, thay vì
dựa trên địa chỉ MAC đích hoặc IP đích. Một luồng dữ liệu được định nghĩa một tập hợp
các giá trị cần so khớp và tập hợp các hành động sẽ áp đặt lên các gói tin có các trường
tương ứng trong header khớp các giá trị. Trong kiến trúc SDN sử dụng giao thức
OpenFlow, luồng dữ liệu là tập hợp các gói tin được chuyển từ thiết bị nguồn sang thiết
bị đích. Tất cả các gói tin của luồng dữ liệu đều được áp dụng các chính sách dịch vụ
giống hệt nhau tại các thiết bị chuyển tiếp. Sự trừu tượng hóa của luồng dữ liệu cho phép
thống nhất hành vi của các loại thiết bị mạng khác nhau, bao gồm: bộ định tuyến, bộ

chuyển mạch, tường lửa và các thiết bị trung gian. Lập trình các luồng dữ liệu cho phép
sự linh hoạt chưa từng có so với trước đây là chỉ giới hạn trong khả năng thực thi của
bảng luồng dữ liệu (flow table).
Điều khiển logic được chuyển sang một thực thể bên ngoài, được gọi là bộ điều
khiển SDN hoặc hệ điều hành mạng (Network Operating System – NOS). NOS là một
nền tảng phần mềm chạy trên các máy chủ và cung cấp các tài nguyên cũng như các mức
độ trừu tượng cần thiết để cho việc lập trình các thiết bị chuyển tiếp một cách thuận lợi

17


nhờ vào mơ hình quản lý tập trung logic và sơ đồ tổng quát của hệ thống mạng ảo. Vì
vậy, mục đích của nó tương tự một hệ điều hành truyền thống.
Mạng có thể lập trình thơng qua các phần mềm ứng dụng chạy trên NOS, tương
tác với các thiết bị chuyển tiếp dữ liệu ở phía dưới. Đây là một đặc tính cơ bản của SDN,
được xem là phần giá trị nhất.

Hình 2.2: Kiến trúc tổng quan mạng SDN [2]
2.3.

Những điểm khác nhau cơ bản giữa mạng truyển thống và mạng SDN
Phần điều khiển mạng và phần vận chuyển dữ liệu trên mạng truyền thống đều

được tích hợp trong thiết bị mạng, trong khi đó đối với mạng định nghĩa bằng phần mềm
(SDN) thì phần điều khiển mạng được tách riêng khỏi thiết bị mạng và được chuyển đến
một nơi khác được gọi là bộ điều khiển SDN.

18



Phần thu thập và xử lý các thông tin: Đối với mạng truyền thống, phần này được
thực hiện ở tất cả các phần tử trong mạng. Còn trong mạng định nghĩa bằng phần mềm
(SDN) thì phần này được tập trung xử lý ở bộ điều khiển SDN.
Đối với mạng truyền thống phần điều khiển và phần vận chuyển dữ liệu cùng
nằm trên một thiết bị mạng vật lý, vì vậy 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. Trong khi đó đối
với mạng SDN phần điều khiển được tách rời với phần vận chuyển dữ liệu, do vậy 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.
Phần điều khiển mạng đượ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ỉ nhận và vận chuyển dữ liệu theo một đườ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 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ẻ. Điều này giúp 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 và linh hoạt [1].
2.4.

Những ƣu điểm và những hạn chế của mạng SDN

2.4.1. Ƣu điểm
Mạng định nghĩa bằng phần mềm SDN, với sự tách rời vốn có của phần điều
khiển mạng và chức năng vận chuyển dữ liệu, cung cấp khả năng kiểm soát mạng tốt hơn
thơng qua lập trình. Mạng SDN khơng chỉ chuyển tiếp gói ở cấp chuyển đổi mà cịn liên
kết điều chỉnh ở mức liên kết dữ liệu, phá vỡ rào cản của lớp. Ngồi ra, với khả năng có
được trạng thái mạng tức thời, mạng SDN cho phép kiểm soát tập trung thời gian thực
của mạng dựa trên cả trạng thái mạng tức thời và chính sách do người dùng xác định.
Điều này tiếp tục mang đến lợi ích trong việc tối ưu hóa cấu hình mạng và cải thiện hiệu
suất mạng. Ưu điểm của SDN được chứng minh rõ hơn khi nó cung cấp một nền tảng
thuận tiện để thử nghiệm các kỹ thuật mới và các thiết kế mạng mới, do khả năng lập

trình mạng của nó và khả năng xác định các mạng ảo bị cô lập thông qua phần điều khiển
mạng. [8]
19


Nâng cao cấu hình: Trong quản lý mạng, cấu hình là một trong những chức năng
quan trọng nhất. Cụ thể, khi thiết bị mới được thêm vào mạng hiện có, cần phải có cấu
hình phù hợp để mạng được đồng bộ và đạt được hiệu suất tối đa. Tuy nhiên, do sự
không đồng nhất giữa các nhà sản xuất thiết bị mạng, cấu hình mạng hiện tại thường phải
xử lý thủ cơng, việc cấu hình thủ cơng này mất rất nhiều thời gian và dễ bị lỗi. Đồng thời,
cũng cần có đầu tư đáng kể để khắc phục sự cố mạng có lỗi cấu hình. Nhìn chung, người
ta chấp nhận rằng, với thiết kế mạng hiện tại, cấu hình tự động của mạng vẫn là một
thách thức lớn. Mạng SDN sẽ giúp khắc phục tình trạng này trong quản lý mạng. Trong
SDN, việc hợp nhất phần điều khiển mạng (Control Plane) trên tất cả các loại thiết bị
mạng, bao gồm các bộ chuyển mạch, bộ định tuyến, Bộ dịch địa chỉ mạng (NAT), tường
lửa và bộ cân bằng tải, cho phép tự động cấu hình các thiết bị mạng từ một nơi duy nhất
(gọi là bộ điều khiển SDN) và kiểm sốt bằng phần mềm. Như vậy, tồn bộ mạng có thể
được cấu hình theo chương trình và tối ưu hóa động dựa trên trạng thái mạng.
Cải thiện hiệu suất: Trong một mạng, một trong những mục tiêu chính là tối đa
hóa việc sử dụng cơ sở hạ tầng mạng được đầu tư. Tuy nhiên, do cùng tồn tại các công
nghệ và các bên liên quan khác nhau trong một mạng duy nhất, việc tối ưu hóa hiệu suất
của tồn bộ mạng là khó khăn. Các cách tiếp cận hiện tại thường tập trung vào việc tối ưu
hóa hiệu suất của một tập hợp các mạng con. Rõ ràng, phương pháp này, dựa trên thông
tin cục bộ mà không xem xét kiểm tra chéo, có thể dẫn đến hiệu suất dưới mức tối ưu. Sự
ra đời của mạng SDN mang đến cơ hội cải thiện hiệu suất trên toàn mạng. Cụ thể, SDN
cho phép điều khiển tập trung với chế độ xem mạng một cách tổng quát và điều khiển
phản hồi với thông tin được trao đổi giữa các lớp khác nhau trong kiến trúc mạng. Như
vậy, các vấn đề về tối ưu hóa hiệu năng đầy thách thức sẽ trở nên dễ quản lý hơn với các
thuật toán tập trung được thiết kế đúng. Theo các giải pháp mới cho các vấn đề trước đây,
như lập lịch lưu lượng dữ liệu, kiểm soát tắc nghẽn từ đầu đến cuối, định tuyến gói, cân

bằng tải, hoạt động hiệu quả năng lượng và Chất lượng dịch vụ (QoS ), có thể được phát
triển và dễ dàng triển khai để xác minh tính hiệu quả của chúng trong việc cải thiện hiệu
suất mạng.

20


Sự đổi mới: Ngày nay với sự phát triển liên tục của các ứng dụng mạng, mạng
trong tương lai nên khuyến khích đổi mới thay vì cố gắng dự đốn và đáp ứng các yêu
cầu của các ứng dụng trong tương lai. Thế nhưng, bất kỳ ý tưởng hoặc thiết kế mới nào
cũng phải đối mặt với những thách thức trong việc triển khai, thử nghiệm. Rào cản chính
phát sinh từ phần cứng độc quyền được sử dụng rộng rãi trong các thành phần mạng
thơng thường. Bên cạnh đó, ngay cả khi có thể thử nghiệm thì chúng cũng thường được
tiến hành trong một thử nghiệm đơn giản hóa riêng biệt. Những thử nghiệm này khơng đủ
khả năng để thích ứng với những ý tưởng mới hoặc thiết kế mạng sau này. SDN khuyến
khích đổi mới bằng cách cung cấp nền tảng mạng có thể lập trình để thực hiện, thử
nghiệm và triển khai các ý tưởng mới, ứng dụng mới và dịch vụ mới một cách thuận tiện
và linh hoạt. Khả năng cấu hình cao của SDN cung cấp sự phân tách rõ ràng giữa các
mạng ảo cho phép thử nghiệm trên môi trường thực. Việc triển khai các ý tưởng mới có
thể được thực hiện thơng qua q trình chuyển đổi liền mạch từ giai đoạn thử nghiệm
sang giai đoạn vận hành.
Với kiến trúc mạng SDN thì các bộ điều khiển có thể được lập trình trực tiếp.
Mạng có thể được điều chỉnh, thay đổi cấu hình một cách dễ dàng, linh hoạt thông qua bộ
điều khiển mà khơng cần phải cấu hình thay đổi trực tiếp trên các thiết bị mạng. Do phần
điều khiển mạng được tập trung trên bộ điều khiển nên mạng được quản lý một cách tập
trung. Việc cấu hình lớp cơ sở hạ tầng có thể được lập trình trên lớp ứng dụng và truyền
đạt xuống các lớp bên dưới. Do các thiết bị mạng có thể được ảo hóa nên SDN giúp giảm
thiểu các chi phí mua sắm phần cứng trong việc xây dựng, thi công các dịch vụ mạng.
Kiến trúc mạng SDN giúp người dùng dễ dàng thiết kế, triển khai, quản lý và mở rộng
mạng thông qua các phần tử mạng đã được gia tăng khả năng lập trình. Với sự phát triển

mạng mẽ của mạng SDN trong những năm gần đây đã mở ra cơ hội cho các nhà kinh
doanh cung cấp thiết bị mạng khi phần điều khiển được tách rời khỏi phần cứng [9].
2.4.2. Hạn chế
Hiện nay vấn đề bảo mật cũng là một thách thức không nhỏ đối với công nghệ
mạng SDN. SDN được quản lý tập trung bởi một bộ điều khiển (controller) duy nhất, do

21


đó nó là một mục tiêu được nhắm tới cho tin tặc (hacker). Một khi đã tấn công được vào
bộ điều khiển này thì kẻ tấn cơng có thể chiếm toàn bộ quyền điều khiển của mạng [10].
Việc chuyển đổi từ hệ thống mạng truyền thống sang hệ thống mạng mới này sẽ
phải là một quá trình lâu dài, giống như ảo hóa. Một vấn đề nữa là khả năng tương thích
làm sao để các giải pháp SDN được tích hợp vào mạng hiện tại. Hiện tại, các hạ tầng
mạng truyền thống đang sử dụng khác rất nhiều so với các kiến trúc mạng phi tập trung
với phần điều khiển mạng và chức năng vận chuyển dữ liệu cùng nằm trên một thiết bị
mạng. Vì vậy, một câu hỏi đặt ra rất lớn cho các nhà nghiên cứu là liệu cơng nghệ mạng
SDN có thể thực hiện được khơng khi mà thị trường trung tâm dữ liệu (Data Center) đang
còn trì trệ [9].
Với những hứa hẹn trong tương lai về cấu hình nâng cao, hiệu suất được cải thiện
và khuyến khích đổi mới, mạng SDN vẫn cịn ở giai đoạn sơ khai. Nhiều vấn đề cơ bản
vẫn chưa được giải quyết triệt để bởi những lý do sau đây: [8]
Thứ nhất: Về vấn đề 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 và bất kỳ thời điểm nào.
Thứ hai: Quá trình triển khai mạng SDN là một quá trình lâu dài theo từng bước
một, chúng ta không thể thay thế một lúc tồn bộ các thiết bị hiện có thành OpenFlow
switch được bởi vì điều đó sẽ rất tốn kém.
SDN cung cấp một nền tảng cho các kỹ thuật mạng thông minh, tuy nhiên việc
chuyển từ mạng truyền thống sang SDN có thể gây gián đoạn. Các mối quan tâm phổ
biến bao gồm khả năng tương tác SDN với các thiết bị mạng cũ, thiếu chuyên gia hỗ trợ

kỹ thuật. Việc triển khai SDN hiện tại thường được giới hạn ở các thử nghiệm nhỏ
thường phục vụ cho mục đích nghiên cứu nên vẫn chưa được triển khai trong thực tế.

22


2.5.

Phần điều khiển mạng và Chức năng vận chuyển dữ liệu

Hình 2.3: Control plane và Data plane [11]
2.5.1. Phần điều khiển mạng (Control Plane)
Phần điều khiển mạng (Control Plane) hoạt động như một lớp trung gian giữa các
ứng dụng và chức năng vận chuyển dữ liệu (Data Plane). Phần điều khiển mạng trong
SDN được gọi là bộ điều khiển, nó là bộ não trong kiến trúc mạng SDN; Bộ điều khiển
giao tiếp với các ứng dụng và với các thiết bị chuyển tiếp thơng qua các API. Do đó,
trong bộ điều khiển, điều quan trọng là thiết kế giao diện và bộ điều khiển một cách thân
thiện và hiệu quả [12].
Control Plane là thành phần điều khiển mạng với các giải thuật và giao thức dùng
để tính tốn và lưu trữ các thông tin định tuyến lên bảng FIB (Forwarding Information
Base) nhằm xác định đường đi cho mỗi gói tin trong việc vận chuyển dữ liệu. Đối với bộ
23


×