Mininet实验手册
一、安装
1、 直接使用带有完整软件的VM(略)
2、 源码安装
1) 下载
git clone git://github.com/mininet/mininet
2) 安装
cd mininet/util
./install.sh –a ##good luck
install.sh –nfv
3) 测试
sudo mn --switch ovsbr --test pingall
3、 软件包安装
sudo apt-get install mininet
二、常用命令
1、 创建拓扑
1) 最小化拓扑
root@user1-virtual-machine:~/mininet/util# mn --topo minimal
*** Creating network
*** Adding controller
*** Adding hosts:
h1 h2
*** Adding switches:
s1
*** Adding links:
(h1, s1) (h2, s1)
*** Configuring hosts
h1 h2
*** Starting controller
c0
*** Starting 1 switches
s1 ...
*** Starting CLI:
请画出最小化拓扑的图形结构(在画图里表示即可):
2) 创建线性拓扑
root@user1-virtual-machine:~/mininet/util# mn --topo linear,4
*** Creating network
*** Adding controller
*** Adding hosts:
h1 h2 h3 h4
*** Adding switches:
s1 s2 s3 s4
*** Adding links:
(h1, s1) (h2, s2) (h3, s3) (h4, s4) (s2, s1) (s3, s2) (s4, s3)
*** Configuring hosts
h1 h2 h3 h4
*** Starting controller
c0
*** Starting 4 switches
s1 s2 s3 s4 ...
*** Starting CLI:
请画出上面示例中线性结构的图形结构(在画图里表示即可):
3) 构建属性拓扑
root@user1-virtual-machine:~/mininet/util# mn --topo tree,fanout=3,depth=2
*** Creating network
*** Adding controller
*** Adding hosts:
h1 h2 h3 h4 h5 h6 h7 h8 h9
*** Adding switches:
s1 s2 s3 s4
*** Adding links:
(s1, s2) (s1, s3) (s1, s4) (s2, h1) (s2, h2) (s2, h3) (s3, h4) (s3, h5) (s3, h6) (s4, h7) (s4, h8) (s4, h9)
*** Configuring hosts
h1 h2 h3 h4 h5 h6 h7 h8 h9
*** Starting controller
c0
*** Starting 4 switches
s1 s2 s3 s4 ...
*** Starting CLI:
请画出上面示例中属性结构的图形结构(在画图里表示即可):
2、 使用python脚本构建拓扑
1) 线性拓扑脚本
#!/usr/bin/env python
"""
Create a self-defined linear network, and run the CLI on it.
"""
from mininet.net import Mininet
from mininet.topo import LinearTopo
Linear4 = LinearTopo(k=4) #交换机数量为4
net = Mininet(topo=Linear4)
net.start()
net.pingAll()
net.stop()
~
2) 单交换机的星形拓扑(见上课文件)
3) 树形拓扑
4) 自定义ip
5) 自定义链路
以上程序文件参考课上
三、交互式界面命令
1、 执行mn创建最原始拓扑
root@user1-virtual-machine:~/mini_topo# mn
*** Creating network
*** Adding controller
*** Adding hosts:
h1 h2
*** Adding switches:
s1
*** Adding links:
(h1, s1) (h2, s1)
*** Configuring hosts
h1 h2
*** Starting controller
c0
*** Starting 1 switches
s1 ...
*** Starting CLI:
2、 添加h3主机
mininet> py net.addHost('h3')
<Host h3: pid=39832>
3、 添加h3和s0之间的连接
mininet> py net.addLink(s1,net.get('h3'))
<mininet.link.Link object at 0x7f674c3e5bb0>
4、 给交换机添加端口连接h3
mininet> py s1.attach('s1-eth3')
5、 给h3设置ip地址
mininet> py h3.setIP("10.0.0.3/24")
6、 测试连通性
mininet> h1 ping h3
PING 10.0.0.3 (10.0.0.3) 56(84) bytes of data.
64 bytes from 10.0.0.3: icmp_seq=1 ttl=64 time=1.50 ms
64 bytes from 10.0.0.3: icmp_seq=2 ttl=64 time=0.198 ms
64 bytes from 10.0.0.3: icmp_seq=3 ttl=64 time=0.043 ms
^C
--- 10.0.0.3 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2012ms
rtt min/avg/max/mdev = 0.043/0.581/1.504/0.655 ms
7、 查看信息
mininet> dump
<Host h1: h1-eth0:10.0.0.1 pid=39788>
<Host h2: h2-eth0:10.0.0.2 pid=39790>
<Host h3: h3-eth0:10.0.0.3 pid=39832>
<OVSSwitch s1: lo:127.0.0.1,s1-eth1:None,s1-eth2:None,s1-eth3:None pid=39795>
<Controller c0: 127.0.0.1:6653 pid=39781>
具体命令手册查看官网:http://mininet.org/walkthrough/#interact-with-hosts-and-switches
四、图形化
本实验在openlab注册平台上实现:
效果如下: