You are on page 1of 31

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG

KHOA VIỄN THÔNG I


---------------------------------------

TIỂU LUẬN HỌC PHẦN


BÁO HIỆU VÀ ĐIỀU KHIỂN KẾT NỐI

MÃ NGUỒN MỞ SDN

Họ và tên sinh viên nhóm 2:


Trịnh Xuân Hựu - B18DCVT223
Nguyễn Tuấn Anh - B18DCVT020
Nguyễn Quý Chiến - B18DCVT047

HÀ NỘI - 2021
MỤC LỤC

LỜI NÓI ĐẦU ............................................................................................................................................. 1


I. TỔNG QUAN VỀ OPENFLOW............................................................................................................ 2
1.1 Giới thiệu về OP ................................................................................................................................ 2
1.2 Các đặc trưng cơ bản của OP .......................................................................................................... 2
1.3 Lợi ích khi sử dụng OP ..................................................................................................................... 2
II. TỔNG QUAN MÃ NGUỒN MỞ SDN................................................................................................. 3
III. MÔI TRƯỜNG MÃ NGUỒN MỞ SDN ............................................................................................ 3
IV. THUẬT NGỮ ........................................................................................................................................ 5
V. CÁC LỖI CẤP PHÉP NGUỒN ............................................................................................................ 6
VI. HỒ SƠ NGƯỜI DUNG MÃ NGUỒN MỞ SDN................................................................................ 8
VII. OPENFLOW SOURCE CODE ....................................................................................................... 10
VIII. SWITCH IMPLEMENTATIONS (Thực hiện chuyển đổi) ......................................................... 11
8.1 OpenVswitch ................................................................................................................................... 11
8.2 Indigo ............................................................................................................................................... 12
IX. CONTROLLER IMPLEMENTATIONS (Việc thực hiện kiểm soát) ........................................... 13
9.1 Bối cảnh lịch sử ............................................................................................................................... 13
8 Floodlight ............................................................................................................................................ 15
9.3 OpenDayLight ................................................................................................................................. 16
9.4 ONOS ............................................................................................................................................... 16
X. SDN APPLICATIONS ........................................................................................................................ 17
XI. LẮP ĐẶT VÀ ĐÁNH GIÁ MẠNG ................................................................................................... 20
XII. SIMULATION, TESTING, AND TOOLS ..................................................................................... 21
XIII. PHẦN MỀM MÃ NGUỒN MỞ CLOUD ...................................................................................... 22
13.1 OpenStack...................................................................................................................................... 22
13.2 CloudStack..................................................................................................................................... 24
XIV. VÍ DỤ VỀ ÁP DỤNG MÃ NGUỒN MỞ SDN .............................................................................. 25
XV. KẾT LUẬN ........................................................................................................................................ 27
XVI. TÀI LIỆU THAM KHẢO ............................................................................................................... 27
THUẬT NGỮ VIẾT TẮT
GPL General Public License Giấy cấp phép phần mềm tự do
FSF Free Software Foundation Tổ chức phi lợi nhuận thúc đẩy
sự tự do nghiên cứu
BSD Berkeley Software Distribution Phần mềm Berkeley
ASF Apache Software Foundation Tập đoàn phi lợi nhuận của Mỹ
nhằm hỗ trợ một số dự án phần
mềm mã nguồn mở
EPL Eclipse Public License Giấy phép phần mềm mã nguồn
mở và miễn phí của Eclipse
FOSS Free and Open-Source Software Phần mềm mã nguồn mở miễn
phí
ONF Open Networking Foundation Tổ chức phi lợi nhuận điều hành
nhằm thúc đẩy mạng thông qua
mạng do phần mềm xác
định (SDN) và chuẩn hóa giao
thức OpenFlow và các công
nghệ liên quan
NVP Network Virtualization Platform Công ty tập chung vào mạng do
(Nicira) phần mềm xác định SDN và ảo
mạng hóa
OVSDB Open vSwitch Database Management Giao thức quản lý trong môi
Protocol trường mạng SDN
ASICs Application-Specific Integrated Circuit Một con chip mạch tích hợp
chuyên dụng
AP Access Point Thiết bị không dây tạo ra một
mạng cụ bộ hoặc WLAN
ONOS Open Network Operating System Hệ điều hành mở được tổ chức
Linux
NFV Network Functions Virtualization Ảo mạng hóa thay đổi phần cứng
của thiết bị mạng bằng các máy
ảo
OSSDN Open Source SDN Mã nguồn mở SDN
NBI Northbound Interface Một giao diện cho phép các
thành phần giao tiếp với thành
phần cao hơn
PIF Protocol Independent Forwarding Một dự án phần mềm mã nguồn
mở
GUI Graphical User Interface Giao diện đồ họa người dùng
KVM Kernel-based Virtual Machine Máy ảo Kernel-based
OVS Open vSwitch Một mã nguồn mở
UI User Interface Giao diện người dùng
API Application Programming Interfaces Giao diện lập trình ứng dụng
OSPF Open Shortest Path First Giao thức định tuyến OSPF
BGP Border Gateway Protocol Giao thức định tuyến BGP
LỜI NÓI ĐẦU

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

1
I. TỔNG QUAN VỀ OPENFLOW
1.1 Giới thiệu về OP
OpenFlow là một công nghệ mới nổi lên gần đây với khả năng tiềm tang có thể nâng
cao một cách đáng kể giá trị của các dịch vụ mà các trung tâm dữ liệu có thể cung cấp.
Triển khai OpenFlow có thể cung cấp cho các nhà quản lý mạng khả năng điều khiển nhiều
hơn các nguồn tài nguyen họ quản trị, khả năng quản trị máy chủ và mạng tích hợp, và một
giao tiếp quản trị mở cho các hệ thống Router Switch.
OpenFlow tách biệt hẳn phần điều khiển ra khỏi phần chuyển tiếp và cung cấp khả
năng lập trình cho lớp điều khiển. OpenFlow là tiêu chuẩn đầu tiên, cung cấp khả năng
truyền thông giữa các giao diện của lớp điều khiển và lớp chuyển tiếp trong kiến trúc SDN.
OpenFlow cho phép truy cập trực tiếp và điều khiển mặt phẳng chuyển tiếp của các thiết
bị mạng như switch và router, cả thiết bị chuyển mạch thực tế tới phần mềm điều khiển
trung tâm.
Giải pháp OpenFlow mang lại khả năng ảo hóa toàn diện cho toàn bộ hệ thống
network, được kỳ vọng là một trung những chuẩn sẽ thay đổi kiến trúc hạ tầng network
trong tương lai gần.
Các quyết định về các luồng traffic sẽ được quyết định tập trung tại OpenFlow
Controller giúp đơn giản trong việc quản trị cấu hình trong toàn hệ thống.
1.2 Các đặc trưng cơ bản của OP
OP có thể được sử dụng bởi ứng dụng phần mềm ngoài để điều khiển mặt phẳng
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.
Một thiết bị OpenFlow bao gồm ít nhất 3 thành phần:
• Secure Channel: kênh kết nối thiết bị tới bộ điều khiển, cho phép các lệnh và các
gói tin được gửi giữa bộ điều khiển và thiết bị.
• OP Protocol: giao thức cung cấp phương thức tiêu chuẩn và mở cho một bộ điều
khiển truyền thông với thiết bị.
• Flow Table: một liên kết hành động với mỗi luồng, giusp thiết bị xử lý các luồng
thế nào.
1.3 Lợi ích khi sử dụng OP
Công nghệ SDN trên cơ sở OpenFlow cho phép nhân viên IT giải quyết các ứng dụng
bang thông cao và biến đổi động hiện nay, khiến cho mạng thích ứng với các nhu cầu kinh
doanh thay đổi, và làm giảm đáng kể các hoạt động và 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:
2
- Tập trung hóa điều khiển trong môi trường nhiều nahf cung cấp thiết bị: 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 cho phép OpenFlow từ
bất kỳ nhà cung cấp thiết bị nà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 một framework quản lý mạng tự động là linh hoạt. Từ framework này có
thể phát triển các công cụ tự động hóa các nhiệm vụ hiện đang được thực hiện bằng
tay.

II. TỔNG QUAN MÃ NGUỒN MỞ SDN


Trong 5 năm đầu tiên của SDN, sự đầu tư chủ yếu về thời gian và công sức đến từ
nghiên cứu cộng đồng, tập trung vào OpenFlow. Từ những năm từ 2012 đến 2015 đã chứng
kiến không chỉ tiếp tục đầu tư vào OpenFlow, mà còn đầu tư vào việc sử dụng các giao
thức khác như BGP và NETCONF để hoàn thành các mục tiêu SDN.
Đối với các thiết bị, bộ điều khiển và ứng dụng dựa trên OpenFlow, có một bộ sưu
tập phong phú về phần mềm nguồn mở có sẵn. Tuy nhiên, đối với các giao thức kế thừa,
các giải pháp liên quan chủ yếu chạy trên thiết bị sử dụng phần mềm độc quyền và do đó
phát triển nguồn mở tập trung vào bộ điều khiển, Ví dụ ưu việt của mô hình này là
OPenDaylight (ODL). Tuy nhiên, có nguồn mở có sẵn cho một số giao thức mà bộ điều
khiển sử dụng để giao tiếp với các thiết bị độc quyền. Ví dụ về các giao thức như vậy bao
gồm NETCONF và BGP.
Trong chương này, chúng ta sẽ xem xét cả những nỗ lực nguồn mở dựa trên
OpenFlow xung quanh các thiết bị, bộ điều khiển và ứng dụng cũng như xem xét các bộ
điều khiển nguồn mở mới nổi hỗ trợ nhiều giao thức, chẳng hạn như ODL và ONOS.

III. MÔI TRƯỜNG MÃ NGUỒN MỞ SDN


Trong phần đầu là tổng quan về OpenFlow, tiêu chuẩn OpenFlow được phát triển bởi
ONF. Tuy vậy, ONF không cung cấp triển khai hoạt động của công tắc hoặc bộ điều khiển.
Trong này chương chúng tôi sẽ cung cấp một số lượng lớn các thành phần mã nguồn mở
có sẵn để sử dụng trong nghiên cứu, bao gồm cả mã nguồn cho chính OpenFlow, Một số
trong số này có sẵn theo giấy phép làm cho chúng thích hợp để khai thác thương mại. Nhiều
sáng kiến trong số này sẽ đẩy nhanh quá trình tiêu chuẩn hóa và tỷ lệ chấp nhận SDN.
Trong chương này, chúng tôi cung cấp một cuộc khảo sát về các sáng kiến này và giải thích
mối quan hệ và các vai trò trong chủ đề SDN rộng lớn hơn.
Chúng tôi đã lưu ý trong các chương trước rằng việc sử dụng thuật ngữ SDN được chấp
nhận đã phát triển tốt hơn phạm vi ban đầu. Thật vậy, định nghĩa của SDN đã bị xóa mờ
trong hầu hết các công việc hiện tại trên mạng ảo hóa. Tuy nhiên, phần lớn công việc này,

3
đặc biệt là trong SDN mã nguồn mở đã xảy ra trong học thuật thế giới. Do đó, có một thư
viện mã nguồn mở quan trọng dành cho những người muốn thử nghiệm hoặc xây dựng các
sản phẩm thương mại trong các lĩnh vực SDN và ảo hóa mạng. Ngoài học thuật đóng góp,
nhiều công ty đang đóng góp mã nguồn mở cho các dự án SDN. Một số ví dụ đã được đề
cập trong các chương trước là Indigo của Big Switch, VMware’s OVS và nhiều công ty
khác như: Brocade, Cisco, IBM, HP, Huawei, Intel, NEC, VMware đóng góp cho ODL.
ODL hoan nghênh các đóng góp mã nguồn từ các thành viên và có một quy trình khá
nghiêm ngặt để đánh giá và đưa vào phần mềm. Có thể thấy danh sách các kỹ sư đóng góp
cũng như ODL giao diện bộ điều khiển, phần lớn phần mềm điều khiển đến từ Cisco. Ngoài
nhiều Cisco những người đóng góp, nhiều người đóng góp khác đã thêm phần mềm vào cơ
sở mã nguồn mở ODL. Plexxi đã cung cấp một API cho phép bộ điều khiển và ứng dụng
cộng tác bằng cách sử dụng phần tóm tắt của cơ sở hạ tầng mạng bên dưới độc lập với thiết
bị chuyển mạch cụ thể được sử dụng. Phần mềm ngăn chặn các cuộc tấn công từ chối dịch
vụ phân tán (DDoS) đã được đóng góp bởi Radware. Ericsson và IBM đã hợp tác với Cisco
để cung cấp các plugin OpenFlow cho bộ điều khiển. Pantheon có đã cung cấp phiên bản
OpenFlow 1.3. Bọn em cung cấp thêm chi tiết về ODL trong Phần 8.

4
Hình 1. Tổng quan về mã nguồn mở SDN

Trong hình 1, chúng tôi ánh xạ nhiều lựa chọn nguồn mở này với các thành phần mạng
khác nhau. Các các thành phần chính, từ dưới lên là:
• Thiết bị OpenFlow
• Bộ điều khiển OpenFlow
• Các ứng dụng SDN
• Ảo hóa mạng
• Kiểm tra và mô phỏng
Danh mục cuối cùng, Thử nghiệm và Mô phỏng, được hiển thị ở bên cạnh của sơ
đồ vì nó không vừa khít thành một hệ thống phân cấp từ dưới lên trên. Đối với mỗi danh
mục này, chúng tôi hiển thị trong ô gọi ra những điều đáng chú ý nguồn mở có sẵn đóng
góp vào danh mục đó. Trong các phần tiếp theo, chúng tôi cung cấp bản kiểm kê của phần
mềm này. Một số trong số này nổi lên như là cơ sở cho việc triển khai thương mại mạng
ảo hóa và SDN và trong những trường hợp đó, chúng tôi sẽ khám phá sản phẩm mã nguồn
mở liên quan một cách chi tiết hơn chiều sâu. Khi chúng tôi chuyển qua các thành phần
mạng khác nhau trong phần 7-13, chúng tôi khuyến khích người đọc hãy nhìn lại hình 1 để
đặt các dự án mã nguồn mở đó trong bối cảnh của hệ sinh thái SDN.
Cách thức mà phần mềm nguồn mở có thể được khai thác thương mại phụ thuộc
vào bản chất của giấy phép nguồn mở mà theo đó nó được cung cấp và những giấy phép
này hoàn toàn không được tạo ra bình đẳng. Vì vậy, trước khi thảo luận về bản thân các
mô-đun phần mềm, chúng ta sẽ xem xét các loại phổ biến của giấy phép nguồn mở đang
được sử dụng ngày nay.

IV. THUẬT NGỮ


Trong phần này, bọn em sẽ giới thiệu một thuật ngữ thường được sử dụng cộng đồng
phát triển mã nguồn mở - forking (chĩa hưỡng, chia ra nhiều ngã rẽ). Nếu chúng ta xem
cơ sở mã nguồn là thân cây, thì sẽ có các nhánh phát triển khác nhau các địa điểm trên khắp
thế giới nơi diễn ra đổi mới và thử nghiệm. Trong nhiều trường hợp, thành công và những
đổi mới quan trọng được đóng góp trở lại cho bản sao chính đang phát triển của mã và xuất
hiện trong một bản phát hành trong tương lai cao hơn trên thân cây mã nguồn, để tiếp tục
với sự tương tự. Khi một cái mới cơ sở mã được tách từ một bản phát hành hiện có, nó cắt
kết nối trở lại thân cây. Điều này có nghĩa rằng sự đổi mới liên tục trên các fork đó sẽ không
được đóng góp trở lại cơ sở mã ban đầu.

5
V. CÁC LỖI CẤP PHÉP NGUỒN
Trừ khi một người đã tham gia mật thiết vào việc xây dựng một sản phẩm thương mại
kết hợp mở phần mềm nguồn, không chắc rằng người đó hiểu được sự phức tạp của lĩnh
vực nguồn mở này cấp phép. Ngày nay có một số lượng lớn các giấy phép mã nguồn mở
khác nhau. Tại thời điểm này writing, gnu.org liệt kê tổng cộng 92 giấy phép phần mềm
miễn phí.
Có nhiều sắc thái giữa các giấy phép phần mềm miễn phí này có vẻ phức tạp đối với
một điều không hợp pháp cao thủ. Sự khác biệt đôi chút về quyền hoặc yêu cầu về việc sử
dụng tên của người tạo ra giấy phép hoặc các yêu cầu về việc tuân thủ luật xuất khẩu của
Hoa Kỳ có thể là một số sự khác biệt duy nhất giữa chúng. Các doanh nghiệp cung cấp mã
nguồn miễn phí trước đây đã làm như vậy với tên tổ chức của họ trong giấy phép, trong đó
bản thân tên có thể là điểm khác biệt cơ bản duy nhất giữa giấy phép của họ và một giấy
phép khác đã tồn tại. Chúng tôi sẽ cung cấp một mô tả ngắn gọn về các giấy phép khác
nhau mà theo đó nguồn được đề cập trong chương này đã được phát hành, trả tiền cụ thể
chú ý đến các phân nhánh kinh doanh của việc lựa chọn kết hợp phần mềm theo từng giấy
phép trong một sản phẩm thương mại.
Một mẫu số chung được chấp nhận của mã nguồn mở là nó là mã nguồn được cung cấp
miễn phí mà bạn có thể sử dụng và sửa đổi cho một nhóm mục đích xác định. Có sẵn mã
nguồn mở mà chỉ cho phép sử dụng phi thương mại. Chúng tôi tin rằng điều này hạn chế
đáng kể tác động mà phần mềm đó sẽ có, vì vậy chúng ta sẽ không thảo luận thêm về vấn
đề này ở đây. Ngay cả khi việc sử dụng thương mại được phép, tuy nhiên, có sự khác biệt
đáng kể về các nghĩa vụ tiềm ẩn trong việc sử dụng phần mềm đó.
Một số hạng mục chính của cấp phép nguồn mở được sử dụng rộng rãi trong thương
mại ngày nay là GNU General Public License (GPL), kiểu BSD và Apache. Có các tổ chức
khác nhau chọn tham gia liệu một giấy phép đã cho có thực sự là nguồn mở hay không.
Chúng bao gồm Free Software Foundation (FSF) và Sáng kiến Nguồn mở. Không phải lúc
nào họ cũng đồng ý.
GPL là một hình thức cấp phép cực kỳ phổ biến. Hệ điều hành Linux được phân phối
theo GPLX. Nó cho phép người dùng sao chép và sửa đổi phần mềm cho hầu hết mọi mục
đích. Cho nhieu các công ty, tuy nhiên, nó quá hạn chế trong một khía cạnh chính. Nó kết
hợp khái niệm copyleft theo đó nếu bất kỳ tác phẩm phái sinh nào được phân phối, chúng
phải được phân phối theo cùng một giấy phép. Từ một thực tế quan điểm, điều này có nghĩa
là nếu một công ty thương mại mở rộng cơ sở mã nguồn mở GPL để cung cấp một số chức
năng mới mà nó muốn cung cấp cho thị trường, các sửa đổi được thực hiện phải được cung
cấp miễn phí cho cộng đồng nguồn mở theo các điều khoản GPL. Nếu tính năng được đề
cập ở đây thể hiện tài sản trí tuệ cốt lõi là trọng tâm trong đề xuất giá trị của công ty đó,
điều này hiếm khi có thể chấp nhận được. Nếu chức năng được cung cấp bởi nguồn mở
GPL có thể được sử dụng với ít trí tuệ được bổ sung thì mã GPL có thể phù hợp trong các

6
sản phẩm thương mại. Đảm bảo rằng sự khác biệt này được duy trì rõ ràng có thể gây ra
những hậu quả lớn đối với việc định giá mà một công ty khởi nghiệp nhận được từ các nhà
đầu tư. Đối với điều này lý do, mã nguồn mở GPL được sử dụng một cách thận trọng trong
ngành công nghiệp. Tuy nhiên, GPL vẫn là rộng rãi nhất đã sử dụng giấy phép phần mềm
miễn phí. Có GPL V.2 và GPL V.3 có phần hạn chế hơn phiên bản đầu tiên.
Mô hình cấp phép gia đình BSD dễ dàng hơn. Giấy phép kiểu này lần đầu tiên được sử
dụng cho Berkeley Software Distribution (BSD), một hệ điều hành giống Unix. Đã có một
số các biến thể của giấy phép gốc này kể từ lần sử dụng đầu tiên, do đó chúng tôi sử dụng
ở đây thuật ngữ BSD- family of licenses. Không giống như mã GPL, người dùng không có
nghĩa vụ đóng góp các tác phẩm phái sinh trở lại nguồn mở cộng đồng. Điều này làm cho
việc kết hợp mã nguồn mở được cấp phép BSD vào thương mại sẽ ít rủi ro hơn nhiều Mỹ
phẩm. Trong một số phiên bản của giấy phép kiểu này có một điều khoản quảng cáo. Đây
là ban đầu được yêu cầu xác nhận việc sử dụng mã UC Berkeley trong bất kỳ quảng cáo
nào về sản phẩm. Trong khi điều này yêu cầu đã bị loại bỏ trong các phiên bản mới nhất
của giấy phép BSD, vẫn còn nhiều các sản phẩm phần mềm được cấp phép với một hạn
chế tương tự. Một ví dụ về điều này là OPenSSL được sử dụng rộng rãi thư viện mã hóa,
yêu cầu xác nhận tác giả trong quảng cáo sản phẩm.
Giấy phép Apache là một dạng giấy phép dễ dàng khác dành cho mã nguồn mở. Giấy
phép đã được phát triển bởi Apache Software Foundation (ASF) và được sử dụng cho phần
mềm do ASF sản xuất cũng như một số thực thể không phải ASF. Phần mềm được cung
cấp theo giấy phép Apache không bị hạn chế sử dụng ngoại trừ yêu cầu rằng thông báo bản
quyền và tuyên bố từ chối trách nhiệm phải được duy trì trong chính mã nguồn. Như thế
này có tác động tối thiểu đến khả năng thương mại hóa phần mềm như vậy, nhiều tổ chức
thương mại xây dựng các sản phẩm ngày nay tự do kết hợp mã nguồn được cấp phép của
Apache.
Giấy phép Công cộng Eclipse (EPL) có thể được xem như một sự thỏa hiệp giữa
copyleft mạnh mẽ các khía cạnh của GPL và giấy phép Apache thân thiện với thương mại.
Trong những trường hợp nhất định, sử dụng mã nguồn được cấp phép EPL có thể dẫn đến
nghĩa vụ đóng góp các sửa đổi của chính một người trở lại cộng đồng nguồn mở. Tuy nhiên,
đây không phải là một yêu cầu phổ biến, vì vậy phần mềm này thường có thể được các nhà
phát triển đưa vào các sản phẩm thương mại mà không có nguy cơ bị buộc phải tiết lộ tài
sản trí tuệ của riêng họ cho toàn bộ cộng đồng nguồn mở. Yêu cầu có hiệu lực khi các sửa
đổi không phải là một mô-đun phần mềm riêng biệt mà chứa một phần quan trọng của EPL
được cấp phép nguyên bản và do đó là một tác phẩm phái sinh. Ngay cả khi yêu cầu phát
hành tiện ích mở rộng về bản gốc không có hiệu lực, người dùng được yêu cầu cấp giấy
phép cho bất kỳ ai nhận được sửa đổi của họ đối với bất kỳ bằng sáng chế người dùng có
thể nắm giữ những sửa đổi đó.

7
Giấy phép Free and Open-Source Software (FOSS) của Đại học Stanford đáng chú ý
trong cách thức mà nó cố gắng giải quyết vấn đề chung với việc sử dụng thương mại GPL
được cấp phép mã nguồn do cung cấp copyleft của nó. Động lực của Stanford trong việc
phát triển khái niệm này là để tránh tình huống mà các nhà phát triển ngần ngại phát triển
các ứng dụng cho bộ điều khiển Beacon (ở phần 9). Do cách ứng dụng giao diện với bộ
điều khiển Beacon, nếu nó được cấp phép theo GPL mà không có ngoại lệ phần mềm nguồn
mở, các nhà phát triển như vậy sẽ có nghĩa vụ đóng góp hoạt động như mã nguồn mở GPL.
Giấy phép này dành riêng cho bộ điều khiển Beacon, mặc dù khái niệm này có thể được
áp dụng tổng quát hơn. Về bản chất, Stanford muốn phát hành mã bộ điều khiển Beacon
dưới điều khoản của GPL. Phần mềm nguồn mở chỉ định rằng người dùng mã phải tiếp tục
xử lý chính mã Beacon theo các điều khoản của GPL, nhưng mã họ viết dưới dạng ứng
dụng Beacon có thể được phát hành theo bất kỳ số lượng giấy phép phần mềm nguồn mở
đã được phê duyệt.
Các giấy phép đã được phê duyệt này là giấy phép phổ biến nhất trong số các giấy phép
nguồn mở được thảo luận trong chương này. Đáng chú ý là một ứng dụng mã nguồn mở
có thể được phát hành theo giấy phép thân thiện hơn về mặt thương mại, chẳng hạn như
Apache, không yêu cầu dẫn xuất hoạt động trên mã ứng dụng được phát hành cho cộng
đồng nguồn mở, cho phép nhà phát triển bảo vệ tài sản trí tuệ mới được tạo của mình.

VI. HỒ SƠ NGƯỜI DUNG MÃ NGUỒN MỞ SDN


Khi đánh giá mức độ liên quan của nguồn mở với nhu cầu SDN của tổ chức riêng của
một người, câu trả lời sẽ phụ thuộc nhiều vào vai trò mà tổ chức mong muốn trên sân chơi
SDN. Để chắc chắn, những người chấp nhận SDN ban đầu hầu như chỉ là các nhà nghiên
cứu, nhiều người trong số họ đã làm việc trong môi trường. Đối với những nhà nghiên cứu
như vậy, việc duy trì tính linh hoạt và khả năng liên tục sửa đổi mã luôn là điều tối quan
trọng so với các mối quan tâm về hỗ trợ hoặc bảo vệ sở hữu trí tuệ. Đối với điều này lý do,
bộ điều khiển OpenFlow mã nguồn mở và mã chuyển đổi đã và tiếp tục rất quan trọng
trong các môi trường nghiên cứu. Tương tự, một công ty khởi nghiệp hy vọng xây dựng
một công tắc hoặc bộ điều khiển OpenFlow mới sẽ thấy rất hấp dẫn khi tận dụng công việc
hiện có trong triển khai mã nguồn mở hiện có, miễn là điều đó không ngăn cản sự phát
triển và khai thác thương mại của chính công ty sở hữu trí tuệ. Nếu một người là nhà điều
hành điện toán đám mây, hãy mày mò với bộ điều khiển OpenFlow ít quan trọng hơn nhiều
so với việc có một tổ chức hỗ trợ đáng tin cậy mà người ta có thể gọi trong trường hợp có
mạng thất bại.
Do đó, chúng tôi đề xuất ba danh mục lớn những người có khả năng sử dụng phần mềm
nguồn mở liên quan đến SDN:
• Nghiên cứu
• Nhà phát triển thương mại

8
• Nhà tổ chức mạng lưới
Giả sử rằng một phần mềm nguồn mở nhất định đáp ứng một cách chức năng các
yêu cầu của người dùng, mỗi lớp người dùng này sẽ có một mối quan tâm ghi đè khác
nhau. Một nhà phát triển trong một quảng cáo doanh nghiệp sẽ tập trung vào việc đảm bảo
rằng họ không kết hợp bất kỳ nguồn mở nào sẽ hạn chế khả năng của công ty anh ấy hoặc
cô ấy để khai thác sản phẩm của họ về mặt thương mại và nó sẽ bảo vệ trí tuệ của họ bất
động sản. GPL thường có vấn đề khi nguồn mở sẽ được sửa đổi và các sửa đổi do đó phải
được công bố công khai theo GPL. Nói chung, các nhà nghiên cứu có tính linh hoạt cao
nhất và chỉ đơn giản mong muốn rằng mã nguồn có sẵn miễn phí và có thể được sửa đổi
và phân phối cho bất kỳ mục đích nào. Tuy nhiên, thông thường các nhà nghiên cứu cũng
là những người ủng hộ mạnh mẽ cho sự phát triển của nguồn mở và do đó, có thể thích một
giấy phép copyleft bắt buộc người dùng đóng góp các sửa đổi của họ trở lại cộng đồng
nguồn mở. Cuối cùng, nhà khai thác mạng sẽ quan tâm nhất đến việc duy trì mạng ở trạng
thái hoạt động và do đó sẽ tập trung vào cách sản phẩm nguồn mở sẽ được hỗ trợ và mức
độ mạnh mẽ của nó.
Do bản chất phi thương mại cơ bản của mã nguồn mở, nó sẽ luôn là một thách thức
để xác định người chịu trách nhiệm khi lỗi xuất hiện. Điều này sẽ làm phát sinh các công
ty sẽ thương mại hóa hiệu quả nguồn mở, nơi giá trị mà chúng thêm vào không phải là sự
phát triển của nhưng để cung cấp các bản phát hành và cấu hình đã được thử nghiệm tốt
cũng như bàn gọi hỗ trợ. Một vài đơn giản là các nhà khai thác sẽ không còn thói quen mua
công nghệ cũ từ các NEM chính thống. Nhà cung cấp NEM của họ có sử dụng mã nguồn
mở hay không hầu như không liên quan đến nhà điều hành vì họ thực sự đang mua thiết bị
cộng với chính sách bảo hiểm và điều quan trọng là NEM có được điều này Công nghệ.
Mặt khác, trong khi nhà điều hành đám mây có thể không muốn chịu trách nhiệm hỗ trợ
của cơ sở hạ tầng chuyển mạch của họ, các ứng dụng nguồn mở, phần mềm kiểm tra hoặc
giám sát có thể phục vụ như ba điểm khởi đầu hữu ích cho các dự án được hỗ trợ tại địa
phương.
Về các dự án phần mềm được thảo luận trong chương này, một số ví dụ về cách
người dùng khác nhau các loại có thể sử dụng một số phần mềm bao gồm:
• Một công ty chuyển mạch phần cứng muốn chuyển đổi một công tắc kế thừa thành một
công tắc hỗ trợ OpenFlow có thể sử dụng mã chuyển đổi OpenFlow được trình bày trong
Phần 8 làm điểm bắt đầu.
• Một công ty muốn cung cấp bộ điều khiển OpenFlow thương mại có thể bắt đầu dự án
của họ với một trong những bộ điều khiển OpenFlow mà chúng tôi liệt kê trong Phần 9,
thêm các tính năng vào nó và làm cứng mã.

9
• Nhà điều hành đám mây có thể sử dụng một ứng dụng SDN nguồn mở, chẳng hạn như
những ứng dụng để bắt đầu thử nghiệm công nghệ OpenFlow trước khi quyết định đầu tư
vào Công nghệ.
Khi chúng tôi xem xét một số danh mục khác nhau của các dự án phần mềm trong
các phần sau, đối với mỗi chúng tôi sẽ liệt kê danh sách nào trong số ba lớp người dùng
này có khả năng chấp nhận một phần mềm cung cấp nhất định. Chúng tôi sẽ bây giờ cung
cấp bản kiểm kê về một số mã nguồn mở dành riêng cho SDN được sử dụng bởi các nhà
nghiên cứu, nhà phát triển, và các toán tử. Vì số lượng các dự án nguồn mở này khá lớn,
chúng tôi nhóm chúng thành danh mục cơ bản của công tắc, bộ điều khiển, điều phối, ứng
dụng và mô phỏng và thử nghiệm đã được mô tả trong hình 1. Chúng tôi tóm tắt các đóng
góp mã nguồn mở khác nhau trong mỗi danh mục này trong một số bảng trong các phần
sau. Chỉ trong những trường hợp mà dự án cụ thể có đóng một vai trò quan trọng bất thường
trong sự phát triển của SDN, chúng tôi sẽ mô tả chi tiết hơn về nó.

VII. OPENFLOW SOURCE CODE

Hình 2: Đặc điểm của openFlow source

Bảng 1: Mô tả các bộ điều khiển mã nguồn mở openFlow

10
Bảng 2: Thông tin chi tiết của các bộ điều khiển mã nguồn mở openflow
Hình 2 cho thấy, cả thiết bị và bộ điều khiển đều có thể tận dụng việc triển khai giao
thức OpenFlow. Có nhiều triển khai mã nguồn mở của OpenFlow.
Trong Bảng 2, chúng tôi cung cấp mô tả cơ bản về các triển khai có sẵn và trong
Bảng 1, chúng tôi liệt kê thông tin chi tiết liên quan đến nhà cung cấp mã, loại giấy phép,
mã nguồn mà nó được viết (nếu có liên quan) và lớp có khả năng của người dùng. Chúng
tôi đã chỉ định các lớp người dùng mục tiêu này bằng cách sử dụng một số tiêu chí, bao
gồm: (1) the nature of the license (bản chất của giấy phép), (2) the maturity of the code
(thời hạn sử dụng của mã) và (3) actual users (người dùng thực tế).
OpenFlow Reference: cơ sở mã tham chiếu theo dõi thông số kỹ thuật.
OpenFlow Faucet: triển khai mã nguồn của giao thức OpenFlow 1.0, được sử dụng
trong cả bộ điều khiển và công tắc.
OpenFlowJ: triển khai mã nguồn của giao thức OpenFlow. Cả Beacon và Flow
Visor đều kết hợp mã này, OpenFlowJ đáng chú ý ở chỗ bộ điều khiển Beacon, bản thân
nó là nguồn cung cấp một số triển khai bộ điều khiển khác, sử dụng mã OpenFlowJ.

VIII. SWITCH IMPLEMENTATIONS (Thực hiện chuyển đổi)


Việc triển khai bộ chuyển mạch SDN nguồn mở được tóm tắt trong Bảng 3 và 4.
Nhìn lại Hình 2. Việc triển khai switch nguồn mở có khả năng áp dụng cho cả việc triển
khai thiết bị phần cứng OpenFlow cũng như các thiết bị chuyển mạch ảo dựa trên phần
mềm. Trong các đoạn sau, sẽ xét ba cách triển khai công tắc được thảo luận rộng rãi nhất,
Open vSwitch (OVS), Indigo và OpenSwitch, cũng như cơ sở mã điểm truy cập không dây
OpenFlow duy nhất được liệt kê, Pantou.
8.1 OpenVswitch
Open vSwitch đôi khi được viết tắt là OVS như một công tắc ảo là triển khai mã
nguồn mở hoàn chỉnh và hoàn thiện nhất về mặt chuyển mạch của triển khai OpenFlow.
OVS đã được sử dụng làm logic điều khiển bên trong các công tắc phần cứng chính hãng,
cũng như một công tắc ảo chạy trong một siêu giám sát để cung cấp ảo hóa mạng. Trong
bối cảnh thứ hai, nhà phát triển của OVS, Nicira, đã vận chuyển OVS một thời gian với
sản phẩm NVP của mình. Kể từ khi VMware mua lại Nicira, sản phẩm NVP hiện được bán

11
trên thị trường với tên gọi NSX. OVS sử dụng OpenFlow để kiểm soát các luồng và
OVSDB để cấu hình. OVS sử dụng giao thức sFlow để lấy mẫu và giám sát gói. Mã đã
được chuyển để hoạt động với nhiều chipset chuyển mạch và do đó cũng tìm thấy một ngôi
nhà chung trong một số thiết bị chuyển mạch phần cứng.
Mục đích chính của OpenvSwitch là cung cấp lớp chuyển mạch cho môi
trường ảo hóa phần cứng (Hardware virtualization), trong khi hỗ trợ nhiều giao thức
và tiêu chuẩn được sử dụng trong hệ thống chuyển mạch thông thường.

Bảng 3: Mô tả các triển khai mã nguồn mở

Bảng 4: thông tin chi tiết của các mã nguồn mở
8.2 Indigo
Big Switch Networks cung cấp cơ sở mã chuyển mạch Indigo theo giấy phép công
khai của Eclipse. Đây là một động thái tự nhiên của Big Switch với mong muốn tạo ra một
hệ sinh thái các thiết bị chuyển mạch phần cứng hoạt động tốt với sản phẩm bộ điều khiển
OpenFlow thương mại của mình Big Network Controller.

12
Giống như OVS, Indigo được nhắm mục tiêu để sử dụng trên cả công tắc vật lý cũng
như công tắc siêu giám sát OpenFlow cho môi trường ảo hóa mạng. Đặc biệt, mã này có
thể được sử dụng để chuyển đổi công tắc lớp 2 hoặc 3 kế thừa thành công tắc OpenFlow.
Indigo được tích hợp với ASICs của bộ chuyển mạch Ethernet, nó có thể chuyển
đổi các luồng theo mô hình OpenFlow ở tốc độ dòng.
Chú ý Big Switch hiện đang tiếp thị phiên bản thương mại của Indigo có tên là
Switch Light.
Một điểm khác biệt khác giữa OVS và Indigo là Indigo được triển khai đặc biệt để
hỗ trợ OpenFlow, trong khi OVS có thể hỗ trợ các cơ chế điều khiển khác như OVSDB.
OVS có hỗ trợ rộng rãi hơn cho các tính năng ảo hóa mạng liên kết và bao gồm các
đóng góp phong phú hơn từ cộng đồng nguồn mở so với Indigo. Từ quan điểm thiết lập
tính năng, OVS dường như là một tập hợp các tính năng của Indigo.
7.3 OpenSwitch
OpenSwitch là một cộng đồng mới do HP thành lập, bao gồm các đóng góp từ
Accton, Broadcom, Intel, VMware, Qosmos và Arista. OpenSwitch được phát hành theo
giấy phép Apache 2.0.
Các tính năng khác biệt của OpenSwitch
- Nó là một nền tảng chuyển mạch lớp 2 và lớp 3 đầy đủ tính năng.
- Nó được thiết kế để trở thành mô-đun, có tính khả dụng cao và được.
xây dựng bằng các công cụ hiện đại cung cấp độ tin cậy cao hơn.
- Nó nguyên bản hỗ trợ OVSDB, OpenFlow và sFlow.
Pantou thực sự được thiết kế để biến các APs hàng hóa thành một AP hỗ trợ
OpenFlow. Điều này được thực hiện bằng cách tích hợp triển khai NOX OpenFlow với
OpenWRT.
OpenWRT là một dự án mã nguồn mở áp dụng nguyên tắc SDN opening up the
device để mở thiết bị lên nhiều lựa chọn phần cứng AP dành cho người tiêu dùng giá rẻ.
Sự với chức năng AP không dây cơ bản có sẵn trên phần cứng giá rẻ là một lợi ích cho các
nhà nghiên cứu muốn thử nghiệm với lĩnh vực SDN phần lớn nguyên vẹn được áp dụng
cho mạng 802.11.

IX. CONTROLLER IMPLEMENTATIONS (Việc thực hiện kiểm soát)


9.1 Bối cảnh lịch sử
Việc triển khai bộ điều khiển SDN nguồn mở được tóm tắt trong Bảng 5 và 6.
Bộ điều khiển Beacon dựa trên OpenFlowJ, một triển khai mã nguồn mở ban đầu
của OpenFlow được viết bằng Java. Dự án OpenFlowJ được tổ chức tại Đại học Stanford.

13
Beacon là một bộ điều khiển có ảnh hưởng lớn, cả về lượng lớn nghiên cứu và phát triển
OpenFlow ban đầu được thực hiện trên bộ điều khiển đó cũng như là cơ sở mã mà từ đó
mã nguồn bộ điều khiển Floodlight được phân nhánh.
Beacon là một bộ điều khiển OpenFlow mô-đun, đa nền tảng. Đến năm 2013,
Beacon đã được triển khai thành công trong một trung tâm dữ liệu thử nghiệm bao gồm 20
thiết bị chuyển mạch vật lý và 100 thiết bị chuyển mạch ảo. Nó chạy trên nhiều nền tảng
khác nhau, bao gồm cả các máy chủ Linux cao cấp. Trong khi mã bộ điều khiển cốt lõi
được bảo vệ bằng các điều khoản giống GPL-like, The FOSS (phần mềm nguồn mở) cho
phép các nhà phát triển mở rộng bộ điều khiển với các ứng dụng có thể được cấp phép theo
các điều khoản thương mại có lợi hơn. Beacon’s ổn định phân biệt nó với các bộ điều khiển
khác được sử dụng chủ yếu cho mục đích nghiên cứu.

Bảng 5: Mô tả các bộ điều khiển

14
Bảng 6: Bộ điều khiển nguồn mở lịch sử và hiện tại
- NOX là bộ điều khiển OpenFlow ban đầu. Nó phục vụ như một nền tảng điều
khiển mạng, cung cấp một giao diện lập trình cấp cao để quản lý và phát triển
các ứng dụng điều khiển mạng.
- Beacon là bộ điều khiển OpenFlow nhanh, đa nền tảng, mô-đun, dựa trên
Java, hỗ trợ cả hoạt động dựa trên sự kiện và hoạt động theo luồng
- POX: POX là một nền tảng phần mềm mạng được viết bằng Python., hoạt
động như một bộ điều khiển OpenFlow hỗ trợ OpenFlow 1.0 và bao gồm hỗ
trợ đặc biệt cho các tiện ích mở rộng Open vSwitch/Nicira.
Các mô-đun của Beacon có thể được khởi động, dừng và thậm chí được cài đặt trong
khi các thành phần khác của Beacon tiếp tục hoạt động. Bằng chứng về tác động của cơ sở
mã này đối với bộ điều khiển OpenFlow được tìm thấy trong tên của hai trong số các bộ
điều khiển nguồn mở có ảnh hưởng hơn đang được ngành công nghiệp sử dụng ngày nay,
Floodlight và OpenDaylight, cả hai đều lặp lại ý nghĩa chiếu sáng của tên Beacon Trong
8 Floodlight
Floodlight đã được phân nhánh từ Beacon trước khi Beacon được cung cấp theo mô
hình cấp phép GPL/FOSS hiện tại. Vì bản thân Floodlight được cấp phép theo giấy phép
Apache 2.0, nó không phải tuân theo các điều khoản copyleft của giấy phép Beacon và
nguồn do đó có nhiều khả năng được sử dụng bởi những người nhận mã, những người cần
bảo vệ tài sản trí tuệ của các sản phẩm phái sinh của họ trên cơ sở mã. Floodlight cũng
được tích hợp với OpenStack.
Một số bộ điều khiển OpenFlow thương mại đang được phát triển bằng cách sử
dụng Floodlight làm điểm khởi đầu. Điều này bao gồm bộ điều khiển thương mại của riêng
Big Switch, bộ điều khiển mạng lớn. Chiến lược kinh doanh của Big Switch xoay quanh

15
bộ điều khiển nguồn mở rất phức tạp. Họ cung cấp một nhóm ứng dụng hoạt động với bộ
điều khiển Floodlight. Mặc dù bộ điều khiển thương mại của họ sẽ không phải là mã nguồn
mở, nhưng chúng hứa hẹn sẽ duy trì khả năng tương thích ở cấp độ giao diện giữa phiên
bản thương mại và mã nguồn mở. Điều này phản ánh một cách tiếp cận khá cổ điển để xây
dựng một doanh nghiệp phần mềm, đó là tặng một phiên bản mã nguồn mở của chức năng
để khởi động cộng đồng người dùng công nghệ, hy vọng rằng nó đạt được sức hút và sau
đó cung cấp một phiên bản thương mại có thể được nâng cấp bán cho những người sử dụng
tốt yêu cầu hỗ trợ thương mại và các tính năng mở rộng. Big Switch đã tham gia dự án
OpenDaylight, quyên góp bộ điều khiển Floodlight của họ cho nỗ lực này, với hy vọng
rằng điều này sẽ phổ biến hơn nữa cho Floodlight.
Floodlight là bộ điều khiển OpenFlow dựa trên Java được cộng đồng nhà phát
triển lớn nhất thế giới thử nghiệm và hỗ trợ cho bộ điều khiển SDN., hỗ trợ một loạt
các công tắc ảo dựa trên hypervisor như Open vSwitch và hệ sinh thái đang phát
triển của các công tắc OpenFlow.
9.3 OpenDayLight
Dự án OpenDaylight (ODL) được thành lập vào đầu năm 2013 để cung cấp một
khung SDN mã nguồn mở nhằm thúc đẩy và tăng cường phổ biến đổi mới trong thiết kế
và thực hiện một tiêu chuẩn công khai và minh bạch về mạng do phần mềm SDN xác định.
Hiện tại dự án có sự hỗ trợ của các công ty lớn và được công nhận bao gồm Cisco,
Brocade, Ericsson, Citrix, Intel, HP, Dell và Red Hat. Không giống như Open Networking
Foundation (ONF), ODL chỉ coi OpenFlow là một trong nhiều lựa chọn thay thế để cung
cấp phần mềm kiểm soát thiết bị mạng. Một phần của việc cung cấp ODL bao gồm một bộ
điều khiển mã nguồn mở.
Big Switch đã tham gia và tặng bộ điều khiển Floodlight của họ cho ODL, dự đoán
Floodlight sẽ trở thành thành phần OpenFlow chính của dự án. Kỳ vọng này nhanh chóng
tan vỡ, khi ODL quyết định lấy Bộ điều eXtensible Network Controller (XNC) của Cisco
làm trung tâm và chỉ đơn thuần thêm công nghệ Floodlight vào lõi đó. Sau đó, Big Switch
đã giảm bớt sự tham gia của mình vào dự án ODL và rút lui hoàn toàn.
9.4 ONOS
Nhiều nhà cung cấp dịch vụ và nhà cung cấp vận tải lớn cùng đầu tư vào phát triển
ODL cũng đang đầu tư vào ONOS.Nhiều công ty trong số này đã góp phần vào việc hình
thành ONOS như một đối thủ cạnh tranh với ODL. Do đó, không có gì ngạc nhiên khi
ONOS nhanh chóng trở thành một nhân tố chính trong cuộc tranh luận về bộ điều khiển
SDN nguồn mở.
Giống như ODL, ONOS được hỗ trợ bởi một số nhà cung cấp dịch vụ và nhà cung
cấp lớn, bao gồm Alcatel-Lucent, AT&T, China Unicom, Ciena, Cisco, Ericsson, Fujitsu,
Huawei, Intel, NEC, NTT Communications, v.v. Quỹ Linux cũng đã ký kết hợp tác chiến

16
lược với dự án ONOS. Do đó, nền tảng hỗ trợ cả ODL và ONOS. Hai bộ điều khiển về cơ
bản có các khu vực trọng tâm khác nhau. ODL nhấn mạnh các giao thức kế thừa trong khi
ONOS nhấn mạnh OpenFlow.
Một cách để so sánh mức độ hoạt động của ODL so với ONOS là xem số lượng mã
và số lượng người đóng góp cho các dự án mã nguồn mở tương ứng của họ. BlackDuck
Open HUB theo dõi các dự án mã nguồn mở, tính toán các số liệu thống kê như những dự
án đã được trích dẫn trước đó. Tại thời điểm viết bài này, các con số cho cả hai dự án trong
12 tháng trước đó được thể hiện trong Bảng 7. Rõ ràng từ bảng này, ODL dẫn đầu đáng kể
về số lượng người đóng góp và dòng mã, mặc dù cũng đúng là ONOS xuất hiện ít hơn
ODL.

Bảng 7: Thống kê đóng góp năm 2015 cho OpenDaylight và ONOS

X. SDN APPLICATIONS
Ứng dụng SDN là một chương trình phần mềm được thiết kế để thực hiện một tác
vụ trong môi trường mạng (SDN) do phần mềm xác định. Các ứng dụng SDN có thể thay
thế và mở rộng dựa trên các chức năng được triển khai thông qua phần sụn trong các thiết
bị phần cứng của mạng thông thường. Một số ứng dụng SDN nguồn mở hiện đang sử dụng
rộng rãi. Các ứng dụng SDN mã nguồn mở được trình bày ở phần dưới. Bản chất của thuật
ngữ ứng dụng là chung chung, vì vậy không thể liệt kê tất cả các loại ứng dụng SDN có
thể có. Tuy nhiên, bốn chủ đề chính xuất hiện thu hút sự chú ý sớm nhất đối với các ứng
dụng SDN. Đó là bảo mật, định tuyến, quản lý mạng và ảo hóa chức năng mạng (NFV).
Có ba ví dụ liên quan đến định tuyến là TheBIRD, Quagga là một triển khai định tuyến mã
nguồn mở cho mục đích chung phù hợp để sử dụng trong môi trường SDN và Routeflow
dành riêng cho SDN. Ở đây mô tả một ví dụ cụ thể về mã nguồn mở đang được sử dụng
để triển khai mạng SDN hoàn chỉnh trong đó Routeflow và Quagga được sử dụng cùng
nhau. Avior là một ứng dụng quản lý mạng cho bộ điều khiển Floodlight.
OpenFlow có tiềm năng lớn để cung cấp thế hệ bảo mật mạng tiếp theo. Hai ví dụ
về điều này trong bảng 8 là FortNOX và Fresco ứng dụng NFV là lớp ứng dụng ảo hóa
chức năng dịch vụ mạng được thực hiện bởi một thiết bị độc lập trong các mạng kế thừa.
Ví dụ về các thiết bị như vậy là bộ cân bằng tải lưu lượng và hệ thống phát hiện xâm nhập.
FlowScale là một ứng dụng NFV triển khai bộ cân bằng tải lưu lượng như một ứng dụng
bộ điều khiển OpenFlow. Một số ứng dụng nguồn mở được đề cập trong phần này là ứng
dụng OpenFlow, trong đó các vấn đề về miền cụ thể được giải quyết thông qua các ứng
17
dụng giao tiếp với bộ điều khiển OpenFlow thông qua giao diện hướng bắc của nó. Tuy
nhiên, không phải tất cả các ứng dụng SDN đều là ứng dụng OpenFlow.

Các dự án cộng đồng mã nguồn mở SDN


Mối quan tâm gần đây là tập hợp các dự án từ cộng đồng SDN Nguồn mở (OSSDN), có
mục đích tài trợ và phát triển các giải pháp SDN mở để cung cấp việc áp dụng SDN nhiều
hơn. Các dự án này được liệt kê trong bốn mục cuối cùng của bảng 8. Các dự án từ cộng
đồng này hiện bao gồm: Giao thức chuyển tiếp độc lập (PIF), dự án Boulder (giao diện
hướng bắc dựa trên ý định (NBI)), dự án Atrium (phân phối SDN mã nguồn mở) và dự án
Aspen (đặc tả giao diện phương tiện truyền thông thời gian thực). Những dự án này nhằm
giúp khởi động sự phát triển của các giải pháp SDN.
Nguồn mở SDN bao gồm sự lãnh đạo từ ONF, Tail-f/Cisco, mạng chuyển mạch lớn,
Infoblox và các tổ chức khác. Đây là một sáng kiến mới và có thể góp phần vào việc áp
dụng SDN trên quy mô rộng hơn trong những năm tới.
Một số dự án mã nguồn mở SDN:
1. Routeflow: Tích hợp định tuyến IP với bộ điều khiển OpenFlow dựa trên Dự án
Quagflow. RouteFlow là một dự án mã nguồn mở để cung cấp các dịch vụ định
tuyến IP ảo hóa qua phần cứng hỗ trợ OpenFlow. Một kịch bản sử dụng
RouteFlow điển hình bao gồm ứng dụng bộ điều khiển OpenFlow (RFProxy),
máy chủ RouteFlow độc lập (RFServer) và môi trường mạng ảo tái tạo kết nối
của cơ sở hạ tầng vật lý và chạy các công cụ định tuyến IP (ví dụ: Quagga).
2. Quagga: Cung cấp các giao thức định tuyến IP. Quagga là một bộ phần mềm
định tuyến, cung cấp triển khai OSPFv2, OSPFv3, RIP v1 và v2, RIPng và BGP-
4 cho các nền tảng Unix, đặc biệt là FreeBSD, Linux, Solaris và NetBSD.
3. Avior: Là GUI quản lý mạng được thiết kế cho mạng OpenFlow, tập trung vào
tính linh hoạt và khả năng sử dụng với nhiều thống kê mạng động và các công
cụ quản lý hữu ích. Ví dụ như ứng dụng quản lý cho Floodlight.
4. OSCARS (On-Demand Secure Circuits and Advance Reservation System):
OSCARS là một sản phẩm mã nguồn mở có sẵn miễn phí. OSCARS là một hệ
thống phần mềm tiên tiến để đặt trước thời gian và tài nguyên trên các mạng
khoa học tốc độ cao, được sử dụng bởi các nhóm lớn các nhà nghiên cứu để chia
sẻ một lượng lớn dữ liệu. So với các mạng "hàng hóa", các mạng khoa học phải
vận chuyển một lượng lớn dữ liệu nhanh chóng và hoàn hảo. Có thể mất vài tuần
hoặc vài tháng để cấu hình mạng theo cách thủ công nhằm hỗ trợ các hợp tác
khoa học lớn liên quan đến siêu máy tính, thiết bị tiên tiến và các nhà khoa học
được phân phối trên khắp thế giới. OSCARS khéo léo cắt bỏ sự phức tạp này và

18
có thể định cấu hình và đặt trước một bộ kết nối mạng tùy chỉnh, đáng tin cậy
chỉ trong vài phút chứ không phải vài tuần.
5. The BIRD: Hỗ trợ IPv4 và IPv6 bằng cách chạy các daemon riêng biệt. Nó thiết
lập nhiều bảng định tuyến và sử dụng các giao thức định tuyến BGP, RIP và
OSPF, cũng như các tuyến đường được xác định tĩnh.
6. FlowScale: Bộ cân bằng tải lưu lượng truy cập như một dịch vụ sử dụng
OpenFlow. FlowScale là một dự án để phân chia và phân phối lưu lượng qua
nhiều cổng chuyển mạch vật lý. FlowScale sao chép chức năng trong các thiết
bị cân bằng tải nhưng sử dụng công tắc Top of Rack (ToR) để phân phối lưu
lượng truy cập. Sử dụng phần mềm để xử lý đặc điểm mặt phẳng điều khiển
nhưng chuyển phần cứng để thực hiện chuyển tiếp vừa mang lại tính linh hoạt
cao vừa cho phép chi phí thấp, triển khai thông lượng cao.
7. Frenetic: Cung cấp ngôn ngữ để lập trình bộ điều khiển OpenFlow trừu tượng
hóa các chi tiết cấp thấp liên quan đến việc giám sát, chỉ định và cập nhật các
chính sách chuyển tiếp gói.
8. FortNOX: Khung bảo mật ban đầu được kết hợp với bộ điều khiển NOX, bây
giờ tích hợp trong SE-Floodlight. Mở rộng bộ điều khiển OpenFlow thành một
dịch vụ hòa giải an ninh và có thể dung hòa các quy tắc mới chống lại các quy
tắc đã thiết lập chính sách.
9. FRESCO: Ứng dụng bảo mật được tích hợp với FortNOX cung cấp ngôn ngữ
kịch bản cụ thể về bảo mật cho các mô-đun giảm thiểu và phát hiện bảo mật
nguyên mẫu nhanh chóng.
10. Atrium: Tích hợp các thành phần mã nguồn mở độc lập. Nó là một tập hợp các
thành phần mã nguồn mở được tích hợp theo chiều dọc, cùng nhau tạo thành một
ngăn xếp SDN hoàn chỉnh. Mục tiêu của nó là: Thu hẹp khoảng cách tích hợp
lớn của phần tử, vượt qua khoảng cách lớn về khả năng tương tác và phối hợp
chặt chẽ với các nhà khai thác mạng về các trường hợp sử dụng có thể triển khai.
11. PIF: Biểu diễn trung gian chuyển tiếp độc lập với giao thức cho các đường dữ
liệu.
12. Boulder: Giao diện hướng bắc dựa trên ý định (NBI). NBI đóng một vai trò quan
trọng trong việc thúc đẩy việc áp dụng SDN vì nó cho phép các nhà phát triển
tự do phát triển các ứng dụng tạo doanh thu của họ mà không bị ảnh hưởng và
hạn chế bởi sự phức tạp của các mạng bên dưới. Để làm như vậy, NBI phải cho
phép các ứng dụng thể hiện các yêu cầu và rang buộc của chúng bằng ngôn ngữ
dành riêng cho ứng dụng của chúng và bộ điều khiển SDN phải dịch các yêu cầu
đó sang ngôn ngữ cụ thể của mạng SDN để cung cấp tài nguyên và dịch vụ mạng
nhằm đáp ứng các yêu cầu của ứng dụng.
13. Aspen: Đặc điểm kỹ thuật giao diện phương tiện thời gian thực (ONF). Aspen
bắt nguồn từ một ý tưởng trong cộng đồng truyền thông hợp nhất, muốn sử dụng
SDN để cung cấp dịch vụ hiệu quả hơn. Các doanh nghiệp triển khai cơ sở hạ

19
tầng truyền thông hợp nhất thường có một số phần quản lý cần biết luồng nào là
quan trọng và chất lượng dịch vụ nào nên được cung cấp, và do đó có thể duy trì
nhận thức về QoS mà không cần phải tin tưởng vào việc đánh dấu QoS trên tất
cả các gói, điều này sẽ cực kỳ phức tạp để quản lý và có thể được áp dụng một
cách gian lận. Aspen nhằm mục đích giải quyết vấn đề này.

Bảng 8. Open Source SDN Applications: Details

XI. LẮP ĐẶT VÀ ĐÁNH GIÁ MẠNG


Có nhiều tài nguyên máy tính, lưu trữ và mạng có sẵn trong trung tâm dữ liệu. Khi ảo hóa
được áp dụng cho các tài nguyên này, số lượng tài nguyên có thể gán sẽ bùng nổ lên quy
mô khổng lồ. Điều phối là công nghệ cung cấp khả năng lập trình các hành vi tự động trong
mạng để điều phối các tài nguyên có thể gán này để hỗ trợ các ứng dụng và dịch vụ. Dưới
đây, liệt kê một số triển khai mã nguồn mở quan trọng hơn có sẵn để cung cấp chức năng
điều phối. Điều phối mạng liên quan trực tiếp đến ảo hóa mạng. Thuật ngữ điều phối được
sử dụng khi nó trở nên rõ ràng rằng việc ảo hóa phần mạng của một trung tâm dữ liệu phức
tạp, đã chạy hầu như các thành phần máy tính và lưu trữ của nó, liên quan đến sự phối hợp
chính xác của nhiều bộ phận độc lập. Không giống như mạng kế thừa, nơi độc lập các bộ
phận hoạt động theo kiểu phân tán và độc lập thực sự, ảo hóa mạng yêu cầu một thực thể
tập trung điều phối các hoạt động của chúng ở mức độ chi tiết rất tốt giống như một nhạc
trưởng điều phối thời điểm chính xác của bộ gõ sấm sét xen vào đó là phần nhập đậm của
phần kèn đồng trong một bản giao hưởng dàn nhạc. Các giải pháp điều phối SDN và ảo
hóa mạng mã nguồn mở là được tóm tắt trong bảng 9 và 10.

20
Product name Description
FlowVisor Tạo các phần tài nguyên mạng, ủy quyền kiểm soát từng phần, nghĩa
là cho phép nhiều bộ điều khiển OpenFlow chia sẻ một tập hợp các
công tắc vật lý.
Maestro Cung cấp giao diện cho các ứng dụng điều khiển mạng để truy cập
và sửa đổi mạng.
OESS Cung cấp cấp phép VLAN do người dùng kiểm soát bằng OpenFlow
công tắc.
NetL2API Cung cấp API chung để điều khiển công tắc lớp 2 thông qua CLI của
nhà cung cấp, không phải OpenFlow và có thể sử dụng để ảo hóa
mạng không phải OpenFlow.
Neutron Thành phần mạng của hệ điều hành OpenStack hỗ trợ nhiều plugin
mạng, bao gồm cả OpenFlow.
Bảng 9. Open-Source Orchestration Solutions: Description

Bảng 10. Open-Source Orchestration Solutions: Details

XII. SIMULATION, TESTING, AND TOOLS


Trong phần này, trình bày về một số triển khai mã nguồn mở quan trọng hơn có sẵn liên
quan đến mô phỏng mạng, thử nghiệm và các công cụ liên quan đến SDN. Các giải pháp
SDN nguồn mở có sẵn trong lĩnh vực này được tóm tắt trong bảng 11 và 12. Một số dự án
này cung cấp phần mềm có thể có liên quan trong các môi trường không tìm kiếm, đặc biệt
là Cbench, OFLOPS và OFTEST. Mininet đã được các nhà nghiên cứu SDN sử dụng rộng
rãi để mô phỏng các mạng chuyển mạch và máy chủ lớn và lưu lượng truy cập có thể khiến
bộ điều khiển, chẳng hạn như bộ điều khiển OpenFlow, tạo, sửa đổi và loại bỏ số lượng
lớn các luồng.

21
Product Name Description
Cbench Trình chuẩn bộ điều khiển OpenFlow. Mô phỏng một số biến
chuyển, gửi PACKET_IN thông báo tới bộ điều khiển đang được
kiểm tra từ các công tắc và quan sát phản hồi từ bộ điều khiển
OFLOPS Công cụ đánh giá công tắc OpenFlow. Một bộ điều khiển độc lập gửi
và nhận tin nhắn đến/từ một công tắc OpenFlow để mô tả đặc điểm
của nó hiệu suất và quan sát phản hồi từ bộ điều khiển
Mininet Mô phỏng các mạng chuyển mạch và máy chủ lớn. Không dành riêng
cho SDN, nhưng được sử dụng rộng rãi bởi các nhà nghiên cứu SDN,
những người mô phỏng công tắc OpenFlow và tạo ra lưu lượng truy
cập cho bộ điều khiển OpenFlow
OFTest Kiểm tra chuyển đổi sự tuân thủ với các phiên bản giao thức
OpenFlow lên đến 1.2
Bảng 11: Open-Source Test and Simulation: Description

Bảng 12: Open-Source Test and Simulation: Details

XIII. PHẦN MỀM MÃ NGUỒN MỞ CLOUD


13.1 OpenStack
Mã nguồn mở OpenStack là một nền tảng mã nguồn mở rộng rãi cho điện toán đám mây,
được phát hành theo giấy phép Apache. Trong hình 3 chỉ ra vai trò của OpenStack cũng
như các thành phần của nó. OpenStack cung cấp ảo hóa ba thành phần chính của trung tâm
dữ liệu, máy tính, lưu trữ và mạng. Hàm tính toán được gọi là Nova. Nova làm việc với
các trình giám sát chính có sẵn để quản lý nhóm máy ảo. Ví dụ về các siêu giám sát có thể
được sử dụng với OpenStack bao gồm KVM, XenServer và VMware trong số những người
khác. Các chức năng lưu trữ là Swift và Cinder. Swift cung cấp dung lượng lưu trữ dự
phòng để các máy chủ lưu trữ có thể được sao chép hoặc khôi phục theo ý muốn với sự

22
phụ thuộc tối thiểu vào các ổ lưu trữ hàng hóa cung cấp dung lượng lưu trữ vật lý thực tế.
Cinder cung cấp các phiên bản máy tính OpenStack với quyền truy cập vào tập tin và chặn
các thiết bị lưu trữ. Quyền truy cập này có thể được sử dụng với hầu hết các nền tảng lưu
trữ phổ biến trong điện toán đám mây ngày nay.

Hình 3: OpenStack components and roles


Horizon cung cấp một bảng điều khiển để truy cập, cung cấp và quản lý các tài nguyên dựa
trên đám mây trong môi trường OpenStack. Có hai dịch vụ được chia sẻ Keystone và
Glance. Keystone cung cấp dịch vụ xác thực người dùng và có thể tích hợp với các dịch vụ
nhận dạng hiện có như LDAP. Glance cung cấp khả năng sao chép và lưu hình ảnh máy
chủ để nó có thể được sử dụng để sao chép các máy chủ lưu trữ hoặc máy tính khi các dịch
vụ được mở rộng. Nó cũng cung cấp khả năng sao lưu cơ bản cho những hình ảnh này.
Thành phần ảo hóa mạng của OpenStack được cung cấp bởi Neutron và do đó, là thành
phần có liên quan nhất đến cuộc thảo luận của chúng ta về SDN. Lưu ý rằng Neutron trước
đây được gọi là Quantum.
Về mặt kiến trúc, vai trò của Neutron trong OpenStack được thể hiện dưới dạng một số
Plugin cung cấp giao diện giữa mạng và sự cân bằng của các thành phần điện toán đám
mây OpenStack. Trong khi OpenStack không bị giới hạn trong việc sử dụng Open SDN
làm giao diện mạng của nó. Open SDN được bao gồm như một trong những tùy chọn mạng.
Trong hình 3, ta thấy rằng Neutron có thể giao tiếp với API hướng bắc của bộ điều khiển
OpenFlow. Do đó, Neutron Plugin có thể cung cấp lớp trừu tượng mạng cho một mạng hỗ
trợ OpenFlow. Cũng giống như OpenFlow có thể hoạt động với nhiều ứng dụng điều khiển
mạng khác nhau thông qua API hướng bắc, thì OpenStack’s Neutron cũng có thể có nhiều

23
loại Plugin mạng khác nhau. Do đó, OpenStack và OpenFlow có thể kết hợp để cung cấp
giải pháp mạng toàn diện cho điện toán đám mây, nhưng cả hai đều không bị ràng buộc
độc quyền với giải pháp khác. Như trong Hình 4, OpenStack có thể sử dụng các Neutron
Plugin để điều khiển các thiết bị mạng kế thừa, một bộ điều khiển OpenFlow điều khiển
các công tắc vật lý hỗ trợ OpenFlow hoặc các công tắc ảo như OVS. Ví dụ: việc triển khai
giao diện OVS bao gồm chính plugin hỗ trợ các API hướng bắc Neutron tiêu chuẩn và một
tác nhân nằm trên các nút tính toán Nova trong kiến trúc OpenStack. Một phiên bản OVS
chạy cục bộ trên nút tính toán đó và được điều khiển thông qua tác nhân đó. OpenStack
cho thấy một bản tóm tắt của một nhóm mạng ảo. Điều này có liên quan chặt chẽ đến sự
trừu tượng hóa mạng ảo mà chúng ta đã thảo luận liên quan đến giải pháp SDN qua Lớp
phủ. Vì vậy, ví dụ, với OpenStack người ta có thể tạo một mạng và sử dụng mạng đó cho
một đối tượng thuê cụ thể, mạng này ánh xạ khá tốt tới khái niệm giải pháp SDN qua Lớp
phủ. OpenStack có các plugin cho nhiều giải pháp lớp phủ hiện có.

Hình 4: OpenStack plugins


13.2 CloudStack
CloudStack là sự thay thế của Apache Foundation cho OpenStack. Tương tự như plugin
OpenStack’s Neutron được mô tả trước đây, CloudStack hỗ trợ một plugin gốc cho công
tắc OVS. Điều này cung cấp hỗ trợ trực tiếp cho Open SDN trong CloudStack. Trong khi
hai triển khai đám mây nguồn mở cạnh tranh đã cùng tồn tại trong vài năm, OpenStack gần
đây đang nhận được nhiều hỗ trợ hơn đáng kể so với CloudStack.
CloudStack được một số nhà cung cấp dịch vụ sử dụng để cung cấp dịch vụ đám mây công
cộng và nhiều công ty cung cấp dịch vụ đám mây tại chỗ (riêng tư) hoặc như một phần của
giải pháp đám mây lai. CloudStack là giải pháp chìa khóa trao tay bao gồm toàn bộ "ngăn
xếp" các tính năng mà hầu hết các tổ chức muốn có với đám mây IaaS: điều phối máy tính,
Network-as-a-Service, quản lý tài khoản và người dùng, API gốc đầy đủ và mở, kế toán tài
24
nguyên và Giao diện người dùng (UI) hạng nhất. CloudStack hiện hỗ trợ các siêu giám sát
phổ biến nhất: VMware, KVM, Citrix XenServer, Xen Cloud Platform (XCP), máy chủ
Oracle VM và Microsoft Hyper-V. Người dùng có thể quản lý đám mây của mình bằng
giao diện Web dễ sử dụng, các công cụ dòng lệnh và API RESTful đầy đủ tính năng.
Ngoài ra, CloudStack cung cấp một API tương thích với AWS EC2 và S3 cho các tổ chức
muốn triển khai các đám mây lai.

XIV. VÍ DỤ VỀ ÁP DỤNG MÃ NGUỒN MỞ SDN


Dự án Routeflow

Hình 5. Routeflow network topology


Dự án Routeflow cung cấp một trường hợp sử dụng tuyệt vời cho mã SDN nguồn mở. Dự
án Routeflow đã phát triển một mạng thử nghiệm SDN hoàn chỉnh chỉ sử dụng phần mềm
nguồn mở. Các mục tiêu của dự án là chứng minh:
• Một con đường di chuyển tiềm năng từ mạng lớp 3 truyền thống sang mạng lớp 3
dựa trên OpenFlow.
• Một khung mã nguồn mở thuần túy hỗ trợ các khía cạnh khác nhau của ảo hóa mạng
• Định tuyến IP dưới dạng dịch vụ
• Thiết bị định tuyến kế thừa tương thích với định tuyến nội bộ gi miền được đơn giản
hóa triển khai.
Hình 5 mô tả cấu trúc liên kết mạng mà dự án sử dụng để chứng minh con đường di chuyển
được đề xuất của họ từ mạng của bộ định tuyến kế thừa sang OpenFlow. Điều này đặc biệt
quan trọng vì nó chứng tỏ phương pháp thực tế để tích hợp thế giới phức tạp của các giao
thức định tuyến với mô hình OpenFlow.

25
Internet ngày nay hoàn toàn phụ thuộc vào dòng giao thức định tuyến này. Vì vậy, không
có cơ chế rõ ràng để tích hợp thông tin họ mang vào mạng OpenFlow, việc sử dụng
OpenFlow sẽ vẫn bị hạn chế đối với việc triển khai trung tâm dữ liệu biệt lập. Trong hình
5, chúng ta thấy mạng thử nghiệm được kết nối với đám mây Internet với thông tin định
tuyến BGP được đưa vào mạng thử nghiệm thông qua kết nối đó. Bản thân mạng thử
nghiệm bao gồm một công tắc lớp 2/lớp 3 kế thừa để truyền thông tin định tuyến tới phần
OpenFlow của mạng thử nghiệm qua OSPF.
Trong mạng thử nghiệm, một đám mây gồm bốn công tắc OpenFlowenabled dưới sự điều
khiển của bộ điều khiển OpenFlow. Bộ điều khiển OpenFlow này đã được kết nối đến máy
chủ RouteFlow. Máy chủ RouteFlow, đến lượt nó, thu thập thông tin bảng định tuyến từ
thiết bị chuyển mạch ảo trong đám mây liền kề. Hình 6 cho thấy các thành phần tương tự
này trong một kiến trúc hệ thống quan điểm. Điều quan trọng là tất cả các thành phần được
trình bày trong Hình 6 đều có nguồn gốc từ mã nguồn mở các dự án, mặc dù không phải
tất cả đều dành riêng cho SDN.
Máy chủ Routeflow thông qua giao thức Routeflow. Máy chủ Routeflow do đó duy trì kiến
thức toàn cầu về các bảng định tuyến phân tán riêng lẻ trong mỗi bộ định tuyến ảo và có
thể sử dụng thông tin này để ánh xạ các luồng tới cấu trúc liên kết thực của các thiết bị
chuyển mạch hỗ trợ OpenFlow. Thông tin này được truyền từ máy chủ Routeflow tới proxy
Routeflow, là một ứng dụng bộ điều khiển OpenFlow chạy trên cùng một máy với bộ điều
khiển OpenFlow. Tại thời điểm này, thông tin định tuyến đã được dịch sang bộ giá trị
OpenFlow có thể được lập trình trực tiếp vào các công tắc OpenFlow bằng giao thức
OpenFlow.

Hình 6. Routeflow architecture.

26
Quá trình này dẫn đến việc phần cứng hỗ trợ OpenFlow chuyển tiếp các gói giống như
chúng sẽ làm nếu chúng tuân theo các bảng định tuyến cục bộ được điền bởi các phiên bản
cục bộ của OSPF và BGP đang chạy trên mỗi chuyển mạch, như trường hợp của các chuyển
mạch lớp 3 kế thừa. Các luồng được lập trình một cách chủ động do thông tin về tuyến
đường bên ngoài.

XV. KẾT LUẬN


Các gốc của SDN được căn chỉnh với chuyển động mã nguồn mở. Thật vậy, cái gọi là
Open SDN trong tiểu luận này vẫn được liên kết chặt chẽ với cộng đồng mã nguồn mở.
Ngoài việc xem xét các dự án phần mềm mở liên quan đến SDN được biết đến nhiều hơn,
tiểu luận này cung cấp thông tin chi tiết về nhiều biến thể của giấy phép nguồn mở đang
được sử dụng phổ biến. Các giấy phép nguồn mở khác nhau có thể ít nhiều phù hợp với
một tổ chức nhất định. Ở đây đã xác định ba lớp người dùng rộng rãi có các yêu cầu và
mục tiêu rất khác nhau khi họ sử dụng phần mềm nguồn mở và đã giải thích lý do tại sao
một số giấy phép nguồn mở nhất định có thể không phù hợp với một số lớp người dùng
nhất định. Dù tương lai thương mại của phần mềm nguồn mở có nằm trong hệ sinh thái
SDN đang mở rộng hay không, thì rõ ràng là vạch sáng tạo đã sinh ra bản thân SDN có thể
không bao giờ tồn tại nếu không có phần mềm mã nguồn mở và sự chia sẻ những ý tưởng
mới đi kèm với nó.

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


1. Software Defined Networks (2016) – Paul Göransson, Chuck Black, Timothy
Culver.
2. Bài giảng báo hiệu và điều khiển kết nối – Hoàng Trọng Minh
3. https://vi.wikipedia.org/.
4. What is Software-Defined Networking (SDN)? Definition from SearchNetworking (techtarget.com)
5. Bùi Trung Thành. SOFTWARE DEFINED NETWORKING – Công nghệ mới
làm thay đổi cấu trúc mạng.

27

You might also like