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

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

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

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

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

前提条件

Azure へのサインイン

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

仮想ネットワークと bastion ホストの作成

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

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

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

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

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

    Azure portal の [仮想ネットワークの作成] の [基本] タブのスクリーンショット

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

  5. [セキュリティ] タブの [Azure Bastion] セクションで [Bastion を有効にする] を選択します。

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

    Note

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

  6. [Azure Bastion] で、次の情報を入力または選択します。

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

    Azure portal の [仮想ネットワークの作成] の bastion ホストの有効化のスクリーンショット。

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

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

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

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

    既定のサブネットの名前変更と構成のスクリーンショット。

  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」と入力します。

    仮想ネットワークでのプライベート サブネットの作成のスクリーンショット。

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

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

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

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

    仮想ネットワークでの DMZ サブネットの作成のスクリーンショット。

  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 です。

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

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

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

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

  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 アドレスです

    ルート テーブルでのルートの作成のスクリーンショット。

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