1 2 3 4

实验1:SDN拓扑实践

一、可视化工具生成拓扑


二、使用Mininet命令行生成拓扑的运行结果截图


三、在Mininet交互界面上新增1台主机并且连接到交换机上的执行结果截图

四、添加网络性能限制后修改过的“学号.py”代码、Mininet运行结果

(1)运行结果

(2)代码

  #!/usr/bin/env 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=Controller,
                      protocol='tcp',
                      port=6633)

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

    info( '*** Add hosts\n')
    h1 = net.addHost('h1', cls=Host, ip='192.168.1.1', defaultRoute=None,cpu=0.5)
    h2 = net.addHost('h2', cls=Host, ip='192.168.1.2', defaultRoute=None)
    h3 = net.addHost('h3', cls=Host, ip='192.168.1.3', defaultRoute=None)
    h4 = net.addHost('h4', cls=Host, ip='192.168.1.4', defaultRoute=None)
    
    info( '*** Add links\n')
    net.addLink(h1, s1,bw=10,delay='5ms',max_queue_size=1000,loss=50)
    net.addLink(h2, s1)
    net.addLink(s1, s2)
    net.addLink(s2, h4)
    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()

五、实验总结

  • 本次实验难度适中,主要遇到的问题是在Mininet交互界面上新增1台主机并且连接到交换机上时,遇到了新增主机无法ping通的问题,先是查看了所有设备ip地址,并通过py
    h4.setIP("10.0.0.4")来配置h4的ip,但仍不能ping通。后来通过网络查阅资料,发现未为交换机新增端口eth4,输入"py s1.attach('s1-eth4')"新增端口后实现pingall全通。同时在此次实
    验中学会了用dump查看拓扑中设备的ip等信息,用links来检测拓扑链路是否连通,以及用iperf h1 h2来测试h1 h2之间的链路带宽。从而进一步熟悉了mininet基础命令。
posted @ 2022-09-23 14:08  garty  阅读(9)  评论(0编辑  收藏  举报