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

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

Diagram of Azure resources created in tutorial.

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

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

前提条件

Azure へのサインイン

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

仮想ネットワークと Azure Bastion ホストを作成する

次の手順では、リソース サブネット、Azure Bastion サブネット、Bastion ホストを含む仮想ネットワークを作成します。

  1. ポータルで、[仮想ネットワーク] を検索して選択します。

  2. [仮想ネットワーク] ページで、[+ 作成] を選択します。

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

    設定
    プロジェクトの詳細
    サブスクリプション サブスクリプションを選択します。
    Resource group [新規作成] を選択します。
    名前に「test-rg」と入力します。

    を選択します。
    インスタンスの詳細
    Name vnet-1」と入力します。
    リージョン [米国東部 2] を選択します。

    Screenshot of the Basics tab for creating a virtual network in the Azure portal.

  4. [次へ] を選択して、[セキュリティ] タブに進みます。

  5. [Azure Bastion] セクションで、[Bastion を有効にする] を選びます。

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

    Note

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

  6. [Azure Bastion] で、次の情報を入力するか選びます。

    設定
    Azure Bastion ホスト名 bastion」と入力します。
    Azure Bastion のパブリック IP アドレス [Create a public IP address] (パブリック IP アドレスを作成する) を選びます。
    [名前] に「public-ip-bastion」と入力します。

    を選択します。

    Screenshot of options for enabling an Azure Bastion host as part of creating a virtual network in the Azure portal.

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

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

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

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

    Screenshot of configuration details for a subnet.

  10. [保存] を選択します。

  11. ウィンドウの下部にある [確認および作成] を選びます。 検証に合格した場合は、[作成] を選択します。

サブネットを作成する

このチュートリアルでは、DMZプライベート サブネットが必要です。 DMZ サブネットは NVA をデプロイする場所であり、プライベート サブネットはトラフィックのルーティング先となる仮想マシンをデプロイする場所です。 subnet-1 は前の手順で作成したサブネットです。 パブリック仮想マシンには subnet-1 を使用します。

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

  2. [仮想ネットワーク] で、[vnet-1] を選択します。

  3. vnet-1 で、[設定] セクションから [サブネット] を選択します。

  4. 仮想ネットワークのサブネットの一覧で、[+ サブネット] を選択します。

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

    設定
    名前 subnet-private」と入力します。
    サブネットのアドレス範囲 10.0.2.0/24」と入力します。

    Screenshot of private subnet creation in virtual network.

  6. [保存] を選択します。

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

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

    設定
    名前 subnet-dmz」と入力します。
    サブネットのアドレス範囲 10.0.3.0/24」と入力します。

    Screenshot of DMZ subnet creation in virtual network.

  9. [保存] を選択します。

NVA 仮想マシンを作成する

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

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

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

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

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

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

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

    を選択します。
  6. 残りのオプションは既定値のままにし、[確認と作成] を選びます。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    設定
    ネットワーク インターフェイス
    仮想ネットワーク [vnet-1] を選択します。
    Subnet [subnet-private (10.0.2.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-nva124 です。

    Screenshot of network interface of NVA virtual machine.

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

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

    Screenshot of enablement of IP forwarding.

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

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

このセクションでは、ネットワーク トラフィックを転送するために、vm-nva 仮想マシンのオペレーティング システムで IP 転送を有効にします。 Azure Bastion サービスを使用して vm-nva 仮想マシンに接続します。

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

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

  3. [操作] セクションで [Bastion] を選択します。

  4. 仮想マシンの作成時に入力したユーザー名とパスワードを入力します。

  5. [接続] を選択します。

  6. 仮想マシンのプロンプトに次の情報を入力して、IP 転送を有効にします:

    sudo vim /etc/sysctl.conf
    
  7. Vim エディターで、net.ipv4.ip_forward=1 の行から # を削除します:

    Insert キーを押します。

    # Uncomment the next line to enable packet forwarding for IPv4
    net.ipv4.ip_forward=1
    

    Esc キーを押します。

    :wq」と入力して、Enter キーを押します。

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

  9. 仮想マシンを再起動します。

ルート テーブルの作成

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

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

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

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

    設定
    プロジェクトの詳細
    サブスクリプション サブスクリプションを選択します。
    Resource group 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 アドレスです

    Screenshot of route creation in route table.

  6. [追加] を選択します。

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

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

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

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

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

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

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

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

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

  3. [操作] セクションで [Bastion] を選択します。

  4. 仮想マシンの作成時に入力したユーザー名とパスワードを入力します。

  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 
    

    vm-public から vm-private への tracepath 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. [操作] セクションで [Bastion] を選択します。

  4. 仮想マシンの作成時に入力したユーザー名とパスワードを入力します。

  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 
    

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

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

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

リソースをクリーンアップする

作成したリソースの使用を終えたら、リソース グループとそのすべてのリソースを削除できます。

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

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

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

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

次のステップ

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

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

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

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

ルーティングの詳細については、ルーティングの概要ルート テーブルの管理に関する記事をご覧ください。

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