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

Nghiên cứu công nghệ ảo hóa mạng với openflow

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 (3.22 MB, 72 trang )

BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
---------------------------------------

NGUYỄN NGỌC BÌNH

NGHIÊN CỨU CÔNG NGHỆ ẢO HÓA MẠNG
VỚI OPENFLOW

Chuyên ngành : Kỹ thuật máy tính và truyền thông

LUẬN VĂN THẠC SĨ KỸ THUẬT
KỸ THUẬT MÁY TÍNH VÀ TRUYỀN THÔNG

NGƯỜI HƯỚNG DẪN KHOA HỌC
PGS.TS. NGÔ HỒNG SƠN

HÀ NỘI – 2014


Luận văn thạc sỹ kỹ thuật máy tính và truyền thông

LỜI CAM ĐOAN
Tôi xin cam đoan đề tài nghiên cứu của tôi hoàn toàn do tôi tự làm dưới sự
hướng dẫn của Thầy giáo PGS.TS Ngô Hồng Sơn. Những kết quả nghiên cứu, thử
nghiệm được thực hiện trên các phần mềm mô phỏng. Các số liệu, kết quả trình bày
trong luận văn là hoàn toàn trung thực và chưa từng được công bố trong bất cứ công
trình nào.
Các tài liệu tham khảo sử dụng trong luận văn đều được dẫn nguồn.
Nếu xảy ra bất cứ điều không đúng như những lời cam đoan trên, tôi xin chịu
hoàn toàn trách nhiệm trước Viện và Nhà trường.



Hà Nội, ngày

tháng 3 năm 2014

Tác giả

Nguyễn Ngọc Bình

1 / 71


Luận văn thạc sỹ kỹ thuật máy tính và truyền thông

LỜI CẢM ƠN
Để hoàn thành khóa luận này, tôi xin tỏ lòng biết ơn sâu sắc đến PGS.TS.
Ngô Hồng Sơn đã tận tình hướng dẫn trong suốt quá trình viết luận văn tốt nghiệp.
Tôi cũng xin chân thành cảm ơn Thầy, Cô Viện Công nghệ Thông tin &
Truyền thông, Trường Đại học Bách Khoa Hà Nội, đặc biệt là các thầy cô trong bộ
môn Truyền thông & Mạng máy tính đã tận tình truyền đạt kiến thức trong thời gian
học tập và nghiên cứu tại đây. Với vốn kiến thức được tiếp thu trong quá trình học
tập và nghiên cứu không chỉ là nền tảng cho quá trình nghiên cứu khóa luận mà
còn là hành trang quí báu để tôi bước vào đời một cách vững chắc và tự tin.
Tôi cũng thầm biết ơn sự ủng hộ của đồng nghiệp, gia đình và bạn bè –
những người thân yêu luôn là chỗ dựa vững chắc cho tôi.
Cuối cùng, tôi xin kính chúc Thầy cô, Đồng nghiệp, Gia đình dồi dào sức
khỏe và thành công trong sự nghiệp cao quý.
Xin trân trọng cảm ơn!
Học viên


Nguyễn Ngọc Bình

2 / 71


Luận văn thạc sỹ kỹ thuật máy tính và truyền thông

MỤC LỤC
LỜI CAM ĐOAN ............................................................................................................. 1
LỜI CẢM ƠN ................................................................................................................... 2
DANH SÁCH THUẬT NGỮ VÀ VIẾT TẮT ................................................................... 5
DANH MỤC HÌNH VẼ .................................................................................................... 6
ĐẶT VẤN ĐỀ .................................................................................................................. 8
CHƯƠNG 1. CƠ SỞ LÝ THUYẾT VỀ CÔNG NGHỆ ẢO HÓA MẠNG ...................... 10
1.1 Openflow - Ảo hóa hạ tầng mạng ............................................................................. 10
1.2 Sự cần thiết của OpenFlow ....................................................................................... 11
1.3 Kiến trúc và ứng dụng của OpenFlow ....................................................................... 11
1.4 Giải pháp sử dụng mạng OpenFlow ......................................................................... 19
1.4.1 Sự cần thiết cho một kiến trúc mạng mới .......................................................... 19
1.4.2 Mục tiêu của mạng OpenFlow.......................................................................... 20
1.4.3 Giao thức OpenFlow........................................................................................ 22
1.4.4 Lợi ích của mạng SDN dựa trên giao thức OpenFlow ...................................... 24
1.5 Giới thiệu về NetFPGA ........................................................................................... 26
CHƯƠNG 2. CÁC GIẢI PHÁP ỨNG DỤNG ẢO HÓA MẠNG DỰA TRÊN
OPENFLOW ................................................................................................................... 32
2.1 Giải pháp giới hạn giám sát QoS băng thông mạng .................................................. 32
2.2 Giải pháp sử dụng Open vSwitch ............................................................................. 35
2.3 Giải pháp điều khiển luồng dữ liệu lớn .................................................................... 39
2.4 Giải pháp sử dụng OpenFlow trên NetFPGA ............................................................ 39
2.5 Kết luận chương ........................................................................................................ 41

CHƯƠNG 3. CÀI ĐẶT THỬ NGHIỆM VÀ KẾT QUẢ THU ĐƯỢC ............................ 42
3.1 Triển khai sFlow để giám sát Open vSwitch ............................................................. 42
3.2 Triển khai đo kiểm giới hạn lưu lượng băng thông mạng .......................................... 44
3.3 Cài đặt thử nghiệm điều khiển luồng dữ liệu lớn ....................................................... 53
3.4 Triển khai cài đặt của một dự án NetFPGA ............................................................... 58
3.5 Kết luận chương ....................................................................................................... 64
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN CỦA ĐỀ TÀI ................................................. 64
TÀI LIỆU THAM KHẢO ............................................................................................... 65

3 / 71


Luận văn thạc sỹ kỹ thuật máy tính và truyền thông
PHỤ LỤC ....................................................................................................................... 67
Phụ lục 1. Code của node.js ............................................................................................. 67
Phụ lục 2. File thiết kế của NetFPGA .............................................................................. 71

4 / 71


Luận văn thạc sỹ kỹ thuật máy tính và truyền thông

DANH SÁCH THUẬT NGỮ VÀ VIẾT TẮT

Từ viết tắt

Thuật ngữ tiếng anh

Thuật ngữ tiếng việt


SNMP

Simple Network Management
Protocol

SDN

Software-Defined Network

Mạng điều khiển bằng phần mềm

API

Application Programming Interface

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

DRAM

Dynamic Random Access Memory

Bộ nhớ truy cập ngẫu nhiên động

FPGA

Field Programmable Gate Array

Mảng cổng khả trình

IP


Internet Protocol

MAC

Media Access Control

Điều khiển truy nhập thiết bị

OF SW

OpenFlow Switch

Bộ chuyển mạch OpenFlow

OSC

OpenFlow Switch Controller

Mạch điều khiển các bộ chuyển
mạch OpenFlow

DDOS

Distributed Denial of Service

Tấn công từ chối dịch vụ

PCI


Peripheral Component Inter-connect

Kết nối thành phần ngoại vi

PSTN

Public Switched Telephone Network

Mạng điện thoại chuyển mạch
công cộng
Bộ nhớ truy cập ngẫu nhiên tĩnh

SRAM

Static Random Access Memory

ONF

Open Networking Foundation

TDM

Time Division Multiplexing

Ghép kênh theo thời gian

ATM

Asynchronous Transfer Mode


Kiểu truyền không đồng bộ

5 / 71


Luận văn thạc sỹ kỹ thuật máy tính và truyền thông

DANH MỤC HÌNH VẼ
Hình 1 - Kiến trúc mạng với switch và router sử dụng OpenFlow ................................... 10
Hình 2 - OpenFlow agent ................................................................................................ 12
Hình 3 - Môi trường mạng Campus ................................................................................. 13
Hình 4 – Ghi dữ liệu vào Flow Table ............................................................................... 14
Hình 5 - OpenFlow Controller ......................................................................................... 15
Hình 6 - Ảo hóa mạng với OpenFlow .............................................................................. 16
Hình 7 - Cấu trúc của một OpenFlow Switch ................................................................... 17
Hình 8 - Cấu tạo của một flow-entry................................................................................ 18
Hình 9 - Các bước khi một flow mới tới bộ chuyển mạch OpenFlow ............................... 19
Hình 10 - Kiến trúc mạng điều khiển bằng phần mềm ..................................................... 21
Hình 11 - Ví dụ về tập lệnh của OpenFlow ...................................................................... 23
Hình 12 - Nền tảng NetFPGA.......................................................................................... 27
Hình 13 - Sơ đồ khối chi tiết các thành phần trong kit NetFPGA ..................................... 28
Hình 14 - Cấu trúc đơn giản một dự án với NetFPGA...................................................... 29
Hình 15 – modules NetFPGA .......................................................................................... 29
Hình 16 - Sơ đồ tổng quát của hệ thống NetFPGA ........................................................... 30
Hình 17 - Triển khai giám sát lưu lượng .......................................................................... 34
Hình 18 - Mô hình chung về Open vSwitch ..................................................................... 35
Hình 19 - Triển khai Open vSwitch ................................................................................. 36
Hình 20 - Open vSwitch với các giao diện ảo và giao diện vật lý ..................................... 37
Hình 21 - Giám sát lưu lượng mạng qua các interface ...................................................... 38
Hình 22 - Giám sát nhiều interface .................................................................................. 39

Hình 23 - Mô hình giám sát sFlow tập trung .................................................................... 42
Hình 24 - Kết quả hiển thị trên sFlow-Trend.................................................................... 43
Hình 25 - Mô hình điều khiển băng thông của card mạng ................................................ 44
Hình 26 - Kết nối vào máy chủ XenCitrix bằng phần mềm XenCenter ............................ 45
Hình 27 - Kết nối SSH..................................................................................................... 47
Hình 28 - Hiển thị bridge cua Open vSwitch.................................................................... 47
Hình 29 - Cấu hình hsflow............................................................................................... 47
Hình 30 - sFlow-Trend status .......................................................................................... 48

6 / 71


Luận văn thạc sỹ kỹ thuật máy tính và truyền thông
Hình 31 - Giám sát các card mạng ................................................................................... 48
Hình 32 - Counter............................................................................................................ 48
Hình 33 - Top N .............................................................................................................. 49
Hình 34 - Circles ............................................................................................................. 49
Hình 35 - Host ................................................................................................................. 49
Hình 36 - Theo dõi thông tin Network packets/host ......................................................... 50
Hình 37 - Theo dõi thông tin Network packets/host ......................................................... 50
Hình 38 - Show virtual interface ...................................................................................... 51
Hình 39 - Xác định vif38.0 là card mạng ảo của Oracle ................................................... 51
Hình 40 - Mô hình điều khiển luồng dữ liệu lớn .............................................................. 53
Hình 41 - Host bị flood ping ............................................................................................ 57
Hình 42 - Biểu đồ thể hiện các gói tin bị drop khi bật node.js .......................................... 58
Hình 43 - Mô hình phần chia NetFPGA thành 4 host ....................................................... 61

7 / 71



Luận văn thạc sỹ kỹ thuật máy tính và truyền thông

ĐẶT VẤN ĐỀ
Sự bùng nổ của các thiết bị và nội dung di động, ảo hóa máy chủ, và sự ra
đời của dịch vụ điện toán đám mây là một trong những xu hướng thúc đẩy các
ngành công nghiệp mạng xem xét lại kiến trúc mạng truyền thống. Đáp ứng yêu cầu
thị trường hiện nay là hầu như không thể với kiến trúc mạng truyền thống. Đối mặt
với ngân sách không đổi hoặc giảm, các doanh nghiệp ngành Công nghệ Thông tin
(CNTT) đang cố gắng để tận dụng tối đa khả năng mà mạng của họ có thể đáp ứng
bằng cách sử dụng các công cụ quản lý ở mức thiết bị và các quy trình thủ công.
Các hãng cung cấp dịch vụ cũng phải đối mặt với những thách thức tương tự như
yêu cầu về tính di động cũng như sự bùng nổ băng thông, lợi nhuận đang bị xói
mòn bởi chi phí vốn cho thiết bị leo thang và doanh thu không tăng hoặc suy giảm.
Chính vì lý do trên, các nhà nghiên cứu đã đưa ra giải pháp: Mạng điều khiển
bằng phần mềm (Software-Defined Networking)
Mạng điều khiển bằng phần mềm (SDN) là một kiến trúc mạng mới phát
triển trong thời gian gần đây, trong đó việc điều khiển mạng được tách rời khỏi việc
chuyển tiếp và có thể được lập trình. Khác với trước đây khi còn bị ràng buộc chặt
chẽ trong từng thiết bị mạng đơn lẻ, điều khiển mạng sử dụng các thiết bị tính toán
có thể truy cập (accessible computing device) cho phép cơ sở hạ tầng cơ bản được
trừu tượng hóa cho các ứng dụng và dịch vụ mạng, hay là các ứng dụng và dịch vụ
sẽ coi mạng như một thực thể hợp thống nhất.
Đối với doanh nghiệp và nhà cung cấp, công nghệ của mạng SDN dựa trên
OpenFlow cho phép các kĩ sư công nghệ thông tin giải quyết các vấn đề liên quan
tới băng thông cao, tính chất thay đổi của các ứng dụng ngày nay, chuyển đổi mạng
cho phù hợp với các yêu cầu làm việc luôn thay đổi, và làm giảm đáng kể độ phức
tạp của hoạt động điều hành và quản lý mạng. Từ đó tôi quyết định chọn đề tài: “
Nghiên cứu công nghệ ảo hóa mạng với OpenFlow ” trong phạm vi nghiên cứu
kiểm soát QoS băng thông với mục đích: tích hợp được một giải pháp ảo hóa mạng
Open Flow (Open vSwitch) trên nền tảng ảo hóa XenCitrix.

Với những yêu cầu trên, tôi sẽ thực hiện những nhiệm vụ sau trong luận văn:
8 / 71


Luận văn thạc sỹ kỹ thuật máy tính và truyền thông
 Tìm hiểu lý thuyết ảo hóa mạng, nguyên lý, mô hình, các giải pháp ảo hóa
mạng, ảo hóa server hiện có.
 Trên cơ sở thực tế đề xuất mô hình giám sát, điều khiển giới hạn QoS
băng thông trên các thiết bị, phần mềm OpenFlow, Open vSwitch.
 Triển khai thử nghiệm.
 Đánh giá kết quả đạt được.
Luận văn được chia thành 3 chương với các nội dung chính sau:
 Chương 1: Cơ sở lý thuyết về ảo hóa mạng, trình bày về việc cần thiết phải
có một thế hệ mạng mới, các khái niệm liên quan đến OpenFlow để ảo hóa
mạng.
 Chương 2: Các mô hình và giải pháp ảo hóa mạng, trình bày về các mô hình
giám sát mạng thông dụng hiện nay, để từ đó thực hiện quá trình điều khiển,
quản lý chất lượng dịch vụ (QoS) băng thông một cách linh động với
OpenFlow, Open vSwitch.
 Chương 3: Cài đặt triển khai thử nghiệm mô hình ảo hóa mạng với công cụ
giám sát luồng dữ liệu sFlow, triển khai đánh giá Open vSwitch, OpenFlow
áp dụng trên các card mạng ảo với nền tảng ảo hóa XenCitrix.
Nhờ những cố gắng, tôi đã có được một số kết quả nhất định. Mặc dù vậy, do
thời gian có hạn nên một số ý tưởng vẫn chưa được thực hiện và kết quả nghiên cứu
không tránh khỏi sai sót. Vì vậy, tôi rất mong nhận được ý kiến đóng góp của các
Thầy Cô giáo và bạn bè.
Tôi xin chân thành cám ơn PGS.TS Ngô Hồng Sơn đã hướng dẫn, giúp đỡ
tôi trong quá trình nghiên cứu thực hiện luận văn này.

9 / 71



Luận văn thạc sỹ kỹ thuật máy tính và truyền thông

CHƯƠNG 1. CƠ SỞ LÝ THUYẾT VỀ CÔNG NGHỆ ẢO HÓA MẠNG
Trong chương này tác giả sẽ giới thiệu về mạng điều khiển bằng phần mềm
dựa trên giao thức OpenFlow. Với các khái niệm, định nghĩa và mô hình chung nhất
về mạng này cùng giao thức OpenFlow sẽ giúp chúng ta có một cái nhìn tổng quan
về mục tiêu mà luận văn hướng tới; cùng với đó là một xu hướng phát triển của
mạng trong tương lai.
1.1 Openflow - Ảo hóa hạ tầng mạng
Trong khoảng thời gian gần đây với việc ra đời hàng loạt các chuẩn công
nghệ mới nhằm cải tiến khắc phục các nhược điểm của các chuẩn Network hiện tại
trong các môi trường ứng dụng nhất định như TRILL (DC/Campus), PBB
(Provider), DCE/DCB/… nhưng chưa có chuẩn nào thực sự có tính ảnh hưởng đến
toàn bộ kiến trúc của hạ tầng Network đặt biệt là việc mang lại khả năng ảo hóa
toàn bộ hệ thống Network toàn diện như OpenFlow Hình 1 [11].

Hình 1 - Kiến trúc mạng với switch và router sử dụng OpenFlow

Các nhà nghiên cứu cũng nhưng các hãng sản xuất thiết bị đã và đang khẳng
định cam kết định hướng đầu tư lâu dài vào mảng sản phẩm và giải pháp
10 / 71


Luận văn thạc sỹ kỹ thuật máy tính và truyền thông
Networking (bên cạnh các mảng sản phẩm khác như Server/Storage/PCLaptop/Printer) với việc tham gia tích cực vào việc nghiên cứu hình thành nên các
chuẩn mở mang tính cách mạng mà một trong số đó là OpenFlow. Vậy OpenFlow
bao hàm những gì trong đó và khả năng ứng dụng của chuẩn này tới đâu mà được
kỳ vọng là một trong những chuẩn sẽ thay đổi kiến trúc hạ tầng Network trong

tương lai gần, chúng ta hãy cùng tìm hiểu một số đặc điểm của chuẩn này để thấy rõ
hơn về tiềm năng của nó một phần để lý giải tại sao các nhà nghiên cứu lại tích cực
tham gia vào việc xúc tiến các nghiêng cứu liên quan đến chuẩn này như vậy.

1.2 Sự cần thiết của OpenFlow
Các chuẩn Network đã và đang trải qua một giai đoạn phát triển vượt bậc
trong suốt 2 thập kỷ gần đây với việc vô số các chuẩn mới được đưa ra nhằm khắc
phục những khuyết điểm của các chuẩn cũ nhưng những chuẩn hiện tại vẫn còn
những khuyết điểm trong việc khó khăn trong việc mở rộng thay đổi chức năng của
hạ tầng network, đòi hỏi mất nhiều công sức quản trị trong việc định hướng các
luồng dữ liệu, phức tạp trong việc tích hợp các giải pháp bảo mật cho các luồng dữ
liệu và càng phức tạp hơn khi cần chuyển đổi công năng trong hệ thống Network để
phục vụ cho các mục đích khác nhau trong hệ thống, các quyết định xử lý như thế
nào đối với từng luồng traffic hiện tại đang được thực hiện trên các thiết bị riêng
biệt như switch/router… Đó là một vài vấn đề tồn tại trong các hệ thống Network
hiện tại thúc đẩy các nhà nghiêng cứu tích cực đưa ra các chuẩn mới mà một trong
số đó là OpenFlow được sự hậu thuẩn tích cực từ các công ty hàng đầu trong lĩnh
vực cung cấp sản phẩm và giải pháp Network hiện nay trong liên minh chung Open
Networking Foundation (ONF).

1.3 Kiến trúc và ứng dụng của OpenFlow
Khái niệm của các nhà phát triển khi đưa ra OpenFlow là nó mô phỏng một
phần của các giải pháp ảo hóa đang phát triển như vũ bảo hiện nay trong các hệ
thống System như VMware, Citrix… hay mở rộng kiến trúc Stacking trên các thiết
bị Network hiện tại như HP IRF Stacking, Cisco VSS ở một quy mô rộng hơn

11 / 71


Luận văn thạc sỹ kỹ thuật máy tính và truyền thông

không chỉ trong một khối thiết bị được stacking hiện tại mà toàn bộ hệ thống… Mục
đích chính là tạo ra một hệ thống điều khiển tập trung tách rời giữa Data Plane và
Control Plane trong các thiết bị Network nhưng khác với các giải pháp Stacking
hiện tại trên các thiết bị Network toàn bộ Control Plane trong OpenFlow sẽ được
tập trung về OpenFlow Controller, trên mỗi thiết bị tương thích với OpenFlow sẽ
bao gồm thêm một thành phần OpenFlow Agent như mô hình bên dưới :

ĐIỀU KHIỂN LUỒNG
(OpenFlow Controller)

Open Flow

Control Path

Data path (Phần cứng)
Hình 2 - OpenFlow agent
Như vậy các quyết định về các luồng traffic sẽ được quyết định tập trung tại
OpenFlow Controller (thông thường sẽ có 2 Controller trong một phân vùng
Network để tăng tính dự phòng) giúp đơn giản trong việc quản trị và cấu hình trong
toàn hệ thống, để thấy rõ hơn chúng ta hãy tham khảo vào ví dụ đơn giản dưới đây
để hiểu rõ hơn:
- Giả sử có một luồng traffic xuất phát từ 1 user trong hệ thống là Sue Smith
muốn truy cập vào dịch vụ Web trên Server nằm ở Server Farm:

12 / 71


Luận văn thạc sỹ kỹ thuật máy tính và truyền thông
PHẦN MỀM QUẢN LÝ OPENFLOW


OpenFlow Controller

NETWORK
Trung tâm dữ liệu
(IDC)

Quản trị
viên

Hình 3 - Môi trường mạng Campus
Traffic xuất phát từ User này khi đến Access Switch thì Access Switch sẽ
chặn lại và gởi một request tới OpenFlow Controller để hỏi xem chúng ta nên làm
gì với luồng traffic này, OpenFlow Controller sẽ đối chiếu với những policy đã
được cấu hình sẳn và trả lời lại cho thiết bị Access Switch rằng user này sẽ phải
chứng thực với AD, phải thỏa các policy của Firewall/IPS… Nếu thỏa được luồng
traffic xuất phát từ User này phải đi đến Web Server thông qua uplink đến
CoreSwitch 01 với băng thông được đảm bảo là bao nhiêu… và sau cùng sẽ được
ghi vào log tập trung để tiến hành theo dõi và phân tích. Để tăng tốc trong hệ thống
và giảm độ delay các policy này sẽ được lưu lại trên các thiết bị trong bảng
FlowTable để đối với các lần sau sẽ không phải hỏi lại mà các thiết bị lớp Access sẽ
ra quyết định ngay dựa trên các bảng này.

13 / 71


Luận văn thạc sỹ kỹ thuật máy tính và truyền thông

Hình 4 – Ghi dữ liệu vào Flow Table
Như ta thấy với kiến trúc như trên vừa đảm bảo đồng nhất toàn bộ việc quản
trị trong hệ thống đồng thời đảm bảo các chính sách về bảo mật cũng như đảm bảo

chất lượng dịch vụ được làm tốt hơn, đơn giản hơn và chi tiết hơn đến tận mức
user/service, đây thực sự là điều các nhà quản trị mạng luôn mong muốn trong hệ
thống của mình. Ở giao diện quản trị chúng ta có thể monitor và thiết lập các policy
theo User hoặc theo Application mang lại khả năng tùy biến quản trị cực kỳ linh
hoạt cho hệ thống.
Với cơ chế hoạt động mô tả ở trên chúng ta đã thấy sự linh hoạt khi tích hợp
các thành phần vào hệ thống OpenFlow bất kể thiết bị đó là Switch hay Router, việc
thay đổi hệ thống mạng theo hướng ảo hóa hệ thống mạng để đạt được hệ thống
IaaS trở nên đơn giản hơn rất nhiều với việc luân chuyển các thiết bị hỗ trợ
OpenFlow từ hệ thống mạng được quản lý bởi OpenFlow Controller này sang hệ
thống mạng được quản lý bởi OpenFlow khác nhằm mục đích tái cấu trúc nhanh hệ
thống mạng cho các nhu cầu thay đổi về ứng dụng một cách cực kỳ linh hoạt. Ngoài
ra một thiết bị tương thích với OpenFlow có thể được quản lý bởi nhiều Controller
cùng lúc thông qua FlowVisor giúp thiết bị đó có khả năng đảm nhiệm nhiều chức
năng trong hệ thống đồng thời vd: vừa đóng vai trò AccessSwitch được quản lý bởi
14 / 71


Luận văn thạc sỹ kỹ thuật máy tính và truyền thông
Controller A (nằm trong phân vùng mạng A), vừa đóng vai trò Server Switch được
quản lý bởi Controller B (nằm trong phân vùng mạng B)…
OpenFlow Controller

Luồng điều khiển
Luồng dữ liệu

OpenFlow
Protocol

OpenFlow Switch SW Architecture


OF Protocol
Stack

Đường dữ liệu của OpenFlow
Table manager
SW Flow Table
SW Packet Processing

OF HW Abstraction API

Packet *
Metadata

Flow Updates
* Scats

Port
Control

Cổng quản trị

HW Table manager

Vendor HW API
Vendor Hardware Driver
Các cổng Switch

HW Packet Processing Tables


Hình 5 - OpenFlow Controller
Từ khả năng đó cho phép chúng ta ảo hóa hệ thống Network hiện tại thành
các phân vùng mạng khác nhau đảm nhận các chức năng khác nhau, dưới đây là mô
phỏng tính năng này dựa trên mô hình vật lý thật đang được triển khai thử nghiệm
trong cộng đồng phát triển trong các trường đại học và tổ chức nghiêng cứu trên
khắp nước Mỹ, khoảng cách giữa các thiết bị này khá xa do nằm rải rác liên kết toàn
hệ thống thử nghiệm này lại với nhau. Từ một mô hình mạng vật lý duy nhất chúng
ta có thể chia cắt thành các phân vùng mạng ảo khác nhau phù hợp với các mục
đích khác nhau:

15 / 71


Luận văn thạc sỹ kỹ thuật máy tính và truyền thông
Variable
Bandwidth
Packet Link

Dynamic
Optical
Bypass

Unified
Recovery

Differential
Treatment

Traffic
Engineering

Ứng dụng
Mạng

HỆ THỐNG ĐIỀU HÀNH MẠNG

VIRTUALIZATION (SLICING) PLANE

Giao thức trong mạng OpenFlow

Packet
Switch

Packet & Circuit
Switch

Circuit
Switch

Packet & Circuit
Switch

Unifying
Abstraction

Packet
Switch

UnderLying Data
Plane Switching


Hình 6 - Ảo hóa mạng với OpenFlow
Đề làm rõ hơn về công nghệ OpenFlow ta cùng đi tìm hiểu các tính năng
mới của công nghệ này
Các khái niệm, định nghĩa và mô hình chung nhất về mạng này cùng giao
thức OpenFlow sẽ giúp người đọc có một cái nhìn tổng quan về mục tiêu mà đồ án
hướng tới; cùng với đó là một xu hướng phát triển của mạng trong tương lai.
Bộ chuyển mạch OpenFlow bao gồm ba thành phần chính: Flow-table,
Secure Channel, giao thức OpenFlow, như hình 7 dưới đây:

16 / 71


Luận văn thạc sỹ kỹ thuật máy tính và truyền thông

Hình 7 - Cấu trúc của một OpenFlow Switch

Chức năng cụ thể của từng thành phần trong chuyển mạch OpenFlow:
 Flow-table: Bảng này bao gồm các flow-entry và mỗi flow-entry có một
Action đi kèm dùng để xử lý các flow. Phần này được xây dựng trên nền
tảng NetFPGA.
 Secure Channel: Là phần mềm dùng để kết nối bộ chuyển mạch với bộ điều
khiển. Nó cho phép lệnh và gói tin được truyền qua lại giữa bộ điều khiển và
bộ chuyển mạch sử dụng giao thức OpenFlow. Phần này được xây dựng trên
hệ điều hành Linux.
 Giao thức OpenFlow: Giao thức cho phép chỉnh sửa flow-table từ một bộ
điều khiển từ xa, và các nhà nghiên cứu tránh được việc phải lập trình cho bộ
chuyển mạch.
Để hiểu thêm về kiến trúc bộ chuyển mạch, chúng ta sẽ đi sâu vào các khái
niệm như flow, flow-entry.


17 / 71


Luận văn thạc sỹ kỹ thuật máy tính và truyền thông
Một flow được định nghĩa là các gói tin trùng (matching) với một header cụ
thể bên trong flow-table. Việc so sánh giữa header của gói tin và header của một
flow-entry để quyết định gói tin thuộc flow nào và Action đi kèm với nó có thể xảy
ra hai trường hợp: một là so sánh trùng một cách chính xác tất cả các trường (match
exactly); hai là chỉ trùng một trường nào đó (wildcard match).

Hình 8 - Cấu tạo của một flow-entry

Hình 8 [9] miêu tả cấu tạo của một flow-entry. Mỗi một flow-entry sẽ có một
Action đi kèm với nó. Đối với chuyển mạch OpenFlow chuyên dụng, có 3 loại cơ
bản sau:
 Forward những gói tin của luồng này tới một port cho trước. Action này cho
phép những gói tin được định tuyến trong mạng.
 Đóng gói và forward những gói tin của luồng này tới một bộ điều khiển. Gói
tin được chuyển tới Secure Channel nơi mà nó được đóng gói và gửi tới bộ
điều khiển. Action này được sử dụng đối với gói tin đầu tiên của một luồng
mới và bộ điều khiển sẽ quyết định có đưa nó vào trong flow-table hay
không. Hoặc Action này được sử dụng trong các thí nghiệm nhằm mục đích
forward tất cả các gói tin tới bộ điều khiển để xử lý.
 Hủy bỏ (Drop) các gói tin của luồng này. Action này được sử dụng cho mục
đích an ninh mạng nhằm chống lại tình trạng tấn công DoS (Denial of
Service) hoặc làm giảm các lưu lượng giả được phát tán trên mạng.

18 / 71



Luận văn thạc sỹ kỹ thuật máy tính và truyền thông
Thành phần cuối cùng của một flow-entry là Counters. Counters dùng để
theo dõi số lượng gói tin hoặc byte và thời gian kể từ khi gói cuối cùng trùng với
một flow-entry trong flow-table (dùng để xóa đi những luồng không còn hoạt
động).
Máy tính điều khiển
Openflow

Máy tính điều khiển
Openflow

Flow Table
Flow Table
Flow

2

Flow

A

A

3
4

1

Open vSwitch


7

5

6

Open vSwitch

8

Hình 9 - Các bước khi một flow mới tới bộ chuyển mạch OpenFlow
Hình 9 là các bước để định tuyến một flow từ một máy tính nguồn sang một
máy tính đích thông qua hai bộ chuyển mạch OpenFlow. Trong sơ đồ bên trái, flowtable của hai bộ chuyển mạch đều không chứa gì. Khi một gói tin đến trong bước 1,
nó được forward tới bộ điều khiển trong bước 2. Bộ điều khiển kiểm tra gói tin đến
và thêm một flow-entry (flow A) vào trong flow-table của các bộ chuyển mạch
trong bước 3. Sau đó gói tin được gửi tới máy tính đích trong bước 4 và 5. Trong
các bước 6, 7, 8 bất kì gói tin mới nào thuộc về cùng một flow (flow A của gói tin
thứ 1) sẽ được định tuyến trực tiếp tới máy tính đích.
1.4 Giải pháp sử dụng mạng OpenFlow
1.4.1 Sự cần thiết cho một kiến trúc mạng mới
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ế,
19 / 71


Luận văn thạc sỹ kỹ thuật máy tính và truyền thông
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,
năng động và nhu cầu lưu trữ dữ liệu ngày nay 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 trong số

những 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 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.4.2 Mục tiêu của mạng OpenFlow
Kiến trúc mạng hiện tại không được thiết kế để đáp ứng các yêu cầu ngày
nay của người sử dụng, doanh nghiệp, và nhà cung cấp dịch vụ, những hạn chế của
mạng hiện tại bao gồm:
 Độ phức tạp cao gây tắc nghẽn
 Chính sách không đồng nhất
 Khả năng quy mô kém
 Phụ thuộc vào nhà cung cấp thiết bị
Chính vì lý do trên, các nhà nghiên cứu đã đưa ra giải pháp: Mạng điều khiển
bằng phần mềm (Software-Defined Networking)
Mạng điều khiển bằng phần mềm (SDN) là một kiến trúc mạng mới phát
triển trong thời gian gần đây, trong đó việc điều khiển mạng được tách rời khỏi việc
chuyển tiếp và có thể được lập trình. Khác với trước đây khi còn bị ràng buộc chặt
chẽ trong từng thiết bị mạng đơn lẻ, điều khiển mạng sử dụng các thiết bị tính toán
có thể truy cập (accessible computing device) cho phép cơ sở hạ tầng cơ bản được
trừu tượng hóa cho các ứng dụng và dịch vụ mạng, hay là các ứng dụng và dịch vụ
sẽ coi mạng như một thực thể hợp thống nhất.
Hình 7 [12] mô tả kiến trúc luận lý của SDN. Thông tin về mạng được tập
trung trong phần mềm điều khiển SDN có chức năng kiểm soát toàn bộ mạng. Kết
20 / 71


Luận văn thạc sỹ kỹ thuật máy tính và truyền thông
quả là, hình ảnh của mạng đối với các ứng dụng và các công cụ quản lý giống như

là một chuyển mạch luận lý đơn nhất. Với SDN, doanh nghiệp và ngưởi sử dụng có
thể điều hành toàn bộ mạng từ một điểm luận lý duy nhất, không phụ thuộc vào nhà
cung cấp thiết bị, điều này giúp đơn giản hóa thiết kế và hoạt động của mạng rất
nhiều. SDN cũng góp phần tối ưu hóa các thiết bị mạng, bởi vì các thiết bị mạng
không còn cần phải hiểu và xử lý hàng ngàn các chuẩn giao thức khác nhau mà chỉ
còn xử lý các lệnh từ bộ điều khiển SDN.

Hình 10 - Kiến trúc mạng điều khiển bằng phần mềm
Nhưng quan trọng nhất, nhà khai thác mạng và quản trị viên có thể trình cấu
hình mạng được trừu tượng hóa đơn giản hơn so với việc phải lập trình hàng chục
ngàn dòng cấu hình phân tán trong số hàng ngàn các thiết bị mạng đơn lẻ. Ngoài ra,
tận dụng các thông tin được tập trung trong tại bộ điều khiển SDN, người quản trị
có thể thay đổi hoạt động mạng theo thời gian thực, triển khai các ứng dụng và dịch
vụ mới mạng trong vài giờ hoặc vài ngày, chứ không còn là vài tuần hoặc vài tháng
như hiện nay. Bằng cách thu thập tình trạng của mạng trong các lớp điều khiển
(control layer), SDN cung cấp cho nhà quản lý mạng các phương pháp linh hoạt để
cấu hình, quản lý, bảo mật, và tối ưu hóa tài nguyên mạng thông qua các phần mềm
tự động SDN.

21 / 71


Luận văn thạc sỹ kỹ thuật máy tính và truyền thông
Hơn nữa, các nhà quản lý có thể tự viết các chương trình này mà không phải
chờ đợi các nhà cung cấp sẽ nhúng các tính năng này vào các sản phẩm của họ kèm
theo các công cụ phần mềm độc quyền .Bên cạnh việc trừu tượng hóa mạng, kiến
trúc SDN hỗ trợ một tập hợp các hàm API cho phép thực hiện các dịch vụ mạng
thông thường, bao gồm định tuyến, multicast, an ninh, kiểm soát truy cập, quản lý
băng thông, quản lý traffic, chất lượng, dịch vụ, tối ưu hóa các bộ vi xử lý và lưu
trữ, sử dụng năng lượng, và các hình thức quản lý chính sách, tùy chỉnh cho phù

hợp để đáp ứng các mục tiêu kinh doanh. Ví dụ, kiến trúc SDN cho phép định nghĩa
và thực thi chính sách nhất quán một cách dễ dàng cho cả kết nối có dây và không
dây trong khuôn viên trường.
Tương tự như vậy, SDN cho phép quản lý toàn bộ mạng thông qua hệ thống
dự phòng và đồng bộ thông minh. Open Networking Foundation đang nghiên cứu
các API mở để thúc đẩy việc quản lý đa nhà cung cấp, mở ra cánh cửa cho các tính
năng phân bổ tài nguyên theo yêu cầu, self-service provisioning, mạng ảo hóa thực
sự, và các dịch vụ đám mây an toàn.
Như vậy, với các hàm API mở nằm giữa bộ điều khiển SDN và các lớp ứng
dụng, các ứng dụng thực tế có thể hoạt động trên lớp trừu tượng của mạng,tận dụng
các dịch vụ và khả năng của mạng mà không bị ràng buộc vào các chi tiết khi thực
hiện. SDN làm cho mạng không còn phải "application-aware" như là "applicationcustomized" và các ứng dụng cũng không cần thiết "network-aware" đến mức
"network-capability-aware". Kết quả là, từ việc tính toán, lưu trữ, tài nguyên mạng
có thể được tối ưu hóa.
1.4.3 Giao thức OpenFlow
Giao thức OpenFlow là giao diện truyền thông đầu tiên được sử dụng giữa
lớp kiểm soát và các lớp chuyển tiếp trong kiến trúc SDN. OpenFlow cho phép trực
tiếp truy cập và thao tác trên phần chuyển mạch của các thiết bị mạng chẳng hạn
như chuyển mạchvà router, trong cả hai trường hợp luận lý và ảo. Chính sự thiếu
hụt của một giao diện mở cho phần chuyển mạch đã dẫn tới các đặc tính của các
thiết bị mạng bây giờ như: chia thành nhiều khối riêng biệt, đóng và giống như các
22 / 71


Luận văn thạc sỹ kỹ thuật máy tính và truyền thông
máy mainframe. Thực tế hiện nay vẫn chưa xuất hiện một giao thức tiêu chuẩn nào
có cùng chức năng như giao thức OpenFlow,và sự ra đời một giao thức giống như
OpenFlow là cần thiết để chuyển công việc điều khiển mạng chuyển mạch lên các
phần mềm điều khiển tập trung hợp lý.
OpenFlow có thể được so sánh với tập lệnh của CPU. Như thể hiện trên hình

8, giao thức này xác định các thành phần cơ bản có thể được sử dụng bởi một ứng
dụng phần mềm bên ngoài để lập trình cho phần chuyển mạch của các thiết bị
mạng, điều này giống như tập lệnh của CPU với một hệ thống máy tính.

Hình 11 - Ví dụ về tập lệnh của OpenFlow
Các giao thức OpenFlow được thực hiện trên cả hai mặt của giao diện giữa
các thiết bị cơ sở hạ tầng mạng và phần mềm điều khiển SDN. OpenFlow sử dụng
khái niệm về các luồng (Flow) để xác định lưu lượng truy cập mạng dựa trên quy
tắc được xác định trước - có thể được lập trình cố định hay thay đổi trong phần
mềm điều khiển SDN. Giao thức này cũng cho phép người sử dụng xác định cách
lưu lượng mạng được phân theo luồng thông qua các thiết bị mạng dựa trên các
thông số như mô hình sử dụng, ứng dụng, và tài nguyên điện toán đám mây. Vì
OpenFlow hướng tới mạng được lập trình trên cơ sở hướng tới từng luồng, do đó
một kiến trúc mạng SDN dựa trên OpenFlow hỗ trợ kiểm soát rất chi tiết tới tất cả
23 / 71


Luận văn thạc sỹ kỹ thuật máy tính và truyền thông
các khía cạnh, cho phép mạng có thể đáp ứng theo thời gian thực với sự thay đổi ở
các cấp độ ứng dụng, người sử dụng, và phiên. Định tuyến dựa trên IP hiện tại
không cung cấp mức độ kiểm soát chặt chẽ đến như vậy, bởi vì tất cả các luồng giữa
hai thiết bị đầu cuối luôn phải theo cùng một con đường thông qua mạng, bất kể
chúng có yêu cầu khác nhau hay không.
Giao thức OpenFlow là một nhân tố quan trọng trong Mạng điều khiển bằng
phần mềm và là giao thức SDN tiêu chuẩn hóa duy nhất hiện nay, cho phép trực tiếp
thao tác trên phần chuyển mạch của các thiết bị mạng. Ban đầu khi áp dụng cho các
mạng Ethernet-based, việc chuyển đổi sang OpenFlow có thể mở rộng đến tập hợp
rộng lớn hơn nhiều các trường hợp. Mạng SDN dựa trên OpenFlow có thể được
triển khai trên các mạng hiện có, cả vật lý và ảo. Thiết bị mạng có thể hỗ trợ việc
chuyển tiếp các gói tin OpenFlow cũng như chuyển tiếp gói tin truyền thống, điều

này khiến cho các doanh nghiệp và người sử dụng dễ dàng tiếp cận đến mạng SDN
dựa trên OpenFlow, ngay cả trong môi trường mạng thiết lập bởi nhiều nhà cung
cấp.
Tổ chức Open Networking Foundation chịu trách nhiệm tiêu chuẩn hóa
OpenFlow thông qua các nhóm kỹ thuật làm việc trên nhiều mảng như giao thức,
cấu hình, khả năng tương tác, và các hoạt động khác, giúp đảm bảo khả năng tương
tác giữa các thiết bị mạng và phần mềm kiểm soát từ các nhà cung cấp khác nhau.
OpenFlow được chấp nhận rộng rãi bởi các nhà cung cấp cơ sở hạ tầng mạng, thông
qua các bản nâng cấp phần mềm hoặc firmware đơn giản. Kiến trúc mạng SDN dựa
trên OpenFlow có thể được tích hợp liền mạch với cơ sở hạ tầng hiện có của một
doanh nghiệp hoặc người sủ dụng, tạo ra một hướng chuyển đổi đơn giản trên
những thành phần mạng mà tại đó cần các chức năng của mạng SDN nhất.
1.4.4 Lợi ích của mạng SDN dựa trên giao thức OpenFlow
Các lợi ích mà doanh nghiệp và các hãng có thể đạt được thông qua kiến trúc
mạng SDN dựa trên OpenFlow bao gồm:
 Tập trung hóa việc điều khiển trong môi trường mạng của nhiều nhà
cung cấp: Phần mềm điều khiển có SDN thể kiểm soát bất kỳ thiết bị mạng
24 / 71


×