Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

送信元ネットワーク アドレス変換(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セッションを維持するには、トラフィックの送信元ポートも置き換える必要があります。

図 1: プライベートサブネット Virtual Network With a Private Subnetを持つ仮想ネットワーク

データ センター ゲートウェイとして機能する 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 を有効にするには:

  1. 1 枚以上の MS-MPC ライン カードを搭載した MX シリーズ ルーターを使用するファブリックが、ファブリック内のファブリック ロールに設定 DC-Gateway されていることを確認します。

    焦点:ファブリックをオンボードし、オーバーレイを作成してファブリックをセットアップする方法を参照してください。

    ファブリック内のデバイスのルーティング ロールを変更するには、「 デバイスへのロールの割り当て 」を参照してください。

  2. [>fabric-name> Fabrics をクリックしてInfrastructure、ファブリック内のデバイスに移動します。SNATを実行するファブリックでDCゲートウェイとして設定されたルーターの の上にマウスを置きmx-router-nameます。省略記号(...)ボタン(ルーターの右端にある最後のオプション)をクリックし、 を選択しますEdit

    ページが開きます Fabric Device

  3. Fabric Deviceページから、Netconf Settings.

    Junos Service Interfaceフィールドに、MXシリーズルーターのサービスインターフェイス名(例ms-1/0/0:)を追加します。

  4. (SNATのみを必要とするBMSインターフェイス)VLANをベアメタルサーバ(BMS)上の物理インターフェイスにマッピングする仮想ポートグループ(VPG)を作成します。仮想ポート グループの設定を参照してください。

    VPG は、SNAT を使用して IP アドレス変換を必要とするトラフィックを識別するために、プロセスの後半で使用されます。

    このステップは、BMS ホスト上のソース IP アドレスを識別する場合にのみ必要です。SNAT を使用して仮想マシン インターフェイスから送信元 IP アドレスを変換する場合は、この手順をスキップできます。

  5. SNAT 用のパブリック論理ルーターを作成します。 論理ルーターの作成を参照してください。

    論理ルーターは、[> Logical Routers >Edit Logical Router] メニューでOverlay設定します。このメニューから、以下の構成パラメーターを含めます。

    • connected networks フィールド: トラフィックを伝送するために作成された仮想ネットワークを追加します。

      これらの仮想ネットワークのトラフィックは、SNAT を使用して変換されます。

    • Public Logical Router チェックボックス:チェックボックスを選択します。

      ドロップダウンメニューが表示されます SNAT POOL 。を選択します snat_pool

    • Extend to Physical Router フィールド:送信元ベースの IP アドレス変換が実行されるファブリックに MX シリーズ ルーターを追加します。

  6. 設定完了後にSNATを監視するには、MXシリーズルーターにログオンし、次のJUNOSコマンドを入力します。
    • show configuration を使用して、JUNOS の NAT 設定を確認します。

    • show services nat pool をクリックして翻訳を検証します。

    • システム メッセージを監視します。

    Junos での NAT の使用と監視の詳細については、 ネットワーク アドレス変換ユーザー ガイドを参照してください。

ルーター向け中性子API

OpenStack は、ルーター向けの Neutron API を通じて SNAT ゲートウェイの実装をサポートしています。SNAT フラグは、ルーターの外部ゲートウェイで有効または無効にできます。デフォルトは True (有効) です。

タングステンファブリックプラグインは、ルーター用のNeutron APIをサポートし、APIサーバーに関連するサービステンプレートとサービスインスタンスオブジェクトを作成します。Tungsten Fabricのサービススケジューラは、ランダムに選択された仮想ルーター上でゲートウェイをインスタンス化します。Tungsten Fabricは、ネットワーク名前空間を使用してこの機能をサポートします。

設定例:Contrail 向け SNAT

SNAT 機能は、Neutron API 呼び出しを介してタングステンファブリックで有効になります。

次の構成例は、テスト ネットワークとパブリック ネットワークを作成して、テスト ネットワークが SNAT ゲートウェイ経由でパブリック ドメインに到達できるようにする方法を示しています。

  1. パブリックネットワークを作成し、ルーターの外部フラグを設定します。

    neutron net-create public

    neutron subnet-create public 172.21.1.0/24

    neutron net-update public -- --router:external=True

  2. テスト ネットワークを作成します。

    neutron net-create test

    neutron subnet-create --name test-subnet test 10.1.1.0/24

  3. テストで 1 つのインターフェイスを持つルーターを作成します。

    neutron router-create r1

    neutron router-interface-add r1 test-subnet

  4. ルーターの外部ゲートウェイを設定します。

    neutron router-gateway-set r1 public

ネットワーク名前空間

外部ゲートウェイを設定すると、タングステン ファブリックが 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 が有効になっているルーターを示します。

図 2: ルーター ウィンドウを編集して SNAT Edit Router Window to Enable SNAT を有効にする

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

図 3: SNAT Router Status for SNAT のルーターの状態

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

図 4: インスタンスの詳細ウィンドウ Instance Details Window

Web UI を使用した分散型 SNAT の構成

分散型 SNAT 機能を使用すると、仮想マシンは、コンピューティング ノード接続用の既存の転送インフラストラクチャを使用して IP ファブリック ネットワークと通信できます。この機能は、コンピューティング ノードの IP アドレスをパブリック アドレスとして使用する仮想マシン トラフィックのポート アドレス変換によって実現されます。

次の分散 SNAT ユース ケースがサポートされています。

  • 分散型 SNAT が有効になっている仮想ネットワークは、IP ファブリック ネットワークと通信できます。セッションは仮想マシンから開始する必要があります。外部ネットワークから開始されたセッションはサポートされていません。

分散型 SNAT は TCP と UDP でのみサポートされており、両方のプロトコルに対して個別のポート範囲を構成できます。

ポートのプールは、分散 SNAT に使用されます。ポートのプールを作成するには、 グローバル構成>>インフラストラクチャの構成に移動します。以下に、ポートアドレス変換に使用するポート範囲の例を示します。

図5:[転送オプションの編集]ウィンドウ Edit Forwarding Options Window

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

図 6: ウィンドウ Create Windowの作成