1.使用Vmware打开下载好的mininet-2.2.2-170321-ubuntu-14.04.4-server-amd64
2.登录账号密码都为mininet
3.用命令行生成拓扑,并测试连通性
1)最小的网络拓扑,一个交换机下面挂两个主机:sudo mn --topo minimal,exit退出
{ps:.每次要新建拓扑时,需执行以下命令,防止上次操作对本次实验的影响
sudo mn -c (以下步骤新建拓扑时也要执行此命令)}
2)每个交换机连接一个主机,交换机间相连接。本例:4个主机,4个交换机。
sudo mn --topo linear,4
3)每个主机都连接到同一个交换机上。本例:3个主机,一个交换机。
sudo mn --topo single,3
4)定义深度和扇出形成基于树的拓扑。本例:深度2,扇出2。
sudo mn --topo tree, fanout=2,depth=2
4.Python脚本定义拓扑
【1】--topo linear,4。
1)新建linear.py 文件:touch linear.py
2)编辑文件:vim linear.py,添加一下内容:
from mininet.net import Mininet from mininet.topo import LinearTopo Linear4 = LinearTopo(k=4) #四个交换机,分别下挂一个主机 net = Mininet(topo=Linear4) net.start() net.pingAll() net.stop() |
3)修改文件linear.py为可执行文件:chmod +x linear.py
4)运行脚本:sudo python linear.py
【此时如果报错:a.文件内容错误,检查后对应修改后重新运行脚本即可
b.出现如下图所示错误:
则运行sudo mn -c命令后重新运行脚本】
5)成功的样子:
【2】--topo single,3。
详见【1】,步骤相同,仅脚本内容不同
from mininet.net import Mininet from mininet.topo import SingleSwitchTopo Single3 = SingleSwitchTopo(k=3) #一个交换机下挂3个主机 net = Mininet(topo=Single3) net.start() net.pingAll() net.stop() |
【3】--topo tree,depth=2,fanout=2。
同上
from mininet.net import Mininet from mininet.topolib import TreeTopo Tree22 = TreeTopo(depth=2,fanout=2) net = Mininet(topo=Tree22) net.start() net.pingAll() net.stop() |
【4】适合各种拓扑形式的脚本创建模式。本例:1个交换机,2个主机,并且赋予主机IP地址。
from mininet.net import Mininet net = Mininet() # Creating nodes in the network. c0 = net.addController() h0 = net.addHost(‘h0‘) s0 = net.addSwitch(‘s0‘) h1 = net.addHost(‘h1‘) # Creating links between nodes in network net.addLink(h0, s0) net.addLink(h1, s0) # Configuration of IP addresses in interfaces h0.setIP(‘192.168.1.1‘, 24) h1.setIP(‘192.168.1.2‘, 24) net.start() net.pingAll() net.stop() |
【5】在此基础上对性能进行限制。(addHost()语法可以对主机cpu进行设置,以百分数的形式;addLink()语法可以设置带宽bw、延迟delay、最大队列的大小max_queue_size、损耗率loss。)
from mininet.net import Mininet from mininet.node import CPULimitedHost from mininet.link import TCLink net = Mininet(host=CPULimitedHost, link=TCLink) c0 = net.addController() s0 = net.addSwitch(‘s0‘) h0 = net.addHost(‘h0‘) h1 = net.addHost(‘h1‘, cpu=0.5) h2 = net.addHost(‘h1‘, cpu=0.5) net.addLink(s0, h0, bw=10, delay=‘5ms‘, max_queue_size=1000, loss=10, use_htb=True) net.addLink(s0, h1) net.addLink(s0, h2) net.start() net.pingAll() net.stop() |
5.交互式界面创建主机、交换机等
1)$sudo mn
2)添加主机h3:
3)添加link:
4)给交换机s1添加端口eth3用于连接h3:
5)给h3赋予IP(10.0.0.3)以及h1 ping h3
6.测试网络
1)展示所有的网络信息。
2)所有节点的ping测试。
mininet-2.2.2-170321-ubuntu-14.04.4-server-amd64的使用
原文:https://www.cnblogs.com/effortday/p/12877803.html