2.1. SDN và giao thức OpenFlow
Với logic điều khiển phi tập trung, rất khó quản lý và phát triển của mạng truyền thống. Mang SDN (Software Define Networking) hay mạng điều khiển bang phan mềm là một phương pháp tiếp cận mới, tách đôi thành phan điều khiến (Control Plane) và thành phan dit liệu (Data Plane) dé đạt được kiến trúc điều khiến tập trung logic cho phép lập trình dé cấu hình mạng.
Một hệ thống mạng bao gồm nhiều thực thé (thiết bị định tuyến, thiết bị chuyển mạch,
các đường kết nối, các máy chủ cuối ...) có thê được quản lý và lập trình riêng với các logic chuyên tiếp khác nhau. Tuy nhiên việc quản lý riêng lẻ từng thực thể này trong một hệ thống mạng lớn làm tăng mức độ quản lý cho toàn bộ mạng, từ đó là
tăng chi phí duy trì và bảo trì mạng. Giao thức quản lý mạng đơn giản (Simple
Network Management Protocol - SNMP) ra đời vào năm 1988 đã giải quyết các van
dé kế trên bằng cách cung cấp kha năng giám sát và cau hình từ xa cho các thực thé
trong mạng. Tuy nhiên, SNMP không phù hợp với các mạng có tính linh hoạt cao,
các tập lệnh của SNMP rất tốn kém và dé lỗi trong việc duy trì vi nó thiếu khả năng lập trình cho các API. Thế hệ quản lý mạng tiếp theo được thê hiện băng các kiến trúc hướng mô hình hoạt động với các hệ thống quy mô động như đám mây và trung tâm
dữ liệu. Các kiến trúc này cung cấp API và mô hình để mô tả không chỉ các yếu tố mạng mà còn cả các chính sách, dịch vụ và giao dịch trong mạng. Một sỐ giao thức mới này đang nhanh chóng trở nên phô biến, bao gồm RESTCONF, NETCONF và
OpenFlow.
2.1.1. SDN
Software Defined Networking (SDN) hay mạng được định nghĩa bằng phần mềm là một kiến trúc mạng mới nổi (2011) là một phương pháp tiếp cận mới cho phép quan
lý mạng và cấu hình mạng hiệu quả theo chương trình nhằm tăng hiệu xuất va theo dõi mạng. SDN quản ly mang bằng cách tách đôi luồng điều khiển (Control Plane)
và luồng đữ liệu (Data Plane). Control Plane chịu trách nhiệm về định tuyén/chuyén
mach, control plane tập trung ở lớp điều khiển. Data plane chịu trách nhiệm chuyên tiếp dữ liệu theo hướng dẫn của Controller. Việc tách biệt hai thành phan này cho phép SDN lập trình điều khiển mạng và quản lý tập trung tại thành phần điều khiển. Đây là khác biệt lớp nhất giữa kiến trúc mạng SDN và mạng IP truyền thống, nơi mà việc điều khiển mạng và chuyền tiếp dữ liệu cùng do một thiết bị thực hiện.
Traditional network architecture SDN network architecture
we forward layer
Hình 2.1: Kiến trúc điều khiển cua mang truyền thốnơg và mang SDN
Trong SDN, việc tập trung điều khiển tại mặt phăng điều khiến là bộ điều khiển đã tạo ra một điểm chịu lỗi duy nhất tại đây. Mặc khác, việc có một bộ điều khiển duy
nhât cũng làm giảm khả năng mở rộng của mạng.
2.1.2. Kiến trúc mạng SDN
silent xa Application layer
SDN application SDN application > Application plane
SDN northbound interfaces (NBIs) A-CPI: Application-controller plane interface
Control layer
SDN controller ent ating plane
D-CPI: Data-controller plane interface
——————SDN southbound interface——————
ee E=1 Infrastructure layer
ee | E==] | ene Data plane
Hình 2.2: Các thành phan trong SDN
Kiến trúc SDN bao gồm: Lớp ứng dụng (Application Layer), lớp điều khiển (Control Layer) và lớp hạ tầng cơ sở (Infrastructure Layer).
Lớp ứng dụng
Gồm các chương trình giao tiếp dựa vào hành vi và tài nguyên cần thiết cho bộ điều khiển SDN thông qua giao diện lập trình ứng dụng (API). Ngoài ra, các ứng dụng có thể xây dựng một cái nhìn trừu tượng về mạng bằng cách thu thập thông tin từ bộ điều khiển cho các mục đích ra quyết định. Các ứng dung này có thé bao gồm quan
lý mang, phân tích hoặc ứng dụng kinh doanh được sử dụng dé chạy các trung tâm
dữ liệu lớn. Ví dụ: một ứng dụng phân tích có thể được xây dựng dé nhận ra hoạt
động mạng đáng ngờ cho mục đích bảo mật, tường lửa, ...
Lớp điều khiến
SDN controller quan lý điều khiến luồng dé cải thiện hiệu suất quản lý và ứng dụng mạng. Nền tảng bộ điều khiển SDN thường chạy trên máy chủ và sử dụng các giao thức dé báo cho các switch biết địa chỉ gửi gói tin. Cho phép chuyền tiếp các quyết định về lưu lượng thông qua SDN domain thay vì phải qua từng hop.
Bộ điều khiển SDN lưu lượng truy cập trực tiếp theo các chính sách chuyền tiếp mà nhà điều hành mạng đặt, do đó giảm thiểu cấu hình thủ công cho các thiết bị mạng riêng lẻ. Băng cách loại bỏ control plane khỏi phần cứng mạng và thay vào đó là phần mềm, bộ điều khién tập trung tạo điều kiện quản lý mạng tự động và giúp tích hợp và quản lý các ứng dụng dễ dàng hơn. Nó cũng cung cấp các giao diện chương trình ứng dụng (API) cho các nhà phát triển bên thứ ba đề tùy chỉnh tích hợp các ứng dụng. Trong thực tế, bộ điều khiển SDN hoạt động như một loại hệ điều hành cho mạng.
Moi giao tiếp với các ứng dụng và thiết bị mạng phải thông qua thông qua các giao diện phía bắc (North Bound Interface) của bộ điều khiển gồm tường lửa, bộ cân băng tải, hệ thống phát hiện xâm nhập (IDS), routing.
Bộ điều khién giao tiếp với tat cả các thiết bi mang bang giao diện hướng nam (South Bound Interface). Các giao thức hướng nam này cho phép bộ điều khiến cấu hình các thiết bi mang và chọn đường dẫn mạng tối ưu cho lưu lượng ứng dụng.
Lớp hạ tầng cơ sở
Bao gồm tập hợp của các thiết bi phần cứng mạng như switches, router, ... những thiết bị này có khả năng xử lý hoặc chuyên tiếp lưu lượng thông tin trong mạng. Lớp này cung cấp việc truy cập có khả năng lập trình mở thông qua OpenFlow, một giao thức mạng giúp tự động cấu hình phần cứng. Lớp hạ tang cơ sở giúp đơn giản hóa việc câu hình mạng cho quản trị viên, mang đến một giao diện linh hoạt và khả năng
lập trình linh hoạt.
Lớp giao tiếp
Ba lớp trên giao tiếp và kết nối với nhau thông qua các API được quy định sẵn, gồm
2 phan chính:
e© Southbound API: hỗ trợ giao tiếp giữa lớp cơ sở hạ tang và bộ điều khiên (thiết
bị cấp thấp)
- Sir dụng OpenFlow làm giao thức giao tiếp chính, các APIs tại đây hỗ trợ
người dùng cuối có thêm quyền quản lí toàn bộ hệ thống mạng và tăng tính
hiệu quả trên bộ điều khiển phục vụ cho như cầu thực tế. Ngoài ra, tại đây
cũng có sử dụng các giao thức khác như SNMP, ONOS, PCEP, NETCONF
hoặc thông qua một cơ chế riêng biệt.
e_ Northbound API: Giao tiếp giữa bộ điều khiển và lớp ứng dụng (thiết bị cấp
cao)
- _ Chưa có chuẩn giao tiếp chính thức. được sử dung bởi lớp ứng dụng dé
giao tiếp với bộ điều khiển, nếu không có API tại đây, sẽ gây rất nhiều khó khăn khi kết nối phải được tạo trực tiếp từ phía lớp ứng dụng gây cản trở cho phát triển và mở rộng. Các ngôn ngữ được thực thi tại đây có thé kê đến như Java, Python và Ruby. Các API tại đây được áp dụng cho nhiều lĩnh vực khác nhau bao gồm các lĩnh vực phi lợi nhuận, viện giáo dục, công
ty công nghệ thông tin và nhiều lĩnh vực khác.
Từ đó có thê nhận thấy, với Northbound API sẽ hỗ trợ trực tiếp phát triển giải pháp quản lí tự động hoá và hoà hợp giữa trạng thái mạng và phần cứng và phần mềm ứng dụng trên hệ thống. Trong khi đó, Southbound API
sẽ là đảm nhận vai trò vai trò cung cấp các giao thức ảo hóa mạng, tương tác với cu trúc switch hoặc tích hợp mạng máy tính phân tán.
2.1.3. Ưu và nhược điểm của SDN
2.1.3.1. Ưu điểm
Với tính năng phân tách bộ điều khiển và thành phần chuyền tiếp dữ liệu cung cấp khả năng điều khiển mạng vượt trội thông qua việc hỗ trợ cho lập trình, giúp tạo ra các ứng dụng mới hỗ trợ việc vận hành mạng hiệu quả, phù hợp với đặc điểm và mục đích của từng hệ thống mạng. Khả năng tập trung hóa sẽ giúp thiết lập các cấu hình mạng một cách tự động và đồng bộ nhanh chóng hơn.
Trong hệ thống mạng truyền thống do không có sự đồng bộ, đồng nhất giữa các nhà cung cấp thiết bị khiến thao tác cầu hình mạng hết sức khó khăn, phức tap và có thé gây ra các xung đột làm ảnh hưởng nghiêm trọng đến hệ thống trong quá trình hoạt động. Kiến trúc SDN được tin tưởng là một giải pháp giúp hỗ trợ xử lí các vấn đề
trên khi được giới thiệu lần đầu tiên. Khi được cấu hình, toàn bộ kiến trúc SDN có thé được lập trình và tối ưu hoá tự động dựa trên cấu trúc mạng hiện thời. Bộ điều khiển (control plane) sẽ hỗ trợ thống nhất các thiết bị mạng được quản lí gồm: switch, router, tường lửa và thiết bi cân bằng tải cho phép toàn bộ hệ thống được cấu hình từ một điểm hoàn toàn tự động và đồng nhất.
2.1.3.2. Nhược điểm
Là thành phan quan trong với chức năng điều khiến và quản lí toàn bộ hệ thống mang,
bộ điều khiển cũng là điểm yếu lớn nhất trong kiến trúc SDN. Do tính chất phân tán làm giảm thiểu khả năng mở rộng mạng. Thêm vào đó, lỗi thắt nút cô chai khi lưu lượng trao đổi giữa các thiết bi mạng trong quá trình tương tác với nhau thông qua
bộ điều khiển. Với khả năng sử dụng loại kiến trúc tập trung và kiểu kiến trúc phân tán cũng đồng thời đem đến các tính năng và giới hạn nhất định ở mỗi. kiểu. Trong
mô hình kiến trúc phân tán, các bộ điều khiển sẽ hoạt động đồng thời và sẽ đảm nhiệm điều khiển một phần mạng tương ứng được chỉ định trước đó. Đối với kiểu còn lại,
mô hình kiến trúc tập trung, sẽ có một bộ điều khiến chính thực hiện các chức năng, hoạt động chính và bộ điều khiển dự phòng hoạt động song song, phòng những trường hợp xảy ra sự cô đối với bộ chính, đây còn được gọi là hệ thống cluster.
_&] "SỞ
Controller Signaling
Controller đ
Kiến trúc SDN tập trung Kiến trúc SDN phân tán
Hình 2.3: Mô hình kiến trúc mạng SDN tập trung và phân tán
Ngoài các vấn đề về cấu trúc, bảo mật là yếu tố quan trọng và quyết định tính toàn vẹn và hiệu quả của hệ thống mạng. Với chức năng là quản trị nắm quyền cao nhất
và điêu khiên toàn bộ các thiệt bị mạng, bộ điêu khiên luôn là mục tiêu đâu tiên và
10
cũng là điêm yêu của hệ thông SDN. Vôn là nạn nhân của các cuộc tân công và nơi
cho phép các luồng tiến trình độc hại hoạt động và truy cập tại day.
Ngoài ra, do là một hệ thống còn rat mới và vẫn đang trong quá trình phát triển, mạng SDN vẫn còn tồn tai một số bat cập cần được giải quyết trước khi có thé thay thế hoàn toàn được hệ thống mạng truyền thống. Các nhà phát trién cần đồng nhất với một chuẩn giao tiếp API giữa các thiết bị, ngôn ngữ lập trình cấp cao tiêu chuẩn cho toàn
bộ ứng dung; người dùng cần được cấp quyền kiểm định tính ôn định trong quá trình vận hành của các thiết bị, tính riêng tư của quản lí tập trung.
2.1.4. Openflow
Southbound API tạo điều kiện kiểm soát mạng và cho phép bộ điều khiển SDN tự động thực hiện các thay đổi theo nhu cầu và nhu cầu thời gian thực. OpenFlow, được phát triển bởi Tổ chức mạng mở (ONF), là southbound API đầu tiên và có lẽ là nổi tiếng nhất. OpenFlow định nghĩa cách bộ điều khiển SDN sẽ tương tác với mặt phẳng chuyền tiếp dé điều chỉnh mang, dé nó có thé thích ứng tốt hơn với việc thay đổi các yêu cầu nghiệp vu. Với OpenFlow, các mục nhập có thé được thêm và xóa vào bảng
lưu lượng nội bộ của các bộ chuyền mạch và bộ định tuyến dé làm cho mang phan
ứng nhanh hơn với nhu cầu lưu lượng thời gian thực.
Tổng quan về OpenFlow
OpenFlow là giao thức SDN chuẩn, được sáng lập tại Đại học Stanford vào năm 2008. Open Networking Foundation (thành lập năm 2011) là tổ chức chịu trách nhiệm cập nhật và phát triển phần mềm này.
OpenFlow Switch bao gom một hoặc nhiều Flow Tables và một Group Table, thực hiện việc tra cứu và chuyển tiếp, và một OpenFlow Channel kết nối với controller
bên ngoài thông qua giao thức TLS.
Hoạt động của OpenFlow Switch
Một Openflow switch bao gồm hai thành phần chính:
11
Flow table: thành phần chính nhận nhiệm vụ xử lý các gói tin.
Secure channel: kết nối giữa switch và controller (bộ điều khiến), là thành
phần giao tiếp quản lý giữa người quản trị và switch.
2.1.5. Quy trình hoạt động của OpenFlow
Flow table
Hình 2.4: Tiến trình xử lý của OpenFlow
Bước 1: Gói tin từ máy gửi đến switch và không có flow entry tương ứng.
⁄ "
CSằ
1
2
Flow A
5
Flow A
Bước 2: Gói tin bi chuyên đên bộ điêu khiên. Bộ điêu khién xem xét các gói
tin và quyết định các hành động thích hợp (chuyên tiếp hoặc hủy bỏ), sau đó
tạo ra một flow entry mới.
Bước 3: Flow entry được gửi đến switch cũng trên đường dẫn gửi gói tin.
Bước 4 và 5: Gói tin được gửi đến máy nhận.
Bước 6,7 và 8: các gói tin bắt đầu được trao đồi trực tiếp giữa hai switch vì
chúng khớp với entry mới trong flow tables.
12
Packet In Start at table 0
Yes
Execute instructions:
* update action set
* update...
Execute action Table- set
miss flow entry
exists?
No
Drop packet
Hình 2.5: Quy trình xử lý gói tin trên một OpenFlow Switch
s* Cấu trúc thông số của bảng ghi luồng
Bộ so khớp của flow table có các thông sô sau:
© Công vào switch.
e_ Địa chỉ MAC nguồn.
e Diachi MAC đích.
e Ether type.
e VLAN ID.
e Địa chỉ IP nguồn.
e Dia chỉ IP đích.
e Giao thức IP.
e Port nguén TCP/UDP.
13
e Port đích TCP/UDP.
Bang 2.1: Header cua bang Entry duoc sử dụng trong OpenFlow Ingress
port
Ether
source
Ether dst
Ether
type
VLAN id
VLAN priority
IP
src
IP
dst
IP
proto
IP ToS bits
Src
port
Dst
port
Sau khi so khớp flow entry, switch có thé thực thi các hành vi tương ứng:
e_ Chuyển tiếp gói tin đến các công đề truyền gói tin qua mạng.
e_ Đóng gói và gửi gói tin đến bộ điều khiển: gói tin được gửi qua một kênh
truyền an toàn đến OpenFlow Controller từ xa, thường được áp dụng cho gói tin đầu tiên để thiết lập đường dẫn.
e- Hủy bỏ: hành vi nhằm mục đích bảo mật, giảm lưu lượng giả mạo từ máy chủ
CuÔi.
14
Bảng 2.2: Các bộ điều khiển hỗ trợ OpenFlow
x ằ Cỏc tớnh
Tên Nên tảng | Tô chức : Trang chủ
năng
OpenFlow NOX/P | C++/Pytho
Stanford Controller http://www.noxrepo.org/
OX n `
dau tiên
Cung cấp
Open
Linux REST API và Day- Java . | http://www.opendaylight.org
Foundation | giao diện đô light
họa
NTT
R Pvth Laboratories | Hỗ trợ ntti thub io/
thon ttp://osrg.github.io/ryu
TM ¿ OSRG OpenStack Ƒ sẽ y
Group
Cung cấp
https://openflow.stanford.edu Beacon | Java Stanford giao dién
/display/Beacon/Home Web
Rice Hỗ trợ đa http://code.google.com/p/ma
Maestro | Java \
University luông estro-platform/
Trema | Ruby/C Mạng ảo DSL | http://trema.github.io/trema
2.2. Bộ điều khiến Ryu
Ryu Controller là một bộ điều khiển mạng (SDN) mở, được thiết kế dé tăng tính linh hoạt của mạng bang cách dé dàng quản lý và điều chỉnh cách xử lý lưu lượng truy cập. Nói chung, Bộ điều khiển SDN là bộ não của môi trường SDN , truyền thông tin
15
xuống các thiết bị chuyên mạch và bộ định tuyến với các API hướng nam, cũng như các ứng dụng và logic nghiệp vụ với các API hướng bắc. .
Bộ điều khiển Ryu cung cấp các thành phan phần mềm, với các giao diện chương trình ứng dung (API) được xác định rõ ràng, giúp các nhà phát triển dé dang tạo các ứng dung quản lý và điều khiển mang mới. Cách tiếp cận thành phan này giúp các tô chức tùy chỉnh các triển khai dé đáp ứng nhu cau cụ thé của họ; các nhà phát triển có thé nhanh chóng và dé dang sửa đôi các thành phan hiện có hoặc triển khai của riêng
họ dé đảm bảo mạng bên dưới có thé đáp ứng các nhu cầu thay đôi của ứng dụng của
họ.
OpenStack User
ri F F
operato cloud orchestration | Apps
RESTful REST API User-defined API
managemnen for Quantum via REST or RPC
Ryu SDN frame work
Built-in Apps: tenant isolation, L2 switch
Libraries: OF REST, topology discovery, firewall
OF protocols parser/ Non-OF protocols
serializer parser/serializer i ray)
OF1.0, 1.2, 1.3 netconf, vrrp, netflow, Qe
` —⁄
OF-Config 1.1 packet lib
OpenFlow
OpenFlow switch
Hình 2.6: Tổng quan về bộ điều khiển RY U
Được việt hoàn toàn băng Python, tat cả mã của code của Ryu đêu có săn giây phép
Apache 2.0 và mở cho mọi người sử dụng. Bộ điều khiển Ryu hỗ trợ các giao thức
quản ly mang NETCONF và OF-config, cũng như OpenFlow, là một trong những
tiêu chuẩn truyền thông SDN đầu tiên và được triển khai rộng rãi.
Quản trị viên công nghệ thông tin viết các ứng dụng cụ thê giao tiếp với bộ điều khiển Ryu về cách quản lý thiết bị chuyên mạch và bộ định tuyến. Bộ điều khiển Ryu có thé sử dung OpenFlow hoặc các giao thức khác dé tương tác với mặt phang chuyển
16