文章目录
一、教学目的
- 能够运用 mininet 可视化工具创建计算机网络拓扑结构
- 能够运用 mininet 交互界面创建拓扑结构
- 能够运用 python 脚本构建计算机网络拓扑结构
二、实验环境
- 下载并安装虚拟机 VMware workstation
- 打开虚拟机镜像( SDNHub_tutorial_VM_64-bit[NEW](可直接导入 VMware).ova ),下载链接https://pan.baidu.com/s/1qYN_MtUboPmruHda1DgrTA 提取码:mhfi
三、技术背景
1. 什么是Mininet
Mininet是由一些虚拟的终端节点(end-hosts)、交换机、路由器连接而成的一个网络仿真器。
2.Mininet命令图谱
3.网络构建参数——topo
3.1 单一(single)拓扑
整个网络拓扑中交换机只有一个,下面可以连接多个主机
3.2 线性(linear)拓扑
可以有多个交换机,但是每个交换机下面只是连接一个主机
3.3 树形(tree)拓扑
交换机连接成树形排列,且每个交换机所连接主机一般有多个
3.4 自定义(custom)拓扑
Python编写文件file.py,执行此脚本即可创建定义的拓扑,–custom与–topo联用
4.网络构建参数——switch
定义mininet要使用的交换机(默认使用OVSK,即OpenVSwitch交换机)
- 定义网络拓扑要使用的交换机,后面可以接的参数有:ovsk、ovsbr、ivs、lxbr、user,前面三种均为OVS型交换机,后面两种分别为内核型(linux bridge)和用户型(user)交换机。
- 交换机分类3类:内核型、用户型、OVS型,其中内核型和OVS型的吞吐量比用户型大很多,因此一般采用后两种。
测试三者的TCP bandwidth
sudo mn --switch ovsk --test iperf ovs型
sudo mn --switch user --test iperf 用户型
sudo mn --test iperf 内核型
5.网络构建参数——controller
- –controller定义要使用的控制器,如果没有指定则使用mininet中默认的控制器
- 连接远程控制器,可以指定存在于本机或者与之相连通设备上的控制器,指定远程控制器方法:
sudo mn --controller=remote,--ip=[controller IP],--port=[port]
如果--ip和--port省略的话,则默认使用本地ip地址,端口默认使用6653或6633端口号。
6. Mininet内部交互命令
四、内容与任务
4.1 使用命令行创建拓扑
root@sdnhubvm:/home/ubuntu# mn
*** Creating network
*** Adding controller
*** Adding hosts:
h1 h2
*** Adding switches:
s1
*** Adding links:
(h1, s1) (h2, s1)