Mirantis OpenStackでインスタンスから外部へ通信する方法

Virtualboxをうまく使って、簡単にOpenStackを構築できるMirantis OpenStackですが、構築はできても通信となるとなかなか癖がある。
ここ一ヶ月ほど、こいつをとにかくいじくりまわしていて、あれこれ悩んでいたのが今日やっとわかった。
一番悩んでいたのが、OpenStackのインスタンスが外部へ通信できない件。あれこれ悩んではっとひらめいたのが、多段NATになっていること。

トポロジを簡単に書くと、

[Internet] — [実機] –NAT– [VirtualBox] –NAT– [OpenStack Instance]

となっていて、VirtualBoxを挟んで多段NATになっている。実機とインスタンスの間ではうまく通信はできるけど、そこから外へ出て行けないのは、結局のところ多段NATをうまく解決していないから。
なので、実機にIPマスカレードを仕込んでやればうまくいくわけ。具体的には実機に、

$ sudo iptables -t nat -A POSTROUTING -s 172.16.0.0/24 -j MASQUERADE

を設定すればOK
IPアドレスはMirantis Fuelのデフォルト設定です。
散々悩んでやっとわかったことなので、同じように悩んでいる人がいればこれを見て解決できればいいニャー。
(こんなんすぐわかるべ! わからん方がどうかしてるぜ! というレベルなのかもしれないけどさー)

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です