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

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

时间:2022-09-21 00:00:20浏览次数:57  
标签:info s2 s1 vlan 交换机 import vSwitch net Open

一、基本要求

(一)/home/用户名/学号/lab2/目录下执行ovs-vsctl show命令

p0和p1连通性测试的执行结果截图

(二)/home/用户名/学号/lab2/目录下开启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=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', 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(s1, s2,3,3)
    net.addLink(h1, s1,1,1)
    net.addLink(h2, s1,1,2)
    net.addLink(h3, s2,1,1)
    net.addLink(h4, s2,1,2)

    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()

(二)执行结果截图

三、个人总结

本次的实验难度对于我而言较难,主要在原有Mininet基础上新增的划分VLAN部分和之后利用wireshark这部分最令我感到艰难,前者主要是因为按着老师给的教程按图索翼的时候,自作聪明漏了一条指令以为无关紧要,殊不知环环相扣,掉了一环就是竹篮打水;后者主要是因为新接触的工具,惯性思维忽视了在虚拟机上这一先提条件,以及抓包时没有先满足pingall这一条件。
本节实验既收获了划分VLAN,也进一步通过Python如何一步到位,稍稍理清了一点思路。另外学习时务必避免想当然的惯性思维,不畏难的同时但也不应掉以轻心。

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

相关文章

  • 实验2:Open vSwitch虚拟交换机实践
    实验目的能够对OpenvSwitch进行基本操作;能够通过命令行终端使用OVS命令操作OpenvSwitch交换机,管理流表;能够通过Mininet的Python代码运行OVS命令,控制网络拓扑中的Open......
  • 实验2:Open vSwitch虚拟交换机实践
    实验2:OpenvSwitch虚拟交换机实践一、实验目的能够对OpenvSwitch进行基本操作;能够通过命令行终端使用OVS命令操作OpenvSwitch交换机,管理流表;能够通过Mininet的Pytho......
  • 实验2:Open vSwitch虚拟交换机实践
    一、实验目的能够对OpenvSwitch进行基本操作;能够通过命令行终端使用OVS命令操作OpenvSwitch交换机,管理流表;能够通过Mininet的Python代码运行OVS命令,控制网络拓扑中的......
  • 实验2_Open vSwitch虚拟交换机实践
    一、基础要求a)/home/用户名/学号/lab2/目录下执行ovs-vsctlshow命令截图:p0和p1连通性测试的执行结果截图:b)/home/用户名/学号/lab2/目录下开启MininetCLI并执行......
  • 实验2:Open vSwitch虚拟交换机实践
    实验目的1.能够对OpenvSwitch进行基本操作;2.能够通过命令行终端使用OVS命令操作OpenvSwitch交换机,管理流表;3.能够通过Mininet的Python代码运行OVS命令,控制网络拓扑中......
  • 实验2:Open vSwitch虚拟交换机实践
    (一)基本要求(1)/home/用户名/学号/lab2/目录下执行ovs-vsctlshow命令、以及p0和p1连通性测试的执行结果截图(2)/home/用户名/学号/lab2/目录下开启MininetCLI并执行......
  • opencv videocapture
    importtimeimportcv2importnumpyasnpfromosimportpathimportpickle'''关于cameraid此处需要稍微说几句。一般我们测试时,可能会通过USB使用多个摄像头,......
  • 实验2:Open vSwitch虚拟交换机实践
    一.基本要求/home/用户名/学号/lab2/目录下执行ovs-vsctlshow命令、以及p0和p1连通性测试的执行结果截图;2.使用Mininet搭建SDN拓扑添加流表s1添加流表22测试......
  • opencv colors
    """在利用python进行画图时,我们可能常常用的颜色就是'k'黑色,'r'红色,'b'蓝色,'g'绿色等,这些颜色分别代表常见的几种颜色。但是当我们画图比较多时,颜色如何分配呢?可以参......
  • 实验2:Open vSwitch虚拟交换机实践
    目录一、基础要求提交a1)/home/用户名/学号/lab2/目录下执行ovs-vsctlshow命令a2)p0和p1连通性测试的执行结果截图b1)/home/用户名/学号/lab2/目录下开启MininetCLI并执行......