zoukankan      html  css  js  c++  java
  • 2019 SDN上机第2次作业

    1.利用mininet创建如下拓扑,要求拓扑支持OpenFlow 1.3协议,主机名、交换机名以及端口对应正确,请给出拓扑Mininet执行结果,展示端口连接情况

    1.1拓扑

    image.png

    1.2 代码
    #!/usr/bin/python
    
    from mininet.topo import Topo
    
    class MyTopo( Topo ):
        "Simple topology example."
        def __init__( self ):
     
            # Initialize topology
            Topo.__init__( self )
            
            sw1 = self.addSwitch('s1')
            sw2 = self.addSwitch('s2')
    
            h1 = self.addHost('h1')
            h2 = self.addHost('h2')
            h3 = self.addHost('h3')
            h4 = self.addHost('h4')
            h5 = self.addHost('h5')
            h6 = self.addHost('h6')
    
            self.addLink(h1,sw1,1,1)
            self.addLink(h2,sw1,1,2)
            self.addLink(h3,sw1,1,3)
            self.addLink(sw1,sw2,4,4)
            self.addLink(h4,sw2,1,1)
            self.addLink(h5,sw2,1,2)
            self.addLink(h6,sw2,1,3)
    
    topos = { 'mytopo': ( lambda: MyTopo() ) }
    
    1.3创建

    image.png

    1.4使用net命令查看拓扑

    image.png

    1.5使用pingall命令测试所有节点连通性

    image.png

    2.直接在Open vSwitch下发流表,用vlan得到下列虚拟网段,请逐条说明所下发的流表含义

    2.1流表

    image.png

    2.2含义
    • 将主机1,2,3进入s1的包打上vlan tag,转发端口4
    sudo ovs-ofctl -O OpenFlow13 add-flow s1  priority=1,in_port=1,actions=push_vlan:0x8100,set_field:4096->vlan_vid,output:4
    sudo ovs-ofctl -O OpenFlow13 add-flow s1 priority=1,in_port=2,actions=push_vlan:0x8100,set_field:4097->vlan_vid,output:4
    sudo ovs-ofctl -O OpenFlow13 add-flow s1 priority=1,in_port=3,actions=push_vlan:0x8100,set_field:4098->vlan_vid,output:4
    
    • 将从端口4的包去除vlan tag, 并根据tag进行转发
    sudo ovs-ofctl -O OpenFlow13 add-flow s1 priority=1,dl_vlan=0,actions=pop_vlan,output:1
    sudo ovs-ofctl -O OpenFlow13 add-flow s1 priority=1,dl_vlan=1,actions=pop_vlan,output:2
    sudo ovs-ofctl -O OpenFlow13 add-flow s1 priority=1,dl_vlan=2,actions=pop_vlan,output:3
    
    • 将主机4,5,6进入s2的包打上vlan tag,转发端口4
    sudo ovs-ofctl -O OpenFlow13 add-flow s2 priority=1,in_port=1,actions=push_vlan:0x8100,set_field:4096->vlan_vid,output:4
    sudo ovs-ofctl -O OpenFlow13 add-flow s2 priority=1,in_port=2,actions=push_vlan:0x8100,set_field:4097->vlan_vid,output:4
    sudo ovs-ofctl -O OpenFlow13 add-flow s2 priority=1,in_port=3,actions=push_vlan:0x8100,set_field:4098->vlan_vid,output:4
    
    • 将从端口4的包去除vlan tag, 并根据tag进行转发
    sudo ovs-ofctl -O OpenFlow13 add-flow s2 priority=1,dl_vlan=0,actions=pop_vlan,output:1
    sudo ovs-ofctl -O OpenFlow13 add-flow s2 priority=1,dl_vlan=1,actions=pop_vlan,output:2
    sudo ovs-ofctl -O OpenFlow13 add-flow s2 priority=1,dl_vlan=2,actions=pop_vlan,output:3
    

    3. 直接在Open vSwitch查看流表,提交OVS命令执行结果

    3.1命令
    sudo ovs-ofctl dump-flows s1
    sudo ovs-ofctl dump-flows s2
    
    3.2结果
    • s1
      image.png
    • s2
      image.png

    4. 提交主机连通性测试结果,验证流表的有效性

    image.png

    5. 利用Wireshark抓包,分析验证特定报文

    5.1命令
    sudo wireshark
    
    5.2截图

    image.png

  • 相关阅读:
    Oracle基础知识整理
    linux下yum安装redis以及使用
    mybatis 学习四 源码分析 mybatis如何执行的一条sql
    mybatis 学习三 mapper xml 配置信息
    mybatis 学习二 conf xml 配置信息
    mybatis 学习一 总体概述
    oracle sql 语句 示例
    jdbc 新认识
    eclipse tomcat 无法加载导入的web项目,There are no resources that can be added or removed from the server. .
    一些常用算法(持续更新)
  • 原文地址:https://www.cnblogs.com/fdltbk/p/11808461.html
Copyright © 2011-2022 走看看