SDN-Mininet可视化实验

Miniedit三步走:

1.Miniedit启动

2.自定义创建拓扑,设置设备信息

3.运行拓扑并生成拓扑脚本

1.启动

2.自定义创建拓扑

3.设置设备信息。(右键长按)

设置远程控制器

设置交换机S1,S2(DPID是16位)

配置主机(直接修改IP地址)

全局配置

4.运行拓扑

直接运行

此时终端便可以进行后端操作

这时在可视化界面上,右键可以查看交换机信息,但是不可以修改

而主机可以直接打开终端,进行相关操作,这是发现h1和h2是ping不通的

其实三个主机都是无法互相通信的。

因为我们设定的控制器为远程控制器,因此需要开启ryu

然后再去通信,就可以ping通了

5.生成拓扑脚本

我们已经完成了实验的验证,我们可以通过建立脚本的方法来保存我们的拓扑(保存拓扑之前要先Stop)

保存为py文件

这时我们发现文件夹里多了一个名为 ex_1.py 的文件,它的内容如下

#!/usr/bin/python

from mininet.net import Mininet
from mininet.node import Controller, RemoteController, OVSController
from mininet.node import CPULimitedHost, Host, Node
from mininet.node import OVSKernelSwitch, UserSwitch
from mininet.node import IVSSwitch
from mininet.cli import CLI
from mininet.log import setLogLevel, info
from mininet.link import TCLink, Intf
from subprocess import call

def myNetwork():

    net = Mininet( topo=None,
                   build=False,
                   ipBase='10.0.0.0/8')

    info( '*** Adding controller\n' )
    c0=net.addController(name='c0',
                      controller=RemoteController,
                      ip='127.0.0.1',
                      protocol='tcp',
                      port=6633)

    info( '*** Add switches\n')
    s1 = net.addSwitch('s1', cls=OVSKernelSwitch, dpid='0000000000000001')
    s2 = net.addSwitch('s2', cls=OVSKernelSwitch, dpid='0000000000000002')

    info( '*** Add hosts\n')
    h2 = net.addHost('h2', cls=Host, ip='10.0.0.2', defaultRoute=None)
    h1 = net.addHost('h1', cls=Host, ip='10.0.0.1', defaultRoute=None)
    h3 = net.addHost('h3', cls=Host, ip='10.0.0.3', defaultRoute=None)

    info( '*** Add links\n')
    net.addLink(s1, s2)
    net.addLink(s1, h1)
    net.addLink(s1, h2)
    net.addLink(s2, h3)

    info( '*** Starting network\n')
    net.build()
    info( '*** Starting controllers\n')
    for controller in net.controllers:
        controller.start()

    info( '*** Starting switches\n')
    net.get('s1').start([c0])
    net.get('s2').start([c0])

    info( '*** Post configure switches and hosts\n')

    CLI(net)
    net.stop()

if __name__ == '__main__':
    setLogLevel( 'info' )
    myNetwork()

6.运行拓扑脚本

但是它的颜色与其余的py文件不一样,并且无法执行,因为权限不够

那么我们给它加上权限之后便可以运行了

大功告成!

 

 

 

  • 2
    点赞
  • 51
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值