Upload
takehiro-kudou
View
878
Download
0
Embed Size (px)
Citation preview
© Hitachi Solutions, Ltd. 2015. All rights reserved.
株式会社日立ソリューションズ 技術開発本部 研究開発部 オープンソース技術グループ
2015/7/13
工藤 雄大
Summitで人・ひと・ヒト。 いま熱く語ろうコンテナとNeutron DVR -Neutron DVR Deep Dive-
周年特別企画: OpenStack Summitの歩き方
© Hitachi Solutions, Ltd. 2015. All rights reserved. 1
1 自己紹介
所属等
工藤 雄大(くどう たけひろ) 株式会社日立ソリューションズ
技術開発本部 研究開発部 オープンソース技術開発グループ 技師 インフラ系新技術・新製品の評価・ソリューション開発を担当
ここ7年程VDI&クラウド基盤。その前はAP仮想化、VPN製品等。 特技(好きなこと):製品・技術を外から(not Source) 挙動解析
Open Standard Cloud Association(OSCA™) 技術分科会 技術リーダ
最近はこんなことをやってます
VDI製品評価・提案支援
VDI構築・提案のポイント検討@OSCA VDIガイド (http://www.osca-jp.com/solution.html)
OpenStackネットワーク検証
Neutron(Havana版)検証@OSCA(共同検証) Neutron OVSのスケーラビリティ、耐障害性調査
(http://www.osca-jp.com/solution.html) (http://www.slideshare.net/tkkd/osc2014tf)
Neutron(Juno版) DVR機能調査 OpenStack(RHEL-OSP6)で試す分散仮想ルータ
(http://thinkit.co.jp/book/2015/04/11/5899)
© Hitachi Solutions, Ltd. 2015. All rights reserved. 3
2 Neutron関連セッションサマリ
■Neutron Kiloでの変更点 •15の新規Driver/Plug-inに対応
•IPv6のフルサポート (でもDVRではまだ)
•DVRでVLANサポート。テナントで、VLAN&GRE、VLAN&VXLAN構成が取れる。
•DVRでLBaaS、FWaaS(North/Southのみ)、VPNaaSサポート。安定化。
•Kilo & ML2ドライバで、Hierarchical Port Bindingが可能
■挙動・仕様解説 •NamespaceとPortの関係、トラフィックフロー解説
•Flat、VLAN、GRE、VXLANの特性・性能解説
•OVN(Open Source Virtual Network)概念解説
1ゲストあたり4~5個のネットワークデバイスをすっきりさせたい
•DVRパケット解説
■Libertyリリースに向けて •IPAM、BGP Speaker、NFV対応強化
•(DVR関連) 内部構造の単純化、IPv6用DVR、Distributed SNAT
DVR関連が多い (Tokyo Summitでは前提知識化?)
© Hitachi Solutions, Ltd. 2015. All rights reserved. 4
Neutron DVR Deep Dive -DVRの仕組みを(外から)解析してみよう- ★状態分析編★
© Hitachi Solutions, Ltd. 2015. All rights reserved. 5
3.1 少しおさらい:Neutron Network
■元々のNeutron Network
・別テナント間通信は、Network Serverを必ず経由する
・External Networkへ出るときは、Network Serverを必ず経由する
負荷集中
*本セッションでは、neutron-serverサービスを
提供しているサーバをNetwork Serverと定義する。
*DVR有効下の場合、SNATサービスを提供している
サーバをNetwork Serverと定義する。
© Hitachi Solutions, Ltd. 2015. All rights reserved. 6
3.2 少しおさらい:Neutron Network with DVR
■DVR有効下のNeutron Network
・別テナント間通信も、インスタンスが動いているCompute Node間で通信完結
・External Networkへ出る時は、そのServer上の分散仮想ルータを経由する
実態は何?? =>解析だ!!
© Hitachi Solutions, Ltd. 2015. All rights reserved. 7
3.3 解析環境
•環境:サーバ3台(Controller+Network、Compute1、Compute2)。RDO(Kilo)を使用。
•構築手順 => 「Think IT DVR」で検索。RDO(Kilo)で動作する事を確認済。
© Hitachi Solutions, Ltd. 2015. All rights reserved.
3.4 テナント&インスタンス
•DVR有効下で、Routerを一つ作成
•Tenantを2つ作り、Routerに紐付け、それぞれインスタンスを作成
8
© Hitachi Solutions, Ltd. 2015. All rights reserved.
3.5 Network Serverの中身
•「ip a」[ip netns][ip netns exec ~][ovs-vsctl show]をいろいろ実行 したら、Network Serverの中身が判明
•仮想ルータの実態はLinux Namespace+α
Controller + Network eth0
Bridge “br-ex”
Namespace for router qrouter-8bb40bd2-8729-4d97-bbe6-d3420630ab4c
Bridge “br-int”patch-tun
Bridge “br-tun”patch-int
eth2(Tunnel)
[192.168.20.101]
gre-c0a81466for Compute1
Namespace for SNATsnat-8bb40bd2-8729-4d97-bbe6-d3420630ab4c
sg-d4e9b791-08
[192.168.220.11]
qg-a94a356d-d1
[10.0.0.11]
gre-c0a81467for Compute2
qr-d5a61cff-0b
[192.168.210.1]sg-492d4732-80
[192.168.210.11]qr-775574c1-99
[192.168.220.1]
9
© Hitachi Solutions, Ltd. 2015. All rights reserved.
3.6 Compute Server1、2も同様に解析
•各ノードに「同一」の仮想ルータ用Namespaceが存在
(ネットワーク的に大丈夫・・?)
*以下を参考に作成 https://docs.google.com/document/d/1iXMAyVMf42FTahExmGdYNGOBFyeA4e74sAO3pvr_RjA/edit
Controller + Network eth0
Bridge “br-ex”
Namespace for router qrouter-8bb40bd2-8729-4d97-bbe6-d3420630ab4c
Bridge “br-int”patch-tun
Bridge “br-tun”patch-int
eth2(Tunnel)
[192.168.20.101]
gre-c0a81466for Compute1
Namespace for SNATsnat-8bb40bd2-8729-4d97-bbe6-
d3420630ab4c
sg-d4e9b791-08[192.168.220.11]
qg-a94a356d-d1[10.0.0.11]
gre-c0a81467for Compute2
qr-d5a61cff-0b
[192.168.210.1]sg-492d4732-80[192.168.210.11]
qr-775574c1-99
[192.168.220.1]
Compute Server1 eth0
Bridge “br-ex”
Namespace for router qrouter-8bb40bd2-8729-4d97-bbe6-d3420630ab4c
Bridge “br-int”patch-tun
Bridge “br-tun”
patch-int
eth2(Tunnel)
[192.168.20.102]
gre-c0a81465for Ctrl+Net
gre-c0a81467for Compute2
qr-d5a61cff-0b
[192.168.210.1]qr-775574c1-99
[192.168.220.1]
Compute Server2 eth0
Bridge “br-ex”
Namespace for router qrouter-8bb40bd2-8729-4d97-bbe6-d3420630ab4c
Bridge “br-int”patch-tun
Bridge “br-tun”
patch-int
eth2(Tunnel)
[192.168.20.103]
gre-c0a81465for Ctrl+Net
gre-c0a81466for Compute1
qr-d5a61cff-0b
[192.168.210.1]qr-775574c1-99
[192.168.220.1]
Public Network10.0.0.0/24
GRE encapslation192.168.220.0/24
インスタンスtest220-1
192.168.220.12
インスタンスtest210-1
192.168.210.12
10
© Hitachi Solutions, Ltd. 2015. All rights reserved. 11
Neutron DVR Deep Dive -DVRの仕組みを(外から)解析してみよう- ★挙動解析編★ -テナントまたがりのインスタンス間通信- -Floating IP【無し】でのPublic Network向けパケット- -Floating IP【有り】でのPublic Network向けパケット-
© Hitachi Solutions, Ltd. 2015. All rights reserved.
4.1 テナントまたがり:パケットフロー
•namespace内、各インタフェースでtcpdump実行したらこのような挙動
Controller + Network eth0
Bridge “br-ex”
Namespace for router qrouter-8bb40bd2-8729-4d97-bbe6-d3420630ab4c
Bridge “br-int”patch-tun
Bridge “br-tun”patch-int
eth2(Tunnel)
[192.168.20.101]
gre-c0a81466for Compute1
Namespace for SNATsnat-8bb40bd2-8729-4d97-bbe6-
d3420630ab4c
sg-d4e9b791-08[192.168.220.11]
qg-a94a356d-d1[10.0.0.11]
gre-c0a81467for Compute2
qr-d5a61cff-0b
[192.168.210.1]sg-492d4732-80[192.168.210.11]
qr-775574c1-99
[192.168.220.1]
Compute Server1 eth0
Bridge “br-ex”
Namespace for router qrouter-8bb40bd2-8729-4d97-bbe6-d3420630ab4c
Bridge “br-int”patch-tun
Bridge “br-tun”
patch-int
eth2(Tunnel)
[192.168.20.102]
gre-c0a81465for Ctrl+Net
gre-c0a81467for Compute2
qr-d5a61cff-0b
[192.168.210.1]qr-775574c1-99
[192.168.220.1]
Compute Server2 eth0
Bridge “br-ex”
Namespace for router qrouter-8bb40bd2-8729-4d97-bbe6-d3420630ab4c
Bridge “br-int”patch-tun
Bridge “br-tun”
patch-int
eth2(Tunnel)
[192.168.20.103]
gre-c0a81465for Ctrl+Net
gre-c0a81466for Compute1
qr-d5a61cff-0b
[192.168.210.1]qr-775574c1-99
[192.168.220.1]
Public Network10.0.0.0/24
インスタンスtest220-1
192.168.220.12
インスタンスtest210-1
192.168.210.12
request
reply
12
© Hitachi Solutions, Ltd. 2015. All rights reserved.
East/West方向は、HP真壁さんがすごくわかりやすい解説をされているので、そちらもご参照ください。
http://www.slideshare.net/ToruMakabe/20-openstack-neutron-deep-dive-dvr
4.2 テナントまたがり:パケットフロー 拡大図
13
© Hitachi Solutions, Ltd. 2015. All rights reserved. 14
Neutron DVR Deep Dive -DVRの仕組みを(外から)解析してみよう- ★挙動解析編★ -テナントまたがりのインスタンス間通信- -Floating IP【無し】でのPublic Network向けパケット- -Floating IP【有り】でのPublic Network向けパケット-
© Hitachi Solutions, Ltd. 2015. All rights reserved.
5.1 Floating IP【無し】:パケットフロー全体概要
Controller + Network eth0
Bridge “br-ex”
Namespace for router qrouter-8bb40bd2-8729-4d97-bbe6-d3420630ab4c
Bridge “br-int”patch-tun
Bridge “br-tun”patch-int
eth2(Tunnel)
[192.168.20.101]
gre-c0a81466for Compute1
Namespace for SNATsnat-8bb40bd2-8729-4d97-bbe6-d3420630ab4c
sg-d4e9b791-08
[192.168.220.11]
qg-a94a356d-d1
[10.0.0.11]
gre-c0a81467for Compute2
qr-d5a61cff-0b
[192.168.210.1]sg-492d4732-80
[192.168.210.11]qr-775574c1-99
[192.168.220.1]
Compute Server1 eth0
Bridge “br-ex”
Namespace for router qrouter-8bb40bd2-8729-4d97-bbe6-d3420630ab4c
Bridge “br-int”patch-tun
Bridge “br-tun”
patch-int
eth2(Tunnel)
[192.168.20.102]
gre-c0a81465for Ctrl+Net
gre-c0a81467for Compute2
qr-d5a61cff-0b
[192.168.210.1]qr-775574c1-99
[192.168.220.1]
Compute Server2 eth0
Bridge “br-ex”
Namespace for router qrouter-8bb40bd2-8729-4d97-bbe6-d3420630ab4c
Bridge “br-int”patch-tun
Bridge “br-tun”
patch-int
eth2(Tunnel)
[192.168.20.103]
gre-c0a81465for Ctrl+Net
gre-c0a81466for Compute1
qr-d5a61cff-0b
[192.168.210.1]qr-775574c1-99
[192.168.220.1]
Public Network10.0.0.0/24
GRE encapslation192.168.220.0/24
インスタンスtest220-1
192.168.220.12
インスタンスtest210-1
192.168.210.12
10.0.0.1
•namespace内、各インタフェースでtcpdump実行したらこのような挙動
•FIP無しのインスタンスは、自分が動作しているCompute Server上の仮想ルータに、パケットを投げる。そのパケットは、Controller + Network ServerのSNAT用仮想ルータのインタ
フェース192.168.220.11へ転送される。
15
© Hitachi Solutions, Ltd. 2015. All rights reserved.
Controller + Network eth0
Bridge “br-ex”
Namespace for router
qrouter-8bb40bd2-8729-4d97-bbe6-d3420630ab4c
Bridge “br-int”patch-tun
Bridge “br-tun”patch-int
eth2(Tunnel)
[192.168.20.101]
gre-c0a81466for Compute1
Namespace for SNATsnat-8bb40bd2-8729-4d97-bbe6-d3420630ab4c
sg-d4e9b791-08
[192.168.220.11]
qg-a94a356d-d1[10.0.0.11]
gre-c0a81467for Compute2
qr-d5a61cff-0b[192.168.210.1]
sg-492d4732-80[192.168.210.11]
qr-775574c1-99[192.168.220.1]
Compute Server1 eth0
Bridge “br-ex”
Namespace for router qrouter-8bb40bd2-8729-4d97-bbe6-
d3420630ab4c
Bridge “br-int”patch-tun
Bridge “br-tun”
patch-int
eth2(Tunnel)
[192.168.20.102]
gre-c0a81465for Ctrl+Net
gre-c0a81467for Compute2
qr-d5a61cff-0b[192.168.210.1]
qr-775574c1-99
[192.168.220.1]
Public Network10.0.0.0/24
GRE encapslation192.168.220.0/24
インスタンスtest220-1
192.168.220.12
10.0.0.1
5.2 Floating IP【無し】:パケットフロー詳細
[Compute Server1の仮想ルータ用Namespaceのルーティング情報] # ip netns exec qrouter-8bb40bd2-8729-4d97-bbe6-d3420630ab4c ip rule ls 3232291841: from 192.168.220.1/24 lookup 3232291841 # ip netns exec qrouter-8bb40bd2-8729-4d97-bbe6-d3420630ab4c ip route show table 3232291841 default via 192.168.220.11 dev qr-775574c1-99
インスタンスのGW 192.168.220.1
[Controller + NetworkのSNAT仮想ルータ用Namespaceのルーティング情報] # ip netns exec snat-8bb40bd2-8729-4d97-bbe6-d3420630ab4c ip route show table 0 default via 10.0.0.1 dev qg-a94a356d-d1
[Compute Server1の仮想ルータ用NamespaceでのSourceアドレス変換] # ip netns exec snat-8bb40bd2-8729-4d97-bbe6-d3420630ab4c iptables -L -n -t nat
Chain neutron-l3-agent-snat (1 references) target prot opt source destination SNAT all -- 0.0.0.0/0 0.0.0.0/0 to:10.0.0.11
SNAT用Namespaceのインタフェース 192.168.220.11
SRC IP:192.168.220.12 DST IP:10.0.0.1 GW:192.168.220.1
SRC IP:192.168.220.12 DST IP:10.0.0.1 GW:192.168.220.11
SRC IP:10.0.0.11 DST IP:10.0.0.1 GW:10.0.0.1
16
© Hitachi Solutions, Ltd. 2015. All rights reserved. 17
Neutron DVR Deep Dive -DVRの仕組みを(外から)解析してみよう- ★挙動解析編★ -テナントまたがりのインスタンス間通信- -Floating IP【無し】でのPublic Network向けパケット- -Floating IP【有り】でのPublic Network向けパケット-
© Hitachi Solutions, Ltd. 2015. All rights reserved.
Controller + Network eth0
Bridge “br-ex”
Namespace for router qrouter-8bb40bd2-8729-4d97-bbe6-d3420630ab4c
Bridge “br-int”patch-tun
Bridge “br-tun”patch-int
eth2(Tunnel)
[192.168.20.101]
gre-c0a81466for Compute1
Namespace for SNATsnat-8bb40bd2-8729-4d97-bbe6-d3420630ab4c
sg-d4e9b791-08
[192.168.220.11]
qg-a94a356d-d1
[10.0.0.11]
gre-c0a81467for Compute2
qr-d5a61cff-0b
[192.168.210.1]sg-492d4732-80
[192.168.210.11]qr-775574c1-99
[192.168.220.1]
Compute Server1 eth0
Bridge “br-ex”
Namespace for router qrouter-8bb40bd2-8729-4d97-bbe6-d3420630ab4c
Bridge “br-int”patch-tun
Bridge “br-tun”
patch-int
eth2(Tunnel)
[192.168.20.102]
gre-c0a81465for Ctrl+Net
gre-c0a81467for Compute2
qr-d5a61cff-0b
[192.168.210.1]qr-775574c1-99
[192.168.220.1]
Compute Server2 eth0
Bridge “br-ex”
Namespace for router qrouter-8bb40bd2-8729-4d97-bbe6-d3420630ab4c
Bridge “br-int”patch-tun
Bridge “br-tun”
patch-int
eth2(Tunnel)
[192.168.20.103]
gre-c0a81465for Ctrl+Net
gre-c0a81466for Compute1
qr-d5a61cff-0b
[192.168.210.1]qr-775574c1-99
[192.168.220.1]
Public Network10.0.0.0/24
インスタンスtest220-1
192.168.220.12
インスタンスtest210-1
192.168.210.12
10.0.0.1
Namespacefor FIP
fip-883a8446-ad7e-4454-9014-
a0062a510de2
fg-a24a3415-a3[10.0.0.13]
fpr-
8bb4
0bd2
-8[1
69.2
54.3
1.29
]
rfp-
8bb4
0bd2
-8[1
69.2
54.3
1.28
][1
0.0.
0.12
]
6.1 Floating IP【有り】:パケットフロー全体概要
•namespace内、各インタフェースでtcpdump実行したらこのような挙動 •FIP有りのインスタンスは、自分が動作しているCompute Server上の仮想ルータに、パケットを投げる。 そのパケットは、FIP用Namespaceを通り、External Networkへ出る。
FIP有効に すると出現
そもそもこのNamespace 大丈夫なの?疑惑 18
© Hitachi Solutions, Ltd. 2015. All rights reserved.
Controller + Network eth0
Bridge “br-ex”
Namespace for router qrouter-8bb40bd2-8729-4d97-bbe6-d3420630ab4c
Bridge “br-int”patch-tun
Bridge “br-tun”patch-int
eth2(Tunnel)
[192.168.20.101]
gre-c0a81466for Compute1
Namespace for SNATsnat-8bb40bd2-8729-4d97-bbe6-d3420630ab4c
sg-d4e9b791-08
[192.168.220.11]
qg-a94a356d-d1
[10.0.0.11]
gre-c0a81467for Compute2
qr-d5a61cff-0b
[192.168.210.1]sg-492d4732-80
[192.168.210.11]qr-775574c1-99
[192.168.220.1]
Compute Server1 eth0
Bridge “br-ex”
Namespace for router qrouter-8bb40bd2-8729-4d97-bbe6-d3420630ab4c
Bridge “br-int”patch-tun
Bridge “br-tun”
patch-int
eth2(Tunnel)
[192.168.20.102]
gre-c0a81465for Ctrl+Net
gre-c0a81467for Compute2
qr-d5a61cff-0b
[192.168.210.1]qr-775574c1-99
[192.168.220.1]
Compute Server2 eth0
Bridge “br-ex”
Namespace for router qrouter-8bb40bd2-8729-4d97-bbe6-d3420630ab4c
Bridge “br-int”patch-tun
Bridge “br-tun”
patch-int
eth2(Tunnel)
[192.168.20.103]
gre-c0a81465for Ctrl+Net
gre-c0a81466for Compute1
qr-d5a61cff-0b
[192.168.210.1]qr-775574c1-99
[192.168.220.1]
Public Network10.0.0.0/24
インスタンスtest220-1
192.168.220.12
インスタンスtest210-1
192.168.210.12
10.0.0.1
Namespacefor FIP
fip-883a8446-ad7e-4454-9014-
a0062a510de2
fg-a24a3415-a3[10.0.0.13]
fpr-
8bb4
0bd2
-8[1
69.2
54.3
1.29
]
rfp-
8bb4
0bd2
-8[1
69.2
54.3
1.28
][1
0.0.
0.12
]
6.2 Floating IP【有り】:仮想ルータ群
IP:192.168.220.12 DFGは192.168.220.1
IP:192.168.220.1 のDFG達 ・・・達?!
どこがおかしいのか?
19
© Hitachi Solutions, Ltd. 2015. All rights reserved.
Compute Server1 eth0
Bridge “br-ex”
Namespace for router qrouter-8bb40bd2-8729-4d97-bbe6-d3420630ab4c
Bridge “br-int”patch-tun
Bridge “br-tun”
patch-int
eth2(Tunnel)
[192.168.20.102]
gre-c0a81465for Ctrl+Net
gre-c0a81467for Compute2
qr-d5a61cff-0b
[192.168.210.1]qr-775574c1-99
[192.168.220.1]
Public Network10.0.0.0/24
インスタンスtest220-1
192.168.220.12
10.0.0.1
Namespacefor FIP
fip-883a8446-ad7e-4454-9014-
a0062a510de2
fg-a24a3415-a3[10.0.0.13]
fpr-
8bb4
0bd2
-8[1
69.2
54.3
1.29
]
rfp-
8bb4
0bd2
-8[1
69.2
54.3
1.28
][1
0.0.
0.12
]
6.3 Floating IP【有り】:Public Network向けパケット
•他ノードへのDFG向けパケットは br-tunがDrop!!!
[Compute Server1の、br-tunでの、br-intとの接続ポート番号が1] # ovs-ofctl show br-tun 1(patch-int): addr:5a:b0:7b:78:03:3b [Compute Server1での、br-tunのOVS flow table確認] # ovs-ofctl dump-flows br-tun (略) cookie=0x0, duration=88568.255s, table=0, n_packets=342, n_bytes=24261, idle_age=8652, hard_age=65534, priority=1,in_port=1 actions=resubmit(,1) (略) cookie=0x0, duration=76042.928s, table=1, n_packets=0, n_bytes=0, idle_age=65534, hard_age=65534, priority=2,dl_vlan=2,dl_dst=fa:16:3e:e3:b5:0b actions=drop (略) cookie=0x0, duration=75932.181s, table=1, n_packets=3, n_bytes=126, idle_age=65534, hard_age=65534, priority=3,arp,dl_vlan=2,arp_tpa=192.168.220.1 actions=drop
・他のServerへ行くには、
インスタンス→br-int→br-tunを通る
・br-tunでは、他Serverの
-192.168.220.1宛arpパケットDrop
-192.168.220.1のMAC[fa:16:3e:e3:b5:0b]Drop
=>つまり、他のServerへパケットが行かない
Drop
20
© Hitachi Solutions, Ltd. 2015. All rights reserved.
6.4 ちょっと脱線
•他ノードへのDFG向けパケットは br-tunがDrop!!! ・他のServerへ行くには、
インスタンス→br-int→br-tunを通る
・br-tunでは、他Serverの
-192.168.220.1宛arpパケットDrop
-192.168.220.1のMAC[fa:16:3e:d0:dd:d0]Drop
=>つまり、他のServerへパケットが行かない Drop
・他ノードへのDFG向けパケットDropだと、
FIP無しのインスタンスで問題発生するのでは?
なんとよくできた仕組み!!
「Floating IP【無し】でのPublic Network向けパケット」より・・
FIP無しのインスタンスは、自分が動作しているCompute Server上 の仮想ルータに、パケット投げる。その後、Controller + Network ServerのSNAT用仮想ルータのインタフェース192.168.220.11へ 転送される。つまり、192.168.220.1向けではないのでDropされない。
21
© Hitachi Solutions, Ltd. 2015. All rights reserved.
Compute Server1 eth0
Bridge “br-ex”
Namespace for router qrouter-8bb40bd2-8729
-4d97-bbe6-d3420630ab4c
Bridge “br-int”patch-tun
Bridge “br-tun”
patch-int
eth2(Tunnel)
[192.168.20.102]
gre-c0a81465for Ctrl+Net
gre-c0a81467for Compute2
qr-d5a61cff-0b
[192.168.210.1]qr-775574c1-99
[192.168.220.1]
Public Network10.0.0.0/24
インスタンスtest220-1
192.168.220.12
10.0.0.1
Namespacefor FIP
fip-883a8446-ad7e-4454-9014-
a0062a510de2
fg-a24a3415-a3
[10.0.0.13]
fpr-
8bb4
0bd2
-8
[169
.254
.31.
29]
rfp-
8bb4
0bd2
-8
[169
.254
.31.
28]
[10.
0.0.
12]
■Sourceアドレス変換 # ip netns exec qrouter-8bb40bd2-8729-4d97-bbe6-d3420630ab4c iptables -L -t nat Chain neutron-l3-agent-float-snat (1 references) target prot opt source destination
SNAT all -- 192.168.220.12
anywhere to:10.0.0.12
SRC IP:192.168.220.12 DST IP:10.0.0.1 GW:192.168.220.1
■Routing処理 # ip netns exec qrouter-8bb40bd2-8729-4d97-bbe6-d3420630ab4c ip rule ls
32768: from 192.168.220.12 lookup 16 # ip netns exec qrouter-8bb40bd2-8729-4d97-bbe6-
d3420630ab4c ip route show table 16 default via 169.254.31.29 dev rfp-8bb40bd2-8
■インスタンスがGWへパケット送出
6.5 Floating IP【有り】:Public Network向けパケット詳細
■10.0.0.1へ転送 # ip netns exec fip-883a8446-ad7e-4454-9014-a0062a510de2 ip route show default via 10.0.0.1 dev fg-a24a3415-a3
SRC IP:10.0.0.12[FIP] DST IP:10.0.0.1 GW:10.0.0.1
SRC IP:10.0.0.12 [FIP] DST IP:10.0.0.1 GW:169.254.31.29
22
© Hitachi Solutions, Ltd. 2015. All rights reserved.
Compute Server1 eth0
Bridge “br-ex”
Namespace for router qrouter-8bb40bd2-8729
-4d97-bbe6-d3420630ab4c
Bridge “br-int”patch-tun
Bridge “br-tun”
patch-int
eth2(Tunnel)
[192.168.20.102]
gre-c0a81465for Ctrl+Net
gre-c0a81467for Compute2
qr-d5a61cff-0b
[192.168.210.1]qr-775574c1-99
[192.168.220.1]
Public Network10.0.0.0/24
インスタンスtest220-1
192.168.220.12(FIP:10.0.0.12)
10.0.0.1
Namespacefor FIP
fip-883a8446-ad7e-4454-9014-
a0062a510de2
fg-a24a3415-a3
[10.0.0.13]
fpr-
8bb4
0bd2
-8
[169
.254
.31.
29]
rfp-
8bb4
0bd2
-8
[169
.254
.31.
28]
[10.
0.0.
12]
インスタンスtest220-3
192.168.220.14(FIP:10.0.0.14)
■Destinationアドレス変換 # ip netns exec qrouter-8bb40bd2-8729-4d97-bbe6-d3420630ab4c iptables -L –n -t nat Chain neutron-l3-agent-PREROUTING (1 references) target prot opt source destination
DNAT all -- 0.0.0.0/0 10.0.0.12
to:192.168.220.12 DNAT all -- 0.0.0.0/0 10.0.0.14 to:192.168.220.14
SRC IP:10.0.0.1 DST IP:192.168.220.12
■Routing処理 # ip netns exec qrouter-8bb40bd2-8729-4d97-bbe6-d3420630ab4c ip rule ls 0: from all lookup local 32766: from all lookup main 32767: from all lookup default 32768: from 192.168.220.12 lookup 16 32769: from 192.168.220.14 lookup 16 (略) # ip netns exec qrouter-8bb40bd2-8729-4d97-bbe6-
d3420630ab4c ip route show table 0 192.168.220.0/24 dev
qr-775574c1-99 proto kernel scope link
src 192.168.220.1
6.6 Floating IP【有り】:Public Networkからのパケット詳細(逆方向)
SRC IP:10.0.0.1 DST IP:10.0.0.12
23
© Hitachi Solutions, Ltd. 2015. All rights reserved.
仮想ルータ/分散仮想ルータの実態は、Linux Namespace + OVS
DVRを有効にすると、各サーバで全く同一のLinux Namespaceが
作成されるが、OVS側で余計なパケットをDrop
Floating IP割当の有無で、パケットの流れは大きく異なる
Floating IP割当無しの場合
East/West方向
インスタンスが動作しているCompute Node同士で直接通信
North/South方向
SNAT用Namespaceが動作しているサーバ(Network Server)を経由
Floating IP割当有りの場合
East/West方向
インスタンスが動作しているCompute Node同士で直接通信
North/South方向
インスタンスが動作しているCompute Node(のFIP用Namespace)が直接通信
まとめ
24
Network(SNAT)
Compute1
Compute2インス
タンスインスタンス
Network(SNAT)
Compute1
Compute2インス
タンスインスタンス
© Hitachi Solutions, Ltd. 2015. All rights reserved.
Vancouver Summitでは、DVRに触れているセッションが多かったです。
Tokyo Summitでは、”知っていて当たり前”になりそうな印象を受けました。
DVRはかなり良く考えられて面白いです。
Libertyでどう進化するのか、お楽しみに!
- 作り方:検索「Think IT DVR」
→第2回:RHEL-OSP6でのDVR環境構築手順
http://thinkit.co.jp/story/2015/05/19/6017
- パケット解析方法:検索「Think IT DVR」
→第3回:Neutron DVR環境でのパケット処理を探る
http://thinkit.co.jp/story/2015/06/17/6135
- 本日の資料
http://www.slideshare.net/tkkd
最後に
25
© Hitachi Solutions, Ltd. 2015. All rights reserved.
・Linuxは,Linus Torvalds氏の日本およびその他の国における登録商標または商標です。 ・OpenStack®の文字表記とOpenStackのロゴは,米国とその他の国におけるOpenStack Foundationの登録商標/サービスマークまたは商標/サービスマークのいずれかであり,OpenStack Foundationの許諾を得て使用しています。日立製作所は,OpenStack FoundationやOpenStackコミュニティの関連企業ではなく、また支援や出資を受けていません。 ・ OSCA™(Open Standard Cloud Association)は、デル株式会社の登録商標です。 ・ Red Hat、Red Hat Enterprise Linuxは、米国およびその他の国におけるRed Hat, Inc. の登録商標です。 ・その他、記載の商標やロゴは、各社の商標または登録商標です。
・本講演は、情報提供のみを目的としており、誤字脱字、技術上の誤りには一切責任を負いません。 ・本講演の内容は一般的な原則を記しており、すべての環境での動作を保証するものではありません。 ・本講演の内容は検証時のものであり、明示的、暗示的を問わず、いかなる内容も保証いたしません
免責事項 / 商標等について
26