midonetをインストールして基本コマンドを叩いてみる

midonetをインストールして基本コマンドを叩いてみるということで、今回all-in-oneのmidostackを使用して簡単に検証してみたいと思います。

midnetの概要から知りたい!という方はこちらから http://www.midokura.jp/midonet/

インストールはありがたいことに非常に簡単なので省略します。ubuntu14.04でgit cloneして./midonet_stack.shです。devstackも起動してくれます。

問題なく起動したら以下の通りhorizonにアクセスします。vagrantの場合は8080でポートフォワードしていると思います。

f:id:komeiy:20141113011424j:plain

ロードバランサーの項目がありました。LBaaSもできてます。

f:id:komeiy:20141113011504j:plain

プールの作成などもできますね。

f:id:komeiy:20141113011714j:plain

GUIはほどほどにして、コンソールから起動しているプロセスを見ると、rabbitmq,cinder,keystone,horizon,glance,neutronというキーワードが確認できます。ちゃんとdevstackで起動してくれているようです。

それではneutronコマンドを叩いてみます。openstackのマニュアルにも出てきますが、その前に以下を環境変数に入れておくと楽です。

OS_USERNAME=admin
OS_PASSWORD=gogomid0
OS_TENANT_NAME=demo
OS_AUTH_URL=http://localhost:5000/v2.0

とりあえずneutronのコマンドを数個叩いてみました。実際の実行結果が以下です。tenant,router,subnetも作成されていました。長いので一部コマンドだけにしておきます。

user@midostack:~/midostack$ neutron agent-list
+--------------------------------------+----------------+-----------------+-------+----------------+------------------------+
| id                                   | agent_type     | host            | alive | admin_state_up | binary                 |
+--------------------------------------+----------------+-----------------+-------+----------------+------------------------+
| 94433b70-2fc3-4a9e-9cad-171bae02f01c | DHCP agent     | midostack | :-)   | True           | neutron-dhcp-agent     |
| bb47a480-a430-4866-ac84-788583a75bc7 | Metadata agent | midostack | :-)   | True           | neutron-metadata-agent |
+--------------------------------------+----------------+-----------------+-------+----------------+------------------------+

user@midostack:~/midostack$ neutron net-list
+--------------------------------------+---------+-------------------------------------------------------+
| id                                   | name    | subnets                                               |
+--------------------------------------+---------+-------------------------------------------------------+
| 1bd3a3da-7386-49ac-8465-800fd5e6043b | private | e1051a98-c33a-43f6-ab4b-277bc5d1a7ef 10.0.0.0/24      |
| 934c6b69-c17f-4603-8d5a-c235d745a6dc | public  | 55a44ad5-0b62-490f-aed7-39881af200d7 200.200.200.0/24 |
+----------

user@midostack:~/midostack$ neutron subnet-list
+--------------------------------------+----------------+------------------+------------------------------------------------------+
| id                                   | name           | cidr             | allocation_pools                                     |
+--------------------------------------+----------------+------------------+------------------------------------------------------+
| 55a44ad5-0b62-490f-aed7-39881af200d7 | public-subnet  | 200.200.200.0/24 | {"start": "200.200.200.2", "end": "200.200.200.254"} |
| e1051a98-c33a-43f6-ab4b-277bc5d1a7ef | private-subnet | 10.0.0.0/24      | {"start": "10.0.0.2", "end": "10.0.0.254"}           |
+--------------------------------------+----------------+------------------+------------------------------------------------------+

user@midostack:~/midostack$ keystone tenant-list
+----------------------------------+--------------------+---------+
|                id                |        name        | enabled |
+----------------------------------+--------------------+---------+
| 078594c5c974410181919d07f46b8c8d |       admin        |   True  |
| 95b1a23cb8714e0088def14e686f6461 |      alt_demo      |   True  |
| 0a7eca2721d74c3398beb62bbd42e02b |        demo        |   True  |
| 96e51af3b0ac41749b0c7f62818c4a19 | invisible_to_admin |   True  |
| 35d334c86b184095a4f48a9768d2f2f0 |      service       |   True  |
+----------------------------------+--------------------+---------+

openstackのコマンドは一旦終わりにして、midonetのCLIを叩いてみます。midonet-cliコマンドでコンソールに入れます。

user@midostack:~/midostack$ midonet-cli
midonet>

tab補完や↑で履歴をさかのぼることもできて使いやすい印象です。

routerを見てみます。router1がテナントの仮想Router、router0がPhysical NWとの境界のGWです。

midonet> router list
router router0 name MidoNet Provider Router state up
router router1 name router1 state up infilter chain0 outfilter chain1

midonet> router router0 list port
port port0 device router0 state up mac aa:bb:cc:dd:ee:ff address 200.200.200.1 net 200.200.200.0/24 peer bridge0:port0
port port1 device router0 state up mac aa:bb:cc:dd:ee:ff address 172.19.0.2 net 172.19.0.0/30
port port2 device router0 state up mac aa:bb:cc:dd:ee:ff address 169.254.255.1 net 169.254.255.0/30 peer router1:port0

テナントをdemoにセットします。

midonet> sett <tenant-id>
tenant_id: <tenant-id>

新しいvxlanのトンネルゾーンを作成し、ホストを登録します。devstackで作られたcompute nodeは1台なのでhost listでも一つに見えます。

midonet> create tunnel-zone name new-tz type vxlan
tzone1
midonet> list tunnel-zone
tzone tzone0 name default_tz type gre
tzone tzone1 name new-tz type vxlan
midonet> tiuunnel-zone tzone0 list member 
midonet> host list
host host0 name midostack alive true
midonet> tunnel-zone tzone0 add member host host0 address <your-ipaddress>
zone tzone0 host host0 address <your-ipaddress>

midonet> tunnel-zone tzone0 list member
zone tzone0 host host0 address <your-ipaddress>

その他、以下のようなコマンドも。

midonet> host host0 list interface
midonet> router router0 list route

ルートは以下のような出力です。dstだけでなくsrcも通常のルーティングで設定できます。

src 0.0.0.0/0 dst A.A.A.0/24 gw B.B.B.B port router0:port1 weight 100

ある程度操作イメージは掴めたでしょうか。今回はここまでにしておきます。次回以降はACL,NATあたりを書ければ良いかなと思います。


シェアして頂けると嬉しいです。
参考になったという方がいれば是非お願いしますm(_ _ )m
モチベーション維持の観点で非常に励みになります。

このエントリーをはてなブックマークに追加

オープンソース・クラウド基盤 OpenStack入門 構築・利用方法から内部構造の理解まで

オープンソース・クラウド基盤 OpenStack入門 構築・利用方法から内部構造の理解まで

SDNの実践技術 (Interop Tokyoセミナー(NextPublishing))

SDNの実践技術 (Interop Tokyoセミナー(NextPublishing))