Kiến thức nền tảng

Một phần của tài liệu Khóa luận tốt nghiệp An toàn thông tin: Cơ chế phòng thủ di chuyển mục tiêu và điều tra mạng cho SDN (Trang 29 - 62)

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

Một phần của tài liệu Khóa luận tốt nghiệp An toàn thông tin: Cơ chế phòng thủ di chuyển mục tiêu và điều tra mạng cho SDN (Trang 29 - 62)

Tải bản đầy đủ (PDF)

(106 trang)