初探Openstack Neutron DVR
目前在Juno版本的trunk中已经合入了DVR相关的代码,我的理解是在Juno版本中DVR是一个experimental feature。最好需要稳定一个版本以后再上生产环境。之前写过一篇博文是DVR相关的,当时代码还没有实现,与实际的实现有一些出入。当前的DVR的实现是基于VXLAN的。关于VXLAN的优势,有时间会写一些体会,今天暂且不谈。
建议先看一下以下文档,对DVR有一些了解:
https://docs.google.com/presentation/d/1ktCLAdglpKdsC--fQ2F_c2d3X1u-lyRGGUzRu9ITuWo/edit#slide=id.g2b6a14e30_036
https://docs.google.com/presentation/d/1ktCLAdglpKdsC--fQ2F_c2d3X1u-lyRGGUzRu9ITuWo/edit#slide=id.g2b6a14e30_030
然后起了两个私有网络和一个DVR 路由器,拓扑如下:
再看一下虚机private2-compute2-VM的IP和路由:

最终会转发到br-int的qvo4e843b99-fb:
root@dvr-compute1:~# ovs-vsctl show
67f121bd-cca7-41c2-95ab-23ed85d1305b
Bridge br-tun
Port patch-int
Interface patch-int
type: patch
options: {peer=patch-tun}
Port "vxlan-0ae09f91"
Interface "vxlan-0ae09f91"
type: vxlan
options: {df_default="true", in_key=flow, local_ip="10.224.159.141", out_key=flow, remote_ip="10.224.159.145"}
Port "vxlan-0ae09f88"
Interface "vxlan-0ae09f88"
type: vxlan
options: {df_default="true", in_key=flow, local_ip="10.224.159.141", out_key=flow, remote_ip="10.224.159.136"}
Port br-tun
Interface br-tun
type: internal
Bridge br-int
fail_mode: secure
Port "qvo111517d8-c5"
tag: 2
Interface "qvo111517d8-c5"
Port patch-tun
Interface patch-tun
type: patch
options: {peer=patch-int}
Port "qr-001d0ed9-01"
tag: 2
Interface "qr-001d0ed9-01"
type: internal
Port br-int
Interface br-int
type: internal
Port "qr-ddbdc784-d7"
tag: 1
Interface "qr-ddbdc784-d7"
type: internal
Port "qvo4e843b99-fb"
tag: 1
Interface "qvo4e843b99-fb"
Bridge br-ex
Port br-ex
Interface br-ex
type: internal
Port "fg-081d537b-06"
Interface "fg-081d537b-06"
type: internal
ovs_version: "2.0.2"
fip-fbd46644-c70f-4227-a414-862a00cbd1d2
qrouter-0fbb351e-a65b-4790-a409-8fb219ce16aa
qdhcp-401f678d-4518-446c-9a33-cd2fb054c104
qdhcp-db755841-0764-4a8f-b962-8df008ce6330
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
qr-001d0ed9-01 Link encap:Ethernet HWaddr fa:16:3e:69:b4:05
inet addr:10.0.2.1 Bcast:10.0.2.255 Mask:255.255.255.0
inet6 addr: fe80::f816:3eff:fe69:b405/64 Scope:Link
UP BROADCAST RUNNING MTU:1500 Metric:1
RX packets:35 errors:0 dropped:0 overruns:0 frame:0
TX packets:14 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:3510 (3.5 KB) TX bytes:1092 (1.0 KB)
qr-ddbdc784-d7 Link encap:Ethernet HWaddr fa:16:3e:66:13:af
inet addr:10.0.1.1 Bcast:10.0.1.255 Mask:255.255.255.0
inet6 addr: fe80::f816:3eff:fe66:13af/64 Scope:Link
UP BROADCAST RUNNING MTU:1500 Metric:1
RX packets:401 errors:0 dropped:0 overruns:0 frame:0
TX packets:378 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:38224 (38.2 KB) TX bytes:36224 (36.2 KB)
rfp-0fbb351e-a Link encap:Ethernet HWaddr ea:5c:56:9a:36:9c
inet addr:169.254.31.28 Bcast:0.0.0.0 Mask:255.255.255.254
inet6 addr: fe80::e85c:56ff:fe9a:369c/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:12 errors:0 dropped:0 overruns:0 frame:0
TX packets:12 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:1116 (1.1 KB) TX bytes:1116 (1.1 KB)
duration=64720.432s, table=1, n_packets=4, n_bytes=168, idle_age=64607,
priority=3,arp,dl_vlan=1,arp_tpa=10.0.1.1 actions=drop
cookie=0x0,
duration=62666.766s, table=1, n_packets=2, n_bytes=84, idle_age=62576,
priority=3,arp,dl_vlan=2,arp_tpa=10.0.2.1 actions=drop
的qrouter-0fbb351e-a65b-4790-a409-8fb219ce16aa 的namespace:
0: from all lookup local
32766: from all lookup main
32767: from all lookup default
32768: from 10.0.1.5 lookup 16
32769: from 10.0.2.3 lookup 16
167772417: from 10.0.1.1/24 lookup 167772417
167772417: from 10.0.1.1/24 lookup 167772417
167772673: from 10.0.2.1/24 lookup 167772673
root@dvr-compute1:~# ip netns exec qrouter-0fbb351e-a65b-4790-a409-8fb219ce16aa ip route list table main
10.0.1.0/24 dev qr-ddbdc784-d7 proto kernel scope link src 10.0.1.1
10.0.2.0/24 dev qr-001d0ed9-01 proto kernel scope link src 10.0.2.1
169.254.31.28/31 dev rfp-0fbb351e-a proto kernel scope link src 169.254.31.28
10.0.1.5 dev qr-ddbdc784-d7 lladdr fa:16:3e:da:75:6d PERMANENT
10.0.2.3 dev qr-001d0ed9-01 lladdr fa:16:3e:a4:fc:98 PERMANENT
10.0.1.6 dev qr-ddbdc784-d7 lladdr fa:16:3e:9f:55:67 PERMANENT
10.0.2.2 dev qr-001d0ed9-01 lladdr fa:16:3e:13:55:66 PERMANENT
10.0.2.5 dev qr-001d0ed9-01 lladdr fa:16:3e:51:99:b8 PERMANENT
10.0.1.4 dev qr-ddbdc784-d7 lladdr fa:16:3e:da:e3:6e PERMANENT
10.0.1.7 dev qr-ddbdc784-d7 lladdr fa:16:3e:14:b8:ec PERMANENT
169.254.31.29 dev rfp-0fbb351e-a lladdr 42:0d:9f:49:63:c6 STALE
root@dvr-compute1:~# ovs-ofctl show br-tun
OFPT_FEATURES_REPLY (xid=0x2): dpid:0000e2b7aa5da34a
n_tables:254, n_buffers:256
capabilities: FLOW_STATS TABLE_STATS PORT_STATS QUEUE_STATS ARP_MATCH_IP
actions: OUTPUT SET_VLAN_VID SET_VLAN_PCP STRIP_VLAN SET_DL_SRC
SET_DL_DST SET_NW_SRC SET_NW_DST SET_NW_TOS SET_TP_SRC SET_TP_DST
ENQUEUE
1(patch-int): addr:76:ae:9f:b3:bf:c6
config: 0
state: 0
speed: 0 Mbps now, 0 Mbps max
3(vxlan-0ae09f88): addr:92:61:e9:43:dd:99
config: 0
state: 0
speed: 0 Mbps now, 0 Mbps max
4(vxlan-0ae09f91): addr:2e:cc:c0:4a:4e:d4
config: 0
state: 0
speed: 0 Mbps now, 0 Mbps max
LOCAL(br-tun): addr:e2:b7:aa:5d:a3:4a
config: 0
state: 0
speed: 0 Mbps now, 0 Mbps max
OFPT_GET_CONFIG_REPLY (xid=0x4): frags=normal miss_send_len=0
n_bytes=5731, idle_age=20810, hard_age=65534, priority=1,in_port=3
actions=resubmit(,4)
duration=67599.526s, table=0, n_packets=273, n_bytes=24999,
idle_age=1741, hard_age=65534, priority=1,in_port=1 actions=resubmit(,1)
n_bytes=2980, idle_age=20799, priority=1,in_port=4 actions=resubmit(,4)
idle_age=65534, hard_age=65534, priority=0 actions=drop
cookie=0x0,
duration=66135.811s, table=1, n_packets=140, n_bytes=13720,
idle_age=65534, hard_age=65534,
priority=1,dl_vlan=1,dl_src=fa:16:3e:66:13:af
actions=mod_dl_src:fa:16:3f:fe:49:e9,resubmit(,2)
idle_age=64081, priority=1,dl_vlan=2,dl_src=fa:16:3e:69:b4:05
actions=mod_dl_src:fa:16:3f:fe:49:e9,resubmit(,2)
idle_age=65301, hard_age=65534,
priority=2,dl_vlan=1,dl_dst=fa:16:3e:66:13:af actions=drop
idle_age=64082, priority=2,dl_vlan=2,dl_dst=fa:16:3e:69:b4:05
actions=drop
idle_age=65534, hard_age=65534,
priority=3,arp,dl_vlan=1,arp_tpa=10.0.1.1 actions=drop
idle_age=63991, priority=3,arp,dl_vlan=2,arp_tpa=10.0.2.1 actions=drop
n_bytes=10687, idle_age=1741, hard_age=65534, priority=0
actions=resubmit(,2)

n_bytes=16981, idle_age=20810, hard_age=65534,
priority=0,dl_dst=00:00:00:00:00:00/01:00:00:00:00:00
actions=resubmit(,20)
n_bytes=7876, idle_age=1741, hard_age=65534,
priority=0,dl_dst=01:00:00:00:00:00/01:00:00:00:00:00
actions=resubmit(,22)
idle_age=64076, priority=2,dl_vlan=2,dl_dst=fa:16:3e:13:55:66
actions=strip_vlan,set_tunnel:0x3eb,output:3
n_bytes=14728, idle_age=65534, hard_age=65534,
priority=2,dl_vlan=1,dl_dst=fa:16:3e:9f:55:67
actions=strip_vlan,set_tunnel:0x3e9,output:3
idle_age=65534, hard_age=65534,
priority=2,dl_vlan=1,dl_dst=fa:16:3e:da:e3:6e
actions=strip_vlan,set_tunnel:0x3e9,output:2
idle_age=64436, priority=2,dl_vlan=1,dl_dst=fa:16:3e:14:b8:ec
actions=strip_vlan,set_tunnel:0x3e9,output:4
duration=64015.308s, table=20, n_packets=0, n_bytes=0, idle_age=64015,
priority=2,dl_vlan=2,dl_dst=fa:16:3e:51:99:b8
actions=strip_vlan,set_tunnel:0x3eb,output:4
n_bytes=917, idle_age=20810,
priority=2,dl_vlan=2,dl_dst=fa:16:3e:bb:cf:66
actions=strip_vlan,set_tunnel:0x3eb,output:3
n_bytes=784, idle_age=65534, hard_age=65534, priority=0
actions=resubmit(,22)
fa:16:3f:fe:49:e9
root@dvr-compute1:~# ovs-vsctl show
67f121bd-cca7-41c2-95ab-23ed85d1305b
Bridge br-tun
Port patch-int
Interface patch-int
type: patch
options: {peer=patch-tun}
Port "vxlan-0ae09f91"
Interface "vxlan-0ae09f91"
type: vxlan
options: {df_default="true", in_key=flow, local_ip="10.224.159.141", out_key=flow, remote_ip="10.224.159.145"}
Port "vxlan-0ae09f88"
Interface "vxlan-0ae09f88"
type: vxlan
options: {df_default="true", in_key=flow, local_ip="10.224.159.141", out_key=flow, remote_ip="10.224.159.136"}
Port br-tun
Interface br-tun
type: internal
OVS会将此包进行VXLAN封装,将L2帧分装到VXLAN中,包头如下:

root@dvr-compute2:~# ovs-ofctl show br-tun
OFPT_FEATURES_REPLY (xid=0x2): dpid:000062e9fb8b8f42
n_tables:254, n_buffers:256
capabilities: FLOW_STATS TABLE_STATS PORT_STATS QUEUE_STATS ARP_MATCH_IP
actions: OUTPUT SET_VLAN_VID SET_VLAN_PCP STRIP_VLAN SET_DL_SRC
SET_DL_DST SET_NW_SRC SET_NW_DST SET_NW_TOS SET_TP_SRC SET_TP_DST
ENQUEUE
1(patch-int): addr:02:dc:f1:96:db:bd
config: 0
state: 0
speed: 0 Mbps now, 0 Mbps max
3(vxlan-0ae09f88): addr:b6:4b:d0:83:07:52
config: 0
state: 0
speed: 0 Mbps now, 0 Mbps max
4(vxlan-0ae09f8d): addr:12:e5:36:2c:1a:36
config: 0
state: 0
speed: 0 Mbps now, 0 Mbps max
LOCAL(br-tun): addr:62:e9:fb:8b:8f:42
config: 0
state: 0
speed: 0 Mbps now, 0 Mbps max
OFPT_GET_CONFIG_REPLY (xid=0x4): frags=normal miss_send_len=0
n_bytes=3936, idle_age=22651, hard_age=65534, priority=1,in_port=3
actions=resubmit(,4)
n_bytes=9360, idle_age=22651, hard_age=65534, priority=1,in_port=1
actions=resubmit(,1)
n_bytes=1742, idle_age=3598, hard_age=65534, priority=1,in_port=4
actions=resubmit(,4)
idle_age=65534, hard_age=65534, priority=0 actions=drop
n_bytes=3653, idle_age=22651, hard_age=65534, priority=1,tun_id=0x3eb
actions=mod_vlan_vid:3,resubmit(,9)
n_bytes=2025, idle_age=3598, hard_age=65534, priority=1,tun_id=0x3e9
actions=mod_vlan_vid:2,resubmit(,9)
cookie=0x0,
duration=69453.507s, table=9, n_packets=0, n_bytes=0, idle_age=65534,
hard_age=65534, priority=1,dl_src=fa:16:3f:fe:49:e9 actions=output:1
duration=69453.782s, table=9, n_packets=0, n_bytes=0, idle_age=65534,
hard_age=65534, priority=1,dl_src=fa:16:3f:72:3f:a7 actions=output:1
n_bytes=6028, idle_age=3598, hard_age=65534, priority=0
actions=resubmit(,10)
idle_age=65534, hard_age=65534,
priority=2,in_port=6,dl_src=fa:16:3f:72:3f:a7 actions=resubmit(,1)
duration=70039.627s, table=0, n_packets=0, n_bytes=0, idle_age=65534,
hard_age=65534, priority=2,in_port=6,dl_src=fa:16:3f:fe:49:e9
actions=resubmit(,1)
n_bytes=15954, idle_age=4184, hard_age=65534, priority=1 actions=NORMAL
duration=66458.695s, table=1, n_packets=0, n_bytes=0, idle_age=65534,
hard_age=65534, priority=4,dl_vlan=3,dl_dst=fa:16:3e:51:99:b8
actions=strip_vlan,mod_dl_src:fa:16:3e:69:b4:05,output:12
idle_age=65534, hard_age=65534,
priority=4,dl_vlan=2,dl_dst=fa:16:3e:14:b8:ec
actions=strip_vlan,mod_dl_src:fa:16:3e:66:13:af,output:9
idle_age=65534, hard_age=65534,
priority=2,ip,dl_vlan=2,nw_dst=10.0.1.0/24
actions=strip_vlan,mod_dl_src:fa:16:3e:66:13:af,output:9
idle_age=65534, hard_age=65534,
priority=2,ip,dl_vlan=3,nw_dst=10.0.2.0/24
actions=strip_vlan,mod_dl_src:fa:16:3e:69:b4:05,output:12
fa:16:3e:69:b4:05(MAC of 10.0.2.1 网关地址)
0: from all lookup local
32766: from all lookup main
32767: from all lookup default
32768: from 10.0.1.5 lookup 16
32769: from 10.0.2.3 lookup 16
167772417: from 10.0.1.1/24 lookup 167772417
167772417: from 10.0.1.1/24 lookup 167772417
167772673: from 10.0.2.1/24 lookup 167772673
10.0.1.0/24 dev qr-ddbdc784-d7 proto kernel scope link src 10.0.1.1
10.0.2.0/24 dev qr-001d0ed9-01 proto kernel scope link src 10.0.2.1
169.254.31.28/31 dev rfp-0fbb351e-a proto kernel scope link src 169.254.31.28
default via 169.254.31.29 dev rfp-0fbb351e-a
root@dvr-compute1:~# ip netns exec fip-fbd46644-c70f-4227-a414-862a00cbd1d2 ifconfig
fg-081d537b-06 Link encap:Ethernet HWaddr fa:16:3e:a4:eb:6b
inet addr:172.24.4.6 Bcast:172.24.4.255 Mask:255.255.255.0
inet6 addr: fe80::f816:3eff:fea4:eb6b/64 Scope:Link
UP BROADCAST RUNNING MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:50 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 B) TX bytes:2512 (2.5 KB)
fpr-0fbb351e-a Link encap:Ethernet HWaddr 42:0d:9f:49:63:c6
inet addr:169.254.31.29 Bcast:0.0.0.0 Mask:255.255.255.254
inet6 addr: fe80::400d:9fff:fe49:63c6/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:12 errors:0 dropped:0 overruns:0 frame:0
TX packets:12 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:1116 (1.1 KB) TX bytes:1116 (1.1 KB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:13 errors:0 dropped:0 overruns:0 frame:0
TX packets:13 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:1250 (1.2 KB) TX bytes:1250 (1.2 KB)
default via 172.24.4.1 dev fg-081d537b-06
169.254.31.28/31 dev fpr-0fbb351e-a proto kernel scope link src 169.254.31.29
172.24.4.0/24 dev fg-081d537b-06 proto kernel scope link src 172.24.4.6
172.24.4.5 via 169.254.31.28 dev fpr-0fbb351e-a
172.24.4.7 via 169.254.31.28 dev fpr-0fbb351e-a
net.ipv4.conf.fg-081d537b-06.proxy_arp = 1
。。。
172.24.4.5 via 169.254.31.28 dev fpr-0fbb351e-a
172.24.4.7 via 169.254.31.28 dev fpr-0fbb351e-a
root@dvr-compute1:~# ip netns exec qrouter-0fbb351e-a65b-4790-a409-8fb219ce16aa ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: rfp-0fbb351e-a: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether ea:5c:56:9a:36:9c brd ff:ff:ff:ff:ff:ff
inet 169.254.31.28/31 scope global rfp-0fbb351e-a
valid_lft forever preferred_lft forever
inet 172.24.4.5/32 brd 172.24.4.5 scope global rfp-0fbb351e-a
valid_lft forever preferred_lft forever
inet 172.24.4.7/32 brd 172.24.4.7 scope global rfp-0fbb351e-a
valid_lft forever preferred_lft forever
inet6 fe80::e85c:56ff:fe9a:369c/64 scope link
valid_lft forever preferred_lft forever
17: qr-ddbdc784-d7: <BROADCAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN group default
link/ether fa:16:3e:66:13:af brd ff:ff:ff:ff:ff:ff
inet 10.0.1.1/24 brd 10.0.1.255 scope global qr-ddbdc784-d7
valid_lft forever preferred_lft forever
inet6 fe80::f816:3eff:fe66:13af/64 scope link
valid_lft forever preferred_lft forever
19: qr-001d0ed9-01: <BROADCAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN group default
link/ether fa:16:3e:69:b4:05 brd ff:ff:ff:ff:ff:ff
inet 10.0.2.1/24 brd 10.0.2.255 scope global qr-001d0ed9-01
valid_lft forever preferred_lft forever
inet6 fe80::f816:3eff:fe69:b405/64 scope link
valid_lft forever preferred_lft forever
10.0.1.0/24 dev qr-ddbdc784-d7 proto kernel scope link src 10.0.1.1
10.0.2.0/24 dev qr-001d0ed9-01 proto kernel scope link src 10.0.2.1
169.254.31.28/31 dev rfp-0fbb351e-a proto kernel scope link src 169.254.31.28
在虚机没有floating ip的情况下,从虚机发出的包会首先到IR,IR中查询路由:
0: from all lookup local
32766: from all lookup main
32767: from all lookup default
32768: from 10.0.1.5 lookup 16
32769: from 10.0.2.3 lookup 16
167772417: from 10.0.1.1/24 lookup 167772417
167772417: from 10.0.1.1/24 lookup 167772417
167772673: from 10.0.2.1/24 lookup 167772673
default via 10.0.1.6 dev qr-ddbdc784-d7
这个表会将其转发给10.0.1.6,而这个IP就是在network node上的router_centralized_snat接口。
stack@dvr-controller:/root$ sudo ip netns exec snat-0fbb351e-a65b-4790-a409-8fb219ce16aa ifconfig
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
qg-4d15b7f6-cb Link encap:Ethernet HWaddr fa:16:3e:24:0b:6b
inet addr:172.24.4.4 Bcast:172.24.4.255 Mask:255.255.255.0
inet6 addr: fe80::f816:3eff:fe24:b6b/64 Scope:Link
UP BROADCAST RUNNING MTU:1500 Metric:1
RX packets:5 errors:0 dropped:0 overruns:0 frame:0
TX packets:144 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:210 (210.0 B) TX bytes:13320 (13.3 KB)
sg-427653e4-a3 Link encap:Ethernet HWaddr fa:16:3e:9f:55:67
inet addr:10.0.1.6 Bcast:10.0.1.255 Mask:255.255.255.0
inet6 addr: fe80::f816:3eff:fe9f:5567/64 Scope:Link
UP BROADCAST RUNNING MTU:1500 Metric:1
RX packets:167 errors:0 dropped:0 overruns:0 frame:0
TX packets:52 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:16260 (16.2 KB) TX bytes:4460 (4.4 KB)
sg-5df1ec71-d3 Link encap:Ethernet HWaddr fa:16:3e:13:55:66
inet addr:10.0.2.2 Bcast:10.0.2.255 Mask:255.255.255.0
inet6 addr: fe80::f816:3eff:fe13:5566/64 Scope:Link
UP BROADCAST RUNNING MTU:1500 Metric:1
RX packets:34 errors:0 dropped:0 overruns:0 frame:0
TX packets:12 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:3412 (3.4 KB) TX bytes:952 (952.0 B)
初探Openstack Neutron DVR的更多相关文章
- OpenStack Neutron DVR L2 Agent的初步解析 (一)
声明: 本博客欢迎转载,但请保留原作者信息! 作者:林凯 团队:华为杭州OpenStack团队 OpenStack Juno版本号已正式公布,这是这个开源云平台的10个版本号,在Juno版的Neutr ...
- Openstack Neutron DVR workflow
目前在Juno版本的trunk中已经合入了DVR相关的代码,我的理解是在Juno版本中DVR是一个experimental feature.最好需要稳定一个版本以后再上生产环境.之前写过一篇博文是DV ...
- openstack neutron L3 HA
作者:Liping Mao 发表于:2014-08-20 版权声明:能够随意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本版权声明 近期Assaf Muller写了一篇关于Neutro ...
- neutron DVR
DVR 简介 DVR 提出的背景 在 Neutron 的网络环境中,跨子网的虚机通信是需要通过 Neutron 的路由器.这既包括不同子网的虚拟机之间的通信,又包括虚拟机与外网之间的通信.在 DVR ...
- OpenStack neutron vlan 模式下的网络包流向
时间:2015-01-15 18:09:41 1.什么是Neutron? Neutron是OpenStack的network project ,是NaaS(networking-as-a-servic ...
- Openstack Neutron:三层技术和实现
目录 - 1.Neutron 三层技术简介 - 2.集中式router - 1.在节点上安装L3 agent - 2.配置外部网络 - 3.通过CLI或者Horizon 来创建路由 - 4.连接租户网 ...
- Openstack Neutron OVS ARP Responder
ARP – Why do we need it? In any environment, be it the physical data-center, your home, or a virtual ...
- Openstack Neutron L2 Population
Why do we need it, whatever it is? VM unicast, multicast and broadcast traffic flow is detailed in m ...
- 深入浅出新一代云网络——VPC中的那些功能与基于OpenStack Neutron的实现(一)
VPC的概念与基于vxlan的overlay实现很早就有了,标题中的"新"只是一个和传统网络的相对概念.但从前年开始,不同于以往基础网络架构的新一代SDN网络才真正越来越多的走进国 ...
随机推荐
- Spark(3) - External Data Source
Introduction Spark provides a unified runtime for big data. HDFS, which is Hadoop's filesystem, is t ...
- DOM系列---进阶篇【转】
内容提纲: 1.DOM类型 2.DOM扩展 3.DOM操作内容 一.DOM类型 DOM基础篇中,我们了解了DOM的节点并且了解怎样查询和操作节点,而本身这些不同的节点,又有着不同的类型. DOM类 ...
- EF的Model First
一,添加ADO.NET实体数据模型(即edmx) 1,添加edmx 新建一个类库项目,项目中添加新项,选择数据/ADO.NET实体数据模型,如下图. 点击添加,实体数据模型向导窗口 ...
- Matrix-Tree定理
感觉又学到了一个利器! 感谢Vfleaking神犇,传送门 http://vfleaking.blog.163.com/blog/static/1748076342013112523651955/ ...
- bzoj 2132: 圈地计划
#include<cstdio> #include<iostream> #include<cstring> #define M 100009 #define inf ...
- myeclipse9.x,10.x 安装时出现pulse-one-64,failed to load the JNI shared library
- HDU 4405 Aeroplane chess 概率DP 难度:0
http://acm.hdu.edu.cn/showproblem.php?pid=4405 明显,有飞机的时候不需要考虑骰子,一定是乘飞机更优 设E[i]为分数为i时还需要走的步数期望,j为某个可能 ...
- Ibatis.Net各类的作用说明(三)
一.SqlMapper类 Ibatis中,加载.分析配置以及映射文件是在创建SqlMapper实例的时候进行的,另外对数据库的操作,也是在SqlMapper实例上调用方法来完成.在IBatis外部的程 ...
- [开发笔记]-火狐的event和jquery1.9.1.min的问题
一:火狐不兼容window.event.keyCode问题 火狐的event是以参数形式传入的 function onlychinese(event) { event = event || windo ...
- 【同行说技术】Python程序员小白变大神必读资料汇总( 三)
在文章<Python开发.调试.爬虫类工具大全>里面向大家总结了各种实用工具和爬虫技术,今天小编收集了5篇带有实例干货的资料,赶紧来看看吧!另外,喜欢写博客的博主可以申请加工程师博主交流群 ...