Ubuntu安装Mininet教程

1 安装Mininet

安装git

sudo apt-get install git

下载代码

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

然后进入mininet/util目录,执行安装命令-a表示全部安装

cd mininet
cd util
sudo ./install.sh -a

安装完毕会输出Enjoy Mininet!

2 测试运行

运行mininet

sudo mn

出现报错:

Cannot find required executable ifconfig.
Please make sure that Mininet is installed and available in your $PATH:
(/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin)

解决方法:

sudo apt-get install mininet

重新运行测试

sudo mn

运行正常

至此,Mininet安装完成!!!

 

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

补充,2020年10月14日20:19:08

报错:fatal: 目标路径 'openflow' 已经存在,并且不是一个空目录。

输入sudo mn 无法启动

解决方法:

sudo apt-get install mininet

解决后顺利启动

 

### Ubuntu 20.04 上安装和使用 Mininet教程 #### 安装依赖项 在开始安装 Mininet 前,需先更新系统的包管理器并安装必要的依赖项。以下是具体的操作: ```bash sudo apt update && sudo apt upgrade -y sudo apt install -y git autoconf automake build-essential python-pip \ python-dev screen vim tmux htop gdb wireshark tcpdump iperf3 curl wget net-tools ``` 上述命令会安装一系列开发工具以及网络调试所需的软件[^1]。 --- #### 下载并编译 Open vSwitch (OVS) Mininet 需要 OVS 来支持虚拟交换机功能。可以通过以下步骤完成其安装: ```bash git clone https://github.com/openvswitch/ovs.git cd ovs/ git checkout v2.16.0 # 版本号可根据需求调整 ./boot.sh ./configure --prefix=/usr --localstatedir=/var --sysconfdir=/etc make sudo make install ``` 此过程将下载、配置并构建最新版本的 OVS 软件。 --- #### 编译和安装 Mininet 接下来,按照官方推荐的方式克隆 Mininet 并执行安装脚本: ```bash git clone https://github.com/mininet/mininet.git cd mininet sudo util/install.sh -nfv # 参数解释:-n 表示仅安装必要组件;-f 表示强制覆盖已存在的文件;-v 表示启用 verbose 输出模式。 ``` 如果需要指定特定版本(如 `2.5.0`),可附加参数 `-V 2.5.0` 到安装命令中[^2]。 --- #### 测试 Mininet 是否安装成功 为了验证 Mininet 和 SDN 控制平面之间的交互能力,可以运行内置测试命令来检测所有节点间的连通性: ```bash sudo mn --test pingall ``` 该命令会在启动一个简单的拓扑结构后尝试让每一对主机互相发送 ICMP 请求,并报告成功率。若返回值为 `*** Ping: testing ping reachability`, 后续显示全部可达,则说明环境搭建无误[^3]。 --- #### 使用 Mininet 创建自定义拓扑 除了默认的简单线形拓扑外,还可以通过 Python 脚本来设计更复杂的场景。下面是一个例子展示如何建立星型连接的四台设备组成的网络: ```python from mininet.topo import Topo from mininet.net import Mininet from mininet.cli import CLI from mininet.log import setLogLevel, info class StarTopo(Topo): def __init__(self): super(StarTopo, self).__init__() switch = self.addSwitch('s1') hosts = [] for i in range(1, 5): host = self.addHost(f'h{i}') self.addLink(host, switch) if __name__ == '__main__': setLogLevel('info') topo = StarTopo() net = Mininet(topo=topo) net.start() CLI(net) net.stop() ``` 保存以上代码至名为 `star_topo.py` 文件之后,可通过终端调用它以激活新的布局形式: ```bash sudo python star_topo.py ``` 这将在进入交互界面之前自动加载定制化的拓扑设置。 ---
评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值