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

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

时间:2022-09-21 20:24:53浏览次数:47  
标签:mininet s2 s1 vlan add 交换机 vSwitch net Open

a)

b)


进阶

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

  c0=net.addController(name='c0',
                    controller=Controller,
                    ip='127.0.0.1',
                    protocol='OpenFlow13',
                    port=6653)
  # add Switch1 and Switch2
  s2 = net.addSwitch('s2', cls=OVSKernelSwitch)
  s1 = net.addSwitch('s1', cls=OVSKernelSwitch)
  # add Host
  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)
  # add Link
  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)

  net.build()
  for controller in net.controllers:
      controller.start()

  net.get('s2').start([c0])
  net.get('s1').start([c0])


  # add flow table to s1
  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')

  # add flow table to s2
  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进程
wireshark抓取时需要在命令行mininet下进行pingall
运行进阶的代码时使用sudo python3 文件名.py
流表关闭后在开启需要重新添加

标签:mininet,s2,s1,vlan,add,交换机,vSwitch,net,Open
From: https://www.cnblogs.com/zcwz/p/16716992.html

相关文章

  • 实验二:Open vSwitch虚拟交换机实践
    一、实验目的能够对OpenvSwitch进行基本操作;能够通过命令行终端使用OVS命令操作OpenvSwitch交换机,管理流表;能够通过Mininet的Python代码运行OVS命令,控制网络拓扑中的......
  • 实验2:Open vSwitch虚拟交换机实践
    a)/home/用户名/学号/lab2/目录下执行ovs-vsctlshow命令p0和p1连通性测试的执行结果截图b)/home/用户名/学号/lab2/目录下开启MininetCLI并执行pingall命令的截......
  • 实验2:Open vSwitch虚拟交换机实践
    一、实验目的1、能够对OpenvSwitch进行基本操作;2、能够通过命令行终端使用OVS命令操作OpenvSwitch交换机,管理流表;3、能够通过Mininet的Python代码运行OVS命令,控制网络......
  • 学习lua-05,io.open 读取输出修改文件,以及io.read的参数运用,读所有,读一行多行
    --以附加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。(EOF符保留)file=io.open("D:\\ProgramFil......
  • 实验2:Open vSwitch虚拟交换机实践
    一、基础要求1.ovs-vsctl基础操作实践:创建OVS交换机,以ovs-xxxxxxxxx命名,其中xxxxxxxxx为本人学号。在创建的交换机上增加端口p0和p1,设置p0的端口号为100,p1的端口号为101,类......
  • 实验2:Open vSwitch虚拟交换机实践
    一、实验目的1.能够对OpenvSwitch进行基本操作;2.能够通过命令行终端使用OVS命令操作OpenvSwitch交换机,管理流表;3.能够通过Mininet的Python代码运行OVS命令,控制网络拓......
  • 实验2:Open vSwitch虚拟交换机实践
    一、实验目的能够对OpenvSwitch进行基本操作;能够通过命令行终端使用OVS命令操作OpenvSwitch交换机,管理流表;能够通过Mininet的Python代码运行OVS命令,控制网络拓扑中的......
  • openstack笔记下
    用ssh登录其他节点:sship地址,退出用logoutopestackserverresize调整云主机类型openstacknetworkcreate网络名--mtu1350 echo"anon_root=/opt" /etc/vsftpd......
  • 实验2:Open vSwitch虚拟交换机实践
    一、基本要求1./home/用户名/学号/lab2/目录下执行ovs-vsctlshow命令2.p0和p1连通性测试的执行结果截图3.开启MininetCLI并执行pingall命令的截图4.上述目录下......
  • 实验2:Open vSwitch虚拟交换机实践
    (一)基本要求a)/home/用户名/学号/lab2/目录下执行ovs-vsctlshow命令、以及p0和p1连通性测试的执行结果截图;执行ovs-vsctlshow命令p0和p1连通性测试的执行结果截图......