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

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

时间:2022-09-19 21:23:05浏览次数:47  
标签:info s2 s1 vlan 交换机 vSwitch net Open OpenFlow13

基础作业

a) 执行 ovs-vsctl show 命令、测试 p0 和 p1 的连通性

b)开启 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,
                      ip='127.0.0.1',
                      protocol='OpenFlow13',
                      port=6653)

    info( '*** Add switches\n')
    s2 = net.addSwitch('s2', cls=OVSKernelSwitch)
    s1 = net.addSwitch('s1', 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)
    h4 = net.addHost('h4', cls=Host, ip='10.0.0.4', defaultRoute=None)
    h3 = net.addHost('h3', cls=Host, ip='10.0.0.3', defaultRoute=None)

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

    info( '*** Starting network\n')
    net.build()
    info( '*** Starting controllers\n')
    for controller in net.controllers:
        controller.start()

    info( '*** Starting switches\n')
    net.get('s2').start([c0])
    net.get('s1').start([c0])

    info( '*** Post configure switches and hosts\n')

    # add flow table to switches and divide VLAN
    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()

执行结果

个人总结

这次实验总体上难度不大,按部就班就基本上没什么问题,但更重要的是理解VLAN背后的技术。通过对广播域的切割来避免广播风暴,同时提高了网络设计的自由度。
通过本次实验,掌握了对 Open vSwitch 的基本操作,并且能够通过命令行终端使用 OVS 命令操作 Open vSwitch 交换机,管理流表,更进一步能够通过 Mininet 的Python 代码运行 OVS 命令,控制网络拓扑中的 Open vSwitch 交换机。
软件定义网络还有很多东西需要去实际操作,去实践,还有待进一步的学习。

标签:info,s2,s1,vlan,交换机,vSwitch,net,Open,OpenFlow13
From: https://www.cnblogs.com/pan-jinfeng/p/16709106.html

相关文章

  • Open vSwitch虚拟交换机实践
    实验2:OpenvSwitch虚拟交换机实践实验目的能够对OpenvSwitch进行基本操作;能够通过命令行终端使用OVS命令操作OpenvSwitch交换机,管理流表;能够通过Mininet的Python代......
  • 实验2:Open vSwitch虚拟交换机实践
    实验2:OpenvSwitch虚拟交换机实践一、实验目的能够对OpenvSwitch进行基本操作;能够通过命令行终端使用OVS命令操作OpenvSwitch交换机,管理流表;能够通过Mininet的Pytho......
  • 实验2:Open vSwitch虚拟交换机实践
    一、实验目的1.能够对OpenvSwitch进行基本操作;2.能够通过命令行终端使用OVS命令操作OpenvSwitch交换机,管理流表;3.能够通过Mininet的Python代码运行OVS命令,控制网络拓......
  • opencv resize
    #-*-coding:utf-8-*-'''今天来看看opencv中的resize方法。就打个tag:opencvresize先看看官方定义voidcv::resize ( InputArray src,OutputArray dst,Siz......
  • 实验2:Open vSwitch虚拟交换机实践
    1.基础要求a)/home/用户名/学号/lab2/目录下执行ovs-vsctlshow命令、以及p0和p1连通性测试的执行结果截图/home/用户名/学号/lab2/目录下开启MininetCLI并执行pingal......
  • 实验2:Open vSwitch虚拟交换机实践
    实验目的能够对OpenvSwitch进行基本操作能够通过命令行终端使用OVS命令操作OpenvSwitch交换机,管理流表能够通过Mininet的Python代码运行OVS命令,控制网络拓扑中的Open......
  • Open vSwitch虚拟交换机实践
    实验1创建OVS交换机1.创建OVS交换机为OVS交换机配置p0端口3.创建虚拟空间ns0,将p0移入虚拟网络空间ns0,并配置IP4.为OVS交换机配置p1端口5.创建虚拟空间ns1,将p0......
  • 实验2:Open vSwitch虚拟交换机实践
    实验2:OpenvSwitch虚拟交换机实践一、实验目的能够对OpenvSwitch进行基本操作;能够通过命令行终端使用OVS命令操作OpenvSwitch交换机,管理流表;能够通过Mininet的Pytho......
  • podman+openresty+openssl,https双向认证demo测试
    前言暂不讨论https原理,单论配置的话:1.https单项认证server:server.crt+server.keyclient:server_ca.crt2.https双向认证server:server.crt+server.key......
  • 实验2:Open vSwitch虚拟交换机实践
    实验一的截图实验二拓扑代码:2.划分VLANs1和s2相同的道理3.再次pingall二进阶代码:抓包:个人总结:1、这个进阶代码是完全依靠自己写的本来想直接用......