ところで、最近OpenStackの新しいリリースが出たんだよね?
Junoだね
そのJunoでは、このへんの仕組みは変わっていないのかな?
うん。僕も気になって調べてみたんだ。ネットワークの形としては変わってないんだけれど、接続の仕方が変わっているようなんだ
接続の仕方って?
さっき、veth pairはLANケーブルみたいだって言っていたじゃない?
Network Namespaceとブリッジの接続に使われているものだよね?
そう。これがOpen vSwitchのinternal portに変わっているんだ。具体的にはこんな感じ
root@ub2:~$ ovs-vsctl -- add-port br-ex qr-port1 \ -- set Interface qr-port1 type=internal root@ub2:~$ ip link set qr-port1 netns qrouter1
veth pairはLinuxカーネルが実装している機能なんだけれど、それをOpenStack JunoではOpen vSwitchの機能で置き換えているんだ
なるほど! Open vSwitchで作ったポートをip linkで操作してNetwork Namespaceの中へ移してるのか。ということは、このポートはブリッジに直接接続していながら、Network Namespaceの中にいるってこと?
そうなるね。それと、ブリッジ同士の接続もveth pairだったけれど、これはpatch portに変更になっているんだ。br-intとbr-tunをつなぐとしたら、次のようなコマンド操作になるね
# ovs-vsctl -- add-port br-int patch-tun \ -- set interface patch-tun type=patch options:peer=patch-int \ -- add-port br-tun patch-int \ -- set interface patch-int type=patch options:peer=patch-tun
ブリッジ同士の接続っていうと……。あ! マルチノードの場合だね?
そう。networkノードとcomputeノードの間のトンネルになるんだ。この変更点をまとめると下図のようになる
ブリッジとブリッジをつないでいるピンクのポートがpatch portだね
internal portはオレンジ色で示してある。ブリッジのポートがnamespaceの中に伸びているイメージだね
こう見ると確かに、採用している機能は異なるけれど、基本的には変わっていないんだね
ここまではデフォルトの状態の話ね。ところが、JunoではDistributed Virtual Router(以下、DVR)っていう目玉機能が入ってきたんだ
Distributedってことは、ルーターがいろんなところにできる?
そう。qrouterがcomputeノードでも動くようになる
それって何が嬉しいの?
Copyright © ITmedia, Inc. All Rights Reserved.