Phần 1 : Mở Đầu1.1.Giới thiệu chung về Mininet -Mininet là một trình giả lập mạng mã nguồn mở, được sử dụng rộng rãi để nghiên cứu và thử nghiệm các mô hình mạng.. -Mininet hỗ trợ: Tạo
Trang 1HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
KHOA VIỄN THÔNG
-* -BÁO CÁO LAB 2:
Làm quen với Mininet và tạo bài lab đơn giản trên Mininet Giảng viên : Ths.Hoàng Thị Thu
Lớp : D21VTMD04
Nhóm : 10 Sinh viên : Trần Thu Hoài -B21DCVT199 : Hà Phương Thảo-B21DCVT407
: Nguyễn Vũ Minh Việt-B21DCVT463
Trang 2Mục lục :
Phần 1 : Mở Đầu 3
1.1.Giới thiệu chung về Mininet 3
1.2.Mininet làm việc như thế nào? 3
Phần 2 : Thực Hành 4
2.1Cài đặt VirtualBox và máy ảo Lubuntu 4
2.2 Cài đặt mininet mà một số công cụ phụ trợ sử dụng lệnh apt 5
2.3 Thực thi miniedit 6
2.4 Sử dụng công cụ MiniEdit để tạo ra mạng đơn giản gồm 1 switch và 2 host: 8
Phần 3 : Kết Luận 10
Trang 3Phần 1 : Mở Đầu
1.1.Giới thiệu chung về Mininet
-Mininet là một trình giả lập mạng mã nguồn mở, được sử dụng rộng rãi để nghiên cứu và thử nghiệm các mô hình mạng Mininet cho phép tạo ra một môi trường mạng ảo với các thiết bị như switch, router và host chạy trên cùng một máy tính Các thiết bị này có thể giao tiếp với nhau như trong một mạng thực, giúp kiểm tra các giao thức mạng, phần mềm điều khiển SDN (Software-Defined Networking) và các dịch vụ mạng khác
- Mininet là network emulator có để tạo mạng của virtual hosts, switches, controllers và links Mininet hosts chạy Linux network software tiêu chuẩn, và switches hỗ trợ OpenFlow cho việc routing và Software-Defined Networking
- Mininet hỗ trợ nghiên cứu, phát triển, học tập, tạo mẫu, thử nghiệm, gỡ lỗi và bất kỳ nhiệm vụ nào mà có lợi từ việc có mạng thử nghiệm hoàn chỉnh trên laptop hoặc PC
-Mininet hỗ trợ:
Tạo nhanh một mạng ảo với các thành phần như host, switch và controller
Kiểm tra và mô phỏng các giao thức mạng
Hỗ trợ tích hợp với OpenFlow và các công nghệ SDN
Trang 4 Tích hợp với các công cụ đo kiểm như Wireshark, iperf để đánh giá hiệu suất mạng
1.2.Mininet làm việc như thế nào?
- Mininet sử dụng ảo hóa dựa trên tiến trình để chạy nhiều hosts và switches trên 1 OS kernel ( đã khởi động thành công lên tới 4096 hosts)
- Từ phiên bản 2.2.26, Linux hỗ trợ network namespace, 1 lightweight virtualization cung cấp các tiến trình với network interface, routing tables, và ARP tables riêng biệt
- Mininet có thể tạo kernel hoặc user-space OpenFlow switches, controllers để điều khiển các switches, và hosts để truyền thông qua mạng mô phỏng Mininet kết nối switches và hosts bằng virtual ethernet (veth) pairs
Phần 2 : Thực Hành
2.1Cài đặt VirtualBox và máy ảo Lubuntu
Hình 1: Giao diện của máy ảo Lubuntu sau khi hoàn thành các cài đặt
Trang 5Một số lệnh cơ bản với Lubuntu:
+ ifconfig -a: tra địa chỉ của máy ảo
Từ hình trên ta biết được
- Địa chỉ IPv4: 10.0.2.15, subnet mask: 255.255.255.0, broadcast: 10.0.2.255
- Địa chỉ IPv6: fe80::9e5c:afc:3c6a:3804
- Địa chỉ Mac: 08:00:27:e5:c8:46
Kết nối đến địa chỉ google: ping google.com;
Để dừng, ta bấm tổ hợp phím Ctrl + C
2.2 Cài đặt mininet mà một số công cụ phụ trợ sử dụng lệnh apt
- Update và cài đặt python3-pip: sudo apt update
- sudo apt install python3-pip
*pip là một trình quản lý các gói cho python Đây là một công cụ cho phép người dùng cài đặt và quản lý các thư viện không được tích hợp sẵn trong thư viện tiêu chuẩn
Trang 6- Cài đặt ryu: sudo pip3 install ryu
* ryu là một framework mã nguồn mở cho việc phát triển các ứng dụng
và controller SDN Ryu được thiết kế hỗ trợ việc xây dựng các ứng dụng và controller SDN bằng cách cung cấp một framework linh hoạt, mạnh mẽ và dễ
sử dụng Cho phép các nhà phát triển tạo ra các ứng dụng mạng tùy chỉnh và controller để điều khiển các thiết bị mạng SDN
- Cài đặt git: sudo apt install git
*Git là một hệ thống quản lý phiên bản Nó cho phép các nhà phát triển lưu trữ mã nguồn của dự án, theo dõi lịch sử thay đổi và làm việc song song với nhau trên cùng một mã nguồn
- clone tới địa chỉ: git clone https://github.com/mininet/mininet
*Sau khi chạy lệnh, chúng ta sẽ có một thư mục có tên ‘mininet’ chứa toàn bộ mã nguồn và lịch sử của dự án Mininet được tải về từ kho lưu trữ GitHub
- Thực hiện 1 loạt các câu lệnh sau:
+ cd mininet/
+ cd util/
+ sudo /install.sh -a
Trang 7Chạy thử mininet: sudo mn
- Để xóa topo mạng đã tạo, dùng câu lệnh: sudo mn -c
cài đặt python3: sudo apt install python3
2.3 Thực thi miniedit
thực hiện các câu lệnh để mở giao diện miniedit + cd mininet/examples
+ sudo python3 /miniedit.py
Giao diện miniedit hiện ra, ta có thể tạo topo mạng bất kì
Trang 8Hình: giao diện miniedit
- Cài đặt Wireshark: Sudo apt install wireshark
*Wireshark là một công cụ phân tích mạng và giao thức mạng mã nguồn
mở Nó được sử dụng để kiểm tra, phân tích và giám sát lưu lượng mạng trong thời gian thực Wireshark cho phép người dùng chặn và ghi lại các gói tin trên mạng, sau đó hiển thị chúng dưới dạng dữ liệu có cấu trúc và có thể được phân tích chi tiết
Trang 9Hình: Giao diện wireshark
2.4 Sử dụng công cụ MiniEdit để tạo ra mạng đơn giản gồm 1 switch và 2 host:
- Thực thi MiniEdit
Sudo python3 /mininet/examples/miniedit.py Màn hình miniedit
- Tạo mạng đơn giản gồm 1 switch và 2 host: h1-s1-h2
Trang 10Thực hiện mô phỏng mô hình mạng trên:
- Vào menu Edit/Preference, chọn Start CLI; sau đó chọn run trên giao diện chính của MiniEdit để chạy mô phỏng mạng
Mạng trên có 2 host h1, h2 và 1 switch s1
- Ở giao diện CLI của mininet thực thi lệnh : xterm h1 h2 Sau khi chạy câu lệnh,
hai giao diện terminal của h1 và h2 hiện lên
- Thực hiện 2 lệnh: ifconfig -a
Trang 11Địa chỉ IP của h1: 10.0.0.1; subnet mask: 225.0.0.0; broadcast: 10.255.255.255
Địa chỉ IP của h2: 10.0.0.2; subnet mask: 225.0.0.0; broadcast: 10.255.255.255
- Thực hiện lệnh ping từ h1 đến địa chỉ của h2: ping 10.0.0.2
Hình trên cho thấy có 3 gói tin đã được vận chuyển, 3 gói đã nhận, không có gói nào bị lost, tổng thời gian là 2025ms
Trang 12- Xuất ra tập tin python, giúp chúng ta tạo lại mô hình mạng vừa xong: Ở giao
diện MiniEdit chọn menu File/Export Level 2 Script Lưu tập tin với tên là Lab1.
- Thực thi lệnh sau để tạo mạng sử dụng tập tin Lab1.py đã lưu ở bước trên
Sudo mn –custom /lab1.py
Ở giao diện CLI của mininet thực hiện lại bước ở trang 3, 4 để kiểm tra kết nối h1, h2 Sau đó đóng chương trình bằng lệnh exit
Phần 3 : Kết Luận
Sau khi thực hiện bài Lab 2, chúng ta có thể rút ra một số kết luận quan trọng:
1 Hiểu về Mininet
Mininet là một công cụ mạnh mẽ giúp mô phỏng mạng ảo trên một máy tính duy nhất, hỗ trợ kiểm tra và thử nghiệm các giao thức mạng
Hỗ trợ việc tạo, mô phỏng, kiểm thử các mạng với quy mô khác nhau một cách nhanh chóng và dễ dàng
2 Thực hành cài đặt và sử dụng Mininet
Cài đặt thành công Mininet và các công cụ hỗ trợ như Wireshark, Ryu, Git
Trang 13 Làm quen với các lệnh cơ bản của Mininet để tạo, kiểm tra và xóa topology mạng
3 Xây dựng mô hình mạng và kiểm thử
Tạo thành công một mạng đơn giản gồm 1 switch và 2 host
Kiểm tra kết nối giữa các thiết bị thông qua lệnh ping, xác nhận không
có gói tin nào bị mất
Xuất mô hình mạng thành tập tin Python giúp tự động hóa quá trình tạo mạng trong tương lai
4 Mở rộng và ứng dụng
Mininet có thể tích hợp với các công cụ như Wireshark để phân tích dữ liệu mạng chi tiết hơn
Có thể sử dụng Mininet để nghiên cứu và triển khai các mô hình mạng
SDN thực tế.