1. Trang chủ
  2. » Luận Văn - Báo Cáo

Tìm hiểu một mạng sdn đơn giản

45 30 0

Đ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

Định dạng
Số trang 45
Dung lượng 4,83 MB

Nội dung

Tìm hiểu một mạng sdn đơn giản Tìm hiểu một mạng sdn đơn giản Tìm hiểu một mạng sdn đơn giản Tìm hiểu một mạng sdn đơn giản Tìm hiểu một mạng sdn đơn giản Tìm hiểu một mạng sdn đơn giản Tìm hiểu một mạng sdn đơn giản Tìm hiểu một mạng sdn đơn giản

HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THƠNG CƠ SỞ TẠI THÀNH PHỐ HỒ CHÍ MINH KHOA VIỄN THƠNG II BÁO CÁO CHUYÊN ĐỀ KHOA VIỄN THÔNG II NĂM HỌC: 2020 Đề tài: Tìm hiểu mạng SDN đơn giản NHĨM 3: Mai Chí Khương N16DCVT040 Văn Phước Kiên N16DCVT033 Lê Trung Lương N16DCVT041 Nguyễn Thành Lưu N16DCVT043 Trần Nhật Minh N16DCVT044 Võ Văn Minh N16DCVT046 Huỳnh Hồ Nam N16DCVT047 Lê Ngọc Tuấn Nhã N15DCVT061 Lê Hồng Phúc N16DCVT056 Huỳnh Chiếm Phương N16DCVT057 Giảng viên: ThS NGUYỄN XUÂN KHÁNH TP.HCM Tháng năm 2020 HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THƠNG CƠ SỞ TẠI THÀNH PHỐ HỒ CHÍ MINH KHOA VIỄN THÔNG II BÁO CÁO CHUYÊN ĐỀ KHOA VIỄN THƠNG II NĂM HỌC: 2020 Đề tài: Tìm hiểu mạng SDN đơn giản NHĨM 3: Mai Chí Khương N16DCVT040 Văn Phước Kiên N16DCVT033 Lê Trung Lương N16DCVT041 Nguyễn Thành Lưu N16DCVT043 Trần Nhật Minh N16DCVT044 Võ Văn Minh N16DCVT046 Huỳnh Hồ Nam N16DCVT047 Lê Ngọc Tuấn Nhã N15DCVT061 Lê Hồng Phúc N16DCVT056 Huỳnh Chiếm Phương N16DCVT057 Giảng viên: ThS NGUYỄN XUÂN KHÁNH TP.HCM Tháng năm 2020 NHẬN XÉT CỦA GIẢNG VIÊN i LỜI CẢM ƠN Đầu tiên, nhóm em xin gủi lời cảm ơn đến Thầy ThS Nguyễn Xn Khánh Thầy ln hướng dẫn tận tình cho nhóm suốt q trình nhóm thực đề tài Thầy giải đáp thắc mắc khó khăn mà nhóm gặp phải Nhóm xin kính chúc Thầy dồi sức khỏe ngày thành công đường nghiệp giáo dục Tiếp đến, nhóm em xin gửi lời cảm ơn đến Thầy Cơ khoa Viễn Thơng II giúp nhóm em có kiến thức bổ ích để thực đề tài Kính chúc Thầy Cơ dồi sức khỏe Nhóm xin gửi lời cảm ơn đến thành viên lớp giúp đỡ nhóm lớp học sau học Và cuối cùng, xin cảm ơn tất thành viên nhóm tìm hiểu, xây dựng hồn thành đề tài Hồ Chí Minh, tháng năm 2020 Tập thể sinh viên nhóm ii MỤC LỤC TỔNG QUAN VỀ MININET 1.1 Giới thiệu 1.2 Các thành phần HOẠT ĐỘNG CỦA OPENFLOW 3 TÌM HIỂU MỘT MẠNG SDN ĐƠN GIẢN 3.1 Xây dựng mạng SDN đơn giản 3.1.1 Khởi tạo Mininet 3.1.2 Cấu hình tạo Topo mạng 3.1.3 Thực thi lệnh tạo topo 3.2 3.3 3.4 Kiểm tra hoạt động thực chế tạo luồng host, ý nghĩa nội dung Flowtable 3.2.1 Kiểm tra hoạt động thực chế tạo luồng host 3.2.2 Ý nghĩa nội dung flowtable 11 Phân tích tin giao thức OpenFlow khởi động mạng, ping tạo luồng 12 3.3.1 Yêu cầu 12 3.3.2 Thiết lập Wireshark bắt gói tin 13 3.3.3 Các Message Openflow 15 3.3.4 Phân tích gói tin q trình khởi tạo kết nối controller switch 16 3.3.5 Phân tích gói tin trình ping host 20 Tìm hiểu triển khai điều khiển 31 3.4.1 Cài đặt JAVA Ubuntu 31 3.4.2 Tải opendaylight 32 3.4.3 Cài npm 32 3.4.4 Cài Opendaylight-openflow-app 32 3.4.5 Chỉnh sửa nội dung env.module.js 32 3.4.6 Chạy opendaylight ubuntu 33 3.4.7 Giao diện GUI Controller ODL 35 KẾT LUẬN 38 iii DANH SÁCH HÌNH VẼ 1.1 Các thành phần Mininet 2.1 Hoạt động OpenFlow 2.2 Flow Mode 2.3 Flow Entry 2.4 Flow Entry 3.1 Đăng nhập vào Mininet 3.2 Thư mục làm việc 3.3 Vị trí file cấu hình topo 3.4 File topo-2sw-2host.py 3.5 Cấu hình phần tử topo 3.6 Thực thi lệnh tạo topo 3.7 Thông tin thành phần topo 3.8 Kiểm tra thông tin bảng luồng Switch 3.9 Kiểm tra luồng Switch 1,2 10 3.10 Ping không thành công 10 3.11 Sơ đồ mạng cổng kết nối mạng SDN 10 3.12 Tạo kết nối Host 11 3.13 Ping thành công 11 3.14 Kiểm tra lại luồng 11 3.15 Topology 13 3.16 Chọn cổng Ethernet WireShark 14 3.17 Lọc gói tin openflow 14 3.18 Các gói tin cho trình khởi tạo kết nối 16 3.19 Quá trình khởi tạo kết nối 17 3.20 Hello message 17 3.21 Thông tin Hello message 17 3.22 Fetures message 18 3.23 Thơng tin gói ofpt_features_reply 18 3.24 Các gói tin bước set configuration 19 iv DANH SÁCH HÌNH VẼ 3.25 ofpt_flow_mod 19 3.26 Thông tin ofpt_flow_mod 20 3.27 ofpt_echo_request/reply 20 3.28 Quá trình ARP request 21 3.29 Quá trình ARP reply 24 3.30 Chỉnh nội dung env.module.js 33 3.31 Chạy opendaylight ubuntu 33 3.32 Sơ đồ mạng 34 3.33 Khởi tạo mạng 34 3.34 Giao diện GUI ODL Controller 35 3.35 Mục Flow Mangerment 35 3.36 Mục Flow 36 3.37 Mục Statistics 36 3.38 Mục Host 37 Nhóm D16CQVT01-N Trang v CHƯƠNG TỔNG QUAN VỀ MININET 1.1 Giới thiệu Mininet hệ thống dùng tạo nguyên mẫu cho mạng lớn điều kiện tài nguyên laptop Mininet sử dụng đặc tính ảo hóa cấp hệ điều hành, gồm tiến trình khơng gian tên mạng, cho phép giả lập lên đến hàng trăm node Mininet tạo điều kiện thuận lợi cho nhà nghiên cứu lĩnh vực kết nối mạng phát triển triển khai ý tưởng, ví dụ kiến trúc mạng mới, giao thức di động, đặc tính bổ sung vào router Mininet tạo môi trường tạo nguyên mẫu mạng với đặc tính sau : • Linh động: Các địa hình chức dược định nghĩa phần mềm, dùng ngơn ngữ hệ điều hành quen thuộc • Triển khai : Việc triển khai nguyên mẫu mặt chức mạng phần cứng môi trường thử nghiệm không cần thay đổi mã cấu hình • Tương tác: Việc quản lý vận hành mạng thực mạng thực, thể ta tương tác với mạng thực • Qui mô : Tạo nguyên mẫu cho mạng lên đến hàng trăm hàng ngàn chuyển mạch laptop • Thực tế : Hành vi nguyên mẫu hành vi thực với mức độ tin cao, ví dụ ứng dụng chồng giao thức cỏ thể sử dụng mà khơng có thay đổi • Chia : ngun mẫu khép kín dễ dàng chia với cộng tác viên 1.2 Các thành phần • Links: Một cặp Ethernet ảo (veth pair) hoạt động giống kết nối dây giao tiếp ảo; gói gởi qua giao tiếp đưa đến giao tiếp khác, phẩn mềm ứng dụng hệ thống nhìn thấy giao tiếp cổng Ethernet với đầy đủ chức CHƯƠNG TỔNG QUAN VỀ MININET Các cặp veth gắn vào chuyển mạch ảo Linux bridge (mã thực tập chuẩn IEEE 802.1d) chuyển mạch OpenFlow phần mềm • Hosts: Các namespace mạ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 tiến trình (và nhóm tiến trình) quyền sở hữu riêng biệt giao tiếp, cổng bảng định tuyến (như ARP IP) Ví dụ, web server namespace mạng đồng tồn hệ thống, lắng nghe cổng 80 giao tiếp eth0 riêng Một host Mininet đơn giản tiến trình shell (ví dụ bash) đưa vào namespace mạng riêng với yêu cầu hệ thống riêng biệt Mỗi host có riêng • Switches: Các chuyển mạch OpenFow phần mểm cung cấp chế phân phối gói vể ý nghĩa giống chuyển mạch phần cứng cung cấp • Controller: Các điều khiển đặt nơi đâu mạng thực mạng mô phỏng, thiết bị chạy chuyển mạch có kết nối mức IP với điều khiển Đối với Mininet chạy máy ảo, điều khiển chạy bên máy ảo này, chạy máy host, đám mây Hình 1.1: Các thành phần Mininet Nhóm D16CQVT01-N Trang CHƯƠNG HOẠT ĐỘNG CỦA OPENFLOW Hình 2.1: Hoạt động OpenFlow Bắt đầu gửi gói tin HTTP từ h1 sang h4, q trình TCP conversation ln ln khởi động với tin syn packet Nếu s1 sw hình gói HTTP chuyển thẳng từ h1 sang h4 dựa vào địa mac biết sẵn nên s1 biết chuyển gói tin đâu (H4) Đây OpenFlow sw, s1 kiểm tra local flows nó, gói tin nên flowtable khơng có entry matching gói tin này, gọi table miss Bình thường khơng có flow matching sw gửi gói tin lên controller gọi packet in Gói tin bao gồm gói tin TCP SYN gốc bên kèm theo tồn gói tin packet header buffer ID cho sw biết phải làm với gói lưu trữ Khi controller nhận gói tin packet in có số action Controller gửi gói packet out flow modification trở sw • Định nghĩa packet out : tin hướng dẫn sw phải làm với gói tin cụ thể, packet out bao gồm gói tin hồn chỉnh buffer ID có liên quan gói tin mà lưu trữ Controller hướng dẫn sw1 gửi gói tin liên quan đến buffer id 250 CHƯƠNG TÌM HIỂU MỘT MẠNG SDN ĐƠN GIẢN ∗ Sau Switch nhận gói packet_out từ controller (bước 6) gửi gói tin tất port (trong sw2 nhận gửi gói tin packet_in lên controller khơng nói đến nó) ∗ H2 nhận gói tin ARP từ switch (bước 7) • ARP Reply: Hình 3.29: Q trình ARP reply Nhóm D16CQVT01-N Trang 24 CHƯƠNG TÌM HIỂU MỘT MẠNG SDN ĐƠN GIẢN – Bước – ∗ H2 nhận gói arp trả lời gói arp reply có chứa MAC (bước 8) ∗ Switch nhận gói tin khơng biết làm gì, gửi gói Packet_In cho Controller (bước 9) ∗ Switch (source port 57046) gửi Packet_In với inport 1, reason khơng có flow match Trong gói ARP reply chứa địa Mac h2 ∗ Controller nhận đươc gói tin học muốn tới h2 port switch – Bước 10 ∗ Controller sau nhận gói Packet_In, thấy sw3 cần flow entry ∗ Controller nhìn vào phần ethernet gói arp packet_in bước thấy đích h1 hình dưới: Nhóm D16CQVT01-N Trang 25 CHƯƠNG TÌM HIỂU MỘT MẠNG SDN ĐƠN GIẢN ∗ Controller tra vào thấy muốn tới h1 cổng sw3 cổng sw1 hình dưới: ∗ Controller gửi gói ofpt_flow_mod để thêm flow entry cho sw1 sw3: · Ofpt_flow_mod gửi cho sw1 Nhóm D16CQVT01-N Trang 26 CHƯƠNG TÌM HIỂU MỘT MẠNG SDN ĐƠN GIẢN ∗ Flow entry gửi cho sw1 với inport (gói tin vào), source mac từ h2, dest mac tới h1, port sw1, loại data type arp (2054) · Ofpt_flow_mod cho sw3: Nhóm D16CQVT01-N Trang 27 CHƯƠNG TÌM HIỂU MỘT MẠNG SDN ĐƠN GIẢN – Bước 11-12 ∗ Switch nhận flow entry từ gói ofpt_flow_mod, dùng flow forward packet arp reply port switch (bước 11) ∗ Switch nhận packet arp reply từ switch 3, switch dựa vào flow entry từ bước 10 forward port sw1 (bước 12) • ICMP: Nhóm D16CQVT01-N Trang 28 CHƯƠNG TÌM HIỂU MỘT MẠNG SDN ĐƠN GIẢN – Bước 1: ∗ Sau nhận arp reply từ h2 có địa mac h2 h1 bắt đầu gửi gói icmp , với đích h2 – Bước 2: ∗ Switch khơng có flow entry từ h1 tới h2 nên gửi gói packet_in cho controller, gói packet_in chứa gói icmp, với reason khơng có flow match – Bước 3: ∗ Controller gửi lại ofpt_flow_mod cho switch switch chứa thông tin flow để đến h2 · Ofpt_flow_mod gửi cho sw1: ∗ Inport (packet icmp vào) port ∗ Source mac h1, dest mac h2 ∗ Out port (là port để fowarding) port ∗ Loại data 2048 (icmp) ∗ Command new flow · Ofpt_flow_mod gửi cho sw3: ∗ Inport (packet icmp vào) port ∗ Source mac h1, dest mac h2 ∗ Out port (là port để fowarding) port ại data 2048 (icmp) Nhóm D16CQVT01-N Trang 29 CHƯƠNG TÌM HIỂU MỘT MẠNG SDN ĐƠN GIẢN ∗ Command new flow Nhóm D16CQVT01-N Trang 30 CHƯƠNG TÌM HIỂU MỘT MẠNG SDN ĐƠN GIẢN – Bước 4: ∗ Sw1 nhận đc flow entry forward gói tin port ∗ Sw3 nhận đc packet port – Bước 5: ∗ Sw3 forward packet port • Q trình ICMP reply tương tự 3.4 Tìm hiểu triển khai điều khiển Sử dụng Controller Open Daylight phiên 0.4.1, chạy hệ điều hành Ubuntu 18.4 3.4.1 Cài đặt JAVA Ubuntu Cài đặt JAVA Ubuntu (sử dụng phiên Java 8), ta thực câu lệnh: • Sudo apt-get update • Sudo apt-get –y install unzip vim wget Nhóm D16CQVT01-N Trang 31 CHƯƠNG TÌM HIỂU MỘT MẠNG SDN ĐƠN GIẢN • Sudo apt-get –y install openjdk-8-jre • Echo ‘export • JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64/jre’» /.bashrc • /.bashrc 3.4.2 Tải opendaylight Tải opendaylight về, link tải: • https://nexus.opendaylight.org/content/repositories/public/org/opendaylight/integration/distribu karaf/ • Opendaylight có tên Distribution-karaf-0.4.0-Beryllium.zip • Ta tiến hành giải nén câu lệnh: – Unzip Distribution-karaf-0.4.0-Beryllium.zip 3.4.3 Cài npm Sau ta mở thêm terminal ubuntu, cài npm (npm chương trình để quản lý thư viện mơi trường JAVA Node.js): • Sudo apt install npm 3.4.4 Cài Opendaylight-openflow-app • Sudo apt install git • git clone https://github.com/CiscoDevNet/OpenDaylight-Openflow-App • cd OpenDaylight-Openflow-App/ • sudo npm install –g grunt-cli 3.4.5 Chỉnh sửa nội dung env.module.js Sau ta vào chỉnh sửa nội dung env.module.js, mục đích sửa địa ip controller mặc định thành ip khớp với ip controller ta sử dụng câu lệnh: Nhóm D16CQVT01-N Trang 32 CHƯƠNG TÌM HIỂU MỘT MẠNG SDN ĐƠN GIẢN • vim /OpenDaylight-Openflow-App/ofm/src/common/config/env.module.js • ta sửa localhost thành ip Opendaylight Hình 3.30: Chỉnh nội dung env.module.js 3.4.6 Chạy opendaylight ubuntu Sau ta chạy opendaylight ubuntu câu lệnh: • /karaf/bin/karaf • Sau mở Opendaylight, ta cài tính cho open daylight: – feature:install odl-restconf-all odl-openflowplugin-all odl-l2switch-all odl-mdsalall odl-yangtools-common odl-dlux-core odl-dlux-all Hình 3.31: Chạy opendaylight ubuntu • Sau đó, chạy opendaylight-openflow-app: – cd OpenDaylight-Openflow-App/ – sudo grunt Nhóm D16CQVT01-N Trang 33 CHƯƠNG TÌM HIỂU MỘT MẠNG SDN ĐƠN GIẢN • Xong phần cấu hình ODL ubuntu, bây giờ, ta vào mininet tạo topo gồm 4host 3sw, với controller trỏ tới địp ip ODL Mơ sau: Hình 3.32: Sơ đồ mạng • Lệnh khởi tạo: (với file mytopo.py viết python lưu từ trước vào mininet): – sudo mn –custom mytopo.py –switch=ovsk –controller=remote,ip=10.10.10.135,port=6633 –topo mytopo –mac Hình 3.33: Khởi tạo mạng Nhóm D16CQVT01-N Trang 34 CHƯƠNG TÌM HIỂU MỘT MẠNG SDN ĐƠN GIẢN 3.4.7 Giao diện GUI Controller ODL • Sau đó, ta vào giao diện GUI Controller ODL cách vào trình duyệt web, gõ http://10.10.10.35:900 • Ta thấy giao diện GUI ODL Controller sau: Hình 3.34: Giao diện GUI ODL Controller • Tại giao diện này, ta thực thao tác xem thông tin mơ hình mạng Tạo, sửa, xóa, thêm luồng, Ví dụ như: – Hình 3.34 cho ta thấy mơ hình tổng qt mạng – Tại Flow Managerment (Hình 3.35) ta xem thơng tin trạng thái Switch, flow emtry chỉnh sửa chúng: Hình 3.35: Mục Flow Mangerment Nhóm D16CQVT01-N Trang 35 CHƯƠNG TÌM HIỂU MỘT MẠNG SDN ĐƠN GIẢN – Tại mục Flow (Hình 3.36) cho phép xem, sửa, xóa tạo luồng cho hoạt động topo mạng Hình 3.36: Mục Flow – Tại mục Statistics (Hình 3.37), cho phép xem thơng tin table, port, group, metter, Hình 3.37: Mục Statistics – Ở mục Hosts (hình 3.38), ta xem thơng tin host host ID, địa IP, MAC, Nhóm D16CQVT01-N Trang 36 CHƯƠNG TÌM HIỂU MỘT MẠNG SDN ĐƠN GIẢN Hình 3.38: Mục Host • Tóm lại, với mơ hình mạng sử dụng controller, ta có khả quản lý thiết bị với nhìn toàn cảnh, trực quan, dễ sử dụng tiết kiệm tài nguyên việc Phân luồng liệu thành luồng control plane data plane riêng biệt Nhóm D16CQVT01-N Trang 37 CHƯƠNG KẾT LUẬN Trong báo cáo giới thiệu Mininet hoạt động giao thức OpenFlow Đồng thời hướng dẫn thao tác với Mininet để xây dựng quản lý thực thể topo mạng đơn giản SDN đời để giúp người đơn giản hóa việc quản lý thực thể mạng SDN Mininet cơng cụ để thực việc đơn giản hóa Tuy nhiên báo cáo dừng lại mức bản, muốn tìm hiểu sâu vấn đề bảo mật xem xét đến 38 ... tin lên controller Nhóm D16CQVT01-N Trang CHƯƠNG TÌM HIỂU MỘT MẠNG SDN ĐƠN GIẢN 3.1 Xây dựng mạng SDN đơn giản Yêu cầu: Xây dựng mạng SDN đơn giản gồm điều khiển,4 host switch 3.1.1 Khởi tạo... 2048 (icmp) Nhóm D16CQVT01-N Trang 29 CHƯƠNG TÌM HIỂU MỘT MẠNG SDN ĐƠN GIẢN ∗ Command new flow Nhóm D16CQVT01-N Trang 30 CHƯƠNG TÌM HIỂU MỘT MẠNG SDN ĐƠN GIẢN – Bước 4: ∗ Sw1 nhận đc flow entry forward... CỦA OPENFLOW 3 TÌM HIỂU MỘT MẠNG SDN ĐƠN GIẢN 3.1 Xây dựng mạng SDN đơn giản 3.1.1 Khởi tạo Mininet 3.1.2 Cấu hình tạo Topo mạng

Ngày đăng: 16/08/2021, 17:16

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w