zoukankan      html  css  js  c++  java
  • SDN——实验脚本4-1:ovsSingleBr.py

    在没有控制器的情况下,在Mininet 脚本中通过调用 ovs 命令直接向 switch0 交换机下发流表,将入端口号为1/2/3 的数据包泛洪广播,并对目的地址为 192.168.123.1/2/3 的数据包分别从1/2/3 端口转发出去。之后测试 h0 ping h1,h0 ping h2,网络连通。

    #!/usr/bin/python
     
    from mininet.net import Mininet
    from mininet.node import Node
    from mininet.link import Link
    from mininet.log import  setLogLevel, info
     
    def myNet():
        "Create network from scratch using Open vSwitch."
     
        info( "*** Creating nodes
    " )
        switch0 = Node( 's0', inNamespace=False )
     
        h0 = Node( 'h0' )
        h1 = Node( 'h1' )
        h2 = Node( 'h2' )
     
        info( "*** Creating links
    " )
        Link( h0, switch0)
        Link( h1, switch0)
        Link( h2, switch0)
     
        info( "*** Configuring hosts
    " )
        h0.setIP( '192.168.123.1/24' )
        h1.setIP( '192.168.123.2/24' )
        h2.setIP( '192.168.123.3/24' )
           
        info( "*** Starting network using Open vSwitch
    " )
        switch0.cmd( 'ovs-vsctl del-br dp0' )
        switch0.cmd( 'ovs-vsctl add-br dp0' )
     
        for intf in switch0.intfs.values():
            print intf
            print switch0.cmd( 'ovs-vsctl add-port dp0 %s' % intf )
     
        # Note: controller and switch are in root namespace, and we
        # can connect via loopback interface
        #switch0.cmd( 'ovs-vsctl set-controller dp0 tcp:127.0.0.1:6633' )
      
        print switch0.cmd(r'ovs-vsctl show')
     
        print switch0.cmd(r'ovs-ofctl add-flow dp0 idle_timeout=0,priority=1,in_port=1,actions=flood' ) 
        print switch0.cmd(r'ovs-ofctl add-flow dp0 idle_timeout=0,priority=1,in_port=2,actions=flood' )
        print switch0.cmd(r'ovs-ofctl add-flow dp0 idle_timeout=0,priority=1,in_port=3,actions=flood' )
      
        print switch0.cmd(r'ovs-ofctl add-flow dp0 idle_timeout=0,priority=10,ip,nw_dst=192.168.123.1,actions=output:1' ) 
        print switch0.cmd(r'ovs-ofctl add-flow dp0 idle_timeout=0,priority=10,ip,nw_dst=192.168.123.2,actions=output:2' ) 
        print switch0.cmd(r'ovs-ofctl add-flow dp0 idle_timeout=0,priority=10,ip,nw_dst=192.168.123.3,actions=output:3')
     
        #switch0.cmd('tcpdump -i s0-eth0 -U -w aaa &')
        #h0.cmd('tcpdump -i h0-eth0 -U -w aaa &')
        info( "*** Running test
    " )
        h0.cmdPrint( 'ping -c 3 ' + h1.IP() )
        h0.cmdPrint( 'ping -c 3 ' + h2.IP() )
     
        #print switch0.cmd( 'ovs-ofctl show dp0' )    
        #print switch0.cmd( 'ovs-ofctl dump-tables  dp0' )
        #print switch0.cmd( 'ovs-ofctl dump-ports   dp0' )
        #print switch0.cmd( 'ovs-ofctl dump-flows  dp0' )
        #print switch0.cmd( 'ovs-ofctl dump-aggregate  dp0' )
        #print switch0.cmd( 'ovs-ofctl queue-stats dp0' )
     
        info( "*** Stopping network
    " )
        switch0.cmd( 'ovs-vsctl del-br dp0' )
        switch0.deleteIntfs()
        info( '
    ' )
     
    if __name__ == '__main__':
        setLogLevel( 'info' )
        info( '*** Scratch network demo (kernel datapath)
    ' )
        Mininet.init()
        myNet()
    
  • 相关阅读:
    将博客搬至CSDN
    操作excel文件爬取nvd.nist数据
    windows下如何制作和应用数字签名证书 全流程
    python虚拟环境
    Linux系统中python默认版本为python2.7,修改为python3 项目上传码云
    删除github中某个文件夹
    国外的一些测试技术网站
    PYTHON读取EXCEL内容再转变成HTML添加到OUTLOOK中
    数据结构之顺序表概念篇
    Python内置类型性能分析
  • 原文地址:https://www.cnblogs.com/lance-haha/p/13731192.html
Copyright © 2011-2022 走看看