More Related Content
Similar to OpenStack with OpenFlow (20)
More from Toshiki Tsuboi (11)
OpenStack with OpenFlow
- 8. 8
まずは、OpenStack Grizzly版Neutron仮想ネットワーク
(OpenvSwitch-Plugin)を構築しました。
Compute Node Network Node
br-ex
qbrXXX qbrXXX qbrXXX
qvoXXX
qvbXXX
qvoXXX
qvbXXX
qvoXXX
qvbXXX
OpenvSwitch
dnsmasq
OpenvSwitch
iptables
net_sdn1 net_sdn2
iptables dnsmasq
VM1 VM2 VM3
tap XXtap XXtap XX
tap XXX tap XXXqr-XXX qr-XXX
qg-XXX qg-XXX
br-tun
br-int
br-tun
br-int
GRE Tunnel
tag 3 tag 4
tunnel 0x1
tunnel 0x3
tag 2 tag 2 tag 1 tag 1tag 3
VM2
L2SW L2SW
DHCP
ルータVM1
L2SW L2SW
ルータ
VM3
DHCP
ext_net
(172.16.100.0/24)
企業xxxのテナント構成
(172.16.0.0/24)
企業yyyのテナント構成
(10.0.0.0/24)
外部端末
(172.16.100.51)
外部端末
- 11. qvbXXX
qvoXXX
11
br-tun
br-ex
qbrXXX qbrXXX qbrXXX
qvoXXX
qvoXXX
qvbXXX
qvoXXX
qvbXXX
OpenvSwitch
br-int
dnsmasq
tap XXX tap XXXqr-XXX qr-XXX
qg-XXX qg-XXX
OpenvSwitch
iptables
net_sdn1 net_sdn2
GRE Tunnel
iptables dnsmasq
tag 2 tag 2 tag 1 tag 1
VM1 VM2 VM3
tap XXtap XXtap XX
br-tun
br-int
tag 3 tag 4
tunnel 0x1
tunnel 0x3
tag 3
Port:2
Compute Node Network Node
priority=1 actions=drop
priority=3,tun_id=0x1,dl_dst=01:00:00:00:00:00/01:00:00:00:00:00 actions=mod_vlan_vid:3,output:2
priority=3,tun_id=0x3,dl_dst=01:00:00:00:00:00/01:00:00:00:00:00 actions=mod_vlan_vid:4,output:2
priority=3,tun_id=0x3,dl_dst=fa:16:3e:12:97:c0 actions=mod_vlan_vid:4,NORMAL
priority=3,tun_id=0x1,dl_dst=fa:16:3e:9c:6d:bc actions=mod_vlan_vid:3,NORMAL
priority=3,tun_id=0x1,dl_dst=fa:16:3e:cb:ad:4d actions=mod_vlan_vid:3,NORMAL
priority=4,in_port=2,dl_vlan=4 actions=set_tunnel:0x3,NORMAL
priority=4,in_port=2,dl_vlan=3 actions=set_tunnel:0x1,NORMAL
←fa:16:3e:12:97:c0
FDB
FDB
priority=1 actions=NORMAL
わかったこと
Compute Node側のトラフィックフロー制御は、
OpenvSwitchでのFlowエントリが活用されていた
(L2転送は、FDBでのMACアドレス学習状況に依存)
外部端末
- 12. 12
br-tun
br-int
br-ex
qbrXXX qbrXXX qbrXXX
qvoXXX
qvbXXX
qvoXXX
qvbXXX
qvoXXX
qvbXXX
OpenvSwitch
dnsmasq
OpenvSwitch
iptables
net_sdn1 net_sdn2
GRE Tunnel
iptables dnsmasq
tag 3 tag 4tag 3
VM1 VM2 VM3
tap XXtap XXtap XX
Compute Node Network Node
priority=1 actions=drop
priority=3,tun_id=0x1,dl_dst=01:00:00:00:00:00/01:00:00:00:00:00 actions=mod_vlan_vid:2,output:2
priority=3,tun_id=0x3,dl_dst=01:00:00:00:00:00/01:00:00:00:00:00 actions=mod_vlan_vid:1,output:2
priority=3,tun_id=0x1,dl_dst=fa:16:3e:41:3e:90 actions=mod_vlan_vid:2,NORMAL
priority=3,tun_id=0x1,dl_dst=fa:16:3e:4d:04:17 actions=mod_vlan_vid:2,NORMAL
priority=3,tun_id=0x3,dl_dst=fa:16:3e:4b:c8:a3 actions=mod_vlan_vid:1,NORMAL
priority=3,tun_id=0x3,dl_dst=fa:16:3e:cd:4a:d1 actions=mod_vlan_vid:1,NORMAL
priority=4,in_port=2,dl_vlan=1 actions=set_tunnel:0x3,NORMAL
priority=4,in_port=2,dl_vlan=2 actions=set_tunnel:0x1,NORMAL
br-tun
br-int
tag 2 tag 2 tag 1 tag 1
tunnel 0x1
tunnel 0x3
Port:2
tap XXX tap XXXqr-XXX qr-XXX
qg-XXX qg-XXX
FDB
FDB
priority=1 actions=NORMAL
fa:16:3e:cd:4a:d1
外部端末
わかったこと
Network Node側のトラフィックフロー制御でも、
OpenvSwitchでのFlowエントリが活用されていた
(L2転送は、FDBでのMACアドレス学習状況に依存)
- 15. 15
Neutron仮想ネットワーク技術課題
Compute Node Network Node
external
br-ex
qbrXXX qbrXXX qbrXXX
qvoXXX
qvbXXX
qvoXXX
qvbXXX
qvoXXX
qvbXXX
OpenvSwitch
dnsmasq
OpenvSwitch
iptables
net_sdn1 net_sdn2
iptables dnsmasq
VM1 VM2 VM3
tap XXtap XXtap XX
tap XXX tap XXXqr-XXX qr-XXX
qg-XXX qg-XXX
br-tun
br-int
br-tun
br-int
GRE Tunnel
tag 3 tag 4
tunnel 0x1
tunnel 0x3
tag 2 tag 2 tag 1 tag 1tag 3
L2SW L2SW
ルータ
VM3
DHCP
ext_net
(172.16.100.0/24)
企業yyyのテナント構成
(10.0.0.0/24)
故障発生!!
故障発生!!
Compute Node/Network Node間でのオーバレイNW区間
が、冗長構成になっていないため、当該箇所での故障発生時に
は、Neutron仮想ネットワークが利用できなくなります。
外部端末
(172.16.100.51)
- 16. 16
br-int
br-ex
qbrXXX qbrXXX qbrXXX
qvoXXX
qvbXXX
qvoXXX
qvbXXX
qvoXXX
qvbXXX
OpenvSwitch
dnsmasq
OpenvSwitch
iptables
net_sdn1 net_sdn2
iptables dnsmasq
tag 3 tag 4tag 3
VM1 VM2 VM3
tap XXtap XXtap XX
br-int
tag 2 tag 2 tag 1 tag 1
tap XXX tap XXXqr-XXX qr-XXX
qg-XXX qg-XXX
外部端末
単純に、オーバレイNW区間で、GREトンネル冗長化を図っ
たのみでは、FDBに依存した転送制御により、L2ループ等が
発生してしまうため、正常な通信環境を構築することができ
ません。
Neutron仮想ネットワーク冗長対策
br-tun
br-tun
GREトンネル(予備)
GREトンネル(現用)
FDB FDB
priority=4,in_port=2,dl_vlan=1 actions=set_tunnel:0x3,NORMAL
priority=4,in_port=2,dl_vlan=2 actions=set_tunnel:0x1,NORMAL
priority=4,in_port=2,dl_vlan=4 actions=set_tunnel:0x3,NORMAL
priority=4,in_port=2,dl_vlan=3 actions=set_tunnel:0x1,NORMAL
L2ループ発生!!
- 21. GREトンネルでの故障検出 ??...
br-tun
br-int
br-ex
qbrXXX qbrXXX qbrXXX
qvoXXX
qvbXXX
qvoXXX
qvbXXX
qvoXXX
qvbXXX
OpenvSwitch
dnsmasq
OpenvSwitch
iptables
net_sdn1 net_sdn2
iptables dnsmasq
tag 3 tag 4tag 3
VM1 VM2 VM3
tap XXtap XXtap XX
br-tun
br-int
tag 2 tag 2 tag 1 tag 1
tap XXX tap XXXqr-XXX qr-XXX
qg-XXX qg-XXX
GREトンネル(予備)
GREトンネル(現用)
GREトンネル(現用)が利用不可となる事例として、GREトンネ
ルのエッジが収容された物理NICでの故障等が想定されます。
実際、物理NICを手動停止した場合、OpenFlowコントローラ
は、Port Statusメッセージを受信することはありません。
別途、GREトンネル故障を検出する仕組みが必要となります。
外部端末
物理
NIC停止
21
物理NIC停止しても
Port Statusが送出
されない