3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

OpenVPN を使って Azure と 他拠点 間を S2S 接続する

Last updated at Posted at 2024-06-01

はじめに

今まで、Azure 上の OpenVPN を活用して 外部から Azure に VPN 接続を行う記事を投稿してきましたが、今回は 第3弾となります。

今回の記事の構成を行う事で、Azure と オンプレミス間のホストが 相互にルーティングされてアクセスすることが出来るようになります。つまり S2S (Site to Site) です。

タイトルでは Azure と 他拠点 間と書きましたが、この方法を応用することで 以下のいずれの組み合わせも実現可能です。

  • Azure と オンプレミス ← この記事では、この構成を想定して記載しています
  • Azure と Azure
  • Azure と 他社クラウド(AWS , Google Cloud , Oracle Cloud 等)

今回の構成は、以下のサイトを参考にして構成しました。

OpenVPN 公式:Site-to-Site Routing

上記の記事は、Linux を想定した記載になっていますが、本記事で Windows でも動作することを検証できた点が、敷居を下げたって事で、価値があるかな・・・と思います。私も やってみるまでは、動くのかどうか 半信半疑でした・・・

前提となる構成

今回の構成を行うためには、事前に Azure 上に、以下の Step1 , Step2 まで構築済みであることが前提となります。記事を参考に構成してください。

Step 1:クライアントから 片方向の NAT アクセス を実現
https://qiita.com/carol0226/items/7a9160b298b736aa187e

Step 2:NAT を使わずに、単一のクライアントと 双方向のルーティングアクセス を実現
https://qiita.com/carol0226/items/1fd9540069fabbde92df
→ いわゆる P2S (Point to Site) 的な接続

今回 追加で構成する内容

今回は、Step 3 としての追加構成を行い、NAT を使わずに、複数のホスト間で 双方向のルーティングアクセス を目指します。

Step 2 までに終えた構成に対して、下図の 赤下線 で記した箇所の設定を追加していきます。

今回の構成イメージ
image.png

本記事では、上図の黄緑枠で示した OpenVPN Gateway のために Windows Server または Windows クライアント を使用します。Step 2 までの接続に使用した OpenVPN クライアント をそのまま流用できます。

【作業の流れ】
1. OpenVPN Access サーバー 側での追加構成

  • 1-1. VPN Gateway を有効化したユーザーの作成
  • 1-2. OpenVPN Access サーバーへのルート追加

2. OpenVPN クライアント 側での追加構成

  • 2-1. OpenVPN クライアントのインストール
  • 2-2. S2S プロファイル のインポート
  • 2-3. Routing and Remote Access サービスの有効化

3. スタティックルートの追加

  • 3-1. オンプレミスホストへ Azure 宛のルート (10.10.10.0/24) を追加
  • 3-2. Azure ルートテーブルへ 物理ネットワーク宛のルート (10.16.47.0/24) を追加

4. その他

  • 4-1. アドレス空間へ 物理ネットワーク (10.16.47.0/24)のアドレスを追加

5. 疎通確認

構築手順

1. OpenVPN Access サーバー 側での追加構成

1-1. VPN Gateway を有効化したユーザーの作成

この機能を使うためには、VPN Gateway の機能を有効化した ユーザー を作成します。

  1. OpenVPN Access サーバー管理画面に ログイン します。
    https:// [OpenVPN Access サーバーの IP] :943/admin
    image.png
     
  2. 左ペインで User Permissions を選択して New Username 欄に 任意のユーザー名を入力します。以後の例では S2S という名称で構成しています。
    Allow Auto-login にチェックを入れ More Settings をクリックします。
    image.png
     
  3. 詳細な設定画面が表示されるため 任意の Local Password を指定し、Configure VPN GatewayYes に設定し、Allow client to act as VPN gateway for these client-side subnets: の欄に、オンプレミス側 の物理ネットワーク の ネットワークアドレス (10.16.47.0/24) を入力します。
    image.png
     
  4. 一番下まで スクロールして Save Settings を押します。
    image.png
     
  5. 画面上部に 下図の内容が表示されたら Update Running Server を押します。
    image.png
     
  6. 以下のように 一覧 に追加されれば OK です。
    image.png

この章の構成によって、OpenVPN クライアント側で 今回作成したユーザーでログインした場合は、VPN Gateway 機能が動作します。つまり クライアント側を ルーター化 することができます。

1-2. OpenVPN Access サーバーへのルート追加

  1. 左ペインで VPN Settings を選択して Static IP Address Network 欄の 赤枠の箇所に、オンプレミス側のネットワークアドレス を入力します。
    右下の赤枠2か所を Yes にします。
    緑枠の箇所は、前提となる構成 が完了していれば Azure 仮想ネットワーク のアドレスが設定されて Yes, using Routing が選択されているハズなので、確認してください。
    image.png
     
  2. 画面を一番下までスクロールして、Save Settings ボタンを押して、設定を保存します。
    image.png
     
  3. これだけでは、まだ設定が反映されていません。
    以下の画面で Update Running Server を押して反映させます。
    image.png
     
  4. 以下の表示がでれば OK です。
    image.png

2. OpenVPN クライアント 側での追加構成

今回 構成を行う OpenVPN クライアントは Windows Server または Windows クライアント のどちらでも動作します。

ブラウザを開いて 以下のアドレス に接続します(admin が付かず 管理者ページとは違います)
https:// [OpenVPN Access サーバーの IP] :943

これで、ユーザー向けのページに繋がるため、前章で作成した アカウントで ログイン します。
image.png

2-1. OpenVPN クライアントのインストール

前提となる構成が構築済みであれば、OpenVPN クライアントは導入済みなので、本章は SKIP してください。新規のサーバーを OpenVPN クライアントとして構成する場合は、以下の ▶ を押して 手順を参照してください。

OpenVPN クライアントのインストール手順を見るには ココ を押してください。
  1. 下図では、赤枠部分を押して Windows 用 クライアントアプリを ダウンロードします。その他の OS から接続する場合は、任意のアイコンを押してください。
    image.png
     
  2. 以下のようなファイル名で、ダウンロードされるため、ダブルクリックして 起動します。
    image.png

この画面は、Windows Smart Screen の機能が働いた時に表示されます。
詳細情報 の箇所を押してください。
image.png
実行 を押せば、継続できます。
image.png

4.OpenVPN Connect Setup が起動するため、ウィザードを進めて行きます。
image.png

image.png

image.png

image.png

5.インストールが終わると、以下の画面になります。Finish を押して終了します。
image.png

2-2. autologin プロファイル のインポート

  1. 以下の画面で Yourself (autologin profile) をクリックして ダウンロードします。
    終わったら、ダウンロードしたファイルをダブルクリックします。
    image.png
     
  2. 以下のように プロファイル をインポートしても良いか聞かれるため OK を押します。
    image.png
     
  3. 以下の接続画面で CONNECT を押します。
    image.png
     
  4. ログイン認証を行うことなく、以下のように VPN が接続されます。そのあと、左上の 赤枠 のメニューを押します。
    image.png
     
  5. Settings を選択します。
    image.png
     
  6. Launch Options の選択肢で Connect latest を選択して 左上の "<" を押します。
    image.png

これで、サーバーをシャットダウンしても、 次回起動して OS へのログオンを行うと OpenVPN が自動起動して VPN 接続が行われます。

この状態で Gateway となったサーバーと、Azure 上の Open VPN Access サーバー間で 疎通できていることを確認してください。

OpenVPN Access サーバーの プライベート IP 経由で 管理画面を開くことが出来るはずです。

注意点
しかし、現時点では ルーティングの構成が未完了のため、その他の ホスト同士の疎通は出来ない状態です。

2-3. Routing and Remote Access サービスの有効化

VPN Gateway となった クライアント側 の "Routing and Remote Access" サービスを有効化します(Windows Server でも、Windows クライアント でも このサービスは存在します)

  1. 検索窓に サービス を入力して、検索された サービス を起動します。
    image.png
     
  2. 一覧の中から Routing and Remote Access を探して、赤枠の箇所をダブルクリックします。
    初めは、無効 で、状態の列が 空欄(停止中の意味)になっています。
    image.png
     
  3. 全般 タブでは、スタートアップの種類 を 自動 に変更して 適用 を押します。
    image.png
     
  4. 開始 ボタンがアクティブ化されたら 開始 ボタン を押します。
    image.png
     
  5. 以下のように サービスの状態が 実行中 になれば OK です。
    image.png
     
  6. ウィンドウを閉じて サービスの一覧に戻った際に 以下のように "実行中" "自動" になっていることが確認できます。
    image.png

この構成によって、物理ネットワーク と、VPN ネットワーク間が 相互 にルーティングされるようになります。

注意
なお、後述する スタティックルーティングが完了するまでは、ホスト to ホスト の疎通はできません。

3. スタティックルートの追加

3-1. オンプレミスホストへ Azure 宛のルート (10.10.10.0/24) を追加

オンプレミス側で 有線 LAN に接続された 各ホスト上で、以下のコマンドを実行して、Azure への スタティックルート を追加します。

コマンド例
route add -p [Azure 仮想ネットワークのネットワークアドレス] mask [Azure 仮想ネットワークのサブネットマスク] [有線 LAN 側のゲートウェイアドレス]

具体例
route add -p 10.10.10.0 mask 255.255.255.0 10.16.47.10
→ 冒頭で紹介した構成図を見ながら、アドレスを当てはめてください。

確認コマンド
route print を実行して、作成したルートが表示されていることを確認します。

実行結果
以下が実行例です。黄枠部分が 作成された ルート テーブルになります。
image.png

この構成をおこなった、物理ネットワーク上の ホスト は Azure 仮想ネットワーク (10.10.10.0/255.255.255.0) と通信する際に、VPN Gateway (10.16.47.10) を 経由(ネクストホップとして選択)するようになります。

本章は、物理ネットワークの場合の手順を紹介しています。
もし、他社のクラウドサービス上に OpenVPN クライアント (VPN Gateway) を配置した場合は、各クラウドサービスの 仮想ネットワーク の ルーティング構成を変更してください。

3-2. Azure ルートテーブルへ 物理ネットワーク宛のルート (10.16.47.0/24) を追加

  1. Azure Portal にサインインし 事前に構成済み の ルートテーブルを開きます。
    image.png
     
  2. 左ペイン の ルート を選び 追加 を押します。
    image.png
     
  3. 以下の通り、任意のルート名を入力したあと、物理ネットワーク向けの ネットワークアドレスを入力して、ネクストホップの種類は、仮想アプライアンス を選び、OpenVPN Access サーバーのプライベートアドレスを設定し、最後に 追加 を押します。
    image.png
     
  4. 以下の通知が表示されます。
    image.png
     
  5. ルートが作成されると、以下のように 一覧に追加されます。
    続けて、左ペインから 有効なルート を選択します。
    image.png
     
  6. 下図の 赤線部 では、必ず 起動中されている VM の NIC を選択してください。
    image.png

起動していない VM の NIC を選んでしまうと、以下のようにエラーになります。
この場合は、該当の VM を起動してください。
image.png

7.以下のように 有効なルート の一覧に 追加したルートが表示されていれば OK です。
image.png
(中略)
image.png

この構成をおこなった、Azure 仮想ネットワーク上の ホスト は 物理ネットワーク (10.16.47.0/255.255.255.0) と通信する際に、仮想アプライアンス(OpenVPN Access サーバー:10.10.10.8) を 経由(ネクストホップとして選択)するようになります。

4. その他

4-1. アドレス空間へ 物理ネットワーク (10.16.47.0/24)のアドレスを追加

この設定を実施しなくても、仮想ネットワーク と 物理ネットワーク 間の疎通は行えます。

しかし、この設定を加えることで、仮想ネットワーク上に Azure 仮想ネットワークゲートウェイ が合った場合、さらに その先に接続されている外部のネットワーク(ピアリング、V2V、S2S、P2S、ExpressRoute)とも接続することが出来るようになります。
image.png

5. 疎通確認

以上の構成で、Azure 仮想ネットワーク上の ホスト と、物理ネットワーク上の ホスト が相互に通信ができるようになっているハズです。

設定が正しいのに、疎通ができない場合は、Windows Firewall でブロックされてしまっている可能性があります。

その場合は、各ホスト の Windows Firewall を無効化するなどしてみてください。

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?