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

    1. 利用Mininet仿真平台构建如下图所示的网络拓扑,配置主机h1和h2的IP地址(h1:10.0.0.1,h2:10.0.0.2),测试两台主机之间的网络连通性

    2. 利用Wireshark工具,捕获拓扑中交换机与控制器之间的通信数据,对OpenFlow协议类型的各类报文(hello, features_request, features_reply, set_config, packet_in, packet_out等)进行分析,对照wireshark截图写出你的分析内容。

    • hello
      控制器6633端口---> 交换机37992端口

      交换机37992端口--->控制器6633端口

      于是双方建立连接,并使用OpenFlow 1.0
    • Features Request
      控制器6633端口---> 交换机37992端口
    • Set Config
    • Features Reply

      对应到抓取到的报文,逐项查看报文内容
    OpenFlow 1.0
        .000 0001 = Version: 1.0 (0x01)
        Type: OFPT_FEATURES_REPLY (6)
        Length: 176
        Transaction ID: 793175421
        Datapath unique ID: 0x0000000000000001
            MAC addr: 00:00:00_00:00:00 (00:00:00:00:00:00)
            Implementers part: 0x0001
        n_buffers: 0
        n_tables: 254
        Pad: 000000
        capabilities: 0x000000c7
            .... .... .... .... .... .... .... ...1 = Flow statistics: True
            .... .... .... .... .... .... .... ..1. = Table statistics: True
            .... .... .... .... .... .... .... .1.. = Port statistics: True
            .... .... .... .... .... .... .... 0... = Group statistics: False
            .... .... .... .... .... .... ..0. .... = Can reassemble IP fragments: False
            .... .... .... .... .... .... .1.. .... = Queue statistics: True
            .... .... .... .... .... ...0 .... .... = Switch will block looping ports: False
        actions: 0x00000fff
            .... .... .... .... .... .... .... ...1 = Output to switch port: True
            .... .... .... .... .... .... .... ..1. = Set the 802.1q VLAN id: True
            .... .... .... .... .... .... .... .1.. = Set the 802.1q priority: True
            .... .... .... .... .... .... .... 1... = Strip the 802.1q header: True
            .... .... .... .... .... .... ...1 .... = Ethernet source address: True
            .... .... .... .... .... .... ..1. .... = Ethernet destination address: True
            .... .... .... .... .... .... .1.. .... = IP source address: True
            .... .... .... .... .... .... 1... .... = IP destination address: True
            .... .... .... .... .... ...1 .... .... = IP ToS (DSCP field, 6 bits): True
            .... .... .... .... .... ..1. .... .... = TCP/UDP source port: True
            .... .... .... .... .... .1.. .... .... = TCP/UDP destination port: True
            .... .... .... .... .... 1... .... .... = Output to queue: True
        Port data 1
            Port number: 1
            HW Address: 0e:34:e0:65:bf:00 (0e:34:e0:65:bf:00)
            Port Name: s1-eth1
            Config flags: 0x00000000
                .... .... .... .... .... .... .... ...0 = Port is administratively down: False
                .... .... .... .... .... .... .... ..0. = Disable 802.1D spanning tree on port: False
                .... .... .... .... .... .... .... .0.. = Drop all packets except 802.1D spanning tree packets: False
                .... .... .... .... .... .... .... 0... = Drop received 802.1D STP packets: False
                .... .... .... .... .... .... ...0 .... = Do not include this port when flooding: False
                .... .... .... .... .... .... ..0. .... = Drop packets forwarded to port: False
                .... .... .... .... .... .... .0.. .... = Do not send packet-in msgs for port: False
            State flags: 0x00000000
                .... .... .... .... .... .... .... ...0 = No physical link present: False
            Current features: 0x000000c0
                .... .... .... .... .... .... .... ...0 = 10 Mb half-duplex rate support: False
                .... .... .... .... .... .... .... ..0. = 10 Mb full-duplex rate support: False
                .... .... .... .... .... .... .... .0.. = 100 Mb half-duplex rate support: False
                .... .... .... .... .... .... .... 0... = 100 Mb full-duplex rate support: False
                .... .... .... .... .... .... ...0 .... = 1 Gb half-duplex rate support: False
                .... .... .... .... .... .... ..0. .... = 1 Gb full-duplex rate support: False
                .... .... .... .... .... .... .1.. .... = 10 Gb full-duplex rate support: True
                .... .... .... .... .... .... 1... .... = Copper medium: True
                .... .... .... .... .... ...0 .... .... = Fiber medium: False
                .... .... .... .... .... ..0. .... .... = Auto-negotiation: False
                .... .... .... .... .... .0.. .... .... = Pause: False
                .... .... .... .... .... 0... .... .... = Asymmetric pause: False
            Advertised features: 0x00000000
            Features supported: 0x00000000
            Features advertised by peer: 0x00000000
        Port data 2
            Port number: 65534
            HW Address: 0a:53:54:a8:70:46 (0a:53:54:a8:70:46)
            Port Name: s1
            Config flags: 0x00000001
                .... .... .... .... .... .... .... ...1 = Port is administratively down: True
                .... .... .... .... .... .... .... ..0. = Disable 802.1D spanning tree on port: False
                .... .... .... .... .... .... .... .0.. = Drop all packets except 802.1D spanning tree packets: False
                .... .... .... .... .... .... .... 0... = Drop received 802.1D STP packets: False
                .... .... .... .... .... .... ...0 .... = Do not include this port when flooding: False
                .... .... .... .... .... .... ..0. .... = Drop packets forwarded to port: False
                .... .... .... .... .... .... .0.. .... = Do not send packet-in msgs for port: False
            State flags: 0x00000001
                .... .... .... .... .... .... .... ...1 = No physical link present: True
            Current features: 0x00000000
                .... .... .... .... .... .... .... ...0 = 10 Mb half-duplex rate support: False
                .... .... .... .... .... .... .... ..0. = 10 Mb full-duplex rate support: False
                .... .... .... .... .... .... .... .0.. = 100 Mb half-duplex rate support: False
                .... .... .... .... .... .... .... 0... = 100 Mb full-duplex rate support: False
                .... .... .... .... .... .... ...0 .... = 1 Gb half-duplex rate support: False
                .... .... .... .... .... .... ..0. .... = 1 Gb full-duplex rate support: False
                .... .... .... .... .... .... .0.. .... = 10 Gb full-duplex rate support: False
                .... .... .... .... .... .... 0... .... = Copper medium: False
                .... .... .... .... .... ...0 .... .... = Fiber medium: False
                .... .... .... .... .... ..0. .... .... = Auto-negotiation: False
                .... .... .... .... .... .0.. .... .... = Pause: False
                .... .... .... .... .... 0... .... .... = Asymmetric pause: False
            Advertised features: 0x00000000
            Features supported: 0x00000000
            Features advertised by peer: 0x00000000
        Port data 3
            Port number: 2
            HW Address: 4e:aa:58:f9:7a:a8 (4e:aa:58:f9:7a:a8)
            Port Name: s1-eth2
            Config flags: 0x00000000
                .... .... .... .... .... .... .... ...0 = Port is administratively down: False
                .... .... .... .... .... .... .... ..0. = Disable 802.1D spanning tree on port: False
                .... .... .... .... .... .... .... .0.. = Drop all packets except 802.1D spanning tree packets: False
                .... .... .... .... .... .... .... 0... = Drop received 802.1D STP packets: False
                .... .... .... .... .... .... ...0 .... = Do not include this port when flooding: False
                .... .... .... .... .... .... ..0. .... = Drop packets forwarded to port: False
                .... .... .... .... .... .... .0.. .... = Do not send packet-in msgs for port: False
            State flags: 0x00000000
                .... .... .... .... .... .... .... ...0 = No physical link present: False
            Current features: 0x000000c0
                .... .... .... .... .... .... .... ...0 = 10 Mb half-duplex rate support: False
                .... .... .... .... .... .... .... ..0. = 10 Mb full-duplex rate support: False
                .... .... .... .... .... .... .... .0.. = 100 Mb half-duplex rate support: False
                .... .... .... .... .... .... .... 0... = 100 Mb full-duplex rate support: False
                .... .... .... .... .... .... ...0 .... = 1 Gb half-duplex rate support: False
                .... .... .... .... .... .... ..0. .... = 1 Gb full-duplex rate support: False
                .... .... .... .... .... .... .1.. .... = 10 Gb full-duplex rate support: True
                .... .... .... .... .... .... 1... .... = Copper medium: True
                .... .... .... .... .... ...0 .... .... = Fiber medium: False
                .... .... .... .... .... ..0. .... .... = Auto-negotiation: False
                .... .... .... .... .... .0.. .... .... = Pause: False
                .... .... .... .... .... 0... .... .... = Asymmetric pause: False
            Advertised features: 0x00000000
            Features supported: 0x00000000
            Features advertised by peer: 0x00000000
    
    • Packet_in

      分析抓取的数据包,可以发现是因为交换机发现此时自己并没有匹配的流表(Reason: No matching flow (table-miss flow entry) (0)),所以要问控制器如何处理
    OpenFlow 1.0
        .000 0001 = Version: 1.0 (0x01)
        Type: OFPT_PACKET_IN (10)
        Length: 108
        Transaction ID: 0
        Buffer Id: 0xffffffff
        Total length: 90
        In port: 2
        Reason: No matching flow (table-miss flow entry) (0)
        Pad: 00
        Ethernet II, Src: 62:84:dc:38:f0:f9 (62:84:dc:38:f0:f9), Dst: IPv6mcast_16 (33:33:00:00:00:16)
            Destination: IPv6mcast_16 (33:33:00:00:00:16)
                Address: IPv6mcast_16 (33:33:00:00:00:16)
                .... ..1. .... .... .... .... = LG bit: Locally administered address (this is NOT the factory default)
                .... ...1 .... .... .... .... = IG bit: Group address (multicast/broadcast)
            Source: 62:84:dc:38:f0:f9 (62:84:dc:38:f0:f9)
                Address: 62:84:dc:38:f0:f9 (62:84:dc:38:f0:f9)
                .... ..1. .... .... .... .... = LG bit: Locally administered address (this is NOT the factory default)
                .... ...0 .... .... .... .... = IG bit: Individual address (unicast)
            Type: IPv6 (0x86dd)
        Internet Protocol Version 6, Src: ::, Dst: ff02::16
            0110 .... = Version: 6
            .... 0000 0000 .... .... .... .... .... = Traffic Class: 0x00 (DSCP: CS0, ECN: Not-ECT)
                .... 0000 00.. .... .... .... .... .... = Differentiated Services Codepoint: Default (0)
                .... .... ..00 .... .... .... .... .... = Explicit Congestion Notification: Not ECN-Capable Transport (0)
            .... .... .... 0000 0000 0000 0000 0000 = Flow Label: 0x00000
            Payload Length: 36
            Next Header: IPv6 Hop-by-Hop Option (0)
            Hop Limit: 1
            Source: ::
            Destination: ff02::16
            IPv6 Hop-by-Hop Option
                Next Header: ICMPv6 (58)
                Length: 0
                [Length: 8 bytes]
                Router Alert
                    Type: Router Alert (0x05)
                        00.. .... = Action: Skip and continue (0)
                        ..0. .... = May Change: No
                        ...0 0101 = Low-Order Bits: 0x05
                    Length: 2
                    Router Alert: MLD (0)
                PadN
                    Type: PadN (0x01)
                        00.. .... = Action: Skip and continue (0)
                        ..0. .... = May Change: No
                        ...0 0001 = Low-Order Bits: 0x01
                    Length: 0
                    PadN: <none>
        Internet Control Message Protocol v6
            Type: Multicast Listener Report Message v2 (143)
            Code: 0
            Checksum: 0x7e58 [correct]
            [Checksum Status: Good]
            Reserved: 0000
            Number of Multicast Address Records: 1
            Multicast Address Record Changed to exclude: ff02::1:ff38:f0f9
                Record Type: Changed to exclude (4)
                Aux Data Len: 0
                Number of Sources: 0
                Multicast Address: ff02::1:ff38:f0f9
    
    • Packet_out
      控制器6633端口---> 交换机37792端口

      告诉输出到交换机的65531端口
    OpenFlow 1.0
        .000 0001 = Version: 1.0 (0x01)
        Type: OFPT_PACKET_OUT (13)
        Length: 114
        Transaction ID: 0
        Buffer Id: 0xffffffff
        In port: 2
        Actions length: 8
        Actions type: Output to switch port (0)
        Action length: 8
        Output port: 65531
        Max length: 0
    

    另一台交换机(端口3994)与控制器(端口6633)的交互过程

    h1 ping h2

    • packet_in
    • flow_mod
      分析抓取的flow_mod数据包,控制器通过6633端口向交换机37992端口、交换机37994端口下发流表项,指导数据的转发处理



  • 相关阅读:
    codeforces 455B A Lot of Games(博弈,字典树)
    HDU 4825 Xor Sum(二进制的字典树,数组模拟)
    hdu 1800 Flying to the Mars(简单模拟,string,字符串)
    codeforces 425A Sereja and Swaps(模拟,vector,枚举区间)
    codeforces 425B Sereja and Table(状态压缩,也可以数组模拟)
    HDU 4148 Length of S(n)(字符串)
    codeforces 439D Devu and Partitioning of the Array(有深度的模拟)
    浅谈sass
    京东楼层案例思维逻辑分析
    浅谈localStorage和sessionStorage
  • 原文地址:https://www.cnblogs.com/0x06c0/p/11853155.html
Copyright © 2011-2022 走看看