外部ネットワークとの直接接続について

1,854 views
Skip to first unread message

fulltask...@yahoo.co.jp

unread,
Jun 16, 2015, 11:14:19 AM6/16/15
to openst...@googlegroups.com
はじめまして。fulltaskと申します。

OpenStackのネットワーク構成についてお尋ねさせてください。

現在、手元にOpenStackの検証環境を構築して試行錯誤しているのですが、
インスタンスをpublicなネットワークに直接接続することは可能でしょうか。

つまり、Floating IPによるNATではなく、外部ネットワークのセグメントの
IPアドレスをFixed IPとしてインスタンスに直接割り当て、外部と通信する
ようなことはできるでしょうか。

書籍「OpenStackクラウドインテグレーション」の「RDOによる環境構築」の
手順で検証環境を構築し、仮想ルーターを介さずにexternalなネットワーク
(provider:network_type flat、router:external Trueなネットワーク) に
直接インスタンスをぶらさげてみましたが、インスタンスどうしは通信できる
ものの、OpenStack外 (ネットワークのゲートウェイなど) と通信できません。

下記のようなページも参考にしましたが、解決に至っていません。
http://qiita.com/ksrt/items/34f6a31c7af34da9e471
https://developer.rackspace.com/blog/beginning-to-understand-neutron-provider-and-tenant-networks-in-openstack/
https://access.redhat.com/documentation/ja-JP/Red_Hat_Enterprise_Linux_OpenStack_Platform/5/html/Installation_and_Configuration_Guide/sect-OpenStack_Networking_Installation_Overview.html

パターンとしては
 ・本来は通信できるはずで、私の手元の検証環境がおかしい
 ・OpenStackはそのような設計になっていないので、簡単には実現できない
 ・Neutronで適切に設定をすれば実現できる
のいずれかだと考えていますが、何か情報をお持ちの方がいらっしゃいましたら
アドバイスをいただければ幸いです。

「なぜFloating IPではだめなのか」というような議論もあるかと思いますが、
今回はそれは除外していただければと思います。

以上、よろしくお願いいたします。

Akihiro Motoki

unread,
Jun 16, 2015, 12:39:32 PM6/16/15
to openst...@googlegroups.com
ご質問の構成は問題なく構成できるはずです。

この構成を取る場合、router:external True のネットワークを作成する必要は
特にありません。コンピュートノードとゲートウェイとなるルーターが
接続されているネットワークがフラットであれば、network_type=flat で
あれば接続できるはずです。

物理接続を確認する必要がありそうです。
コンピュートノードの integration bridge (br-int) は
ここで「外部ネットワーク」に接続されていますでしょうか。
書籍の構成だと、br-int は内部ネットワークにだけつながっていて、
外部ネットワークには br-ex だけがつながっていたと思います。
何らかの変更をされていると思いますが、詳細を共有されると、
他の方もアドバイスしたいと思います。

それでは。

2015年6月17日 0:14 <fulltask...@yahoo.co.jp>:

--
このメールは Google グループのグループ「日本OpenStackユーザ会」の登録者に送られています。
このグループから退会し、グループからのメールの配信を停止するには openstack-ja...@googlegroups.com にメールを送信してください。
その他のオプションについては、https://groups.google.com/d/optout にアクセスしてください。

Tomoaki Nakajima

unread,
Jun 16, 2015, 9:04:17 PM6/16/15
to openst...@googlegroups.com
このパターンのネットワークの1例として、外部のスイッチでVLANを使う方法があります。

 1. スイッチで特定のVLAN IDを外部のルーターと通信可能な状態にしておく
 2. NeutronでそのVLAN IDを指定して仮想ネットワークを作成
  (アドレスプールから外部ルータのGW IPは除外しておく)
 3. このネットワークに仮想マシンを作成

以上。

このメールは Google グループのグループ「日本OpenStackユーザ会」に登録しているユーザーに送られています。

Shuichiro MAKIGAKI

unread,
Jun 16, 2015, 10:38:46 PM6/16/15
to openst...@googlegroups.com
`ovs-vsctl show`を貼ってもらえると、他の方に便利かと思います。
rootを持っているサーバーならtcpdumpを見るという手もあります。

Regards,
Makkie

On 2015/06/17 10:04, Tomoaki Nakajima wrote:
> このパターンのネットワークの1例として、外部のスイッチでVLANを使う方法が
> あります。
>
>  1. スイッチで特定のVLAN IDを外部のルーターと通信可能な状態にしておく
>  2. NeutronでそのVLAN IDを指定して仮想ネットワークを作成
>   (アドレスプールから外部ルータのGW IPは除外しておく)
>  3. このネットワークに仮想マシンを作成
>
> 以上。
>
> On Wednesday, June 17, 2015, Akihiro Motoki <amo...@gmail.com
> <mailto:amo...@gmail.com>> wrote:
>
> ご質問の構成は問題なく構成できるはずです。
>
> この構成を取る場合、router:external True のネットワークを作成する必要は
> 特にありません。コンピュートノードとゲートウェイとなるルーターが
> 接続されているネットワークがフラットであれば、network_type=flat で
> あれば接続できるはずです。
>
> 物理接続を確認する必要がありそうです。
> コンピュートノードの integration bridge (br-int) は
> ここで「外部ネットワーク」に接続されていますでしょうか。
> 書籍の構成だと、br-int は内部ネットワークにだけつながっていて、
> 外部ネットワークには br-ex だけがつながっていたと思います。
> 何らかの変更をされていると思いますが、詳細を共有されると、
> 他の方もアドバイスしたいと思います。
>
> それでは。
>
> 2015年6月17日 0:14 <fulltask...@yahoo.co.jp
> <javascript:_e(%7B%7D,'cvml','fulltask...@yahoo.co.jp');>>:
> <javascript:_e(%7B%7D,'cvml','openstack-ja%2Bunsu...@googlegroups.com');>
> にメールを送信してください。
> その他のオプションについては、https://groups.google.com/d/optout
> にアクセスしてください。
>
>
> --
> このメールは Google グループのグループ「日本OpenStackユーザ会」に登
> 録しているユーザーに送られています。
> このグループから退会し、グループからのメールの配信を停止するには
> openstack-ja...@googlegroups.com
> <javascript:_e(%7B%7D,'cvml','openstack-ja%2Bunsu...@googlegroups.com');>
> にメールを送信してください。
> その他のオプションについては https://groups.google.com/d/optout にア
> クセスしてください。
>
> --
> このメールは Google グループのグループ「日本OpenStackユーザ会」に登録し
> ているユーザーに送られています。
> このグループから退会し、グループからのメールの配信を停止するには
> openstack-ja...@googlegroups.com
> <mailto:openstack-ja...@googlegroups.com> にメールを送信してく
> ださい。
> その他のオプションについては https://groups.google.com/d/optout にアクセ
> スしてください。

fulltask...@yahoo.co.jp

unread,
Jun 20, 2015, 12:09:28 PM6/20/15
to openst...@googlegroups.com
皆さまアドバイスありがとうございます。

結果として、以下の手順で目的を達成できました。

1. 管理用のセグメント (書籍でいう 192.168.200.0/24) とは別のネットワーク
  セグメントを用意する
2. 各コンピュートノード(書籍でいう rdo02, rdo03) に NIC を追加する
3. 書籍でいう
   rdo01 の eth1
   rdo02, rdo03 の eth2  を、新たに用意したセグメントに接続する
4. それぞれのノードで、ovs-vsctl add-port で上記 NIC と br-ex を接続する
5. neutron net-create, subnet-create し、そのセグメントのアドレスをインス
  タンスに付ける


VLAN による接続も試してみます。

Reply all
Reply to author
Forward
0 new messages