BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƢỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
---------------------------------------
Nguyễn Hồng Minh
MỘT SỐ GIẢI PHÁP CÂN BẰNG TẢI ĐỘNG TRONG
MẠNG SDN – NGHIÊN CỨU, MÔ PHỎNG VÀ ĐÁNH GIÁ
LUẬN VĂN THẠC SĨ KHOA HỌC
Chuyên ngành : KỸ THUẬT MÁY TÍNH
NGƢỜI HƢỚNG DẪN KHOA HỌC:
PGS. TS. NGƠ HỒNG SƠN
Hà Nội - 2017
1
LỜI CẢM ƠN
Tôi xin gửi lời cảm ơn sâu sắc tới thầy Ngơ Hồng Sơn đã tận tình hƣớng dẫn
tơi trong suốt q trình thực hiện luận văn này.
Tơi xin cảm ơn tập thể thầy cô giáo của Viện Công nghệ thông tin & Truyền
thông đã trang bị cho tôi những kiến thức nền tảng cần thiết.
Tôi xin cảm ơn gia đình và bạn bè đã hỗ trợ và động viên để tơi có thể hồn
thành luận văn này.
Mặc dù đã có nhiều cố gắng trong q trình thực hiện, luận văn chắc chắn
vẫn cịn nhiều thiếu sót. Tơi xin cảm ơn những ý kiến đóng góp của mọi ngƣời về
nội dung và hình thức luận văn để có thể tiếp tục phát triển hƣớng nghiên cứu này
trong tƣơng lai.
2
LỜI CAM ĐOAN
Bản luận văn này do tôi độc lập nghiên cứu và thực hiện dƣới sự hƣớng dẫn
trực tiếp của thầy giáo PGS.TS. Ngô Hồng Sơn.
Các ý tƣởng và kết quả nghiên cứu của các tác giả khác đƣợc sử dụng trong
luận văn này đều đƣợc trích dẫn và liệt kê đầy đủ trong phần Tài liệu tham khảo.
Tôi hoàn toàn chịu trách nhiệm về lời cam đoan này.
Hà Nội, ngày 18 tháng 09 năm 2017
Học viên
Nguyễn Hồng Minh
3
MỤC LỤC
LỜI CẢM ƠN ................................................................................................................ 2
LỜI CAM ĐOAN .......................................................................................................... 3
MỤC LỤC ...................................................................................................................... 4
DANH SÁCH CÁC THUẬT NGỮ VIẾT TẮT ............................................................ 7
DANH MỤC CÁC BẢNG............................................................................................. 8
DANH MỤC CÁC HÌNH VẼ........................................................................................ 9
ĐẶT VẤN ĐỀ.............................................................................................................. 10
CHƢƠNG 1 ................................................................................................................. 12
CƠ SỞ LÝ THUYẾT ................................................................................................... 12
1.1.
Giới thiệu công nghệ SDN ................................................................................. 12
1.1.1. Giới thiệu chung về SDN ............................................................................ 12
1.1.2. Kiến trúc SDN ............................................................................................. 13
1.1.3. Ƣu nhƣợc điểm của SDN ............................................................................ 15
1.1.4. Ứng dụng và các mơ hình triển khai ........................................................... 16
1.1.4.1. Ứng dụng của SDN .............................................................................. 16
1.1.4.2. Các mơ hình triển khai ......................................................................... 17
1.2.
Giới thiệu giao thức OpenFlow ......................................................................... 20
1.2.1. Giới thiệu chung .......................................................................................... 20
1.2.2. Nguyên lý hoạt động ................................................................................... 21
1.2.3. Cấu trúc OpenFlow ..................................................................................... 22
1.2.3.1. Openflow switch ................................................................................... 23
1.2.3.2. Controller .............................................................................................. 30
1.2.3.3. OpenFlow Protocol............................................................................... 31
1.2.3.4. SDN và OpenFlow ............................................................................... 34
1.3.
Bài toán cân bằng tải động ................................................................................. 34
1.3.1. Mơ tả bài tốn .............................................................................................. 34
1.3.2. Mục tiêu bài toán ......................................................................................... 35
4
1.3.3. Tính phức tạp của bài tốn .......................................................................... 36
1.3.4. Các hƣớng tiếp cận và các giải pháp tiêu biểu ............................................ 36
CHƢƠNG 2 ................................................................................................................. 38
CÁC GIẢI PHÁP CÂN BẰNG TẢI ĐỘNG ............................................................... 38
SỬ DỤNG CƠNG NGHỆ SDN .................................................................................. 38
2.1.
Phân tích các giải pháp đang đƣợc sử dụng ....................................................... 38
2.1.1. Thuật toán ngẫu nhiên ................................................................................. 38
2.1.2. Thuật toán Round Robin ............................................................................. 38
2.1.3. Thuật toán Weighted Round Robin............................................................. 39
2.1.4. Thuật toán Least Response Time ................................................................ 41
2.1.5. Thuật toán Lest Connection ........................................................................ 42
2.1.6. Thuật toán LOBUS ..................................................................................... 43
2.1.7. Thuật toán LABERIO ................................................................................. 45
2.1.8. Nhận xét ...................................................................................................... 46
2.2.
Phƣơng pháp cân bằng tải dựa trên thuật tốn tìm đƣờng đi ngắn nhất Dijkstra
trong đồ thị có trọng số ................................................................................................ 48
2.2.1. Cải tiến và thay đổi...................................................................................... 48
2.2.2. Thuật tốn .................................................................................................... 48
CHƢƠNG 3 ................................................................................................................. 51
MƠ PHỎNG VÀ ĐÁNH GIÁ ..................................................................................... 51
3.1.
Mục tiêu ............................................................................................................. 51
3.2.
Các tiêu chí đánh giá .......................................................................................... 51
3.3.
Phƣơng pháp mô phỏng ..................................................................................... 51
3.3.1. Môi trƣờng mô phỏng ................................................................................. 52
3.3.2. Thiết kế chƣơng trình mơ phỏng ................................................................. 53
3.3.3. Kịch bản mô phỏng ..................................................................................... 55
3.4.
Kết quả thử nghiệm và đánh giá ........................................................................ 56
3.4.1. Throughput .................................................................................................. 57
3.4.2. End-to-End Latency .................................................................................... 58
5
3.4.3. Jitter ............................................................................................................. 58
3.4.4. Datagrams Lost ........................................................................................... 59
KẾT LUẬN .................................................................................................................. 61
TÀI LIỆU THAM KHẢO ............................................................................................ 62
6
DANH SÁCH CÁC THUẬT NGỮ VIẾT TẮT
Nghĩa tiếng Anh
Từ viết tắt
Nghữ tiếng Việt
SDN
Software-Defined Networking
Mạng khả trình
ONOS
Open Network Operating System
Hệ điều hành Mạng mở
ForCES
Forwarding and Control Element
Phân tách phần tử chuyển tiếp và
Separation
điều khiển
PCEP
Path Computation Elements Protocol Giao thức các phần tử tính tốn
đƣờng đi
CapEx
Capital Expenditure
Chi phi vốn
OpEx
Operating Expense
Chi phí vận hành
ITaaS
IT-as-a-Service
Công nghệ Thông tin nhƣ một dịch
vụ
API
Application Program Interface
Giao diện chƣơng trình ứng dụng
WRR
Weighted Round Robin
Round Robin theo trọng số
LOBUS
LOad-Balancing over UnStructured
Cân bằng tải trên mạng khơng có
networks
cấu trúc
LoAd-BalancEd Routing wIth
Định tuyến cân bằng tải động với
OpenFlow
Openflow
LABERIO
7
DANH MỤC CÁC BẢNG
Bảng 1 : Các loại bản tin trao đổi giữa Controller và switch. ...................................... 34
Bảng 2 : Lƣu đồ thuật toán Dijkstra mở rộng .............................................................. 49
Bảng 3 : Bảng các tham số của chƣơng trình mơ phỏng ............................................. 54
8
DANH MỤC CÁC HÌNH VẼ
Hình 1 : Giới thiệu cơng nghệ SDN ............................................................................ 13
Hình 2 : Kiến trúc SDN ............................................................................................... 14
Hình 3 : Mơ hình mạng Overlay ................................................................................. 19
Hình 4 : Sơ đồ tƣơng tác giữa switch và controller theo giao thức OpenFlow .......... 23
Hình 5 : Các thành phần chính của OpenFlow Switch ............................................... 24
Hình 6 : Các thành phần chính của một flow entry trong một flow table................... 24
Hình 7 : Các thành phần của một Flow Table Entrie .................................................. 25
Hình 8 : Các thành phần chính của một Group entry trong một Group table ............. 25
Hình 9 : Quá trình xử lý Pipeline ................................................................................ 27
Hình 10 : Lƣợc đồ packet flow qua một Openflow switch ......................................... 28
Hình 11 : Bài tốn cân bằng tải ................................................................................... 35
Hình 12 : Cân bằng tải dựa trên thuật toán Round Robin. .......................................... 39
Hình 13 : Cân bằng tải dựa trên thuật tốn Weighted Round Robin. ......................... 40
Hình 14 : Cân bằng tải dựa trên thuật tốn Least Response. ...................................... 42
Hình 15 : Cân bằng tải dựa trên thuật toán Least Connections................................... 43
Hình 16 : Ba thành phần chính của hệ thống Plug-n-Server....................................... 44
Hình 17 : Sơ đồ thuật tốn LABERIO ........................................................................ 46
Hình 18 : Topology Fat-Tree mơ phỏng với 4-8-16 host............................................ 55
Hình 19 : Kết quả mơ phỏng đánh giá tham số Throughput ....................................... 57
Hình 20 : Kết quả mơ phỏng đánh giá tham số End-to-End Latency ......................... 58
Hình 21 : Kết quả mô phỏng đánh giá tham số Jitter .................................................. 59
Hình 22 : Kết quả mơ phỏng đánh giá tham số Datagrams Lost ................................ 60
9
ĐẶT VẤN ĐỀ
Cơ sở hạ tầng CNTT đang đóng một vai trị ngày càng quan trọng trong sự
thành cơng của một doanh nghiệp. Mạng lƣới các máy chủ hiện nay thƣờng xuyên
đƣợc sử dụng để lƣu trữ ERP, thƣơng mại điện tử và vô số các ứng dụng khác. Nền
tảng của các trang web này, các chiến lƣợc kinh doanh, cơ sở hạ tầng tốt sẽ cung
cấp hiệu suất cao, tính sẵn sàng cao, và các giải pháp an tồn và khả năng mở rộng
để hỗ trợ tất cả các ứng dụng. Tuy nhiên, sự sẵn có của các ứng dụng này thƣờng bị
đe dọa bởi quá tải mạng cũng nhƣ sự cố xảy ra trên các máy chủ và các ứng dụng.
Sử dụng tài nguyên thông thƣờng, dẫn đến các nguồn lực hiệu suất thấp đang quá
tải với các yêu cầu, trong khi các nguồn lực hiệu suất cao vẫn nhàn rỗi. Đề giải
quyết bài tốn đó, ngƣời ta thƣờng áp dụng các giải pháp Server Load Balancing
(máy chủ cân bằng tải) làm cho nhiều máy chủ xuất hiện nhƣ là một máy chủ duy
nhất, một dịch vụ đơn ảo, phân phối các yêu cầu ngƣời sử dụng trong các máy chủ.
Những giải pháp này có những tồn tại nhất định , nhƣ việc phụ thuộc vào hiệu năng
của máy chủ cân bằng tải, chƣa giải quyết đƣợc vấn đề hình trạng mạng thƣờng
xuyên thay đổi biến động, để đáp ứng việc thay đổi nhanh chóng các thơng số về độ
trễ, băng thông, định tuyến, bảo mật … theo các yêu cầu của các ứng dụng. Trong
những năm qua, đã và đang có những giải pháp cơng nghệ đƣợc đề xuất, nhƣ công
nghệ SDN (Software-Defined Networking), với ý tƣởng thay đổi kiến trúc mạng
truyền thống, điều khiển tập trung mở ra các hƣớng đi mới trong việc giải quyết các
vấn đề của bài toán cân bằng tải.
Xuất phát từ lý do trên, tôi đã chọn đề tài “ Một số giải pháp cân bằng tải
động trong mạng SDN – nghiên cứu, mơ phỏng và đánh giá ”
Mục tiêu chính của luận văn là phân tích các vấn đề và các hƣớng giải pháp
chính của bài tốn cân bằng tải động trong mạng SDN, cũng nhƣ tập trung pháp
triển theo hƣớng giải pháp đơn giản và có nhiều tiềm năng ứng dụng trong thực tế.
Luận văn đã đề xuất một số giải pháp mới, sau đó xây dựng chƣơng trình mô phỏng
10
để đánh giá hiệu quả của các thuật toán. Kết quả mô phỏng cho thấy những thay đổi
này đã mang lại hiệu quả tốt hơn xét trên các tiêu chí đánh giá.
Nội dung của luận văn đƣợc trình bày trong 3 chƣơng, với cấu trúc từng
chƣơng nhƣ sau :
Chƣơng 1 : giới thiệu về các kiến thức liên quan gồm ý tƣởng và kiến trúc
của mạng SDN, các ứng dụng và mơ hình triển khai. Giới thiệu về giao thức
Openflow, các thành phần và cách thức hoạt động. Sau đó luận văn đề cập tới bài
toán cân bằng tải động, các giải pháp chính đã đƣợc sử dụng trƣớc đó.
Chƣơng 2 : trình bày về các giải pháp cân bằng tải động trong mạng SDN để
giải quyết bài toán khi hình trạng mạng là thƣờng xuyên thay đổi và biến động. Một
là các phƣơng pháp cân bằng tải đang đƣợc sử dụng, hai là phƣơng pháp cân bằng
tải dựa trên thuật tốn tìm đƣờng đi ngắn nhất Dijsktra trong đồ thị có trọng số.
Chƣơng 3 : trình bày về mơi trƣờng, ngữ cảnh chi tiết của q trình mơ
phỏng các thuật tốn, phân tích các kết quả thu thập đƣợc để đánh giá các thuật toán
đã đề xuất. Các thuật toán cũng đƣợc thử nghiệm với nhiều điều kiện, tham số khác
nhau để kết quả thử nghiệm toàn diện hơn.
Phần kết luận tóm tắt lại các kết quả của luận văn và đề cập đến các phƣơng
hƣớng nghiên cứu trong tƣơng lai.
11
CHƢƠNG 1
CƠ SỞ LÝ THUYẾT
1.1.
Giới thiệu công nghệ SDN
1.1.1. Giới thiệu chung về SDN
Hiện nay nhu cầu về ứng dụng của các end-user đang ngày càng gia tăng,
kéo theo đó là nhu cầu khác nhau của ngƣời dùng về mạng kết nối. Mạng cần phải
đáp ứng việc thay đổi nhanh chóng các thơng số về độ trễ, băng thơng, định tuyến,
bảo mật … theo các yêu cầu của các ứng dụng. Thêm vào nữa là sự phát triển của
IoT, nhu cầu về tính mở rộng, cũng nhƣ linh hoạt của hệ thống mạng kết nối càng
ngày càng quan trọng. Trong khi kiến trúc mạng truyền thống không đáp ứng đƣợc
những yêu cầu thay đổi đó.
Tổ chức phi lợi nhuận ONF (Open Networking Foundation) [11], đƣợc thành
lập bởi các công ty cung cấp dịch vụ internet, hệ thống mạng hàng đầu trên thế giới
đã định nghĩa công nghệ SDN nhƣ là giải pháp để cung cấp một hệ thống mạng đáp
ứng những yêu cầu mới trên. SDN là một kiến trúc linh hoạt, dễ quản lý, hiệu suất
cao và thính nghi tốt, khiến công nghệ này lý tƣởng cho các ứng dụng địi hỏi băng
thơng cao và cần sự linh hoạt .
Ý tƣởng chính của cơng nghệ này xuất phát từ việc tách biệt mặt phẳng điều
khiển (Control Plane) ra khỏi mặt phẳng dữ liệu (Data Plane) trong các thiết bị
chuyển tiếp của hệ thống mạng truyền thống nhƣ Router, Switch. Từ đó chuyển mặt
phẳng điều khiển của các thiết bị chuyển tiếp trong hệ thống mạng về một một bộ
điều khiển tập trung riêng, gọi là Controller. Bộ điều khiển này có thể nhìn thấy
tồn bộ mạng lƣới, và do đó cho phép các nhà quản trị hệ thống mạng có thể thực
hiện các chính sách định tuyến tối ƣu hệ thống. Các bộ điều khiển tƣơng tác với các
thiết bị mạng thông qua một giao thức chuẩn đƣợc định nghĩa riêng. Có thể kể đến
12
giao thức nhƣ OpenFlow, ONOS, ForCES, PCEP, NETCONF, SNMP. Trong đó thì
giao thức OpenFlow đã đƣợc chuẩn hóa và sử dụng rộng rãi nhất.
Hình 1 : Giới thiệu cơng nghệ SDN
Với SDN, việc quản trị hệ thống mạng có thể đƣợc thực hiện thông qua một
giao diện duy nhất, trái ngƣợc với việc cấu hình ở mỗi thiết bị mạng phân tán nhƣ
trong kiến trúc mạng truyền thống. Công nghệ mới này hứa hẹn mang lại lợi ích to
lớn, từ việc giảm chi phí cho việc triển khai và vận hành mạng lƣới.
1.1.2. Kiến trúc SDN
Kiến trúc của SDN gồm ba lớp riêng biệt: lớp ứng dụng (Application Layer), lớp
điều khiển (Control Layer) và lớp cơ sở hạ tầng (Infrastructure Layer). [7]
13
Hình 2 : Kiến trúc SDN
Lớp ứng dụng: 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 (Application Program Interface), 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.
Lớp điều khiển: 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 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 để truyền thơng điều
khiển lớp cơ sở hạ tầng, lớp điều khiển sử dụng các cơ chế nhƣ OpenFlow, ONOS,
ForCES, PCEP, NETCONF, SNMP hoặc thông qua các cơ chế đặc biệt. Bộ điều
khiển SDN đƣợc xây dựng nhƣ là một loại hệ điều hành (Operating System) cho
mạng.
Lớp cơ sở hạ tầng: là các thiết bị mạng thực tế (vật lý hoặc ả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ó
14
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.
Với kiến trúc nhƣ trên, SDN cung cấp các khả năng :
Lớp điều khiển có thể đƣợc lập trình trực tiếp.
Mạng đƣợc điều chỉnh, thay đổi một cách nhanh chóng thơng qua việc thay
đổi trên lớp điều khiển.
Mạng đƣợc quản lý tập trung do phần điều khiển đƣợc tập trung trên lớp điều
khiển.
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 dƣới.
1.1.3. Ƣu nhƣợc điểm của SDN
Với những tính năng mới, SDN đem lại các lợi ích sau :
Giảm CapEx (Capital expenditure – chi phi vốn): SDN giúp giảm thiểu các
yêu cầu mua phần cứng theo mục đích xây dựng các dịch vụ, phần cứng
mạng trên cơ sở ASIC (Application-Specific Integrated Circuit), và hỗ trợ
mơ hình pay-as-you-grow (trả những gì bạn dùng) đề loại bỏ lãng phí cho
việc dự phịng.
Giảm OpEx (operating expense – chi phí vận hành) : thông qua các phần tử
mạng đã đƣợc gia tăng khả năng lập trình, SDN giúp dễ dàng thiết kế, triển
khai , quản lý và mở rộng mạng. Khả năng phối hợp và dự phịng tự động
khơng những giảm thời gian quản lý tổng thể, mà còn giảm xắc suất lỗi do
con ngƣời tới việc tối ƣu khả năng và độ tin cậy của dịch vụ.
Truyền tải nhanh chóng và linh hoạt : giúp các tổ chức triển khai nhanh hơn
các ứng dụng , các dịch vụ và cơ sở hạ tầng để nhanh chóng đạt đƣợc các
mục tiêu kinh doanh.
15
Cho phép thay đổi : cho phép các tổ chức tạo mới các kiểu ứng dụng , dịch
vụ và mơ hình kinh doanh , để có thể tạo ra các luồng doanh thu mới và
nhiều giá trị hơn từ mạng.
Mở ra cơ hội cho các nhà cung cấp lắp đặt thiết bị trung gian khi phần điều
khiển đƣợc tách rời khỏi phần cứng.
Tuy nhiên, đi kèm với đó là những hạn chế :
Do là kiến trúc mới, với quan điểm tách biệt hoàn toàn so với các kiến trúc
mạng truyền thống hiện có, nên việc áp dụng, triển khai vào thực tế còn một
khoảng cách nhất định.
Việc tƣơng thích giữa các mạng với kiến trúc SDN và mạng kiến trúc truyền
thống trong quá trình triển khai các mơ hình ứng dụng mới.
Do điều khiển tập trung nên sẽ gặp phải các vấn đề về an ninh , bảo mật cũng
nhƣ vận hành khai thác, mà với các kiến trúc mạng truyền thống không gặp
phải. Do việc tách rời lớp điều khiển, cũng đồng nghĩa với việc mở rộng một
vùng không gian cần bảo mật. Việc quản trị tồn bộ mạng lƣới có thể đƣợc
mọi bên can thiệp, thay vì phải truy cập trực tiếp vào toàn bộ thiết bị phần
cứng trong mạng.
1.1.4. Ứng dụng và các mơ hình triển khai
1.1.4.1.
Ứng dụng của SDN
Với những lợi ích mà mình đêm lại, SDN có thể triển khai trong phạm vi các
doanh nghiệp , hoặc trong cả các nhà cung cấp hạ tầng và dịch vụ viễn thông để giải
quyết các yêu cầu của các nhà cung cấp tại mỗi phân khúc thị trƣờng.
1.1.4.1.1. Phạm vi doanh nghiệp
a. Áp dụng trong mạng doanh nghiệp
Mơ hình tập trung, điều khiển và dự phòng tự động của SDN hỗ trợ việc hội
tụ dữ liệu, voice, video, cũng nhƣ là việc truy cập tại bất kỳ thời điểm nào, bất kỳ
đâu. Điều này đƣợc thực hiện thông qua việc cho phép nhân viên IT thực thi chính
16
sách nhất quán trên cả cơ sở hạ tầng không dây và có dây. Hơn nữa, SDN hỗ trợ
việc quản lý và giám sát tự động tài nguyên mạng, xác định bằng các hồ sơ cá nhân
và các yêu cầu của ứng dụng, để đảm bảo tối ƣu trải nghiệm ngƣời dùng với khả
năng của mạng.
b. Áp dụng trong Data Center
Việc ảo hóa các thực thể mạng của kiến trúc SDN cho phép mở rộng trong
DC, di cƣ tự động các máy ảo, tích hợp chặt chẽ hơn với kho lƣu trữ , sử dụng
server tốt hơn, sử dụng năng lƣợng thấp hơn, và tối ƣu băng thông.
c. Áp dụng đối với dịch vụ Cloud
Khi đƣợc sử dụng để hỗ trợ một mơi trƣờng đám mây riêng hoặc tích hợp,
SDN cho phép các tài nguyên mạng đƣợc cấp phát theo phƣơng thức linh hoạt cao ,
cho phép dự phòng nhanh các dịch vụ đám may và hand-off linh hoạt hơn với các
nhà cung cấp đám mây bên ngoài. Với các cơng cụ để quản lý an tồn các mạng ảo
của mình, các doanh nghiệp và các đơn vị kinh doanh sẽ tin vào các dịch vụ đám
mây hơn.
1.1.4.1.2. Phạm vi các nhà cung cấp hạ tầng và dịch vụ viễn thông
SDN cung cấp cho các nhà mạng, các nhà cung cấp đám mây công cộng, và
các nhà cung cấp dịch vụ, sự mở rộng và tự động cần thiết để triển khai một mơ
hình tính tốn có ích cho ITaaS (IT-as-a-Service). Điều này đƣợc thực hiện thông
qua việc đơn giản hóa triển khai các dịch vụ tùy chọn và theo u cầu, cùng với việc
chuyển dời sang mơ hình selfservice. Mơ hình tập trung, dự phịng và điều khiển tự
động của SDN dễ dàng hỗ trợ cho thuê linh hoạt tài nguyên, đảm bảo tài nguyên
mạng đƣợc triển khai tối ƣu, giảm CapEx và OpEx, tăng giá trị và tốc độ dịch vụ.
1.1.4.2.
Các mơ hình triển khai
Đối với việc triển khai thực tế của SDN, ba mơ hình khác nhau có thể đƣợc
tiếp cận: switch-based, overlay và hybird.
17
1.1.4.2.1 Với mơ hình switch-based
Mạng SDN sẽ đƣợc xây dựng trên các phần từ mạng có hỗ trợ giao thức và
kiến trúc SDN. Việc này đồng nghĩa với việc là các Vendor phải sản xuất các thiết
bị có hỗ trợ các giao thức mới theo kiến trúc SDN và xây dựng một hệ thống mạng
mới, hoạt động độc lập, song song với mạng cũ. Đi theo xu hƣớng này, có thể kể
đến các dự án của HP, Cisco …
1.1.4.2.2. Với mơ hình Overlay network
Một mạng che phủ đƣợc định nghĩa là một máy tính hoặc một mạng lƣu trữ
đƣợc xây dựng trên một mạng khác và đƣợc kết nối bằng các kết nối ảo hoặc kết nối
thật. Trong định nghĩa của SDN, thì một overlay network sử dụng các liên kết ảo
(virtual link) để kết nối với mạng vật lý bên dƣới. (ví dụ nhƣ các thiết bị ethernet
switch, hay router). Với việc triển khai SDN, mạng SDN có thể đƣợc xây dựng nhƣ
một mạng logic (ví dụ với một máy chủ), hoặc thông dụng hơn nhƣ một lớp phủ
trên các mạng ethernet vật lý hiện có bao gồm các thiết bị chuyển mạch và định
tuyến. Các mạng vật lý thì rất hiệu quả trong việc chuyển mạch tốc độ cao. Tuy
nhiên, thách thức lớn nhất mà SDN đang cố gắng mang lại là làm cho mạng trở nên
linh hoạt hơn để nó có thể đáp ứng nhanh chóng với những thay đổi về yêu cầu của
mạng lƣới. Có thể ban đầu, đa số việc triển khai SDN là để cải thiện sự linh hoạt
của một mạng vật lý hiện tại, điều này sẽ làm cho nó thành một mạng phủ SDN.
Sau này, khi cơng nghệ phát triển, có thể triển khai các giao thức thuần SDN của
chính mạng đó.
18
Hình 3 : Mơ hình mạng Overlay
1.1.4.2.3. Với mơ hình hybrid SDN
Mạng lai SDN đƣợc hiểu nhƣ là một mạng mang cả kiến trúc truyền thống và
các giao thức SDN cùng hoạt động trên một môi trƣờng chung. Một mạng SDN
Hybrid có thể giúp các kỹ sƣ mạng giới thiệu các công nghệ SDN mới nhƣ
OpenFlow tới các môi trƣờng kế thừa mà khơng cần phải cải tổ hồn chỉnh kiến
trúc mạng hiện có. Trong một mạng hybrid SDN, các kỹ sƣ có thể chạy các cơng
nghệ SDN và các giao thức chuyển đổi tiêu chuẩn đồng thời trên phần cứng vật lý.
Ngƣời quản lý mạng có thể định cấu hình mặt phẳng điều khiển SDN để phát hiện
và kiểm soát lƣu lƣợng truy cập nhất định trong khi các giao thức mạng truyền
thống, phân tán tiếp tục chỉ đạo phần còn lại của lƣu lƣợng truy cập trên mạng.
Chuẩn OpenFlow v1.3 bao gồm các kỹ thuật cho các tƣơng tác giữa
OpenFlow và non OpenFlow để cho phép sớm chuyển đổi SDN. Nó chỉ định hai
loại switch phù hợp OpenFlow: OpenFlow thuần và hybrid. Thiết bị chuyển mạch
OpenFlow Hybrid hỗ trợ công nghệ chuyển mạch Ethernet truyền thống và
OpenFlow. Nhiều nhà cung cấp phần cứng mạng đã bổ sung hỗ trợ phần cứng cho
19
thiết bị chuyển mạch và bộ định tuyến của họ cung cấp khả năng chạy chúng trong
chế độ lai.
1.2.
Giới thiệu giao thức OpenFlow
1.2.1. Giới thiệu chung
OpenFlow là giao diện truyền thông tiêu chuẩn đầu tiên đƣợc xác định giữa
các lớp điều khiển và chuyển tiếp của một kiến trúc SDN [8,9]. OpenFlow cho phép
truy cập trực tiếp và thao tác trên mặt phẳng chuyển tiếp của các thiết bị mạng nhƣ
switch và router. OpenFlow có thể đƣợc sử dụng bởi ứng dụng phần mềm ngoài để
điều khiển lớp chuyển tiếp của các thiết bị mạng, giống nhƣ tập lệnh của CPU điều
khiển một hệ thống máy tính.
OpenFlow sử dụng khái niệm “flow” (luồng) để nhận dạng lƣu lƣợng mạng
trên cơ sở định nghĩa trƣớc các quy tắc phù hợp (đƣợc lập trình sẵn bởi phần mềm
điều khiển SDN). Giao thức này cũng cho phép định nghĩa cách mà lƣu lƣợng phải
đƣợc truyền qua các thiết bị mạng trên cơ sở các tham số, chẳng hạn nhƣ mơ hình
lƣu lƣợng sử dụng, ứng dụng và tài nguyên đám mây. Do đó OpenFlow cho phép
mạng đƣợc lập trình dựa trên cơ sở luồng lƣu lƣợng. Một kiến trúc SDN trên cơ sở
OpenFlow cung cấp điều khiển ở mức cực kỳ chi tiết, cho phép mạng phản hồi sự
thay đổi theo thời gian thực của ứng dụng, ngƣời dùng và mức phiên. Mạng định
tuyến trên cơ sở IP hiện tại không cung cấp mức này của điều khiển, tất cả các
luồng lƣu lƣợng giữa hai điểm cuối phải theo cùng một đƣờng thông qua mạng, mặc
dù yêu cầu của chúng khác nhau.
Công nghệ SDN trên cơ sở OpenFlow cho phép các nhà quản trị giải quyết
các ứng dụng băng thông cao và linh hoạt ngày nay, khiến cho mạng thích ứng với
các nhu cầu kinh doanh thay đổi và giảm đáng kể các hoạt động quản lý phức tạp.
Những lợi ích mà các doanh nghiệp và nhà khai thác mạng có thể đạt đƣợc thông
qua kiến trúc SDN trên cơ sở OpenFlow bao gồm:
20
Tập trung hóa điều khiển trong mơi trƣờng nhiều nhà cung cấp thiết bị: dựa
trên giao thức OpenFlow phần mềm điều khiển SDN có thể điều khiển bất kỳ
thiết bị mạng nào của bất kỳ nhà cung cấp thiết bị nào bao gồm switch,
router và các switch ảo.
Giảm sự phức tạp thơng qua việc tự động hóa: kiến trúc SDN trên cơ sở
OpenFlow cung cấp chức năng quản lý mạng tự động và linh hoạt bằng việc
phát triển các phần mềm chạy trên các bộ điều khiển.
Tốc độ đổi mới cao: việc áp dụng Openflow cho phép các nhà khai thác
mạng lập trình lại mạng để có thể đạt đƣợc các nhu cầu kinh doanh và yêu
cầu ngƣời dùng cụ thể khi có sự thay đổi.
Gia tăng độ tin cậy và khả năng an ninh của mạng: các nhà quản trị mạng có
thể định nghĩa các trạng thái cấu hình và chính sách ở mức cao, áp dụng tới
cơ sở hạ tầng thông qua OpenFlow. Kiến trúc SDN dựa trên cơ sở OpenFlow
cung cấp sự điều khiển và tầm nhìn hồn chỉnh trên mạng nên nó có thể đảm
bảo điều khiển truy nhập, định hình lƣu lƣợng, QoS, bảo mật và các chính
sách đó đƣợc thực thi nhất quán trên toàn bộ cơ sở hạ tầng mạng.
Đáp ứng nhu cầu của ngƣời dùng một cách linh hoạt: bằng việc tập trung hóa
điều khiển mạng và tạo ra trạng thái thơng tin có sẵn cho các ứng dụng mức
cao hơn, kiến trúc SDN trên cơ sở OpenFlow có thể đáp ứng tốt hơn cho các
nhu cầu thay đổi của ngƣời dùng.
1.2.2. Nguyên lý hoạt động
Trong hầu hết các thiết bị chuyển mạch Ethernet hiện đại đều sử dụng các
bảng dòng chảy (Flow tables). Những bảng này giúp cho việc chuyển các gói tin từ
nơi gửi đến nơi nhận một cách hiệu quả. Mỗi nhà cung cấp sẽ có một bảng dịng
chảy riêng, tuy nhiên ta vẫn có thể tách ra một tập hợp các chức năng, đƣợc xem là
điểm chung cho tất cả các thiết bị chuyển mạch. Ví dụ : QoS hay các báo cáo về lƣu
lƣợng. Và OpenFlow thực hiện chuẩn hóa những điểm chung này vào trong một
bảng riêng.
21
OpenFlow tách rời các chức năng của lớp truyền dữ liệu và lớp điều khiển ra
khỏi nhau. Chức năng liên quan đến truyền dữ liệu vẫn đƣợc thực hiện trên thiết bị
chuyển mạch nhƣ cũ, còn các quyết định về định tuyến cấp cao trong OpenFlow thì
do bộ điều khiển (Controller) thực hiện. Controller và các thiết bị chuyển mạch giao
tiếp với nhau thông qua giao thức OpenFlow Switching Protocol. Controller có thể
ra lệnh cho các switch thực hiện các quy tắc dành cho các luồng dữ liệu mạng.
Những quy tắc này có thể là : truyền dữ liệu theo tuyến đƣờng nhanh nhất, hoặc
theo tuyến đƣờng có ít hops nhất…
OpenFlow cung cấp giao diện API duy nhất, nhờ giao diện này ngƣời quản
trị có thể lập trình cơng việc của mạng, và đồng thời có thể thiết lập các quy tác
định tuyến gói tin, cân bằng tải, điều khiển truy nhập… Giao diện API này bao gồm
2 thành phần chính: Giao diện lập trình dành cho việc kiểm sốt chuyển tiếp gói tin
qua các bộ chuyển mạch mạng và bộ các giao diện toàn cầu (global interface), trên
cơ sở những giao diện này có thể tạo ra các cơng cụ quản lý cấp cao.
1.2.3. Cấu trúc OpenFlow
Các thành phần cơ bản của mạng SDN trên cơ sở giao thức OpenFlow gồm
[8,9]:
Openflow Switch.
Controller.
OpenFlow Protocol.
22
Hình 4 : Sơ đồ tương tác giữa switch và controller theo giao thức OpenFlow
1.2.3.1.
Openflow switch
OpenFlow Switch bao gồm một Group table, một hoặc nhiều Flow table và
một kênh OpenFlow channel. Trong đó các Flow table và Group table chứa các
thông tin do Controller cung cấp để thực hiện định tuyến các gói tin. OpenFlow
channel là kênh đảm nhiệm nhiệm vụ liên lạc giữa controller và openflow switch.
23
Hình 5 : Các thành phần chính của OpenFlow Switch
1.2.3.1.1. Flow Table
Một flow table bao gồm một tập các flow entry. Mỗi flow entry bao gồm các
trƣờng sau :
Hình 6 : Các thành phần chính của một flow entry trong một flow table
Trong đó:
Match Fields: cho phép đọc và nhận ra các gói đi hợp lệ qua switch, lƣu các
cổng vào và các header của các gói tin, các siêu dữ liệu (metadata) đƣợc đặc
tả bởi các bảng flow table trƣớc đó.
Priority: Trƣờng để so sánh sự ƣu tiên của flow entry.
Counters: Trƣờng này sẽ đƣợc cập nhật khi gói tin đƣợc so khớp.
Instructions: Trƣờng chỉ các lệnh tƣơng ứng với bản tin, dùng để chỉnh sửa
các hành động hoặc quá trình xử lý pipeline.
24
Timeouts: Thời gian chờ trƣớc khi gói tin bị hết hạn.
Cookie: Là phần dữ liệu đƣợc lựa chọn bởi bộ điều khiển. Bộ điều khiển có
thể sử dụng nó để lọc thống kê lƣu lƣợng, thay đổi lƣu lƣợng và xóa lƣu
lƣợng.
Flow entry sẽ gồm 3 phần chính:
Rule: định nghĩa flow.
Action : cho biết các gói tin sẽ đƣợc xử lý nhƣ thế nào.
Statistics : giám sát số lƣợng gói tin và số lƣợng byte cho mỗi flow và thời
gian kể từ khi gói tin cuối cùng tƣơng ứng với flow entry đi qua switch
Hình 7 : Các thành phần của một Flow Table Entrie
1.2.3.1.2. Group Table
Group table chứa các thành phần nhƣ sau :
Hình 8 : Các thành phần chính của một Group entry trong một Group table
25