さすがはMaiaちゃんや〜! いいところに気付いたね。qrouterはテナントごとにできるけれどfip namespaceは共通なんだ
テナントがたくさんできると、この緑色のveth pairがたくさんできるということね。あれ? そういえば、なくなったはずのveth pairが復活しているような……?
この169.254.31.28と169.254.31.29は、31ビットマスクの1対1ネットワーク(point-to-point network)なんだ。veth pairが置き換わったのはパフォーマンスに問題があったことが理由らしいんだけれど、ここはわざわざブリッジを介して多段にするよりveth pairの方がシンプルな実装になると判断したんじゃないかな?
qrouterに付いている133.1.1.2がフローティングIPだね……。ということは、qrouterでSNATとDNATをしているのかな?
うん。そこはIcehouse以前のOpenStackの実装と同じだね
インスタンスからのパケットは、やっぱりrule tableで転送されるのかな?
SNATは、さっきは「from 10.0.0.1」のruleで転送されていたんだけど、今度はインスタンスを特定して「from 10.0.0.3」のruleに該当していて、169.254.31.29へ行けといわれてるね(2)
root@compute# netns qrouter-674d27ea-04b6-4b3e-bfcd-7f60c4fc91e4 ip rule ls 0: from all lookup local 32766: from all lookup main 32767: from all lookup default 32768: from 10.0.0.3 lookup 16 167772673: from 10.0.0.1/24 lookup 167772673 root@compute# netns qrouter-674d27ea-04b6-4b3e-bfcd-7f60c4fc91e4 ip rule show table 16 default via 169.254.31.29 dev rfp-73057a4f-f
なるほど。「フローティングIPは特定のインスタンスと対応付けするから」ってことだね
今回は、Neutronがネットワークを構成していく様子をトレースしてみました。前半、二人の操作で順を追って紹介してきましたが、それぞれの設定を見ると、Neutronの動きそのものはそれほど難しくないことがお分かりいただけたのではないでしょうか。
次回は、SDNコントローラーが提供するNeutronプラグインを用いた複雑なネットワーク構成を解説します。お楽しみに。
Copyright © ITmedia, Inc. All Rights Reserved.