チュートリアル: ルート テーブルを使用してネットワーク トラフィックをルーティングする
既定では、仮想ネットワーク内のすべてのサブネット間でトラフィックがルーティングされます。 Azure の既定のルーティングは、独自のルートを作成してオーバーライドすることができます。 カスタム ルートは、たとえば、サブネット間でネットワーク仮想アプライアンス (NVA) を越えてトラフィックをルーティングしたい場合に便利です。
このチュートリアルでは、次の作業を行う方法について説明します。
- 仮想ネットワークとサブネットを作成する
- トラフィックをルーティングする NVA を作成する
- 仮想マシン (VM) を異なるサブネットにデプロイする
- ルート テーブルの作成
- ルートの作成
- サブネットへのルート テーブルの関連付け
- NVA を介して、あるサブネットから別のサブネットにトラフィックをルーティングする
前提条件
- アクティブなサブスクリプションが含まれる Azure アカウント。 無料でアカウントを作成できます。
サブネットを作成する
このチュートリアルでは、DMZ と プライベート サブネットが必要です。 DMZ サブネットは NVA をデプロイする場所であり、プライベート サブネットはトラフィックのルーティング先となる仮想マシンをデプロイする場所です。 subnet-1 は前の手順で作成したサブネットです。 パブリック仮想マシンには subnet-1 を使用します。
仮想ネットワークと Azure Bastion ホストを作成する
次の手順では、リソース サブネット、Azure Bastion サブネット、Bastion ホストを含む仮想ネットワークを作成します。
ポータルで、[仮想ネットワーク] を検索して選択します。
[仮想ネットワーク] ページで、[+ 作成] を選択します。
[仮想ネットワークの作成] の [基本] タブで、以下の情報を入力するか選択します。
設定 値 プロジェクトの詳細 サブスクリプション サブスクリプションを選択します。 Resource group [新規作成] を選択します。
名前に「test-rg」と入力します。
を選択します。インスタンスの詳細 Name 「vnet-1」と入力します。 リージョン [米国東部 2] を選択します。 [次へ] を選択して、[セキュリティ] タブに進みます。
[Azure Bastion] セクションで、[Azure Bastion の有効化] を選択します。
Bastion では、ユーザーのブラウザーとプライベート IP アドレスを使って、Secure Shell (SSH) またはリモート デスクトップ プロトコル (RDP) 経由で仮想ネットワーク内の VM に接続します。 VM には、パブリック IP アドレス、クライアント ソフトウェア、または特別な構成は必要ありません。 詳細については、Azure Bastion に関するページを参照してください。
[Azure Bastion] で、次の情報を入力するか選びます。
設定 値 Azure Bastion ホスト名 「bastion」と入力します。 Azure Bastion のパブリック IP アドレス [Create a public IP address] (パブリック IP アドレスを作成する) を選びます。
[名前] に「public-ip-bastion」と入力します。
を選択します。[次へ] を選択して、[IP アドレス] タブに進みます。
[サブネット] のアドレス空間ボックスで、既定のサブネットを選択します。
[サブネットの編集] で次の情報を入力または選択します。
設定 Value サブネットの目的 既定値の [既定値] のままにします。 名前 「subnet-1」と入力します。 IPv4 IPv4 アドレス範囲 既定値である 10.0.0.0/16 のままにします。 開始アドレス 既定値の 10.0.0.0 のままにします。 サイズ 既定値の [/24 (256 アドレス)] のままにします。 [保存] を選択します。
ウィンドウの下部にある [確認および作成] を選びます。 検証に合格した場合は、[作成] を選択します。
ポータルの上部にある検索ボックスに、「仮想ネットワーク」と入力します。 検索結果で、[仮想ネットワーク] を選択します。
[仮想ネットワーク] で、[vnet-1] を選択します。
vnet-1 で、[設定] セクションから [サブネット] を選択します。
仮想ネットワークのサブネットの一覧で、[+ サブネット] を選択します。
[サブネットの追加] で、次の情報を入力または選択します。
設定 Value サブネットの目的 既定値の [既定値] のままにします。 Name 「subnet-private」と入力します。 IPv4 IPv4 アドレス範囲 既定値である 10.0.0.0/16 のままにします。 開始アドレス 「10.0.2.0」と入力します サイズ 既定値の [/24 (256 アドレス)] のままにします。 [追加] を選択します。
[+ サブネット] を選択します。
[サブネットの追加] で、次の情報を入力または選択します。
設定 Value サブネットの目的 既定値の [既定値] のままにします。 Name 「subnet-dmz」と入力します。 IPv4 IPv4 アドレス範囲 既定値である 10.0.0.0/16 のままにします。 開始アドレス 「10.0.3.0」と入力します。 サイズ 既定値の [/24 (256 アドレス)] のままにします。 [追加] を選択します。
NVA 仮想マシンを作成する
ネットワーク仮想アプライアンス (NVA) は、ルーティングやファイアウォールの最適化などのネットワーク機能に役立つ仮想マシンです。 このセクションでは、Ubuntu 24.04 仮想マシンを使用して NVA を作成します。
ポータルの上部にある検索ボックスに、「仮想マシン」と入力します。 検索結果から [仮想マシン] を選択します。
[+ 作成] を選択し、[Azure 仮想マシン] を選択します。
[仮想マシンの作成] の [基本] タブで、次の情報を入力または選択します。
設定 値 プロジェクトの詳細 サブスクリプション サブスクリプションを選択します。 Resource group test-rg を選択します。 インスタンスの詳細 仮想マシン名 「vm-nva」と入力します。 リージョン [(米国) 米国東部 2] を選択します。 可用性のオプション [インフラストラクチャ冗長は必要ありません] を選択します。 セキュリティの種類 [Standard] を選択します。 Image [Ubuntu Server 24.04 LTS - x64 Gen2] を選びます。 VMアーキテクチャ 既定値の [x64] のままにします。 サイズ サイズを選択します。 管理者アカウント 認証の種類 [パスワード] を選択します。 ユーザー名 ユーザー名を入力します。 Password パスワードを入力します。 パスワードの確認 パスワードを再入力します。 受信ポートの規則 パブリック受信ポート [なし] を選択します。 [次へ: ディスク]、[次へ: ネットワーク] の順に選択します。
[ネットワーク] タブで、次の情報を入力または選択します。
設定 値 ネットワーク インターフェイス 仮想ネットワーク [vnet-1] を選択します。 Subnet [subnet-dmz (10.0.3.0/24)] を選択します。 パブリック IP [なし] を選択します。 NIC ネットワーク セキュリティ グループ [Advanced] \(詳細設定) を選択します。 ネットワーク セキュリティ グループを構成する [新規作成] を選択します。
[名前] に「nsg-nva」と入力します。
を選択します。残りのオプションは既定値のままにし、[確認と作成] を選びます。
[作成] を選択します
パブリックおよびプライベートの仮想マシンを作成する
vnet-1 仮想ネットワーク内に 2 つの仮想マシンを作成します。 1 つの仮想マシンが subnet-1 サブネットにあり、もう 1 つの仮想マシンが subnet-private サブネットにあります。 両方の仮想マシンに同じ仮想マシン イメージを使用します。
パブリック仮想マシンを作成する
パブリック仮想マシンは、パブリック インターネット内のマシンをシミュレートするために使用されます。 パブリックとプライベートの仮想マシンは、NVA 仮想マシンを介したネットワーク トラフィックのルーティングをテストするために使用されます。
ポータルの上部にある検索ボックスに、「仮想マシン」と入力します。 検索結果から [仮想マシン] を選択します。
[+ 作成] を選択し、[Azure 仮想マシン] を選択します。
[仮想マシンの作成] の [基本] タブで、次の情報を入力または選択します。
設定 値 プロジェクトの詳細 サブスクリプション サブスクリプションを選択します。 Resource group test-rg を選択します。 インスタンスの詳細 仮想マシン名 「vm-public」と入力します。 リージョン [(米国) 米国東部 2] を選択します。 可用性のオプション [インフラストラクチャ冗長は必要ありません] を選択します。 セキュリティの種類 [Standard] を選択します。 Image [Ubuntu Server 24.04 LTS - x64 Gen2] を選びます。 VMアーキテクチャ 既定値の [x64] のままにします。 サイズ サイズを選択します。 管理者アカウント 認証の種類 [パスワード] を選択します。 ユーザー名 ユーザー名を入力します。 Password パスワードを入力します。 パスワードの確認 パスワードを再入力します。 受信ポートの規則 パブリック受信ポート [なし] を選択します。 [次へ: ディスク]、[次へ: ネットワーク] の順に選択します。
[ネットワーク] タブで、次の情報を入力または選択します。
設定 値 ネットワーク インターフェイス 仮想ネットワーク [vnet-1] を選択します。 Subnet subnet-1 (10.0.0.0/24) を選択します。 パブリック IP [なし] を選択します。 NIC ネットワーク セキュリティ グループ [なし] を選択します。 残りのオプションは既定値のままにし、[確認と作成] を選択します。
[作成] を選択します
プライベート仮想マシンを作成する
ポータルの上部にある検索ボックスに、「仮想マシン」と入力します。 検索結果から [仮想マシン] を選択します。
[+ 作成] を選択し、[Azure 仮想マシン] を選択します。
[仮想マシンの作成] の [基本] タブで、次の情報を入力または選択します。
設定 値 プロジェクトの詳細 サブスクリプション サブスクリプションを選択します。 Resource group test-rg を選択します。 インスタンスの詳細 仮想マシン名 「vm-private」と入力します。 リージョン [(米国) 米国東部 2] を選択します。 可用性のオプション [インフラストラクチャ冗長は必要ありません] を選択します。 セキュリティの種類 [Standard] を選択します。 Image [Ubuntu Server 24.04 LTS - x64 Gen2] を選びます。 VMアーキテクチャ 既定値の [x64] のままにします。 サイズ サイズを選択します。 管理者アカウント 認証の種類 [パスワード] を選択します。 ユーザー名 ユーザー名を入力します。 Password パスワードを入力します。 パスワードの確認 パスワードを再入力します。 受信ポートの規則 パブリック受信ポート [なし] を選択します。 [次へ: ディスク]、[次へ: ネットワーク] の順に選択します。
[ネットワーク] タブで、次の情報を入力または選択します。
設定 値 ネットワーク インターフェイス 仮想ネットワーク [vnet-1] を選択します。 Subnet [subnet-private (10.0.2.0/24)] を選択します。 パブリック IP [なし] を選択します。 NIC ネットワーク セキュリティ グループ [なし] を選択します。 残りのオプションは既定値のままにし、[確認と作成] を選択します。
[作成] を選択します
IP 転送を有効にする
NVA を介してトラフィックをルーティングするために、Azure と vm-nva のオペレーティング システムで IP 転送を有効にします。 IP 転送が有効になっている場合、vm-nva が受信した別の IP アドレス宛てのトラフィックは破棄されず、正しい宛先に転送されます。
Azure で IP 転送を有効にする
このセクションでは、vm-nva 仮想マシンのネットワーク インターフェイスの IP 転送を有効にします。
ポータルの上部にある検索ボックスに、「仮想マシン」と入力します。 検索結果から [仮想マシン] を選択します。
[仮想マシン] で、[vm-nva] を選択します。
vm-nva で、[ネットワーク] を展開し、[ネットワーク設定] を選択します。
[ネットワーク インターフェイス:] の横にあるインターフェイスの名前を選びます。 名前は vm-nva で始まり、インターフェイスにランダムな数値が割り当てられます。 この例のインターフェイスの名前は vm-nva313 です。
ネットワーク インターフェイスの概要ページの [設定] セクションで、[IP 構成] を選択します。
[IP 構成] で、[IP 転送を有効にする] の横にあるボックスを選択します。
適用を選択します。
オペレーティング システムで IP 転送を有効にする
このセクションでは、ネットワーク トラフィックを転送するために、vm-nva 仮想マシンのオペレーティング システムで IP 転送を有効にします。 Azure Bastion サービスを使用して vm-nva 仮想マシンに接続します。
ポータルの上部にある検索ボックスに、「仮想マシン」と入力します。 検索結果から [仮想マシン] を選択します。
[仮想マシン] で、[vm-nva] を選択します。
[接続] を選択し、その次に [概要] セクションで、[Connect via Bastion] (Bastion 経由で接続) を選択します。
仮想マシンの作成時に入力したユーザー名とパスワードを入力します。
[接続] を選択します。
仮想マシンのプロンプトに次の情報を入力して、IP 転送を有効にします:
sudo vim /etc/sysctl.conf
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 キーを押します。Bastion セッションを閉じます。
仮想マシンを再起動します。
ルート テーブルの作成
このセクションでは、NVA 仮想マシンを経由するトラフィックのルートを定義するルート テーブルを作成します。 ルート テーブルは、vm-public 仮想マシンがデプロイされている subnet-1 サブネットに関連付けられます。
ポータルの上部にある検索ボックスに、「ルート テーブル」と入力します。 検索結果で [ルート テーブル] を選択します。
[+ 作成] を選択します。
[ルート テーブルの作成] で、次の情報を入力または選択します。
設定 値 プロジェクトの詳細 サブスクリプション サブスクリプションを選択します。 Resource group test-rg を選択します。 インスタンスの詳細 リージョン [米国東部 2] を選択します。 名前 「route-table-public」と入力します。 ゲートウェイのルートを伝達する 既定値の [はい] のままにします。 [Review + create](レビュー + 作成) を選択します。
[作成] を選択します。
ルートの作成
このセクションでは、前の手順で作成したルート テーブルにルートを作成します。
ポータルの上部にある検索ボックスに、「ルート テーブル」と入力します。 検索結果で [ルート テーブル] を選択します。
[route-table-public] を選択します。
[設定] を展開し、[ルート] を選択します。
[ルート] で [+ 追加] を選択します。
[ルートの追加] で、次の情報を入力または選択します。
設定 値 ルート名 「to-private-subnet」と入力します。 変換先の型 [IP アドレス] を選択します。 宛先 IP アドレス/CIDR 範囲 「10.0.2.0/24」と入力します。 ネクストホップの種類 [仮想アプライアンス] を選択します。 次ホップ アドレス 「10.0.3.4」と入力します。
これは、前の手順で作成した vm-nva の IP アドレスです。[追加] を選択します。
[設定] の [サブネット] を選択します。
[+ 関連付け] を選択します。
[サブネットの関連付け] で、次の情報を入力または選択します。
設定 値 仮想ネットワーク vnet-1 (test-rg) を選択します。 Subnet subnet-1 を選択します。 [OK] を選択します。
ネットワーク トラフィックのルーティングをテストする
vm-public から vm-private へのネットワーク トラフィックのルーティングをテストします。 vm-private から vm-public へのネットワーク トラフィックのルーティングをテストします。
vm-public から vm-private へのネットワーク トラフィックをテストする
ポータルの上部にある検索ボックスに、「仮想マシン」と入力します。 検索結果から [仮想マシン] を選択します。
[仮想マシン] で、[vm-public] を選択します。
[接続] を選択し、[概要] セクションで [Connect via Bastion] (Bastion 経由で接続) を選択します。
仮想マシンの作成時に入力したユーザー名とパスワードを入力します。
接続を選択します。
プロンプトで、次のコマンドを入力して、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 に関連付けたためです。
Bastion セッションを閉じます。
vm-private から vm-public へのネットワーク トラフィックをテストする
ポータルの上部にある検索ボックスに、「仮想マシン」と入力します。 検索結果から [仮想マシン] を選択します。
[仮想マシン] で、[vm-private] を選択します。
[接続] を選択し、[概要] セクションで [Connect via Bastion] (Bastion 経由で接続) を選択します。
仮想マシンの作成時に入力したユーザー名とパスワードを入力します。
接続を選択します。
プロンプトで、次のコマンドを入力して、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 にトラフィックを直接送信しました。 既定では、サブネット間でトラフィックが直接ルーティングされます。
Bastion セッションを閉じます。
作成したリソースの使用が終了したら、リソース グループとそのすべてのリソースを削除して構いません。
Azure portal で、「リソース グループ」を検索して選択します。
[リソース グループ] ページで、test-rg リソース グループを選択します。
[test-rg] ページで、[リソース グループの削除] を選択します。
[削除を確認するために、リソース グループの名前を入力してください] に「test-rg」と入力して、[削除] を選びます。
次のステップ
このチュートリアルでは、次のことを行いました。
ルート テーブルを作成し、それをサブネットに関連付けました。
トラフィックをパブリック サブネットからプライベート サブネットにルーティングする単純な NVA を作成しました。
Azure Marketplace から、便利なネットワーク機能を多く備えた別の構成済み NVA をデプロイすることができます。
ルーティングの詳細については、ルーティングの概要とルート テーブルの管理に関する記事をご覧ください。
仮想ネットワーク サービス エンドポイントを使用して PaaS リソースへのネットワーク アクセスを制限する方法を学習するために、次のチュートリアルに進んでください。