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

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

时间:2022-09-21 11:33:58浏览次数:49  
标签:ovs vlan switch2 switch1 cmd 交换机 print vSwitch Open

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

2.a)

执行ovs-vsctl show命令

执行ovs-vsctl show命令

p0和p1连通性测试

p0与p1连通性测试

2.b)

开启Mininet CLI并执行pingall命令

开启Mininet CLI并执行pingall命令

查看ovs流表

s1的流表

s1的流表

s2的流表

s2的流表

wireshark抓包截图

wireshark抓包截图1
wireshark抓包截图2

3.进阶

代码

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\n" )
    switch1 = Node( 's1', inNamespace=False )
    switch2 = Node( 's2', inNamespace=False )
    h1 = Node( 'h1' )
    h2 = Node( 'h2' )
    h3 = Node( 'h3' )
    h4 = Node( 'h4' )
    
    info( "*** Creating links\n" )
    Link( h1, switch1)
    Link( h2, switch1)
    Link( h3, switch2)
    Link( h4, switch2)
    Link( switch1, switch2)
    
    info( "*** Configuring hosts\n" )
    h1.setIP( '192.168.123.1/24' )
    h2.setIP( '192.168.123.2/24' )
    h3.setIP( '192.168.123.3/24' )
    h4.setIP( '192.168.123.4/24' )
    
    switch1.cmd( 'ovs-vsctl del-br dp1' )
    switch1.cmd( 'ovs-vsctl add-br dp1' )
    switch2.cmd( 'ovs-vsctl del-br dp2' )
    switch2.cmd( 'ovs-vsctl add-br dp2' )
    
    for intf in switch1.intfs.values():
        print (intf)
        print (switch1.cmd( 'ovs-vsctl add-port dp1 %s' % intf ))
 
    for intf in switch2.intfs.values():
        print (intf)
        print (switch2.cmd( 'ovs-vsctl add-port dp2 %s' % intf ))
    print (switch1.cmd(r'ovs-vsctl show'))
    print (switch2.cmd(r'ovs-vsctl show'))
        
    print (switch1.cmd(r'ovs-ofctl -O OpenFlow13 add-flow dp1 priority=1,in_port=1,actions=push_vlan:0x8100,set_field:4096-\>vlan_vid,output:3'))
    print (switch1.cmd(r'ovs-ofctl -O OpenFlow13 add-flow dp1 priority=1,in_port=2,actions=push_vlan:0x8100,set_field:4097-\>vlan_vid,output:3'))
    print (switch1.cmd(r'ovs-ofctl -O OpenFlow13 add-flow dp1 priority=1,dl_vlan=0,actions=pop_vlan,output:1'))
    print (switch1.cmd(r'ovs-ofctl -O OpenFlow13 add-flow dp1 priority=1,dl_vlan=1,actions=pop_vlan,output:2'))

    print (switch2.cmd(r'ovs-ofctl -O OpenFlow13 add-flow dp2 priority=1,in_port=1,actions=push_vlan:0x8100,set_field:4096-\>vlan_vid,output:3'))
    print (switch2.cmd(r'ovs-ofctl -O OpenFlow13 add-flow dp2 priority=1,in_port=2,actions=push_vlan:0x8100,set_field:4097-\>vlan_vid,output:3'))
    print (switch2.cmd(r'ovs-ofctl -O OpenFlow13 add-flow dp2 priority=1,dl_vlan=0,actions=pop_vlan,output:1'))
    print (switch2.cmd(r'ovs-ofctl -O OpenFlow13 add-flow dp2 priority=1,dl_vlan=1,actions=pop_vlan,output:2'))

    
    h1.cmdPrint( 'ping -c 3 ' + h3.IP() )
    h2.cmdPrint( 'ping -c 3 ' + h4.IP() )
    h1.cmdPrint( 'ping -c 3 ' + h4.IP() )
    h2.cmdPrint( 'ping -c 3 ' + h3.IP() )
    
    info( "*** Stopping network\n" )
    switch1.cmd( 'ovs-vsctl del-br dp1' )
    switch1.deleteIntfs()
    switch2.cmd( 'ovs-vsctl del-br dp2' )
    switch2.deleteIntfs()
    
    info( '\n' )
 
if __name__ == '__main__':
    setLogLevel( 'info' )
    info( '*** Scratch network demo (kernel datapath)\n' )
    Mininet.init()
    myNet()

执行结果

结果1
结果2
结果3

4.个人总结

实验难度

本次实验难度相对来说较小,个人完成得还是比较顺利。因为已经用过mininet的功能,所以不像刚开始那么生疏。

问题和解决办法

问题1与解决:刚开始给p0和p1的端口配置IP地址的时候因为博客上作业的要求和ppt中所说略有差别,配的时候配了博客园上说的两个IP,但是这两IP是ping不通的,本题意思应该是要ping通的,所以重新配了一对可以ping通的ip。
问题2与解决:然后就是在做进阶的时候,网站中的示例代码多少有一点不好理解,我多看了好几遍确定将之理解后才开始做。
问题3与解决:在运行下发流表的命令时,没有把py文件先运行起来,使得流表下发失败。最后一个终端利用Mininet CLI的custom参数加载py文件,另一个终端运行下发流表命令

个人感想

本次实验我学会了ovs基础操作、下发流表、抓包等功能,对sdn的理解又多了一点,同时也对网络的流通与结构多了一些理解。当然,还有很多东西需要学习。

标签:ovs,vlan,switch2,switch1,cmd,交换机,print,vSwitch,Open
From: https://www.cnblogs.com/daimon-/p/16714999.html

相关文章

  • 使用V2V功能将VMware平台虚拟机迁移至OpenStack平台
     1、进入虚拟机备份系统  2、选择【虚拟机保护】——【恢复】,新建恢复任务,选择需要进行跨平台恢复与迁移的源虚拟化平台【VMwarevSphere】,勾选需要恢复的备份点,点......
  • 实验2:Open vSwitch虚拟交换机实践
    基础要求a)创建OVS交换机,以ovs-032002441命名。在创建的交换机上增加端口p0和p1,设置p0的端口号为100,p1的端口号为101,类型均为internal;创建虚拟网络空间ns0和ns1,分别将p0......
  • 实验2:Open vSwitch虚拟交换机实践
    实验2:OpenvSwitch虚拟交换机实践一、实验目的1.能够对OpenvSwitch进行基本操作;2.能够通过命令行终端使用OVS命令操作OpenvSwitch交换机,管理流表;3.能够通过Mininet的......
  • 实验2:Open vSwitch虚拟交换机实践
    (一)基本要求a)/home/用户名/学号/lab2/目录下执行ovs-vsctlshow命令、以及p0和p1连通性测试的执行结果截图;b)/home/用户名/学号/lab2/目录下开启MininetCLI并执行pi......
  • 实验2 Open vSwitch虚拟交换机实践
    OpenvSwitch虚拟交换机实践目录OpenvSwitch虚拟交换机实践实验目的(一)基本实验实验1创建OVS交换机1、OVS交换机2、测试连通实验2Mininet下发流表1.自定义拓扑运行拓扑......
  • 实验2:Open vSwitch虚拟交换机实践
    实验2:OpenvSwitch虚拟交换机实践一、实验目的能够对OpenvSwitch进行基本操作;能够通过命令行终端使用OVS命令操作OpenvSwitch交换机,管理流表;能够通过Mininet的Python......
  • Open vSwitch虚拟交换机实践
    实验报告1.1/home/用户名/学号/lab2/目录下执行ovs-vsctlshow命令1.2p0和p1连通性测试的执行结果截图2.1/home/用户名/学号/lab2/目录下开启MininetCLI并执行pi......
  • 实验2:Open vSwitch虚拟交换机实践
    a)/home/用户名/学号/lab2/目录下执行ovs-vsctlshow命令、以及p0和p1连通性测试的执行结果截图;执行ovs-vsctlshow命令p0和p1连通性测试b)/home/用户名/学号/lab2......
  • OpenStack云计算实战手册 pdf
    高清扫描版下载链接:https://pan.baidu.com/s/10N2ghZPMeYO0pQUt_Ub7Tw点击这里获取提取码 ......
  • 实验2:Open vSwitch虚拟交换机实践
    一、基本要求(一)/home/用户名/学号/lab2/目录下执行ovs-vsctlshow命令p0和p1连通性测试的执行结果截图(二)/home/用户名/学号/lab2/目录下开启MininetCLI并执行pin......