• Openvswitch手册(5): VLAN and Bonding


    131841412179725

    131841464202336

    131841515456204

    131841526247774

    我们这一节来看Port

    一般来说一个Port就是一个Interface,当然也有一个Port对应多个Interface的情况,成为Bond

    VLAN Configuration

    Port的一个重要的方面就是VLAN Configuration,有两种模式:

    • trunk port,这个port不配置tag,配置trunks,如果trunks为空,则所有的VLAN都trunk,也就意味着对于所有的VLAN的包,本身带什么VLAN ID,就是携带者什么VLAN ID,如果没有设置VLAN,就属于VLAN 0,全部允许通过。如果trunks不为空,则仅仅带着这些VLAN ID的包通过。
    • access port,这个port配置tag,从这个port进来的包会被打上这个tag,如果从其他的trunk port中进来的本身就带有VLAN ID的包,如果VLAN ID等于tag,则会从这个port发出,从其他的access port上来的包,如果tag相同,也会被forward到这个port。从access port发出的包不带VLAN ID。如果一个本身带VLAN ID的包到达access port,即便VLAN ID等于tag,也会被抛弃。

    我们创建下面的拓扑来做一个实验:

    image

    sudo ovs-vsctl add-port helloworld first_br

    sudo ovs-vsctl add-port helloworld second_br

    sudo ovs-vsctl add-port helloworld third_br

    sudo ovs-vsctl set Port vnet8 tag=101

    sudo ovs-vsctl set Port vnet9 tag=102

    sudo ovs-vsctl set Port vnet10 tag=103

    sudo ovs-vsctl set Port first_br tag=103

    sudo ovs-vsctl clear Port second_br tag

    sudo ovs-vsctl set Port third_br trunks=101,102

    sudo ovs-vsctl set bridge helloworld flood-vlans=101,102,103

    sudo ovs-vsctl -- --id=@mirror get Mirror mirrorvnet9 -- remove Bridge helloworld mirrors @mirror

    $ sudo ovs-vsctl show
    c24322e6-8453-402a-afaf-64757ef231e9
        Bridge helloworld
            Port "vnet8"
                tag: 101
                Interface "vnet8"
            Port first_br
                tag: 103
                Interface first_br
            Port second_br
                Interface second_br
            Port "vnet10"
                tag: 103
                Interface "vnet10"
            Port helloworld
                Interface helloworld
                    type: internal
            Port "vnet9"
                tag: 102
                Interface "vnet9"
            Port third_br
                trunks: [101, 102]
                Interface third_br
        ovs_version: "2.0.1"

    我们首先从10.10.10.3来ping 10.10.10.4,应该first_if和second_if能够收到包。

    first_if收到包了,从first_br出来的包头是没有VLAN ID的

    $ sudo tcpdump  -n -e -i first_if arp
    tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
    listening on first_if, link-type EN10MB (Ethernet), capture size 65535 bytes
    23:22:45.707470 ca:d4:fd:47:a6:ce > 52:54:00:9b:d5:be, ethertype ARP (0x0806), length 42: Request who-has 10.10.10.3 tell 10.10.10.4, length 28
    23:22:45.708170 52:54:00:9b:d5:be > ca:d4:fd:47:a6:ce, ethertype ARP (0x0806), length 42: Reply 10.10.10.3 is-at 52:54:00:9b:d5:be, length 28

    second_if也收到包了,由于second_br是trunk port,因而出来的包头是有VLAN ID的,103

    $ sudo tcpdump  -n -e -i second_if arp
    tcpdump: WARNING: second_br: no IPv4 address assigned
    tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
    listening on second_br, link-type EN10MB (Ethernet), capture size 65535 bytes
    23:22:45.707727 ca:d4:fd:47:a6:ce > 52:54:00:9b:d5:be, ethertype 802.1Q (0x8100), length 46: vlan 103, p 0, ethertype ARP, Request who-has 10.10.10.3 tell 10.10.10.4, length 28
    23:22:45.708176 52:54:00:9b:d5:be > ca:d4:fd:47:a6:ce, ethertype 802.1Q (0x8100), length 46: vlan 103, p 0, ethertype ARP, Reply 10.10.10.3 is-at 52:54:00:9b:d5:be, length 28

    third_if收不到包

    $ sudo tcpdump  -n -e -i third_if arp
    tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
    listening on third_if, link-type EN10MB (Ethernet), capture size 65535 bytes

    然后我们从10.10.10.1在ping 10.10.10.6,则second_if和third_if可以收到包

    first_if收不到包

    second_br能够收到包,而且包头里面是VLAN ID = 101

    $ sudo tcpdump  -n -e -i second_br arp
    tcpdump: WARNING: second_br: no IPv4 address assigned
    tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
    listening on second_br, link-type EN10MB (Ethernet), capture size 65535 bytes
    23:27:22.645546 52:54:00:9b:d5:bc > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 46: vlan 101, p 0, ethertype ARP, Request who-has 10.10.10.6 tell 10.10.10.1, length 28
    23:27:23.644828 52:54:00:9b:d5:bc > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 46: vlan 101, p 0, ethertype ARP, Request who-has 10.10.10.6 tell 10.10.10.1, length 28
    23:27:24.644837 52:54:00:9b:d5:bc > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 46: vlan 101, p 0, ethertype ARP, Request who-has 10.10.10.6 tell 10.10.10.1, length 28
    23:27:25.651223 52:54:00:9b:d5:bc > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 46: vlan 101, p 0, ethertype ARP, Request who-has 10.10.10.6 tell 10.10.10.1, length 28
    23:27:26.648770 52:54:00:9b:d5:bc > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 46: vlan 101, p 0, ethertype ARP, Request who-has

    third_if也能收到包,而且包头里面是VLAN ID =101

    $ sudo tcpdump  -n -e -i third_if arp
    tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
    listening on third_if, link-type EN10MB (Ethernet), capture size 65535 bytes
    23:27:22.645561 52:54:00:9b:d5:bc > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 46: vlan 101, p 0, ethertype ARP, Request who-has 10.10.10.6 tell 10.10.10.1, length 28
    23:27:23.644844 52:54:00:9b:d5:bc > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 46: vlan 101, p 0, ethertype ARP, Request who-has 10.10.10.6 tell 10.10.10.1, length 28
    23:27:24.644853 52:54:00:9b:d5:bc > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 46: vlan 101, p 0, ethertype ARP, Request who-has 10.10.10.6 tell 10.10.10.1, length 28
    23:27:25.651238 52:54:00:9b:d5:bc > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 46: vlan 101, p 0, ethertype ARP, Request who-has 10.10.10.6 tell 10.10.10.1, length 28

    最后我们从10.10.10.2来ping 10.10.10.5,则second_if和third_if可以收到包

    first_if收不到包

    second_br能够收到包,而且包头里面是VLAN ID = 102

    $ sudo tcpdump  -n -e -i second_br arp
    tcpdump: WARNING: second_br: no IPv4 address assigned
    tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
    listening on second_br, link-type EN10MB (Ethernet), capture size 65535 bytes
    23:31:17.641237 52:54:00:9b:d5:bd > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 46: vlan 102, p 0, ethertype ARP, Request who-has 10.10.10.5 tell 10.10.10.2, length 28
    23:31:18.638875 52:54:00:9b:d5:bd > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 46: vlan 102, p 0, ethertype ARP, Request who-has 10.10.10.5 tell 10.10.10.2, length 28
    23:31:19.638881 52:54:00:9b:d5:bd > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 46: vlan 102, p 0, ethertype ARP, Request who-has 10.10.10.5 tell 10.10.10.2, length 28
    23:31:20.657189 52:54:00:9b:d5:bd > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 46: vlan 102, p 0, ethertype ARP, Request who-has 10.10.10.5 tell 10.10.10.2, length 28
    23:31:21.654874 52:54:00:9b:d5:bd > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 46: vlan 102, p 0, ethertype ARP, Request who-has 10.10.10.5 tell 10.10.10.2, length 28

    third_if也能收到包,而且包头里面是VLAN ID =103

    $ sudo tcpdump  -n -e -i third_if arp
    tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
    listening on third_if, link-type EN10MB (Ethernet), capture size 65535 bytes
    23:31:22.654872 52:54:00:9b:d5:bd > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 46: vlan 102, p 0, ethertype ARP, Request who-has 10.10.10.5 tell 10.10.10.2, length 28
    23:31:23.672558 52:54:00:9b:d5:bd > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 46: vlan 102, p 0, ethertype ARP, Request who-has 10.10.10.5 tell 10.10.10.2, length 28
    23:31:24.670893 52:54:00:9b:d5:bd > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 46: vlan 102, p 0, ethertype ARP, Request who-has 10.10.10.5 tell 10.10.10.2, length 28
    23:31:25.670796 52:54:00:9b:d5:bd > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 46: vlan 102, p 0, ethertype ARP, Request who-has 10.10.10.5 tell 10.10.10.2, length 28

    Bonding Configuration

    bond_mode:

    • balance-slb: Balances flows among slaves based on source MAC address and output VLAN
    • active-backup:Assigns all flows to one slave, failing over to a backup slave when the active slave is disabled.

    如果bridge的另一端支持LACP协议,则还有两种状态:

    • balance−tcp:Balances flows among slaves based on L2, L3, and L4 protocol information such as destination MAC address, IP address, and TCP port.
    • stable:Attempts to always assign a given flow to the same slave consistently.

    other_config : bond-detect-mode:

    • Defaults to carrier which uses each interface’s carrier to detect failures.
    • When set to miimon, will check for failures by polling each interface’s MII. 仅仅check接口是否正常

    LACP Configuration:

    LACP:Link Aggregation Control Protocol

    Link Aggregation

    • Link aggregation allows you to bond multiple parallel links into a single virtual link (from the STP perspective).
    • With parallel links being replaced by a single link, STP detects no loops and all the physical links can be fully utilized.
    • Traditional LA : port channel, Etherchannel, link bonding or multi-link trunking

    image

    Traditional Link Aggregation

    • A port channel bundles up to eight individual interfaces into a group to provide increased bandwidth and redundancy.
    • Port channeling also load balances traffic across these physical interfaces.
    • You create a port channel by bundling compatible interfaces.
    • You can configure and run either static port channels or ports channels running the Link Aggregation Control Protocol (LACP).

    LACP (Link Aggregation Control Protocol)

    • individual links can be combined into LACP port channels and channel groups
      • Static LACP : creation of channel groups and addition of ports are manually configured. LACP is to determine the ports are selected or standby
      • Dynamic LACP : all above are negotiated via LACPDU between both sides

    image

    Multi-Chassis Link Aggregation

    • In Multichassis EtherChannel (MCEC), the DHD is dual-homed to two upstream PoAs(points of attachment).
      • The DHD is incapable of running any loop prevention control protocol such as Multiple Spanning Tree (MST).
    • One method is to place the DHD's uplinks in a LAG, commonly referred to as EtherChannel. (LACP enabled).
    • LACP is a link-level control protocol that allows the dynamic negotiation and establishment of LAGs.
    • Multichassis LACP: An extension of the LACP implementation to PoAs is required to convey to a DHD that it is connected to a single virtual
      LACP peer and not to two disjointed devices.

    image

    我们创建下面的拓扑结构:

    image

    $ sudo ovs-vsctl add-bond hello bond0 first_br second_br
    $ sudo ovs-vsctl add-bond world bond1 first_if second_if
    $ sudo ovs-vsctl show
    c24322e6-8453-402a-afaf-64757ef231e9
        Bridge world
            Port world
                Interface world
                    type: internal
            Port "bond1"
                Interface second_if
                Interface first_if
            Port "vnet10"
                Interface "vnet10"
            Port "vnet11"
                Interface "vnet11"
        Bridge hello
            Port "vnet8"
                Interface "vnet8"
            Port "vnet9"
                Interface "vnet9"
            Port hello
                Interface hello
                    type: internal
            Port "bond0"
                Interface first_br
                Interface second_br
        ovs_version: "2.0.1"

    $ sudo ovs-vsctl set Port bond0 lacp=active
    $ sudo ovs-vsctl set Port bond1 lacp=active

    $ sudo ovs-appctl bond/show
    ---- bond0 ----
    bond_mode: active-backup
    bond-hash-basis: 0
    updelay: 0 ms
    downdelay: 0 ms
    lacp_status: negotiated

    slave first_br: enabled
            active slave
            may_enable: true

    slave second_br: enabled
            may_enable: true

    ---- bond1 ----
    bond_mode: active-backup
    bond-hash-basis: 0
    updelay: 0 ms
    downdelay: 0 ms
    lacp_status: negotiated

    slave first_if: enabled
            active slave
            may_enable: true

    slave second_if: enabled
            may_enable: true

    $ sudo ovs-appctl lacp/show
    ---- bond0 ----
            status: active negotiated
            sys_id: 4a:f5:ee:f2:40:40
            sys_priority: 65534
            aggregation key: 3
            lacp_time: slow

    slave: first_br: current attached
            port_id: 3
            port_priority: 65535
            may_enable: true

            actor sys_id: 4a:f5:ee:f2:40:40
            actor sys_priority: 65534
            actor port_id: 3
            actor port_priority: 65535
            actor key: 3
            actor state: activity aggregation synchronized collecting distributing

            partner sys_id: 8a:7b:f0:8b:94:40
            partner sys_priority: 65534
            partner port_id: 4
            partner port_priority: 65535
            partner key: 4
            partner state: activity aggregation synchronized collecting distributing

    slave: second_br: current attached
            port_id: 4
            port_priority: 65535
            may_enable: true

            actor sys_id: 4a:f5:ee:f2:40:40
            actor sys_priority: 65534
            actor port_id: 4
            actor port_priority: 65535
            actor key: 3
            actor state: activity aggregation synchronized collecting distributing

            partner sys_id: 8a:7b:f0:8b:94:40
            partner sys_priority: 65534
            partner port_id: 5
            partner port_priority: 65535
            partner key: 4
            partner state: activity aggregation synchronized collecting distributing
    ---- bond1 ----
            status: active negotiated
            sys_id: 8a:7b:f0:8b:94:40
            sys_priority: 65534
            aggregation key: 4
            lacp_time: slow

    slave: first_if: current attached
            port_id: 4
            port_priority: 65535
            may_enable: true

            actor sys_id: 8a:7b:f0:8b:94:40
            actor sys_priority: 65534
            actor port_id: 4
            actor port_priority: 65535
            actor key: 4
            actor state: activity aggregation synchronized collecting distributing

            partner sys_id: 4a:f5:ee:f2:40:40
            partner sys_priority: 65534
            partner port_id: 3
            partner port_priority: 65535
            partner key: 3
            partner state: activity aggregation synchronized collecting distributing

    slave: second_if: current attached
            port_id: 5
            port_priority: 65535
            may_enable: true

            actor sys_id: 8a:7b:f0:8b:94:40
            actor sys_priority: 65534
            actor port_id: 5
            actor port_priority: 65535
            actor key: 4
            actor state: activity aggregation synchronized collecting distributing

            partner sys_id: 4a:f5:ee:f2:40:40
            partner sys_priority: 65534
            partner port_id: 4
            partner port_priority: 65535
            partner key: 3
            partner state: activity aggregation synchronized collecting distributing

    默认情况下bond_mode是active-backup模式,一开始active的是first_br和first_if

    这个时候我们从10.10.10.1 ping 10.10.10.3,以及10.10.10.2 ping 10.10.10.4,都是从first_if通过

    $ sudo tcpdump  -n -e -i first_if
    tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
    listening on first_if, link-type EN10MB (Ethernet), capture size 65535 bytes
    18:58:34.402793 f2:ac:70:72:49:61 > 01:80:c2:00:00:02, ethertype Slow Protocols (0x8809), length 124: LACPv1, length 110
    18:58:35.403821 ca:d4:fd:47:a6:ce > 01:80:c2:00:00:02, ethertype Slow Protocols (0x8809), length 124: LACPv1, length 110
    18:59:04.402847 f2:ac:70:72:49:61 > 01:80:c2:00:00:02, ethertype Slow Protocols (0x8809), length 124: LACPv1, length 110
    18:59:05.403779 ca:d4:fd:47:a6:ce > 01:80:c2:00:00:02, ethertype Slow Protocols (0x8809), length 124: LACPv1, length 110
    18:59:09.950809 52:54:00:9b:d5:bc > 52:54:00:9b:d5:be, ethertype IPv4 (0x0800), length 98: 10.10.10.1 > 10.10.10.3: ICMP echo request, id 1166, seq 1, length 64
    18:59:09.951228 52:54:00:9b:d5:be > 52:54:00:9b:d5:bc, ethertype IPv4 (0x0800), length 98: 10.10.10.3 > 10.10.10.1: ICMP echo reply, id 1166, seq 1, length 64
    18:59:33.294940 52:54:00:9b:d5:bd > 52:54:00:9b:d5:bf, ethertype IPv4 (0x0800), length 98: 10.10.10.2 > 10.10.10.4: ICMP echo request, id 1148, seq 1, length 64
    18:59:33.295820 52:54:00:9b:d5:bf > 52:54:00:9b:d5:bd, ethertype IPv4 (0x0800), length 98: 10.10.10.4 > 10.10.10.2: ICMP echo reply, id 1148, seq 1, length 64

    从上面我们也可以看到LACP包

    如果把first_if设成down,则包的走向会变

    sudo ip link set first_if down

    我们发现second_if开始有流量,京first_if变成down,10.10.10.1和10.10.10.2似乎没有收到影响

    $ sudo tcpdump  -n -e -i second_if
    tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
    listening on second_if, link-type EN10MB (Ethernet), capture size 65535 bytes
    19:14:34.415216 66:63:74:a9:0e:f2 > 01:80:c2:00:00:02, ethertype Slow Protocols (0x8809), length 124: LACPv1, length 110
    19:14:35.411181 76:fa:16:61:d7:0e > 01:80:c2:00:00:02, ethertype Slow Protocols (0x8809), length 124: LACPv1, length 110
    19:16:01.162066 52:54:00:9b:d5:bc > 52:54:00:9b:d5:be, ethertype IPv4 (0x0800), length 98: 10.10.10.1 > 10.10.10.3: ICMP echo request, id 1167, seq 33, length 64
    19:16:01.162298 52:54:00:9b:d5:be > 52:54:00:9b:d5:bc, ethertype IPv4 (0x0800), length 98: 10.10.10.3 > 10.10.10.1: ICMP echo reply, id 1167, seq 33, length 64
    19:16:01.781051 52:54:00:9b:d5:bd > 52:54:00:9b:d5:bf, ethertype IPv4 (0x0800), length 98: 10.10.10.2 > 10.10.10.4: ICMP echo request, id 1149, seq 29, length 64
    19:16:01.781565 52:54:00:9b:d5:bf > 52:54:00:9b:d5:bd, ethertype IPv4 (0x0800), length 98: 10.10.10.4 > 10.10.10.2: ICMP echo reply, id 1149, seq 29, length 64

    second_br和second_if变成active

    $ sudo ovs-appctl bond/show    
    ---- bond0 ----
    bond_mode: active-backup
    bond-hash-basis: 0
    updelay: 0 ms
    downdelay: 0 ms
    lacp_status: negotiated

    slave first_br: disabled
            may_enable: false

    slave second_br: enabled
            active slave
            may_enable: true

    ---- bond1 ----
    bond_mode: active-backup
    bond-hash-basis: 0
    updelay: 0 ms
    downdelay: 0 ms
    lacp_status: negotiated

    slave first_if: disabled
            may_enable: false

    slave second_if: enabled
            active slave
            may_enable: true

    重启first_if,但是second_br和second_if仍然是active

    $ sudo ip link set first_if up

    $ sudo ovs-appctl bond/show
    ---- bond0 ----
    bond_mode: active-backup
    bond-hash-basis: 0
    updelay: 0 ms
    downdelay: 0 ms
    lacp_status: negotiated

    slave first_br: enabled
            may_enable: true

    slave second_br: enabled
            active slave
            may_enable: true

    ---- bond1 ----
    bond_mode: active-backup
    bond-hash-basis: 0
    updelay: 0 ms
    downdelay: 0 ms
    lacp_status: negotiated

    slave first_if: enabled
            may_enable: true

    slave second_if: enabled
            active slave
            may_enable: true

    如果我们把bond_mode设为balance

    $ sudo ovs-vsctl set Port bond0 bond_mode=balance-slb
    $ sudo ovs-vsctl set Port bond1 bond_mode=balance-slb

    $ sudo ovs-appctl bond/show
    ---- bond0 ----
    bond_mode: balance-slb
    bond-hash-basis: 0
    updelay: 0 ms
    downdelay: 0 ms
    next rebalance: 3412 ms
    lacp_status: negotiated

    slave first_br: enabled
            active slave
            may_enable: true

    slave second_br: enabled
            may_enable: true

    ---- bond1 ----
    bond_mode: balance-slb
    bond-hash-basis: 0
    updelay: 0 ms
    downdelay: 0 ms
    next rebalance: 7415 ms
    lacp_status: negotiated

    slave first_if: enabled
            active slave
            may_enable: true

    slave second_if: enabled
            may_enable: true

    这个时候10.10.10.1 ping 10.10.10.3走first_br

    $ sudo tcpdump  -n -e -i first_if
    tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
    listening on first_if, link-type EN10MB (Ethernet), capture size 65535 bytes
    19:57:04.093878 ca:d4:fd:47:a6:ce > 01:80:c2:00:00:02, ethertype Slow Protocols (0x8809), length 124: LACPv1, length 110
    19:57:04.093992 f2:ac:70:72:49:61 > 01:80:c2:00:00:02, ethertype Slow Protocols (0x8809), length 124: LACPv1, length 110
    19:57:52.559762 52:54:00:9b:d5:bc > 52:54:00:9b:d5:be, ethertype IPv4 (0x0800), length 98: 10.10.10.1 > 10.10.10.3: ICMP echo request, id 1173, seq 22, length 64
    19:57:52.560002 52:54:00:9b:d5:be > 52:54:00:9b:d5:bc, ethertype IPv4 (0x0800), length 98: 10.10.10.3 > 10.10.10.1: ICMP echo reply, id 1173, seq 22, length 64
    19:57:53.560999 52:54:00:9b:d5:bc > 52:54:00:9b:d5:be, ethertype IPv4 (0x0800), length 98: 10.10.10.1 > 10.10.10.3: ICMP echo request, id 1173, seq 23, length 64
    19:57:53.561278 52:54:00:9b:d5:be > 52:54:00:9b:d5:bc, ethertype IPv4 (0x0800), length 98: 10.10.10.3 > 10.10.10.1: ICMP echo reply, id 1173, seq 23, length 64

    而10.10.10.2 ping 10.10.10.4走second_br

    $ sudo tcpdump  -n -e -i second_if
    tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
    listening on second_if, link-type EN10MB (Ethernet), capture size 65535 bytes
    19:57:03.719596 76:fa:16:61:d7:0e > 01:80:c2:00:00:02, ethertype Slow Protocols (0x8809), length 124: LACPv1, length 110
    19:57:03.723928 66:63:74:a9:0e:f2 > 01:80:c2:00:00:02, ethertype Slow Protocols (0x8809), length 124: LACPv1, length 110
    19:57:49.695881 52:54:00:9b:d5:bf > 52:54:00:9b:d5:bd, ethertype IPv4 (0x0800), length 98: 10.10.10.4 > 10.10.10.2: ICMP echo reply, id 1154, seq 13, length 64
    19:57:50.697434 52:54:00:9b:d5:bd > 52:54:00:9b:d5:bf, ethertype IPv4 (0x0800), length 98: 10.10.10.2 > 10.10.10.4: ICMP echo request, id 1154, seq 14, length 64
    19:57:50.697581 52:54:00:9b:d5:bf > 52:54:00:9b:d5:bd, ethertype IPv4 (0x0800), length 98: 10.10.10.4 > 10.10.10.2: ICMP echo reply, id 1154, seq 14, length 64
    19:57:51.699024 52:54:00:9b:d5:bd > 52:54:00:9b:d5:bf, ethertype IPv4 (0x0800), length 98: 10.10.10.2 > 10.10.10.4: ICMP echo request, id 1154, seq 15, length 64

  • 相关阅读:
    Unity3D 5.3 新版AssetBundle使用方案及策略
    解构C#游戏框架uFrame兼谈游戏架构设计
    漫谈C#编程语言在游戏领域的应用
    TDD在Unity3D游戏项目开发中的实践
    趣说游戏AI开发:曼哈顿街角的A*算法
    “为什么DirectX里表示三维坐标要建一个4*4的矩阵?”
    趣说游戏AI开发:对状态机的褒扬和批判
    使用TypeScript拓展你自己的VS Code!
    MVP社区巡讲-云端基础架构:12月5日北京站 12月12日上海站
    【转】Spring Boot干货系列:(一)优雅的入门篇
  • 原文地址:https://www.cnblogs.com/popsuper1982/p/3800613.html
Copyright © 2020-2023  润新知