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

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

    使用python脚本设计拓扑,代码如下

    from mininet.topo import Topo
    class MyTopo(Topo):
        def __init__(self):
            # initilaize topology
            Topo.__init__(self)
            # add hosts and switches
            host1 = self.addHost('h1')
            host2 = self.addHost('h2')
            host3 = self.addHost('h3')
            host4 = self.addHost('h4')
    	host5 = self.addHost('h5')
            host6 = self.addHost('h6')
            switch1 = self.addSwitch('s1')
            switch2 = self.addSwitch('s2')
            # add links
            self.addLink(host1, switch1, 1, 1)
            self.addLink(host2, switch1, 1, 2)
    	self.addLink(host3, switch1, 1, 3)
            self.addLink(host4, switch2, 1, 1)
            self.addLink(host5, switch2, 1, 2)
    	self.addLink(host6, switch2, 1, 3)
    	self.addLink(switch1, switch2, 4, 4)      
    topos = {'mytopo': (lambda: MyTopo())}
    

    运行指令及代码如下

    连通性测试为

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

    将主机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命令执行结果

    查看s1流表

    sudo ovs-ofctl dump-flows s1

    查看s2流表

    sudo ovs-ofctl dump-flows s2

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

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

    选取s1-eth4端口进行报文抓取,查看host1与host4的通信中产生的ICMP回显报文,证明通信中VLAN的使用

  • 相关阅读:
    4-6 R语言函数 排序
    微信公众平台开发接口之天气预报字符串截取
    微信公众平台开发接口之百度翻译
    手机模板 好
    模板1
    手机模板2
    手机模板1
    淘宝素材装修
    如何批量删除SQL注释?
    (3.14)mysql基础深入——mysql 日志分析工具之pt-querty-digest【待完善】
  • 原文地址:https://www.cnblogs.com/fwhdbk/p/11809449.html
Copyright © 2011-2022 走看看