CloudStack/概要
このページでは,CloudStackがどのようにネットワークの設定を行っているかを説明します.
Port Forwarding †
CloudStackでは,Pod毎に仮想ルータが作成されます.
仮想マシンがインターネット上のホストと通信を行う際には,必ずこの仮想ルータを経由します.
つまり,CloudStackで管理されている仮想マシンは,常にNAT下にいることになります.
仮想マシンがインターネット上でサービスを提供するためには,仮想ルータのPort Forwarding機能を用いてグローバルIPアドレスでアクセス出来るようにする必要があります.
CloudStack上で仮想ルータは,Fedora12で動作しています.
通常,LinuxでPort Forwardingを行うには,iptablesを使用します.
CloudStackは,ブラウザ上から仮想ルータとして動作しているFedora12に対してiptablesの制御を行うことで直接仮想ルータを操作することなくインターネット上から仮想マシンへのアクセスを実現しています.
仮想ルータ内でどのような設定が行われているかは,仮想ルータにログインすると確認できます.
Port Forwardingを行うために仮想ルータが持っているIPアドレスの確認
# ip addr show
Port Forwadingを行っている設定の確認
# iptables -t nat -L
LoadBalancer? †
LoadBalancer?は,言葉の通り負荷分散を行いサービスの冗長性を向上させる技術です.
CloudStackでは,Port Forwarding以外にこのLoadBalancer?を用いてインターネット上にサービスを提供することが出来ます.
LoadBalancer?の実装は,haproxyを用いて実現されています.
haproxyは仮想ルータで動作しており,グローバルIPは仮想ルータが持ちます.
LoadBalancer?の設定も仮想ルータにログインすることで確認できます.
設定ファイルは/etc/haproxy/haproxy.cfgに記述されています.