Openvswitch手册(5): VLAN and Bonding
我们这一节来看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,也会被抛弃。
我们创建下面的拓扑来做一个实验:
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
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
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.
我们创建下面的拓扑结构:
$ 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
Openvswitch手册(5): VLAN and Bonding相关推荐
- Openvswitch手册(4): Mirror
Openvswitch手册(4): Mirror 这一节我们来分析Mirror Mirror就是配置一个bridge,将某些包发给指定的mirrored ports 对于包的选择: select_al ...
- 单主机Docker容器VLAN划分
2 单主机Docker容器VLAN划分 pipework不仅可以使用Linux bridge连接Docker容器,还可以与OpenVswitch结合,实现Docker容器的VLAN划分.下面,就来简单 ...
- OpenStack网络 - 使用vlan模式来剖析openstack网络相关概念及原理
OpenStack网络 - 使用vlan模式来剖析openstack网络相关概念及原理 OpenStack网络 OpenStack网络设置比较复杂,阅读了一些文档,主要是采用两种网络 flat net ...
- 20个基于DPDK开源项目,建议收藏
一.ANS – DPDK 原生加速网络堆栈 ANS(加速网络堆栈)是DPDK本地TCP/IP堆栈,也参考FreeBSD实现.ANS提供了一个与Intel DPDK一起使用的用户空间TCP/IP堆栈. ...
- openstack 逻辑构架真相
转载自:http://blog.csdn.net/u010305706/article/details/52206175 别以为真懂OpenStack!先别着急骂我,我也没有说我真懂Openstack ...
- 虚拟机创建的50个步骤以及100个知识点(仅作为个人笔记使用)
网上大侠们分享的资料都非常好,就看你会不会用,如何使用,再次对本文所引用资料的作者表示感谢,如有侵权,请告知. 大致过程 参考资料 Icehouse 创建Instance代码分析 http://www ...
- Linux网络协议栈(三)——网络设备(1)
网络设备(network device)是内核对网络适配器(硬件)的抽象与封装,并为各个协议实例提供统一的接口,它是硬件与内核的接口,它有两个特征: (1) 作为基于硬件的网络适配器与基于软件的 ...
- Docker(二十三)-Docker使用pipework配置本地网络
需求 在使用Docker的过程中,有时候我们会有将Docker容器配置到和主机同一网段的需求.要实现这个需求,我们只要将Docker容器和主机的网卡桥接起来,再给Docker容器配上IP就可以了. 下 ...
- 《linux设备驱动开发详解》笔记——14 linux网络设备驱动
14.1 网络设备驱动结构 网络协议接口层:硬件无关,标准收发函数dev_queue_xmit()和netif_rx(); 注意,netif_rx是将接收到的数据给上层,有时也在驱动收到数据以后调用 ...
最新文章
- AttributeError: Cant get attribute SPPF on module models
- oracle创建表空间脚本
- WinServer2012中怎样设置静态IP
- 娜璋旅行(三)九月的甘肃新疆:人间之边,天堂之界
- Sitecore 个性化 - 近距离和过于个人化?
- Linux系统编程---5(共享存储映射,存储映射I/O,mmap函数,父子进程间通信,匿名映射)
- msg计算机指令怎样用,WIN7里使用msg命令发送消息失败
- python标准输入如何一行一行读_Python 3提供了( )函数从标准输入(如键盘)读入一行文本。_学小易找答案...
- 俗话说开店容易,守店难,这句话是错的,百分之一万是错的,守店怎么会难?
- 《音乐达人秀:Adobe Audition实战200例》——实例5 将电视音乐节目伴音转录到电脑里...
- matlab里的copula函数,常见copula函数简介
- Java设计模式之模板方法模式
- opencv打开本地文件.avi提示找不到xvidcore.dll
- 掌握c语言的运行环境,c语言考试大纲
- 我的未来式计算机简谱,我的未来式简谱-爱情公寓歌曲-孙世彦曲谱
- 如何在线修改图片分辨率?怎么调整300dpi分辨率?
- 鸿蒙系统支持双系统吗,双系统同台登出,EMUI11+鸿蒙系统2.0,有大招
- 前端验证码与后端验证码
- 为什么到苹果官方售后更换电池,要求用户退出ID呢?
- 风变python基础语法_风变编程python (基础语法爬虫精进)