Mininet 部署指南

发布于:2025-03-16 ⋅ 阅读:(18) ⋅ 点赞:(0)

在这里插入图片描述

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 purgerm -rf 删除残留文件。
  • 故障排查

    • 查看日志:/var/log/syslogjournalctl -u openvswitch-switch
    • 社区支持:Mininet GitHub Issues

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


网站公告

今日签到

点亮在社区的每一天
去签到