Mininet 部署指南

Mininet 部署指南

Mininet 是一个用于快速构建软件定义网络(SDN)实验环境的轻量级仿真工具。以下从 安装 和 卸载 两个方面提供完整操作说明,覆盖主流操作系统及常见问题解决方案。

一、安装 Mininet

1. Ubuntu/Debian 系统安装(推荐)

方法 1:源码安装(灵活且最新)

# 更新系统

sudo apt update && sudo apt upgrade -y

# 安装依赖

sudo apt install git build-essential make python3-dev libffi-dev libssl-dev -y

# 克隆仓库并安装

git clone https://github.com/mininet/mininet

cd mininet

# 安装全部组件(包括 Mininet、Open vSwitch、控制器等)

sudo ./util/install.sh -a

# 验证安装

sudo mn --test pingall # 应显示 "0% dropped"

方法 2:APT 安装(快速但版本较旧)

sudo apt install mininet openvswitch-switch -y

方法 3:指定版本安装

cd mininet

git checkout -b 2.3.0 # 切换到指定版本

sudo ./util/install.sh -nV # 仅安装 Mininet,跳过 Open vSwitch

2. 其他操作系统

Fedora:

sudo dnf install mininet openvswitch

sudo systemctl start openvswitch

Mac/Windows:

使用 Mininet VM(VirtualBox 导入镜像)。或通过 Docker:

docker pull mininet/mininet

docker run -it --privileged mininet/mininet

3. 自定义拓扑安装(Python API)

创建 custom_topo.py:

from mininet.topo import Topo

class MyTopo(Topo):

def __init__(self):

Topo.__init__(self)

h1 = self.addHost('h1')

h2 = self.addHost('h2')

s1 = self.addSwitch('s1')

self.addLink(h1, s1, bw=10, delay='5ms')

self.addLink(h2, s1, bw=5, delay='10ms')

topos = {'mytopo': (lambda: MyTopo())}

运行自定义拓扑:

sudo mn --custom custom_topo.py --topo mytopo

二、卸载 Mininet

1. 源码安装的卸载

# 删除 Mininet 核心文件

sudo rm -f /usr/local/bin/mn

sudo rm -rf /usr/local/lib/python3*/dist-packages/mininet*

sudo rm -rf /usr/local/share/man/man1/mn.1

# 删除 Open vSwitch(如果通过脚本安装)

sudo systemctl stop openvswitch-switch

sudo rm -rf /usr/local/sbin/ovs-*

sudo rm -rf /usr/local/share/openvswitch

2. APT 安装的卸载

sudo apt remove --purge mininet openvswitch-switch openvswitch-common -y

sudo apt autoremove -y

3. 虚拟机/Docker 卸载

VirtualBox:直接删除虚拟机镜像。Docker:

docker stop $(docker ps -aq --filter ancestor=mininet/mininet)

docker rmi mininet/mininet

4. 深度清理残留文件

# 删除配置和日志

sudo rm -rf /etc/openvswitch/

sudo rm -rf /var/log/openvswitch/

# 清理 Python 环境

pip3 uninstall mininet # 如果通过 pip 安装

三、验证操作结果

1. 验证安装成功

mn --version # 输出 Mininet 版本(如 2.3.0)

ovs-vsctl --version # 输出 Open vSwitch 版本

2. 验证卸载成功

which mn # 应返回 "mn not found"

ovs-vsctl --version # 应提示 "command not found"

四、常见问题解决

1. 安装时依赖错误

现象:install.sh 报缺失依赖。解决:

sudo apt install -y <缺失包名> # 根据提示安装

2. Open vSwitch 服务启动失败

现象:ovs-vswitchd 无法启动。解决:

sudo systemctl stop openvswitch-switch

sudo rm -rf /var/run/openvswitch/*

sudo systemctl start openvswitch-switch

3. 卸载后残留文件冲突

现象:重新安装时提示文件已存在。解决:

sudo rm -rf /usr/local/bin/mn /usr/local/lib/python3*/dist-packages/mininet*

五、安装选项对比表

安装方式适用场景优点缺点源码安装需要最新功能或自定义组件灵活,支持最新版本步骤复杂,依赖较多APT 安装快速验证基础功能一键安装,无需编译版本较旧虚拟机镜像跨平台使用(Windows/Mac)免配置,隔离环境占用磁盘空间较大Docker轻量级临时环境快速启动,资源占用低需熟悉 Docker 操作

六、总结

推荐安装方式:

Ubuntu 用户:优先使用源码安装(install.sh -a),确保组件完整。快速实验:使用 Docker 或虚拟机镜像。 彻底卸载关键:

手动清理 /usr/local/、/etc/openvswitch/ 等目录。使用 apt purge 或 rm -rf 删除残留文件。 故障排查:

查看日志:/var/log/syslog 或 journalctl -u openvswitch-switch。社区支持:Mininet GitHub Issues。

通过本指南,您应能完成 Mininet 的安装、自定义配置及彻底卸载,为 SDN 实验提供稳定环境。

相关推荐

法国队击败“大黑马”摩洛哥 连续两届杀入世界杯决赛
掌握电阻:如何正确解读电阻的标识与参数
卡普的二十一個NP

卡普的二十一個NP

07-12 👁️ 5904
世界杯8强对阵规则

世界杯8强对阵规则

07-04 👁️ 9902
神泣好玩吗?玩家体验与评价详细解析
原神巨蛇岩洞怎么去-巨蛇岩洞进入方法介绍
知乎话题怎么关注?关注的人多吗?2023-09-29 22:43:573720浏览
老虎也有打盹的时候——虎为什么一直在睡?
proe5.0热力学分析

proe5.0热力学分析

07-17 👁️ 4908