次の方法で共有


チュートリアル: ルート テーブルを使用してネットワーク トラフィックをルーティングする

Azure では、既定で仮想ネットワーク内のすべてのサブネット間でトラフィックがルーティングされます。 Azure の既定のルーティングは、独自のルートを作成してオーバーライドすることができます。 カスタム ルートは、たとえば、サブネット間でネットワーク仮想アプライアンス (NVA) を越えてトラフィックをルーティングしたい場合に便利です。

チュートリアルで作成される Azure リソースのダイアグラム。

このチュートリアルでは、以下の内容を学習します。

  • 仮想ネットワークとサブネットの作成
  • トラフィックをルーティングする NVA を作成する
  • 仮想マシン (VM) を異なるサブネットにデプロイする
  • ルート テーブルの作成
  • ルートの作成
  • サブネットへのルート テーブルの関連付け
  • NVA を介して、あるサブネットから別のサブネットにトラフィックをルーティングする

前提条件

サブネットを作成する

このチュートリアルでは、DMZプライベート サブネットが必要です。 DMZ サブネットは NVA をデプロイする場所であり、プライベート サブネットはトラフィックをルーティングするプライベート仮想マシンをデプロイする場所です。 この図では、 subnet-1パブリック 仮想マシンに使用されるパブリック サブネットです。

リソース グループを作成する

  1. Azure portal にサインインします。

  2. ポータル上部の [検索] ボックスに「リソース グループ」と入力します。 検索結果から [リソース グループ] を選択します。

  3. [+ 作成] を選択します。

  4. [リソース グループの作成] の [基本] タブで、次の情報を入力または選択します。

    設定
    サブスクリプション サブスクリプションを選択します。
    リソースグループ test-rg」と入力します。
    リージョン [米国東部 2] を選択します。
  5. [Review + create]\(レビュー + 作成\) を選択します。

  6. [作成]を選択します

仮想ネットワークの作成

  1. ポータルの上部にある検索ボックスに、「仮想ネットワーク」と入力します。 検索結果で、[仮想ネットワーク] を選択します。

  2. [+ 作成] を選択します。

  3. [仮想ネットワークの作成][基本] タブで、次の情報を入力するか選択します。

    設定
    プロジェクトの詳細
    サブスクリプション サブスクリプションを選択します。
    リソースグループ test-rg を選択します。
    インスタンスの詳細
    名前 vnet-1」と入力します。
    リージョン [米国東部 2] を選択します。
  4. [次へ] を選択して、[セキュリティ] タブに進みます。

  5. [次へ] を選択して、[IP アドレス] タブに進みます。

  6. [サブネット] のアドレス空間ボックスで、既定のサブネットを選択します。

  7. [サブネットの編集] で次の情報を入力または選択します。

    設定
    サブネットの詳細
    サブネット テンプレート 既定値の [既定] のままにします。
    名前 subnet-1」と入力します。
    開始アドレス 既定値の 10.0.0.0 のままにします。
    サブネットのサイズ 既定値の [/24 (256 アドレス)] のままにします。
  8. [保存] を選択します。

  9. [+ サブネットの追加] を選択します。

  10. [サブネットの追加] で、次の情報を入力または選択します:

    設定
    サブネットの詳細
    サブネット テンプレート 既定値の [既定] のままにします。
    名前 subnet-private」と入力します。
    開始アドレス 10.0.2.0」と入力します
    サブネットのサイズ 既定値の [/24 (256 アドレス)] のままにします。
  11. [追加]を選択します。

  12. [+ サブネットの追加] を選択します。

  13. [サブネットの追加] で、次の情報を入力または選択します:

    設定
    サブネットの詳細
    サブネット テンプレート 既定値の [既定] のままにします。
    名前 subnet-dmz」と入力します。
    開始アドレス 10.0.3.0」と入力します。
    サブネットのサイズ 既定値の [/24 (256 アドレス)] のままにします。
  14. [追加]を選択します。

  15. 画面の下部にある [確認と作成] を選択し、検証に合格したら [作成] を選択します。

Azure Bastion をデプロイする

Azure Bastion では、プライベート IP アドレスを使用して Secure Shell (SSH) またはリモート デスクトップ プロトコル (RDP) を介して、仮想ネットワーク内の VM にブラウザーで接続します。 VM には、パブリック IP アドレス、クライアント ソフトウェア、または特別な構成は必要ありません。 Azure Bastion の詳細については、Azure Bastion に関するページをご覧ください。

時間単位の料金は、送信データの使用量に関係なく、Bastion がデプロイされた時点から発生します。 詳しくは、「価格」および「SKU」を参照してください。 チュートリアルまたはテストの一環として Bastion をデプロイしている場合は、使用終了後にこのリソースを削除することをお勧めします。

  1. ポータルの上部にある検索ボックスに、「Bastion」と入力します。 検索結果で [Bastions ] を選択します。

  2. [+ 作成] を選択します。

  3. [要塞の作成] の [基本] タブで、次の情報を入力または選択します。

    設定
    プロジェクトの詳細
    サブスクリプション サブスクリプションを選択します。
    リソースグループ test-rg を選択します。
    インスタンスの詳細
    名前 bastion」と入力します。
    リージョン [米国東部 2] を選択します。
    レベル [ 開発者] を選択します。
    仮想ネットワークを構成する
    仮想ネットワーク vnet-1 を選択します。
    サブネット AzureBastionSubnet は、アドレス空間 /26 以上で自動的に作成されます。
  4. [Review + create]\(レビュー + 作成\) を選択します。

  5. [作成]を選択します

NVA 仮想マシンを作成する

ネットワーク仮想アプライアンス (NVA) は、ルーティングやファイアウォールの最適化などのネットワーク機能に役立つ仮想マシンです。 このセクションでは、Ubuntu 24.04 仮想マシンを使用して NVA を作成します。

  1. ポータルの上部にある検索ボックスに、「仮想マシン」と入力します。 検索結果から [仮想マシン] を選択します。

  2. [+ 作成] を選択し、[Azure 仮想マシン] を選択します。

  3. [仮想マシンの作成][基本] タブで、次の情報を入力または選択します。

    設定
    プロジェクトの詳細
    サブスクリプション サブスクリプションを選択します。
    リソースグループ test-rg を選択します。
    インスタンスの詳細
    仮想マシン名 vm-nva」と入力します。
    リージョン [(米国) 米国東部 2] を選択します。
    可用性のオプション [インフラストラクチャ冗長は必要ありません] を選択します。
    セキュリティの種類 [Standard] を選択します。
    Image [Ubuntu Server 24.04 LTS - x64 Gen2] を選びます。
    VM アーキテクチャ 既定値の [x64] のままにします。
    サイズ サイズを選択します。
    管理者アカウント
    認証の種類 [SSH 公開キー] を選択します。
    ユーザー名 ユーザー名を入力します。
    SSH 公開キーのソース [新しいキーの組を生成] を選択します。
    キーの組の名前 「vm-nva-key」と入力します。
    受信ポートの規則
    パブリック受信ポート [なし] を選択します。
  4. [次へ: ディスク][次へ: ネットワーク] の順に選択します。

  5. [ネットワーク] タブで、次の情報を入力または選択します。

    設定
    ネットワーク インターフェイス
    仮想ネットワーク vnet-1 を選択します。
    サブネット [subnet-dmz (10.0.3.0/24)] を選択します。
    パブリック IP [なし] を選択します。
    NIC ネットワーク セキュリティ グループ [Advanced] \(詳細設定) を選択します。
    ネットワーク セキュリティ グループを構成する [新規作成] を選択します。
    [名前] に「nsg-nva」と入力します。
    [OK] を選択します。
  6. 残りのオプションは既定値のままにし、[確認と作成] を選択します。

  7. [作成]を選択します

パブリックおよびプライベートの仮想マシンを作成する

vnet-1 仮想ネットワーク内に 2 つの仮想マシンを作成します。 1 つの仮想マシンが サブネット 1 サブネット内にあり、もう 1 つの仮想マシンが サブネットプライベート サブネット内にあります。 両方の仮想マシンに同じ仮想マシン イメージを使用します。

パブリック仮想マシンを作成する

パブリック仮想マシンは、パブリック インターネット内のマシンをシミュレートするために使用されます。 パブリック仮想マシンとプライベート仮想マシンは、NVA 仮想マシンを介したネットワーク トラフィックのルーティングをテストするために使用されます。

  1. ポータルの上部にある検索ボックスに、「仮想マシン」と入力します。 検索結果から [仮想マシン] を選択します。

  2. [+ 作成] を選択し、[Azure 仮想マシン] を選択します。

  3. [仮想マシンの作成][基本] タブで、次の情報を入力または選択します。

    設定
    プロジェクトの詳細
    サブスクリプション サブスクリプションを選択します。
    リソースグループ test-rg を選択します。
    インスタンスの詳細
    仮想マシン名 vm-public」と入力します。
    リージョン [(米国) 米国東部 2] を選択します。
    可用性のオプション [インフラストラクチャ冗長は必要ありません] を選択します。
    セキュリティの種類 [Standard] を選択します。
    Image [Ubuntu Server 24.04 LTS - x64 Gen2] を選びます。
    VM アーキテクチャ 既定値の [x64] のままにします。
    サイズ サイズを選択します。
    管理者アカウント
    認証の種類 [SSH 公開キー] を選択します。
    ユーザー名 ユーザー名を入力します。
    SSH 公開キーのソース [新しいキーの組を生成] を選択します。
    キーの組の名前 「vm-public-key」と入力します。
    受信ポートの規則
    パブリック受信ポート [なし] を選択します。
  4. [次へ: ディスク][次へ: ネットワーク] の順に選択します。

  5. [ネットワーク] タブで、次の情報を入力または選択します。

    設定
    ネットワーク インターフェイス
    仮想ネットワーク vnet-1 を選択します。
    サブネット [subnet-1 (10.0.0.0/24)] を選択します。
    パブリック IP [なし] を選択します。
    NIC ネットワーク セキュリティ グループ [なし] を選択します。
  6. 残りのオプションは既定値のままにし、[確認と作成] を選択します。

  7. [作成]を選択します

プライベート仮想マシンを作成する

  1. ポータルの上部にある検索ボックスに、「仮想マシン」と入力します。 検索結果から [仮想マシン] を選択します。

  2. [+ 作成] を選択し、[Azure 仮想マシン] を選択します。

  3. [仮想マシンの作成][基本] タブで、次の情報を入力または選択します。

    設定
    プロジェクトの詳細
    サブスクリプション サブスクリプションを選択します。
    リソースグループ test-rg を選択します。
    インスタンスの詳細
    仮想マシン名 vm-private」と入力します。
    リージョン [(米国) 米国東部 2] を選択します。
    可用性のオプション [インフラストラクチャ冗長は必要ありません] を選択します。
    セキュリティの種類 [Standard] を選択します。
    Image [Ubuntu Server 24.04 LTS - x64 Gen2] を選びます。
    VM アーキテクチャ 既定値の [x64] のままにします。
    サイズ サイズを選択します。
    管理者アカウント
    認証の種類 [SSH 公開キー] を選択します。
    ユーザー名 ユーザー名を入力します。
    SSH 公開キーのソース [新しいキーの組を生成] を選択します。
    キーの組の名前 「vm-private-key」と入力します。
    受信ポートの規則
    パブリック受信ポート [なし] を選択します。
  4. [次へ: ディスク][次へ: ネットワーク] の順に選択します。

  5. [ネットワーク] タブで、次の情報を入力または選択します。

    設定
    ネットワーク インターフェイス
    仮想ネットワーク vnet-1 を選択します。
    サブネット [subnet-private (10.2.0.0/24)] を選択します。
    パブリック IP [なし] を選択します。
    NIC ネットワーク セキュリティ グループ [なし] を選択します。
  6. 残りのオプションは既定値のままにし、[確認と作成] を選択します。

  7. [作成]を選択します

IP 転送を有効にする

NVA を介してトラフィックをルーティングするために、Azure と vm-nva のオペレーティング システムで IP 転送を有効にします。 IP 転送が有効になっている場合、 vm-nva が受信した別の IP アドレス宛てのトラフィックは削除されず、正しい宛先に転送されます。

Azure で IP 転送を有効にする

このセクションでは、vm-nva 仮想マシンのネットワーク インターフェイスの IP 転送を有効にします。

  1. ポータルの上部にある検索ボックスに、「仮想マシン」と入力します。 検索結果から [仮想マシン] を選択します。

  2. [仮想マシン] で、[vm-nva] を選択します。

  3. vm-nva で、[ネットワーク] を展開し、[ネットワーク設定] を選択します。

  4. [ネットワーク インターフェイス:] の横にあるインターフェイスの名前を選びます。 名前は vm-nva で始まり、インターフェイスにランダムな数値が割り当てられます。 この例のインターフェイスの名前は vm-nva313 です。

    NVA 仮想マシンのネットワーク インターフェイスのスクリーンショット。

  5. ネットワーク インターフェイスの概要ページの [設定] セクションで、[IP 構成] を選択します。

  6. [IP 構成] で、[IP 転送を有効にする] の横にあるボックスを選択します。

    IP 転送の有効化のスクリーンショット。

  7. [ 適用] を選択します。

オペレーティング システムで IP 転送を有効にする

このセクションでは、ネットワーク トラフィックを転送するために、vm-nva 仮想マシンのオペレーティング システムで IP 転送を有効にします。 コマンドの実行機能を使用して、仮想マシンでスクリプトを実行します。

  1. ポータルの上部にある検索ボックスに、「仮想マシン」と入力します。 検索結果から [仮想マシン] を選択します。

  2. [仮想マシン] で、[vm-nva] を選択します。

  3. [操作] を展開し、[コマンドの実行] を選択します。

  4. [ RunShellScript] を選択します。

  5. [コマンド スクリプトの実行] ウィンドウに次の スクリプトを 入力します。

    sudo sed -i 's/#net.ipv4.ip_forward=1/net.ipv4.ip_forward=1/' /etc/sysctl.conf
    sudo sysctl -p
    
  6. [実行] を選択します。

  7. スクリプトが完了するのを待ちます。 出力には、IP 転送設定が有効になっていることを示します。

  8. vm-nva[概要] ページに戻り、[再起動] を選択して仮想マシンを再起動します。

ルート テーブルの作成

このセクションでは、NVA 仮想マシンを経由するトラフィックのルートを定義するルート テーブルを作成します。 ルート テーブルは、vm-public 仮想マシンがデプロイされている subnet-1 サブネットに関連付けられます。

  1. ポータルの上部にある検索ボックスに、「ルート テーブル」と入力します。 検索結果で [ルート テーブル] を選択します。

  2. [+ 作成] を選択します。

  3. [ルート テーブルの作成] で、次の情報を入力または選択します。

    設定
    プロジェクトの詳細
    サブスクリプション サブスクリプションを選択します。
    リソースグループ test-rg を選択します。
    インスタンスの詳細
    リージョン [米国東部 2] を選択します。
    名前 route-table-public」と入力します。
    ゲートウェイのルートを伝達する 既定値の [はい] のままにします。
  4. [Review + create]\(レビュー + 作成\) を選択します。

  5. [作成]を選択します

ルートの作成

このセクションでは、前の手順で作成したルート テーブルにルートを作成します。

  1. ポータルの上部にある検索ボックスに、「ルート テーブル」と入力します。 検索結果で [ルート テーブル] を選択します。

  2. [route-table-public] を選択します。

  3. [設定] を展開し、[ルート] を選択します。

  4. [ルート][+ 追加] を選択します。

  5. [ルートの追加] で、次の情報を入力または選択します。

    設定
    ルート名 to-private-subnet」と入力します。
    変換先の型 [IP アドレス] を選択します。
    宛先 IP アドレス/CIDR 範囲 10.0.2.0/24」と入力します。
    ネクストホップの種類 [仮想アプライアンス] を選択します。
    次ホップ アドレス 10.0.3.4」と入力します。
    これは、前の手順で作成した vm-nva の IP アドレスです。
  6. [追加]を選択します。

  7. [設定][サブネット] を選択します。

  8. [+ 関連付け] を選択します。

  9. [サブネットの関連付け] で、次の情報を入力または選択します。

    設定
    仮想ネットワーク vnet-1 (test-rg) を選択します。
    サブネット subnet-1 を選択します。
  10. [OK]を選択します。

ネットワーク トラフィックのルーティングをテストする

vm-public から vm-private へのネットワーク トラフィックのルーティングをテストします。 vm-private から vm-public へのネットワーク トラフィックのルーティングをテストします。

vm-public から vm-private へのネットワーク トラフィックをテストする

  1. ポータルの上部にある検索ボックスに、「仮想マシン」と入力します。 検索結果から [仮想マシン] を選択します。

  2. [仮想マシン] で、[vm-public] を選択します。

  3. [接続] を選択し、[概要] セクションで [Connect via Bastion] (Bastion 経由で接続) を選択します。

  4. Bastion 接続ページで、次の情報を入力または選択します。

    設定
    認証の種類 ローカル ファイルから SSH 秘密キーを選択します
    ユーザー名 作成したユーザー名を入力します。
    ローカル ファイル ダウンロードした vm-public-key 秘密キー ファイルを選択します。
  5. [接続]を選択します。

  6. プロンプトで、次のコマンドを入力して、vm-public から vm-private へのネットワーク トラフィックのルーティングをトレースします。

    tracepath vm-private
    

    応答は次の例のようになります。

    azureuser@vm-public:~$ tracepath vm-private
     1?: [LOCALHOST]                      pmtu 1500
     1:  vm-nva.internal.cloudapp.net                          1.766ms 
     1:  vm-nva.internal.cloudapp.net                          1.259ms 
     2:  vm-private.internal.cloudapp.net                      2.202ms reached
     Resume: pmtu 1500 hops 2 back 1 
    

    この応答には、tracepath から vm-private への ICMP トラフィック 2 つのホップがあることがわかります。 最初のホップは vm-nva です。 2 番目のホップは、宛先の vm-private です。

    Azure は、subnet-1 からのトラフィックを NVA 経由で送信しており、subnet-private に直接送信してはいません。これは、先ほど to-private-subnet ルートを route-table-public に追加し、それを subnet-1 に関連付けたためです。

  7. Bastion セッションを閉じます。

vm-private から vm-public へのネットワーク トラフィックをテストする

  1. ポータルの上部にある検索ボックスに、「仮想マシン」と入力します。 検索結果から [仮想マシン] を選択します。

  2. [仮想マシン] で、[vm-private] を選択します。

  3. [接続] を選択し、[概要] セクションで [Connect via Bastion] (Bastion 経由で接続) を選択します。

  4. Bastion 接続ページで、次の情報を入力または選択します。

    設定
    認証の種類 ローカル ファイルから SSH 秘密キーを選択します
    ユーザー名 作成したユーザー名を入力します。
    ローカル ファイル ダウンロードした vm-private-key 秘密キー ファイルを選択します。
  5. [接続]を選択します。

  6. プロンプトで、次のコマンドを入力して、vm-private から vm-public へのネットワーク トラフィックのルーティングをトレースします。

    tracepath vm-public
    

    応答は次の例のようになります。

    azureuser@vm-private:~$ tracepath vm-public
     1?: [LOCALHOST]                      pmtu 1500
     1:  vm-public.internal.cloudapp.net                       2.584ms reached
     1:  vm-public.internal.cloudapp.net                       2.147ms reached
     Resume: pmtu 1500 hops 1 back 2 
    

    この応答には、宛先 vm-public である 1 つのホップがあることがわかります。

    Azure は、subnet-private から subnet-1 にトラフィックを直接送信しました。 既定では、サブネット間でトラフィックが直接ルーティングされます。

  7. Bastion セッションを閉じます。

作成したリソースの使用が終了したら、リソース グループとそのすべてのリソースを削除して構いません。

  1. Azure portal で、「リソース グループ」を検索して選択します。

  2. [リソース グループ] ページで、test-rg リソース グループを選択します。

  3. [test-rg] ページで、[リソース グループの削除] を選択します。

  4. [削除を確認するために、リソース グループ名を入力してください] に「test-rg」と入力し、[削除] を選びます。

次のステップ

このチュートリアルでは、次のことを行いました。

  • ルート テーブルを作成し、それをサブネットに関連付けました。

  • トラフィックをパブリック サブネットからプライベート サブネットにルーティングする単純な NVA を作成しました。

Azure Marketplace から、便利なネットワーク機能を多く備えた別の構成済み NVA をデプロイすることができます。

ルーティングの詳細については、ルーティングの概要ルート テーブルの管理に関する記事をご覧ください。 ルーティングは、 Azure Virtual Network Manager のユーザー定義ルート (UDR) 管理機能 を使用して自動的に構成することもできます。

仮想ネットワーク サービス エンドポイントを使用して PaaS リソースへのネットワーク アクセスを制限する方法を学習するために、次のチュートリアルに進んでください。