1. Trang chủ
  2. » Giáo Dục - Đào Tạo

báo cáo mạng thông tin đề tài mạng định nghĩa bằng phần mềm sdn

23 0 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Mạng Định Nghĩa Bằng Phần Mềm - SDN
Tác giả Nguyễn Trung Kiệm, Phạm Duy Khoa, Ngô Tiến Dũng, Nguyễn Tuấn Thành
Người hướng dẫn Thầy Nguyễn Tiến Dũng
Trường học Trường Đại Học Bách Khoa Hà Nội
Chuyên ngành Mạng Thông Tin
Thể loại Báo cáo
Năm xuất bản 2021
Thành phố Hà Nội
Định dạng
Số trang 23
Dung lượng 2,3 MB

Nội dung

Trong hệ thống các thiết bị mạng truyềnthống, phần mềm điều khiển và cấu hình được gắn liền với phần cứng và mỗi hãngsản xuất lại cung cấp một giao diện kết nối riêng làm cho độ phức tạp

Trang 1

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI

VIỆN ĐIỆN TỬ - VIỄN THÔNG

-□□&□□ -BÁO CÁO MẠNG THÔNG TIN

Đề tài: Mạng định nghĩa bằng phần mềm - SDN

Giảng viên hướng dẫn: Thầy Nguyễn Tiến Dũng

Nhóm sinh viên thực hiện: Nhóm 7

Trang 2

Nguyễn Tuấn Thành 20172825

Hà Nội, 12-2021

Trang 3

LỜI NÓI ĐẦU

Mạng Internet ra đời đã tạo nên một cuộc cách mạng trong công nghệ thôngtin Nó giúp mọi sự giao tiếp và trao đổi kiến thức, thông tin của con người trở nên dễdàng hơn tạo nền tảng cho nền kinh tế tri thức hiện nay Tuy nhiên, kiến trúc mạngtruyền thống đang ngày càng trở nên không phù hợp với nhu cầu kinh doanh của cácdoanh nghiệp cũng như người dùng cuối Hiện nay nhu cầu về nghiệp vụ ngày càngphức tạp của các doanh nghiệp và mức độ đa dạng về ứng dụng của các end-user đangngà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ếtnối Mạng cần phải đáp ứng việc thay đổi nhanh chóng các thông số về độ trễ, băngthô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 đó sự phát triển của các công nghệ ảo hóa cũng làm cho các côngnghệ mạng truyền thống trở lên lỗi thời Trong hệ thống các thiết bị mạng truyềnthống, phần mềm điều khiển và cấu hình được gắn liền với phần cứng và mỗi hãngsản xuất lại cung cấp một giao diện kết nối riêng làm cho độ phức tạp của mạng vàkhả năng tích hợp ngày càng trở lên khó kiểm soát Việc ảo hóa do đó phụ thuộc vàocông nghệ và làm cho kết cấu hệ thống mạng càng trở lên phức tạp, thiếu đồng bộ.Điều đó dẫn đến nhu cầu có một sự thay đổi cách mạng trong công nghệ mạng thôngqua tập trung hóa việc quản trị : Tách biệt phần điều khiển và phần xử lý dữ liệu,khiến phần điều khiển trở nên mềm dẻo và cho phép lập trình được để tự động hóa vàđơn giản hóa việc quản trị Từ đó cho ra đời khái niệm mạng định nghĩa được bằng

phần mềm (Software-defined network) hay SDN.

Trong đề tài lần này, nhóm chúng em sẽ mô phỏng cài đặt và cấu hình mộtmạng SDN đơn giản gồm 1 bộ điều khiển, 3 switch và 2 host Báo cáo gồm có 3 phầnchính:

- Chương 1: Tổng quan về mạng SDN, OpenvSwitch và mạng mininet

- Chương 2: Tạo mô hình mạng SDN thử nghiệm

- Chương 3: Xây dựng tường lửa

Trang 4

MỤC LỤC

DANH MỤC KÝ HIỆU VÀ CHỮ VIẾT TẮT i

DANH MỤC HÌNH VẼ ii

CHƯƠNG 1 TỔNG QUAN VỀ SDN, OPENVSWITCH VÀ MẠNG MININET 1

1.1 Tìm hiểu về SDN 1

1.2 Giới thiệu về OpenvSwitch 2

1.3 Khái quát về Mininet 3

CHƯƠNG 2 TẠO MÔ HÌNH MẠNG SDN THỬ NGHIỆM 4

2.1 Đặt vấn đề 4

2.2 Thiết lập cấu trúc mạng SDN 4

2.2.1 Tạo topology network 5

2.3 Cấu hình cấu trúc mạng SDN 7

CHƯƠNG 3 TƯỜNG LỬA 11

3.1 Xây dựng Topology mạng 11

3.2 Chặn toàn bộ traffic từ host 1 đến host 3 11

3.3 Chỉ chặn truy cập TCP đến cổng 80 trên host 1 13

TÀI LIỆU THAM KHẢO 15

PHỤ LỤC 16

Trang 5

DANH MỤC KÝ HIỆU VÀ CHỮ VIẾT TẮT

Trang 6

DANH MỤC HÌNH VẼ

Hình 1-1 Mô hình kiến trúc mạng SDN 1

Hình 1-2 Open vSwitch 2

Hình 2-1 Sơ đồ mô hình mạng SDN thử nghiệm 4

Hình 2-2 Sơ đồ mạng và các cổng kết nối của mạng SDN 5

Hình 2-3 Thực thi lệnh tạo topo 6

Hình 2-4 Thông tin thành phần topo 6

Hình 2-5 Tiến hành ping trong mạng 7

Hình 2-6 Sử dụng Ryu Controller để thêm Flow cho các Switch 7

Hình 2-7 Khối code khởi tạo switch, truyền vào tham số cho mạng 7

Hình 2-8 Hàm add_flow để thêm flow vào FlowTable 8

Hình 2-9 Hàm packet_in_hander để xử lí gói tin đến 8

Hình 2-10 Sử dụng Ryu Controller để cấu hình cho mạng 8

Hình 2-11 Thông tin luồng của các switch trong mạng sau khi được thêm Flow 8

Hình 2-12 Thông tin về mạng và các cổng kết nối sau khi được cấu hình 9

Hình 2-13 Sơ đồ mạng và các cổng kết nối SDN sau khi được cấu hình 9

Hình 2-14 Kết quả thực thi các kết nối sau khi cấu hình 10

Hình 3- 1 Mô hình mạng 11

Hình 3- 2 Thực thi lệnh block h1 tới h3 12

Hình 3- 3 Thực thi lệnh pingall 12

Hình 3- 4 Flow Table trong Switch s1 13

Hình 3- 5 Kiểm tra kết nối các host thông qua mininet 13

Hình 3- 6 Kiểm tra traffic trên port 80 14

Hình 3- 7 Kiểm tra traffic trên port 75 14

Hình 3- 8 Flow Table của switch s1 14

Trang 7

CHƯƠNG 1 TỔNG QUAN VỀ SDN, OPENVSWITCH VÀ

MẠNG MININET

1.1 Tìm hiểu về SDN

SDN hay mạng điều khiển bằng phần mềm (Software Defined Networking) đượcdựa trên cơ chế tách riêng việc kiểm soát một luồng mạng với luồng dữ liệu (controlplane và data plane) SDN dựa trên giao thức luồng mở (Open Flow)

SDN tách định tuyến và chuyển các luồng dữ liệu riêng rẽ và chuyển kiểm soátluồng sang thành phần mạng riêng có tên gọi là thiết bị kiểm soát luồng (FlowController) Điều này cho phép luồng các gói dữ liệu đi qua mạng được kiểm soát theolập trình Trong SDN, control plane được tách ra từ các thiết bị vật lý và chuyển đếncác bộ điều khiển Bộ điều khiển này có thể nhìn thấy toàn bộ mạng lưới, và do đó chophép các kỹ sư mạng làm cho chính sách chuyển tiếp tối ưu dựa trên toàn bộ mạng.Các bộ điều khiển tương tác với các thiết bị mạng vật lý thông qua một giao thứcchuẩn OpenFlow

Kiến trúc của SDN gồm 3 lớp riêng biệt: lớp ứng dụng, lớp điều khiển, và lớp cơ

sở hạ tầng (lớp chuyển tiếp) Mô tả kiến trúc dưới hình sau:

Hình 1-1 Mô hình kiến trúc mạng SDN

Trang 8

 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, 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 các 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

 Lớp cơ sở hạ tầng: Là các thiết bị mạng thực tế (vật lý hay ả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ó 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

1.2 Giới thiệu về OpenvSwitch

OpenvSwitch (OVS) là một dự án về chuyển mạch ảo đa lớp (multilayer) 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óaphần cứng, 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 OpenvSwitch hỗ trợ nhiều công nghệ ảo hóa dựatrên nền tảng Linux như Xen/XenServer,KVM, và VirtualBox

Hình 1-2 Open vSwitch

Trang 9

OpenvSwitch hỗ trợ các tính năng sau: VLAN tagging & 802.1q trunking Standard Spanning Tree Protocol (802.1D) - LACP - Port Mirroring (SPAN/RSPAN)

Tunneling Protocols – QoS

Các thành phần chính của OpenvSwitch:

 ovs-vswitchd: thực hiện chuyển đổi các luồng chuyển mạch

 ovsdb-server: là một lightweight database server, cho phép ovs-vswitchd thực hiện các truy vấn đến cấu hình

 ovs-dpctl: công cụ để cấu hình các switch kernel module

 ovs-vsctl: tiện ích để truy vấn và cập nhật cấu hình ovs-vswitchd

 ovs-appctl: tiện ích gửi command để chạy OpenvSwitch

1.3 Khái quát về Mininet

Mininet là một hệ thống dùng tạo nguyên mẫu cho các mạng lớn trong điều kiệntài nguyên trên một laptop Mininet sử dụng những đặc tính ảo hóa cấp hệ điều hành,gồm các tiến trình và không gian tên mạng, cho phép nó giả lập lên đến hàng trămnode Mininet gồm các thành phần sau:

Links: Một cặp Ethernet ảo (veth pair) hoạt động giống như một kết nối dây

giữa 2 giao tiếp ảo; các gói gửi qua một giao tiếp được đưa đến một giao tiếpkhác, và phẩn mềm ứng dụng và hệ thống nhìn thấy mỗi giao tiếp như là mộtcổng Ethernet với đầy đủ chức năng Các cặp veth có thể được gắn vào cácchuyển mạch ảo như là Linux bridge hoặc một chuyển mạch OpenFlow

Hosts: Các namespace mạng là những container trạng thái mạng (phương pháp

ảo hóa cấp hệ điều hành linux) Chúng cung cấp cho các tiến trình (và nhómcác tiến trình) quyền sở hữu riêng biệt các giao tiếp, các cổng và các bảng địnhtuyến (như ARP và IP) Một host trong Mininet đơn giản là một tiến trình shell(ví dụ bash) được đưa vào namespace mạng riêng của nó với yêu cầu hệ thốngriêng biệt

Switches: Các chuyển mạch OpenFow bằng phần mểm cung cấp cơ chế phân

phối gói vể ý nghĩa giống như những chuyển mạch phần cứng

Trang 10

Controller: Các bộ điều khiển có thể đặt ở bất cứ nơi đâu trên mạng thực hoặc

trên mạng mô phỏng, miễn sao thiết bị chạy các chuyển mạch có kết nối mức

IP với bộ điều khiển Đối với Mininet chạy trong một máy ảo, bộ điều khiển cóthể chạy bên trong máy ảo này, chạy trên máy host, hoặc trong một đám mây

CHƯƠNG 2 TẠO MÔ HÌNH MẠNG SDN THỬ NGHIỆM 2.1 Đặt vấn đề

Trong phần này, chúng ta sẽ thực hiện cấu hình thử nghiệm một cấu trúc mạngSDN bao gồm 1 bộ điều khiển ,3 switch và 2 host

Cụ thể như sau:

Hình 2-3 Sơ đồ mô hình mạng SDN thử nghiệm

Trong cấu trúc mạng này, để các Host có thể kết nối được với nhau chúng ta cầnAddFlow vào các Flow Table Khi đó giao thức OpenFlow sẽ cho phép truy cập trựctiếp và điều khiển các thiết bị mạng trong hệ thống, 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 quản trị cấu hình

trong toàn hệ thống Ở cấu trúc mạng được đề xuất trong phần này, ta sử dụng Ryu

Controller để cấu hình cho hệ thống

Ngoài ra, chúng ta có thể thấy trong mô hình các switch được liên kết với nhaudẫn đến mạng có cấu trúc vòng lặp Để tránh sự xuất hiện của vòng lặp xảy ra trong

Trang 11

cấu trúc này, ta sử dụng thuật toán Spanning Tree (STP) để các luồng traffic sẽ được

đi đến nơi mong muốn như đã được cấu hình từ trước

$ sudo apt install mininet

- Cài đặt Ryu Controller:

$ pip3 install ryu

2.2.1 Tạo topology network

- Cấu trúc mạng đã được tạo ra bao gồm 3 switch (S1,S2,S3) và 2 host(h1,h2).

Trong đó các switch S1,S2,S3 được liên kết với nhau tạo thành vòng lặp Cáchost h1 liên kết với với S1; h2 liên kết với S2 Cụ thể như sau:

Hình 2-4 Sơ đồ mạng và các cổng kết nối của mạng SDN

- Tên source file: topo-3s-2h.py

Trang 12

- Ta sử dụng lệnh $ sudo mn custom topo-3s-2h.py topo mytopo

controller remote để chạy file topo-3s-2h.py để tạo mạng SDN Sau khi chạy

thành công sẽ xuất ra màn hình một mạng SDN theo yêu cầu đặt ra ban đầu:

Hình 2-5 Thực thi lệnh tạo topo

Trang 13

- Thực hiện câu lệnh $ sudo ovs-vsctl show để kiểm tra luồng của các switch có

trong mô hình mạng Kết quả như sau

Hình 2-6 Thông tin thành phần topo

- Tiến hành kết nối giữa các host trong mô hình mạng SDN đã tạo, ta sử dụng

lệnh pingall.

Hình 2-7 Tiến hành ping trong mạng

Do ban đầu mạng có FlowTable trống, nên kết quả thực thi lệnh pingall ta có thể

thấy là 100% dropped, chưa có kết nối giữa các host với nhau.

2.3 Cấu hình cấu trúc mạng SDN

Trong phần này, chúng ta sẽ cấu hình cấu trúc mạng bằng cách sử dụng RyuController

Trang 14

- Thêm Flow vào các FlowTable, ta sử dụng lệnh: $ ryu-manager ryu.app.simple_switch_13

(https://github.com/faucetsdn/ryu/blob/master/ryu/app/simple_switch_13.py)

Hình 2-8 Sử dụng Ryu Controller để thêm Flow cho các Switch

- Do mô hình mạng SDN đã tạo có cấu trúc vòng lặp, vì vậy ta cần sử dụng

thuật toán Spanning Tree (STP) trong Ryu để cấu hình mạng này

Ta khái quát cấu trúc của thuật toán STP trong mã nguồn như sau:

 Khởi tạo các switch, truyền vào các tham số:

Hình 2-9 Khối code khởi tạo switch, truyền vào tham số cho mạng

Hàm add_flow() dùng để thêm các flow vào Flowtable:

Hình 2-10 Hàm add_flow để thêm flow vào FlowTable

Hàm _packet_in_hander(self,ev) xử lí gói tin đến:

Trang 15

Hình 2-11 Hàm packet_in_hander để xử lí gói tin đến

Ta sử dụng câu lệnh $ ryu-manager ryu.app.simple_switch_stp_13 để sử

dụng thuật toán STP trong Ryu cấu hình cho mạng

Hình 2-12 Sử dụng Ryu Controller để cấu hình cho mạng

Các đường truyền đã được tạo thành công, luồng của các switch cụ thể được cấuhình như sau:

Hình 2-13 Thông tin luồng của các switch trong mạng sau khi được thêm Flow

Tiến hành thực thi thuật toán STP trên mạng SDN:

Trang 16

Hình 2-14 Thông tin về mạng và các cổng kết nối sau khi được cấu hình

- Kết quả cuối cùng là mỗi cổng kết nối sẽ trở thành trạng thái FORWARD

hoặc BLOCK, được miêu tả trong mô hình như sau:

Hình 2-15 Sơ đồ mạng và các cổng kết nối SDN sau khi được cấu hình

- Tiếp theo, để xác nhận cấu trúc mạng không bị lặp, các cấu trúc liên kết đã

được thực thi, ta sẽ thực hiện lệnh pingall và h1 ping h2 trong mạng.

Trang 17

Hình 2-16 Kết quả thực thi các kết nối sau khi cấu hình

- Kết quả trên cho ta thấy h1 và h2 đã được kết nối, có 33 gói tin được truyền đi,

33 gói tin nhận được, 0% gói tin mất

Theo kết quả đầu ra trên, ta có thể xác nhận cấu hình mạng SDN đã thiết lập không

bị lặp, các cấu trúc liên kết đã được thực thi tốt

Trang 18

CHƯƠNG 3 TƯỜNG LỬA 3.1 Xây dựng Topology mạng

Như các phần trước, chúng ta có 3 switch và 2 host, nhưng ở phần này em xin đượcthiết kế mạng có 3 switch và mỗi switch có 1 host như hình sau:

Hình 3- 1 Mô hình mạng

3.2 Chặn toàn bộ traffic từ host 1 đến host 3

Để kích hoạt Ryu ta sử dụng câu lệnh sau:

$ ryu-manager ryu.app.simple_switch_stp_13block_h1_to_h3.py

Trong đó: ryu.app.simple_switch_stp_13 là thuật toán tự add-flow trongSDN với spanning tree protocol và block_h1_to_h3.py là file rule firewall domình tự tạo

Nếu chạy thành công ta sẽ có được thông báo như hình sau:

Trang 19

Hình 3- 2 Thực thi lệnh block h1 tới h3

Để thử nghiệm file rule đã hoạt động chưa, ta sử dụng lệnh pingall trên mininet ta

thấy được như sau:

Hình 3- 3 Thực thi lệnh pingall

h1 không thể ping được h3 và ngược lại h3 cũng không thể ping được h1, nhưng h1ping h2 và h2 cũng ping h3

Để kiểm tra kỹ hơn chúng ta thực hiện câu lệnh sau:

$ sudo ovs-ofctl dump-flows s1

Với câu lệnh trên chúng ta sẽ in toàn bộ flow table trong switch s1:

Trang 20

Hình 3- 4 Flow Table trong Switch s1

Chính vì thế chúng ta đã thử nghiệm hành công

3.3 Chỉ chặn truy cập TCP đến cổng 80 trên host 1

Cũng tương tự với trường hợp trên ta cũng thực hiện câu lệnh tương tự

$ ryu-manager ryu.app.simple_switch_stp_13tcp_html_h1.py

Trong đó: tcp_html_h1.py là file rule firewall chặn traffic TCP đến cổng 80 trênhost 1 do mình tự tạo

Đầu tiên chúng ta kiểm tra kết nối đến các host bằng lệnh pingall trên miniet, ta thu

được ảnh sau:

Hình 3- 5 Kiểm tra kết nối các host thông qua mininet

Chúng ta thấy được rằng các host đều ping được đến với nhau

Để kiểm tra firewall đã hoạt động đúng theo mong muốn của mình thì chúng ta cần

mở terminal trên host 1 và 1 host còn lại Để mở terminal trên host của mininet ta sử

dụng câu lệnh xterm + tên_host.

Trang 21

Ở đây em sử dụng phần mềm netcat để tạo 1 server chờ kết nối đến 1 port và 1 clientkết nối tới server trên port đã mở

Ta thực hiện câu lệnh như trong ảnh, ta thu được như sau:

Hình 3- 6 Kiểm tra traffic trên port 80

Dù phía host 2 đã gửi 4 bản tin nhưng phía host 1 không nhận được bất kì bản tin nào

Để kiểm tra thêm, chúng ta thử mở cổng khác(không phải 80) trên host 1 xem host 2

có kết nối được không?? Ví dụ chúng ta sử dụng port 75 trên host 1

Hình 3- 7 Kiểm tra traffic trên port 75

Có thể thấy rằng host 2 gửi 5 bản tin thì host 1 đều nhận được, mạng SDN chỉ chặnmọi traffic TCP đến host 1 thông qua port 80, chứ các port khác SDN không hề chặn.Bây giờ chúng ta xem flow table, kiểm tra rule firewall do chúng ta đặt ra đã có trongflow table của switch:

Trang 22

Hình 3- 8 Flow Table của switch s1

Chính vì vậy chúng ta đã thử nghiệm thành công

Trang 23

TÀI LIỆU THAM KHẢO

[1] Spanning Tree [Online] Link:

https://osrg.github.io/ryu-book/en/html/spanning_tree.html, truy cập lần cuối: 24/12/2021

[2] OpenFlow V1.3 Messages and Structures [Online], Link:

https://ryu.readthedocs.io/en/latest/ofproto_v1_3_ref.html, truy cập lần cuối 24/12/2021

[3] Build Your Own SDN Network [Online], Link:

https://www.codeproject.com/tips/1063072/build-your-own-sdn-network, truy cập lần cuối 24/12/2021

Ngày đăng: 23/07/2024, 20:02

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w