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

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

时间:2022-09-23 00:44:54浏览次数:49  
标签:info s2 s1 vlan 交换机 import vSwitch net Open

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

1.创建OVS交换机

a)执行ovs-vsctl show命令

b)p0和p1连通性测试

2.使用Mininet搭建SDN拓扑

a)开启Mininet CLI并执行pingall,查看流表,抓包



3.进阶任务

#!/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.1/24')

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

个人总结

在做这个实验的时候第一次卡的地方在是因为地址原因,因为固定完子网掩码后,两个ip地址不在同一个域,导致网络不可达的错误,无法ping通,后面发现了这个问题及时解决。
第二个是在mininet拓扑的时候卡住了,因为无法使用custom,一直出现bug,后面上csdn搜索才知道是因为命名不一致导致无法进行该指令的执行,后也是成功解决了这项问题
第三个问题是在下发流表的时候,下发完毕之后进行pingall,执行后,将该终端关闭后,再进行pingall,无法得到一样的结果,后面也是成功理解
第四个问题也是之前的问题,但是又给忘记了,那就是在执行一个实验之后忘记了 sudo mn -c的命令
第五个问题是在由于没有看到sdn指导书后面,所以一直不清楚要如何抓包,后面在询问同学之后终于清楚抓包指令,也算是成功完成了这项实验。

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

相关文章

  • 黑苹果OpenCore 卡
     建议拔掉USB设备,制作好的苹果安装盘放到USB2.0上启动遇到卡在这块是因为我本机插了一个罗技的USB鼠标,拔掉之后就过去了(甚至不用重启系统)具体错误信息:...GTrace......
  • 实验2:Open vSwitch虚拟交换机实践
    实验2:OpenvSwitch虚拟交换机实践一、实验目的能够对OpenvSwitch进行基本操作;能够通过命令行终端使用OVS命令操作OpenvSwitch交换机,管理流表;能够通过Mininet的Pytho......
  • OpenTelemetry概述
    1前世如果你常年在处理一些日志、监控方面的东西,一定会在一定程度上听过OpenTracing,像Zipkin、Jaeger、SkyWalking都对其有很好的支持。但是可惜,OpenTracing已经成为过去......
  • 路由器、集线器、交换机分别工作在OSI七层协议模型的哪一层
    路由器三层(网络层);集线器一层(物理层);普通交换机二层(数据链路层)。现在也有工作在第三层的交换机。OSI七层网络模型由下至上为1至7层,分别为物理层(Physicallayer),数......
  • 实验2:Open vSwitch虚拟交换机实践
    实验2:OpenvSwitch虚拟交换机实践一、实验目的1.能够对OpenvSwitch进行基本操作;2.能够通过命令行终端使用OVS命令操作OpenvSwitch交换机,管理流表;3.能够通过Mininet的......
  • 实验2:Open vSwitch虚拟交换机实践
    实验2:OpenvSwitch虚拟交换机实践1.创建OVS交换机a)执行ovs-vsctlshow命令b)p0和p1连通性测试2.使用Mininet搭建SDN拓扑a)开启MininetCLI并执行pingallb)查看OVS......
  • 实验2:Open vSwitch虚拟交换机实践
    实验2:OpenvSwitch虚拟交换机实践(一)基本要求a)/home/用户名/学号/lab2/目录下执行ovs-vsctlshow命令、以及p0和p1连通性测试的执行结果截图;b)/home/用户名/学号......
  • 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......