連載
OpenStack Neutronの「中」の動きを追いかけよう:いま覚えておくべきOpenStack Neutronの基本(2)(2/8 ページ)
OpenStack Neutronはどのようにしてネットワークを構築しているのでしょうか? 今回は、順を追ってその挙動を確かめていきます。
Network Namespace同士を接続する動作を見てみよう
ネットワークはつないでみないと分からないよね
うん。つないでみたいね。でも、loしかないのに、どうやってつなげばいいの?
veth pairとはどんなもの?
veth pairを使うんだ。やってみるよ
root@ub2:~$ ip link add qr-veth1 type veth peer name qr-peer1 root@ub2:~$ ip link show 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000 link/ether 00:16:3e:1a:07:2d brd ff:ff:ff:ff:ff:ff 3: qr-peer1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000 link/ether ee:62:82:2b:77:15 brd ff:ff:ff:ff:ff:ff 4: qr-veth1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000 link/ether c6:00:29:73:52:7d brd ff:ff:ff:ff:ff:ff
インターフェースが二つできたね!
そう。この二つは、つながっているんだ。一方にデータを入れると反対側から出てくる。こんなイメージだね
えー。これじゃ何もできそうにないなぁ……
うん。でも、この一方をqrouter namespaceに移してみるとどうなると思う?
root@ub2:~$ ip link set qr-veth1 netns qrouter1 root@ub2:~$ ip netns exec qrouter1 ip link show 1: lo: <LOOPBACK> mtu 65536 qdisc noop state DOWN mode DEFAULT group default link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 4: qr-veth1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000 link/ether c6:00:29:73:52:7d brd ff:ff:ff:ff:ff:ff
あ! qrouter1の中にインターフェースができたね。ということは、外からのインターフェースはなくなってるということ?
qr-veth1はなくなって、インターフェースは三つになっているね
root@ub2:~$ ip link show 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000 link/ether 00:16:3e:1a:07:2d brd ff:ff:ff:ff:ff:ff 3: qr-peer1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000 link/ether ee:62:82:2b:77:15 brd ff:ff:ff:ff:ff:ff
じゃ、こうなったわけだ(下図)。あ! これってつまりLANケーブルみたいな感じなのかな?
そうそう。両側にNICがついたLANケーブルって思えばいいんじゃないかな
なるほどー。qrouterがサーバーで、そのNICにケーブルがつながった状態ってことね。反対側のqr-peerを別のサーバーにつなげば、ちゃんとつながる?
うん。つながると思うけれど、Maiaちゃん、普段サーバーにLANケーブルをつなぐ時は、反対側はどうする?
「スイッチにつなぐ」かな?
そうだよね。せっかくだからスイッチも作ってみようよ
root@ub2:~$ ovs-vsctl add-br br-int root@ub2:~$ ovs-vsctl show c2814be5-4eca-46ed-ad10-4c06d1ce807a Bridge br-int Port br-int Interface br-int type: internal ovs_version: "2.0.2"
いまの操作でbr-intというスイッチができたはずだ
root@ub2:~$ ovs-vsctl add-port br-int qr-peer1 root@ub2:~$ ovs-vsctl show c2814be5-4eca-46ed-ad10-4c06d1ce807a Bridge br-int Port "qr-peer1" Interface "qr-peer1" Port br-int Interface br-int type: internal ovs_version: "2.0.2"
Copyright © ITmedia, Inc. All Rights Reserved.