カテゴリ: Azure 更新日: 2026/07/20

Azureローカルネットワークゲートウェイの設定方法を解説!オンプレミス接続のIP管理と注意点

Azureローカルネットワークゲートウェイ設定|オンプレ側のIP管理と注意点
Azureローカルネットワークゲートウェイ設定|オンプレ側のIP管理と注意点

先生と生徒の会話形式で理解しよう

生徒

「会社にあるサーバーとAzureをVPNでつなぎたいのですが、設定項目にあるローカルネットワークゲートウェイって何ですか?」

先生

「それは、Azureから見て、接続先となるオンプレミス側の情報を登録するための設定図のようなものです。相手の住所を教えてあげるイメージですね。」

生徒

「なるほど。具体的に何を登録して、どんなことに注意すればいいんでしょうか?」

先生

「IPアドレスの範囲や接続先のエンドポイントなど、重要なポイントがいくつかあります。初心者の方でも迷わないように、詳しく解説していきますね!」

1. Azureローカルネットワークゲートウェイとは?

1. Azureローカルネットワークゲートウェイとは?
1. Azureローカルネットワークゲートウェイとは?

Azure(アジュール)を利用して、クラウド環境と自社内のネットワーク(オンプレミス)を接続する際、必ず登場するのが「ローカルネットワークゲートウェイ(Local Network Gateway)」です。これは、Azure内のリソースではなく、接続先となる外部ネットワーク(お客様の拠点)の情報を定義するためのオブジェクトです。

例えば、あなたが友人の家に手紙を送る際、相手の住所を知らなければなりません。Azure VPN Gateway(エーブイピーエヌ ゲートウェイ)にとって、その「相手の住所録」にあたるのがローカルネットワークゲートウェイです。これを作成することで、Azureは「どこにパケットを送ればよいか」を認識できるようになります。

2. 設定に必要な主な項目と役割

2. 設定に必要な主な項目と役割
2. 設定に必要な主な項目と役割

設定画面を開くと、いくつかの入力項目が出てきます。特に重要なのは以下の2点です。これらを正確に入力しないと、VPN接続は確立されません。

  • エンドポイント:オンプレミス側のVPNルーターが持っている公開(パブリック)IPアドレス、または完全修飾ドメイン名(FQDN)です。
  • アドレス空間:オンプレミス側で使用しているプライベートIPアドレスの範囲(CIDR形式)を指定します。

ここで指定したアドレス空間宛ての通信が、Azure VPN Gatewayを経由してオンプレミスへと運ばれる仕組みになっています。設定を間違えると、特定のサーバーにアクセスできないといったトラブルの原因になります。

3. オンプレミス側のIPアドレス管理の重要性

3. オンプレミス側のIPアドレス管理の重要性
3. オンプレミス側のIPアドレス管理の重要性

ネットワーク管理において、IPアドレスの設計は最も基礎的かつ重要な要素です。ローカルネットワークゲートウェイで登録するアドレス空間は、将来的な拡張も見据えて慎重に決定する必要があります。もし、後からオンプレミス側に新しい部署ができてネットワークセグメントが増えた場合、このローカルネットワークゲートウェイの設定も更新しなければなりません。

また、Azure側の仮想ネットワーク(VNet)のアドレス範囲と、オンプレミス側のアドレス範囲が重複(ちょうふく)してはいけません。重複していると、パケットがどちらに行けばいいのか判断できず、通信エラーが発生します。これを「IPアドレスの競合」と呼びます。

4. 接続の仕組みを自動化するスクリプト例

4. 接続の仕組みを自動化するスクリプト例
4. 接続の仕組みを自動化するスクリプト例

Azureの操作はポータル画面(マウス操作)だけでなく、PowerShell(パワーシェル)を使って自動化することも可能です。設定を確認したり、新しく作成したりする際のコード例を見てみましょう。


// C#でAzure SDKを使用してゲートウェイ情報を取得するイメージ例
using Azure.ResourceManager.Network;

public void GetGatewayInfo(string resourceGroupName, string gatewayName)
{
    var networkClient = new NetworkManagementClient(subscriptionId);
    var localGateway = networkClient.LocalNetworkGateways.Get(resourceGroupName, gatewayName);
    Console.WriteLine($"ゲートウェイ名: {localGateway.Name}");
    Console.WriteLine($"接続先IP: {localGateway.GatewayIpAddress}");
}

このようにプログラムから情報を取得することで、設定ミスがないか定期的にチェックする仕組みを作ることもできます。

5. PowerShellでのローカルネットワークゲートウェイ作成

5. PowerShellでのローカルネットワークゲートウェイ作成
5. PowerShellでのローカルネットワークゲートウェイ作成

実際にコマンドを使ってローカルネットワークゲートウェイを作成する方法を紹介します。エンジニアの現場では、GUI(画面操作)よりも正確性を期すためにコマンド(CLI)がよく使われます。


# Azureにログインしてリソースグループ内にゲートウェイを作成する
az network local-gateway create \
  --resource-group MyResourceGroup \
  --name MyOnPremGateway \
  --gateway-ip-address 203.0.113.5 \
  --local-address-prefixes 192.168.1.0/24 192.168.2.0/24
{
  "gatewayIpAddress": "203.0.113.5",
  "id": "/subscriptions/.../MyOnPremGateway",
  "localNetworkAddressSpace": {
    "addressPrefixes": [
      "192.168.1.0/24",
      "192.168.2.0/24"
    ]
  },
  "name": "MyOnPremGateway",
  "resourceGroup": "MyResourceGroup"
}

上記のコマンドでは、オンプレミス側のルーターのIPアドレスを「203.0.113.5」、社内ネットワークの範囲を「192.168.1.0/24」と「192.168.2.0/24」として登録しています。複数のセグメントがある場合は、まとめて指定することが可能です。

6. データベースでのIP管理例

6. データベースでのIP管理例
6. データベースでのIP管理例

大規模な環境では、どの拠点がどのIPアドレスを使っているかをデータベースで管理することが一般的です。管理テーブルの構成例を見てみましょう。


id | location_name | public_ip    | private_network     | status
---+---------------+--------------+---------------------+---------
1  | 東京本社      | 203.0.113.5  | 192.168.1.0/24      | active
2  | 大阪支店      | 203.0.113.10 | 192.168.2.0/24      | active
3  | 福岡営業所    | 203.0.113.15 | 192.168.3.0/24      | inactive
4  | 名古屋工場    | 203.0.113.20 | 172.16.0.0/16       | active

特定の拠点の情報を抽出するSQLクエリは以下のようになります。


SELECT location_name, public_ip, private_network
FROM vpn_management
WHERE status = 'active';

location_name | public_ip    | private_network
--------------+--------------+---------------------
東京本社      | 203.0.113.5  | 192.168.1.0/24
大阪支店      | 203.0.113.10 | 192.168.2.0/24
名古屋工場    | 203.0.113.20 | 172.16.0.0/16

このように情報を整理しておくことで、Azure側の設定変更が必要になった際もスムーズに対応できます。

7. 設定時の注意点とトラブルシューティング

7. 設定時の注意点とトラブルシューティング
7. 設定時の注意点とトラブルシューティング

ローカルネットワークゲートウェイの設定で、初心者が特にはまりやすいポイントを整理しました。

  • 動的IPアドレスの問題:オンプレミス側のVPNルーターのグローバルIPが固定(こてい)IPでない場合、IPが変わるたびにAzure側の設定を手動で書き換える必要があります。可能な限り固定IPを契約することをお勧めします。
  • ファイアウォールの許可:オンプレミス側のルーターで、Azure VPN Gatewayからの通信(UDP 500番ポートや4500番ポートなど)を許可していないと、接続が「切断済み」のままになります。
  • BGPの使用:ルート情報のやり取りを自動化するBGP(ボーダー ゲートウェイ プロトコル)を使用する場合は、ASN(自律システム番号)の設定が必要です。

8. 疎通確認のためのテストコード

8. 疎通確認のためのテストコード
8. 疎通確認のためのテストコード

設定が完了したら、実際に通信ができるか確認します。簡易的なネットワークチェックを行うプログラムをC#で書いてみましょう。


using System.Net.NetworkInformation;

public void CheckConnectivity(string targetIp)
{
    Ping pingSender = new Ping();
    PingReply reply = pingSender.Send(targetIp);

    if (reply.Status == IPStatus.Success)
    {
        Console.WriteLine($"{targetIp} への疎通確認に成功しました!");
        Console.WriteLine($"応答時間: {reply.RoundtripTime} ms");
    }
    else
    {
        Console.WriteLine($"{targetIp} への疎通に失敗しました。ステータス: {reply.Status}");
    }
}

このプログラムを実行して、オンプレミス側のサーバーIPに応答があれば、Azureローカルネットワークゲートウェイの設定が正しく動作し、VPNトンネルが開通している証拠です。

9. 今後の運用に向けたアドバイス

9. 今後の運用に向けたアドバイス
9. 今後の運用に向けたアドバイス

クラウドとオンプレミスのハイブリッド環境は、一度作れば終わりではありません。会社の成長に合わせて、ネットワークは常に変化します。Azure側では「ネットワーク監視(Network Watcher)」というツールがあり、接続の切断を検知してアラートを飛ばすことも可能です。

ローカルネットワークゲートウェイは、地味な設定に見えますが、ハイブリッドクラウドの「架け橋(かけはし)」となる重要なパーツです。IP管理台帳をしっかり整備し、設定値の一つひとつに責任を持って取り組むことが、安定したシステム運用への第一歩となります。

まとめ

まとめ
まとめ

ここまで、Azureローカルネットワークゲートウェイの役割から具体的な設定方法、運用上の注意点について詳しく解説してきました。クラウドとオンプレミスを接続するハイブリッドクラウド環境において、ローカルネットワークゲートウェイは「接続先の地図」を描く非常に重要なコンポーネントです。この設定が正しく行われていないと、せっかく構築したVPNゲートウェイも正しく機能せず、拠点間の通信が途絶えてしまいます。

重要ポイントの振り返り

ローカルネットワークゲートウェイを構成する上で、特に意識すべき点は以下の通りです。

  • 正確な接続先情報の定義:オンプレミス側のパブリックIPアドレス(エンドポイント)と、社内で利用しているプライベートIPアドレスの範囲(アドレス空間)を正確に登録することが基本です。
  • IPアドレスの重複回避:Azure側のVNetとオンプレミス側のネットワークでIPアドレスが重ならないよう、設計段階で広域なネットワーク構成図を確認しておく必要があります。
  • 固定IPの推奨:接続先のグローバルIPが変わってしまうとVPNが切断されるため、ビジネス運用では固定IPアドレスの利用が強く推奨されます。
  • 運用の自動化と管理:拠点が増えるたびに手動で設定するのはミスのもとです。PowerShellやAzure CLI、あるいはSDKを活用して設定をコード化(Infrastructure as Code)することで、構築の正確性を高めることができます。

実践的な管理手法:データベースによる拠点管理

記事の中でも触れましたが、複数の拠点を接続する場合、どのローカルネットワークゲートウェイがどの拠点に対応しているかを整理しておく必要があります。ここでは、SQLを使って管理状態を更新する例を見てみましょう。

まずは、現在のVPN接続拠点リストを確認します。


id | location_name | public_ip    | private_network     | status
---+---------------+--------------+---------------------+---------
1  | 東京本社      | 203.0.113.5  | 192.168.1.0/24      | active
2  | 大阪支店      | 203.0.113.10 | 192.168.2.0/24      | active
3  | 福岡営業所    | 203.0.113.15 | 192.168.3.0/24      | inactive
4  | 名古屋工場    | 203.0.113.20 | 172.16.0.0/16       | active

次に、福岡営業所のVPN設定が完了し、運用を開始(active)にするためのSQLを実行します。


UPDATE vpn_management
SET status = 'active'
WHERE location_name = '福岡営業所';

実行後のテーブル状態は以下のようになります。


id | location_name | public_ip    | private_network     | status
---+---------------+--------------+---------------------+---------
1  | 東京本社      | 203.0.113.5  | 192.168.1.0/24      | active
2  | 大阪支店      | 203.0.113.10 | 192.168.2.0/24      | active
3  | 福岡営業所    | 203.0.113.15 | 192.168.3.0/24      | active
4  | 名古屋工場    | 203.0.113.20 | 172.16.0.0/16       | active

このように、Azure上の設定と管理台帳(データベース)を同期させておくことで、トラブル発生時の切り分けがスムーズになります。

疎通確認コードの応用

設定が終わった後の最終確認として、C#プログラムを用いた自動チェックは有効です。複数のターゲットに対して一括で疎通確認を行うようなロジックを組むと、毎朝の始業点検などを自動化できます。


using System;
using System.Net.NetworkInformation;
using System.Collections.Generic;

public class VpnMonitor
{
    public void CheckAllLocations()
    {
        var targetIps = new List<string> { "192.168.1.1", "192.168.2.1", "192.168.3.1" };
        Ping ping = new Ping();

        foreach (var ip in targetIps)
        {
            try
            {
                PingReply reply = ping.Send(ip, 2000);
                if (reply.Status == IPStatus.Success)
                {
                    Console.WriteLine($"{ip}:接続中 (応答速度: {reply.RoundtripTime}ms)");
                }
                else
                {
                    Console.WriteLine($"{ip}:通信エラー (状態: {reply.Status})");
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine($"{ip}:例外が発生しました - {ex.Message}");
            }
        }
    }
}

出力結果のイメージは次の通りです。


192.168.1.1:接続中 (応答速度: 15ms)
192.168.2.1:接続中 (応答速度: 22ms)
192.168.3.1:通信エラー (状態: TimedOut)

ネットワークエンジニアとして一歩先を行くためには、ただ設定画面を操作するだけでなく、こうしたプログラムやスクリプトによる「運用の仕組み化」を意識することが大切です。Azureローカルネットワークゲートウェイをマスターして、安定したハイブリッドネットワークを構築しましょう。

先生と生徒の振り返り会話

生徒

「先生、ありがとうございました!ローカルネットワークゲートウェイが、単なる設定項目ではなく、オンプレミス側を指し示す大切な『住所録』だということがよく分かりました。」

先生

「その通りです。住所(IPアドレス)が間違っていたら、どんなに立派なVPNトンネルを掘ってもデータは届きませんからね。特に、Azure側とオンプレミス側でIPアドレスの範囲が重なってはいけない、という点は覚えておけましたか?」

生徒

「はい、バッチリです!重複してしまうとパケットが迷子になってしまうんですよね。もし後からオンプレミスの拠点が増えた場合は、ローカルネットワークゲートウェイの設定を後から追加したり修正したりすればいいんですよね?」

先生

「その通り。設定の変更自体はAzureポータルやPowerShellから簡単に行えますが、変更中は一時的に通信が不安定になることもあるので、夜間やメンテナンス時間に行うのが一般的ですよ。あとは、オンプレミスのルーター側で、Azureからの通信を拒否しないようにファイアウォールの設定も見直すことを忘れないでくださいね。」

生徒

「なるほど、Azure側の設定だけじゃなくて、接続先(オンプレミス)のルーター設定もセットで考える必要があるんですね。実際の仕事では、ネットワーク担当の人としっかり連携を取るようにします!」

先生

「素晴らしい心がけですね。最後に、紹介したC#のコードやSQLの管理例も活用して、プログラミングの力でネットワーク運用を楽にする方法も模索してみてください。エンジニアとしての幅がぐっと広がりますよ。」

生徒

「はい!自分でも疎通確認のスクリプトを書いて動かしてみようと思います。ありがとうございました!」

カテゴリの一覧へ
新着記事
New1
C#
C#のDictionary(辞書)の使い方を初心者向けに完全解説!キーと値でデータ管理を学ぼう
New2
C#
C#の数値型をマスターしよう!int・double・decimalの違いと使い方
New3
C#
C#で始めるIoT開発!音声認識とスピーカー制御の仕組みを解説
New4
Azure
Azure Reposの使い方を徹底解説!Gitによるソースコード管理とブランチ戦略(Gitflow)
人気記事
No.1
Java&Spring記事人気No1
COBOL
COBOLの数値データ型「PIC 9」の使い方と注意点をやさしく解説!
No.2
Java&Spring記事人気No2
C#
C#のpartialクラスとは?初心者でも理解できるクラス分割の基本
No.3
Java&Spring記事人気No3
Azure
Azureストレージの冗長性比較!LRS/GRS/ZRSの選び方とコストの最適解を完全解説
No.4
Java&Spring記事人気No4
C#
C#のWPFとは?XAMLでGUI開発を基礎から完全解説!初心者向けの入門ガイド
No.5
Java&Spring記事人気No5
C#
C#のログ出力入門!SerilogとNLogの使い方を徹底解説
No.6
Java&Spring記事人気No6
C#
C#のrefとoutキーワードとは?引数の参照渡しを理解しよう
No.7
Java&Spring記事人気No7
C#
C#のforeachループを完全ガイド!初心者でもわかるコレクション操作の基本
No.8
Java&Spring記事人気No8
COBOL
COBOLの小数点の扱いと符号付きデータ型(S, V)の使い方を初心者向けに解説!