1.Mininet 可视化(MiniEdit)

目录

0.导入资源包

补充:修改密码

1.概述

[2. Mininet 的使用](#2. Mininet 的使用)

[2.1 启动MiniEdit](#2.1 启动MiniEdit)

[2.2 自定义拓扑&配置信息](#2.2 自定义拓扑&配置信息)

(1)自定义拓扑

(2)配置信息

(2-1)C0

(2-2)S1

(2-3)S2

[(2-4) h1](#(2-4) h1)

[(2-5) h2](#(2-5) h2)

[(2-6) h3](#(2-6) h3)

(2-7)链路属性相关设置

(2-8)全局配置

[2.3 保存python脚本文件运行拓扑并生成拓扑脚本](#2.3 保存python脚本文件运行拓扑并生成拓扑脚本)

[(1) 保存python脚本文件](#(1) 保存python脚本文件)

[(2)直接用 Python 解释器运行](#(2)直接用 Python 解释器运行)

(3)查看设备状态

[2.4 保存mininet文件运行拓扑并生成拓扑脚本](#2.4 保存mininet文件运行拓扑并生成拓扑脚本)

[(1) 保存文件](#(1) 保存文件)

(2)打开已保存的mininet文件

(3)点击运行"RUN"

[(4)查看交换机配置信息](#(4)查看交换机配置信息)

(5)查看主机信息

(6)测试网络的连通性


0.导入资源包

通过网盘分享的文件:SDNHub_tutorial_VM_64-bitNEW(可直接导入VMware).ova

链接: https://pan.baidu.com/s/1HHCWWB1P7qUcUcsRge-Wyw?pwd=ccwt 提取码: ccwt

--来自百度网盘超级会员v4的分享

补充:修改密码
bash 复制代码
ubuntu@sdnhubvm:~[05:36]$ whoami
ubuntu
ubuntu@sdnhubvm:~[05:41]$ id
uid=1000(ubuntu) gid=1000(ubuntu) groups=1000(ubuntu),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),110(lpadmin),111(sambashare)
ubuntu@sdnhubvm:~[05:41]$ sudo passwd ubuntu
Enter new UNIX password: 
Retype new UNIX password: 
passwd: password updated successfully
ubuntu@sdnhubvm:~[05:42]$ 

1.概述

Miniedit可视化,直接在界面上编辑任意拓扑,生成python自定义拓扑脚本,简单方便。
Mininet2.2.0+内置miniedit。在mininet/examples下提供miniedit.py脚本,执行脚本后显示可视化界面,可自定义拓扑及配置属性。
注意:执行miniedit.py,需要在桌面版系统下,或支持X11的情况下使用。Linux桌面版系统下可直接执行;远程使用Mininet虚拟机,需使用Xmanager或Xming。

2. Mininet 的使用

2.1 启动MiniEdit


2.2 自定义拓扑&配置信息

(1)自定义拓扑
(2)配置信息
(2-1)C0

右键长按properties

修改控制器类型为远程控制器

控制器的四种类型:

  1. Remote Controller(远程控制器)
  • 定义:控制器运行在独立的机器或进程中,与交换机通过网络连接

  • 特点

    • 控制平面与数据平面物理分离

    • 可集中管理多个分散的交换机

    • 需要配置控制器IP和端口(如127.0.0.1:6633)

    • 适合大规模、分布式网络部署

  1. In-Band Controller(带内控制器)
  • 定义:控制流量和数据流量共用同一网络通道

  • 特点

    • 控制器与交换机之间没有专门的控制网络

    • 控制报文与普通数据流共享链路

    • 节省网络资源,无需独立控制网络

    • 可能存在控制流量拥塞或安全风险

    • 适合网络资源受限的场景

  1. OpenFlow Reference(OpenFlow参考控制器)
  • 定义:OpenFlow协议的标准参考实现

  • 特点

    • 通常指 ovs-controllerreference controller

    • 实现最基本的OpenFlow协议功能

    • 作为学习研究使用,功能相对简单

    • 支持L2交换、Hub等基本行为

    • 适合实验环境测试OpenFlow基础功能

  1. OVS Controller(Open vSwitch控制器)
  • 定义:专门为Open vSwitch设计的控制器

  • 特点

    • 通常指 ovs-controller 命令

    • 与Open vSwitch配合使用

    • 支持基本的L2交换功能

    • 轻量级,适合Mininet测试环境

    • 可通过 ptcp:6633 等方式启动

对比总结

控制器类型 部署方式 适用场景 复杂度
Remote Controller 独立进程/机器 生产环境、大规模网络
In-Band Controller 共享网络通道 资源受限环境
OpenFlow Reference 本地或远程 学习研究、协议测试
OVS Controller 本地 Mininet实验、基本交换
(2-2)S1

相应的命令行信息作以更新

(2-3)S2
(2-4) h1
(2-5) h2
(2-6) h3
(2-7)链路属性相关设置
(2-8)全局配置

配置如下

2.3 保存python脚本文件运行拓扑并生成拓扑脚本

(1) 保存python脚本文件

这里建议大家也先保存mn.文件,不要关闭miniedit

查看保存的脚本

(2)直接用 Python 解释器运行
  • Mininet 脚本成功执行

  • 创建了网络拓扑(交换机、主机 h1、h2、h3)

  • 配置了主机和链路

  • 进入了 Mininet CLI 交互界面(mininet> 提示符)

(3)查看设备状态

2.4 保存mininet文件运行拓扑并生成拓扑脚本

(1) 保存文件
(2)打开已保存的mininet文件
(3)点击运行"RUN"

点击RUN ,如果出现如下错误,解决思路:

复制代码
# 停止所有 Mininet 进程
sudo mn -c
复制代码
# 或者删除所有 mininet 相关接口
sudo ip link list | grep -E "([sh][0-9]+-eth)" | awk -F': ' '{print $2}' | xargs -I {} sudo ip link delete {}
复制代码
# 确保以 root 权限运行
sudo python miniedit.py
复制代码
## 停止所有 Mininet 进程
ubuntu@sdnhubvm:~/mininet/examples[19:57] (master)$ sudo mn -c
*** Removing excess controllers/ofprotocols/ofdatapaths/pings/noxes
killall controller ofprotocol ofdatapath ping nox_corelt-nox_core ovs-openflowd ovs-controllerovs-testcontroller udpbwtest mnexec ivs ryu-manager 2> /dev/null
killall -9 controller ofprotocol ofdatapath ping nox_corelt-nox_core ovs-openflowd ovs-controllerovs-testcontroller udpbwtest mnexec ivs ryu-manager 2> /dev/null
pkill -9 -f "sudo mnexec"
*** Removing junk from /tmp
rm -f /tmp/vconn* /tmp/vlogs* /tmp/*.out /tmp/*.log
*** Removing old X11 tunnels
*** Removing excess kernel datapaths
ps ax | egrep -o 'dp[0-9]+' | sed 's/dp/nl:/'
***  Removing OVS datapaths
ovs-vsctl --timeout=1 list-br
ovs-vsctl --timeout=1 list-br
*** Removing all links of the pattern foo-ethX
ip link show | egrep -o '([-_.[:alnum:]]+-eth[[:digit:]]+)'
ip link show
*** Killing stale mininet node processes
pkill -9 -f mininet:
*** Shutting down stale tunnels
pkill -9 -f Tunnel=Ethernet
pkill -9 -f .ssh/mn
rm -f ~/.ssh/mn/*
*** Cleanup complete.
ubuntu@sdnhubvm:~/mininet/examples[19:57] (master)$ # 或者删除所有 mininet 相关接口
ubuntu@sdnhubvm:~/mininet/examples[19:59] (master)$ sudo ip link list | grep -E "([sh][0-9]+-eth)" | awk -F': ' '{print $2}' | xargs -I {} sudo ip link delete {}
ubuntu@sdnhubvm:~/mininet/examples[19:59] (master)$ # 确保以 root 权限运行
ubuntu@sdnhubvm:~/mininet/examples[19:59] (master)$ sudo python miniedit.py
topo=none 
Getting Hosts and Switches.
Getting controller selection:remote 
Unable to contact the remote controller at 127.0.0.1:6633
Getting Links.
*** Configuring hosts
h1 h2 h3 
**** Starting 1 controllers
c0 
**** Starting 2 switches
s1 s2 
No NetFlow targets specified.
No sFlow targets specified.


 NOTE: PLEASE REMEMBER TO EXIT THE CLI BEFORE YOU PRESS THE STOP BUTTON. Not exiting will prevent MiniEdit from quitting and will prevent you from starting the network again during this sessoin.

*** Starting CLI:
mininet> 
(4)查看交换机配置信息
(5)查看主机信息

打开主机终端

(6)测试网络的连通性

更改控制器类型

h1 ping h2

相关推荐
dogstarhuang5 分钟前
OpenAI GPT-5.6 降价后如何重算 API 账单?多模型路由与成本治理实战
服务器·网络·人工智能·大模型·api·ai应用开发·接口管理
苏宸啊21 分钟前
linux网络编程udp服务器和客户端代码编写(echo版本和字典版本)
linux·网络
奇树谦2 小时前
HDD 为什么适合顺序大文件读写:从 RAID 5 到 RAID 50 的原理与性能分析
linux·运维·网络
嵌入式阿蔡3 小时前
Linux_01:交叉编译与开发环境实战——从单片机跨到 Linux 的第一道坎
linux·运维·网络·单片机·嵌入式硬件·嵌入式实时数据库
雷电小将军4 小时前
诡秘之主手游占卜家序列加点 诡秘之主手游占卜家怎么加点
服务器·网络·游戏·电脑·玩游戏
陈皮波比茶4 小时前
Python项目实战-网络机器人(爬虫)
开发语言·网络·爬虫·python·机器人
白猫不黑4 小时前
网络安全/信息安全专业学习路线与入行指南:从大学到岗位的完整规划
网络·学习·安全·web安全·网络安全·黑客技术
wWYy.4 小时前
Linux发送数据包的过程
linux·网络
云飞云共享云桌面5 小时前
自动化设备厂 10 人研发团队,如何共用一台服务器做 SolidWorks 建模?
运维·服务器·网络·3d·自动化·制造
小谢取证5 小时前
实战案例分享:用 AI 绕过模拟器反取证进行动态抓包,落地 APK 真实 IP
大数据·网络·人工智能