送信元ネットワーク アドレス変換(SNAT)
概要
送信元ネットワーク アドレス変換 (source-nat または SNAT) を使用すると、プライベート ネットワークからのトラフィックをインターネットに送信できます。プライベート ネットワークで起動された仮想マシンは、SNAT を実行できるゲートウェイを経由することでインターネットにアクセスできます。ゲートウェイはパブリック ネットワーク上に 1 つのアームを持ち、SNAT の一部として、発信元パケットの送信元 IP を独自のパブリック側 IP に置き換えます。SNAT の一部として、ソース ポートも更新され、複数の VM が 1 つのゲートウェイ パブリック IP を介してパブリック ネットワークに到達できるようになります。
次の図は、プライベート サブネットが 10.1.1.0/24 の仮想ネットワークを示しています。仮想ネットワークの既定のルートは、SNAT ゲートウェイを指します。ゲートウェイは、10.1.1.0/24 の source-ip を置き換え、発信パケットにパブリック アドレス 172.21.1.1 を使用します。一意のNATセッションを維持するには、トラフィックの送信元ポートも置き換える必要があります。

データ センター ゲートウェイとして機能する MX シリーズ ルーターでの SNAT
Contrail Networking リリース 2011.L1 以降、MX シリーズ ルーターがファブリックの役割で機能している場合、MS-MPC ライン カードを使用して MX シリーズ ルーターで DC-Gateway SNAT を有効にできるようになりました。または またはその他のファブリックの役割をサポートする DC-Gateway MX シリーズ ルーターの一覧については、 Contrail Networkingでサポートされているハードウェア プラットフォームと関連する役割とノード プロファイルを参照してください。
SNAT が MX シリーズ ルーターで有効になっている場合、SNAT を使用して、ベア メタル サーバー上の物理インターフェイスおよび仮想マシン上の仮想インターフェイスから送信元 IP アドレスを変換できます。SNAT は、ファブリックを離れる送信元トラフィックの IP アドレスのみを変換できます。ファブリックに入るトラフィックのIPアドレスの変換には使用できません。
MX シリーズ ルーターの SNAT の詳細については、「 ネットワーク アドレス変換の概要」を参照してください。
Contrail コマンドを使用して MX シリーズ ルーターで SNAT を有効にする方法
Contrail コマンドから MX シリーズ ルーターで SNAT を有効にするには:
ルーター向け中性子API
OpenStack は、ルーター向けの Neutron API を通じて SNAT ゲートウェイの実装をサポートしています。SNAT フラグは、ルーターの外部ゲートウェイで有効または無効にできます。デフォルトは True (有効) です。
タングステンファブリックプラグインは、ルーター用のNeutron APIをサポートし、APIサーバーに関連するサービステンプレートとサービスインスタンスオブジェクトを作成します。Tungsten Fabricのサービススケジューラは、ランダムに選択された仮想ルーター上でゲートウェイをインスタンス化します。Tungsten Fabricは、ネットワーク名前空間を使用してこの機能をサポートします。
設定例:Contrail 向け SNAT
SNAT 機能は、Neutron API 呼び出しを介してタングステンファブリックで有効になります。
次の構成例は、テスト ネットワークとパブリック ネットワークを作成して、テスト ネットワークが SNAT ゲートウェイ経由でパブリック ドメインに到達できるようにする方法を示しています。
ネットワーク名前空間
外部ゲートウェイを設定すると、タングステン ファブリックが SNAT の Linux ネットワーク名前空間を設定するきっかけになります。
ネットワーク名前空間は、次の Neutron コマンドを発行することでクリアできます。
neutron router-gateway-clear r1
SNAT グループとセキュリティ グループ
論理ルーターで SNAT のサポートが有効になっている場合、デフォルトのセキュリティグループが左側の SNAT インターフェイスに自動的に適用されます。既定のセキュリティ グループのこの自動適用により、相互接続された仮想マシンが既定のセキュリティ グループを使用する場合、仮想マシンは追加のユーザー構成なしでトラフィックを送受信できます。ただし、仮想マシンがデフォルトのセキュリティグループを使用していない仮想マシンに接続されている場合は、トラフィックを送受信するために追加の設定が必要です。
既定のセキュリティ グループを使用していない仮想マシンに仮想マシンを接続する場合は、次のいずれかの構成を更新して、仮想マシンがトラフィックを通過できるようにする必要があります。
デフォルトのセキュリティグループを更新して、VM トラフィックを許可するルールを追加します。
VM セキュリティ グループのルールを更新して、既定のセキュリティ グループからのトラフィックを許可します。
VM と SNAT 左側のインターフェイスに同じセキュリティ グループを適用します。
Contrail Networkingを使用する環境でのセキュリティグループの設定については、仮想マシン インスタンスでのセキュリティグループの使用を参照してください。
Web UI を使用した SNAT によるルーターの構成
Contrail ユーザー インターフェイスを使用して、ルーターを SNAT 用に構成し、ルーターの SNAT ステータスを確認できます。
ルーターの SNAT を有効にするには、「> ネットワーク > ルーターを構成する」を参照してください。ルーターの一覧で、SNAT を有効にするルーターを選択します。[編集] 歯車をクリックして、[ ルーターの編集] ウィンドウを表示します。SNAT のチェックボックスをオンにして、ルーターで SNAT を有効にします。
次に、SNAT が有効になっているルーターを示します。

ルーターで SNAT が有効になっている 場合は、[ > ネットワーク > ルーターの構成] を選択して構成を確認できます。ルーターの一覧で、[目的のルーターを開く] をクリックします。そのルーターの機能の一覧に、SNAT の状態が一覧表示されます。以下は、一覧で開かれているルーターを示しています。ルーターの状態に、SNAT が有効 であることが示されます。

次のように、インスタンスコンソールを表示することで、SNAT を使用してルーターのリアルタイムステータスを表示できます。

Web UI を使用した分散型 SNAT の構成
分散型 SNAT 機能を使用すると、仮想マシンは、コンピューティング ノード接続用の既存の転送インフラストラクチャを使用して IP ファブリック ネットワークと通信できます。この機能は、コンピューティング ノードの IP アドレスをパブリック アドレスとして使用する仮想マシン トラフィックのポート アドレス変換によって実現されます。
次の分散 SNAT ユース ケースがサポートされています。
分散型 SNAT が有効になっている仮想ネットワークは、IP ファブリック ネットワークと通信できます。セッションは仮想マシンから開始する必要があります。外部ネットワークから開始されたセッションはサポートされていません。
分散型 SNAT は TCP と UDP でのみサポートされており、両方のプロトコルに対して個別のポート範囲を構成できます。
ポートのプールは、分散 SNAT に使用されます。ポートのプールを作成するには、 グローバル構成>>インフラストラクチャの構成に移動します。以下に、ポートアドレス変換に使用するポート範囲の例を示します。

分散型 SNAT を使用するには、仮想ネットワークで SNAT を有効にする必要があります。仮想ネットワークで SNAT を有効にするには、「 > ネットワーク>ネットワークを構成する」を参照してください。[詳細オプション] で SNAT が有効になっている仮想ネットワークを次に示します。
