首页 > 其他分享 >实验2:Open vSwitch虚拟交换机实践

实验2:Open vSwitch虚拟交换机实践

时间:2022-09-22 20:13:17浏览次数:36  
标签:info s2 s1 vlan 交换机 import vSwitch net Open

实验2:Open vSwitch虚拟交换机实践

(一)基本要求

  • a) /home/用户名/学号/lab2/目录下执行ovs-vsctl show命令、以及p0和p1连通性测试的执行结果截图;

  • b) /home/用户名/学号/lab2/目录下开启Mininet CLI并执行pingall命令的截图、上述目录下查看OVS流表的命令结果截图,wireshark抓包截图

    • 开启Mininet CLI并执行pingall命令
    • 查看OVS流表的命令结果

    • wireshark抓包截图

(二)进阶要求

点击查看代码
#!/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=6653)

    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='10.0.0.1', defaultRoute=None)
    h2 = net.addHost('h2', cls=Host, ip='10.0.0.2', defaultRoute=None)
    h3 = net.addHost('h3', cls=Host, ip='10.0.0.3', defaultRoute=None)
    h4 = net.addHost('h4', cls=Host, ip='10.0.0.4', defaultRoute=None)

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

    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')
    #添加流表
    s1.cmd('sudo ovs-ofctl -O OpenFlow13 add-flow s1 priority=1,in_port=1,actions=push_vlan:0x8100,set_field:4096-\>vlan_vid,output:3')
    s1.cmd('sudo ovs-ofctl -O OpenFlow13 add-flow s1 priority=1,in_port=2,actions=push_vlan:0x8100,set_field:4097-\>vlan_vid,output:3')
    s1.cmd('sudo ovs-ofctl -O OpenFlow13 add-flow s1 priority=1,dl_vlan=0,actions=pop_vlan,output:1')
    s1.cmd('sudo ovs-ofctl -O OpenFlow13 add-flow s1 priority=1,dl_vlan=1,actions=pop_vlan,output:2')
    s2.cmd('sudo ovs-ofctl -O OpenFlow13 add-flow s2 priority=1,in_port=1,actions=push_vlan:0x8100,set_field:4096-\>vlan_vid,output:3')
    s2.cmd('sudo ovs-ofctl -O OpenFlow13 add-flow s2 priority=1,in_port=2,actions=push_vlan:0x8100,set_field:4097-\>vlan_vid,output:3')
    s2.cmd('sudo ovs-ofctl -O OpenFlow13 add-flow s2 priority=1,dl_vlan=0,actions=pop_vlan,output:1')
    s2.cmd('sudo ovs-ofctl -O OpenFlow13 add-flow s2 priority=1,dl_vlan=1,actions=pop_vlan,output:2')
    
   
    CLI(net)
    net.stop()

if __name__ == '__main__':
    setLogLevel( 'info' )
    myNetwork()
  • pingall运行结果
  • 交换机配置及流表
  • wireshark抓包

总结

  • 按照实验手册基本能够按序就班地完成,但是实践过程中出现的一些终端提醒信息需要自己去了解。
  • 自己上网查阅拓扑实现原理。
  • 体会并掌握用python脚本实现拓扑与命令行形式的相似以及不同之处。

标签:info,s2,s1,vlan,交换机,import,vSwitch,net,Open
From: https://www.cnblogs.com/juqin-6905/p/16716265.html

相关文章

  • Visual Studio运行OpenGL报错"应用程序无法正常启动(0xc000007b)"的解决方法
    有时在64位Windows下用VisualStudio调试运行OpenGL程序会报错,提示“应用程序无法正常启动(0xc000007b)” 原因:1.即使创建的是32位的OpenGL程序,在运行时,程序还是会到C:......
  • 实验2:Open vSwitch虚拟交换机实践
    基础要求a)/home/用户名/学号/lab2/目录下执行ovs-vsctlshow命令、以及p0和p1连通性测试的执行结果截图ovs-vsctlshow命令p0和p1连通性测试/home/用户名/学号/l......
  • 实验2:Open vSwitch虚拟交换机实践
    实验2:OpenvSwitch虚拟交换机实践一、实验目的能够对OpenvSwitch进行基本操作;能够通过命令行终端使用OVS命令操作OpenvSwitch交换机,管理流表;能够通过Mininet的Python......
  • 实验2:Open vSwitch虚拟交换机实践
    一、实验目的能够对OpenvSwitch进行基本操作;能够通过命令行终端使用OVS命令操作OpenvSwitch交换机,管理流表;能够通过Mininet的Python代码运行OVS命令,控制网络拓扑中的......
  • sysbench: error while loading shared libraries: libpq.so.5: cannot open shared o
    背景我的环境有MySQL、PostgreSQL数据库,为了压测方便我安装了sysbench[root]#gitclonehttps://github.com/akopytov/sysbench.git[root]#cdsysbench[root]#shau......
  • 如何贡献OpenHarmony开发样例
    单丝不成线,独木不成林,一个社区想要健康蓬勃发展离不开社区参与者的持续贡献。而社区贡献点有很多种,本文以贡献OpenAtomOpenHarmony(以下简称“OpenHarmony”)开发样例为例,围......
  • OpenPLC
    官网地址https://openplcproject.com/简介支持Windows、Linux、MAC符合IEC61131-3标准要求(可编程序控制器第3部分:编程语言),国标为GB/T15969.3。三个组成部分:编辑......
  • 实验2:Open vSwitch虚拟交换机实践
    一、实验目的能够对OpenvSwitch进行基本操作;能够通过命令行终端使用OVS命令操作OpenvSwitch交换机,管理流表;能够通过Mininet的Python代码运行OVS命令,控制网络拓扑中的O......
  • OpenSSH安全漏洞 (CVE-2021-41617)漏洞修复
    事件说明:OpenSSH(OpenBSDSecureShell)是Openbsd计划组的一套用于安全访问远程计算机的连接工具。该工具是SSH协议的开源实现,支持对所有的传输进行加密,可有效阻止窃听、连......
  • 实验2:Open vSwitch虚拟交换机实践
    a)/home/用户名/学号/lab2/目录下执行ovs-vsctlshow命令,以及p0和p1连通性测试的执行结果截图;b)/home/用户名/学号/lab2/目录下开启MininetCLI,执行pingall命令的截......