(オリジナルGithub)
Simple GatewayはコンピュートノードのvRouterをゲートウェイとして利用し、コンピュートノードのルーティングテーブルを使用するため、コンピュートノードコマンドを実行する
まず、以下のディレクトリをexport
export PYTHONPATH=/usr/lib/python2.7/dist-packages/contrail_vrouter_api/gen_py/instance_service/
export PYTHONPATH=/usr/lib/python2.7/dist-packages/nova_contrail_vif/gen_py/instance_service/
次に、provision_vgw_interface.pyでゲートウェイを作成するpython /opt/contrail/utils/provision_vgw_interface.py --oper create --interface <ゲートウェイの名前> --subnets <仮想ネットワークのプレフィックス> --route <物理ネットワークのプレフィックス> --vrf <仮想ネットワーク名>
ここで指定する仮想ネットワークの情報はContrailで持っている仮想ネットワークの情報とあわせる。
例えば、Floating IPの仮想ネットワーク名を<public >とし、IPアドレスを<203.0.113.0/24>とする。インターネットへの接続なので、物理ネットワークのプレフィックスを<0.0.0.0/0>とすると、
python /opt/contrail/utils/provision_vgw_interface.py --oper create --interface vgw1 --subnets 203.0.113.0/24 --route 0.0.0.0/0 --vrf default-domain:public:public:public
となる。--vrfの項目を default-domain:domain名:仮想NW名:仮想NW名 と仮想NW名を重ねるのがミソ。
vRouterの情報を確認すると、prefix 0.0.0.0/0 Next hop type interface vgw1というのが追加されている。
この設定をすると、コンピュートノードはvhost経由で外部ネットワークと通信を行う。
インターネットのゲートウェイルータやゲートウェイサーバには仮想ネットワークに通信できるようにルーティングの追加を忘れないように。
以下はインターネットへ接続しているサーバのルーティングテーブル。(コンピュートノードのNextHopサーバ)
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
10.0.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
203.0.113.0 10.0.0.36 255.255.255.0 UG 0 0 0 eth1
172.27.112.0 0.0.0.0 255.255.252.0 U 0 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 1002 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 1003 0 0 eth1
0.0.0.0 172.27.112.1 0.0.0.0 UG 0 0 0 eth0
仮想ネットワークの203.0.113.0/24 Gateway 10.0.0.36(コンピュートノードのVhostのIPアドレス)が追加されているのが確認できる。バグ?
Simple Gatewayを使った場合、対象の仮想ネットワークをNeutron routerの外部ネットワークに指定した場合、SNATが正常に動作しない。
0 件のコメント:
コメントを投稿