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

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 リソースへのネットワーク アクセスを制限する方法を学習するために、次のチュートリアルに進んでください。