Azure

マイクロソフトのクラウドAzure VPNのサイト間接続をポータルから設定する

2016年4月13日

vpn-azure-connect-top2

MicrosoftのクラウドサービスAzureには、オンプレミスの環境(物理的な拠点)とVPN接続(サイト対サイト)するための機能があります。VPNを利用することでクラウド環境をローカルネットワークと接続し、クラウドをローカルと同じように利用することができる機能です。このVPNですが、実際に設定をやってみると、Azure側の設定が分かり難い。特に今年(2016年)からAzureを管理するためのポータルが大幅に変更されてしまい、以前に比較して、より分かり難くなっています。古いAzureポータルを利用してのVPN設定についてはインターネット上に多くの事例や情報がありますが、今回変更された新ポータルを利用してのVPN接続についての接続方法を説明した情報が見つからなかったため、設定を行ってみました。

  • クラウド環境を利用したいが、社内と同様に利用できるか心配。
  • 新ポータルでVPN設定の仕方が分からない。
  • Azureの導入を考えているが、セキュリティが心配。

といった問題でお悩みの時に参照頂けると、幸いです。

1. Azure VPN設定の前提となる環境

VPN接続を行う環境は以下を前提としています。実際に設定する環境に合わせて読み替えて下さい。

1-1. ネットワーク

(Azure側)

  • 仮想ネットワークのアドレス空間:172.16.0.0/16
  • 仮想ネットワークゲートウェイサブネット:172.16.1.0/29
  • 仮想ネットワークサブネット:172.16.2.0/24

(オンプレミス側)

  • WAN側のIPアドレス:PPPoEによる固定IP1アドレス
  • LAN側のサブネット:192.168.10.0/24

1-2. Azure 新ポータルで表示されるメニューについて

メニューについて、新ポータルでは同じ設定項目でも「クラシック」とクラシック無しがあります。このクラシックも、古いポータルと比較して、随分手順が変わってしまいました。こちらについても別の記事で接続方法は説明するとして、今回は、「クラシック無し」でVPN接続を行います。

1-3. Azureに追加するリソースについて

Azureではリソースをリソースグループというグルーピングで、ひと纏めにできます。VPNの設定には専用のリソースグループ作成は必須ではありませんが、Azureの管理上、分かりやすくするために、リソースグループの作成からVPNに必要なリソースの作成まで紹介していきます。

2. Azureポータルへのログイン

AzureポータルへのサインインページからAzureポータルへログインします。

古いポータルへのURLもこちらへリダイレクトされます。ログインには事前にMicrosoftアカウントなどを作成する必要があります。ここではログインに必要なアカウントの作成方法は割愛します。

1-azure-portal-login

3. リソースグループの作成

参照から、リソースグループをクリックすると、リソースグループ作成の画面が開きます。
リソースグループとして、VPN接続に関連するリソースを保存するためのグループ、「VPN-GROUP」を作成します。

3-add-resouce-group

本VPNの記事のみで利用する前提ですので、分かりやすい名前にしました。実際には利用する環境に合わせてグループ名の設定を行って下さい。

4. Azure側ネットワーク環境の整備

VPN設定を行う前に、Azure側のネットワーク環境を整備する必要があります。
ここでは、Azure側で利用する仮想ネットワークを作成します。

4-1. 仮想ネットワークの作成

参照から、仮想ネットワークを選択して、仮想ネットワーク作成画面へ移行します。

4-1-add-vr-network

追加[+]をクリックして、仮想ネットワークを追加します。

4-1-add-vr-network2

以下のようにパラメーターを設定しました。

  • 名前:Virtula-Network01
  • アドレス空間:172.16.0.0/16
  • サブネット名:VPN-Subnet01(任意)
  • サブネット アドレス範囲:172.16.2.0/24

4-1-add-vrn-parameters1

  • サブスクリプション:ご契約頂いているサブスクリプション
  • リソースグループ:VPN-GROUP
  • 場所:任意の場所(ここでは西日本)

4-1-add-vrn-parameters2

パラメーターの入力後、[作成]ボタンをクリックして、仮想ネットワークを作成します。
仮想ネットワークのデプロイが開始された旨、情報が表示されます。多少時間が掛かります。

4-1-add-vrn-deploy

作成が完了すると、作成した仮想ネットワークが表示されます。

4-1-vrn-deploy-complete

4-2. サブネットの追加

作成した仮想ネットワークはアドレス空間として、172.16.0.0/16を設定しています。
このアドレス空間を実際に利用するサブネットに分割していきます。
最低限、必要になるサブネットは、VPN用のゲートウェイとなるゲートウェイサブネットと、実際に仮想マシンなどを配置するサブネットです。仮想マシンを配置するためのサブネットは、手順4-1で作成が完了しているため、ここではVPN用のゲートウェイサブネットを追加します。

仮想ネットワークからサブネットを選択して、Gateway subnet[+]をクリックします。

4-2-add-gw-subnet1

サブネット追加で以下のようにパラメーターを設定します。

  • 名前:GatewaySubnet(変更できません)
  • アドレス範囲:172.16.1.0/29
  • ルートテーブル:なし(必要に応じて設定)

4-2-add-gw-subnet2

入力後[OK]をクリックして、ゲートウェイサブネットの追加を完了します。
完了すると、追加したサブネットが表示されます。

4-2-add-gw-subnet3

サブネットの作成が完了すると、二つのサブネットが表示されます。

4-2-add-gw-subnet4

これでVMを配置するサブネットと、VPNゲートウェイサブネットの作成が完了しました。

4-3. 仮想ネットワーク ゲートウェイの作成

続いて仮想ネットワーク ゲートウェイの作成を行います。
仮想ネットワーク ゲートウェイは仮想ネットワークと他拠点を接続するためのVPNゲートウェイになります。事前に手順4-2. に記載したゲートウェイサブネットを作成している必要があります。

参照から、仮想ネットワーク ゲートウェイをクリックします。

4-3-add-vpn-gateway1

仮想ネットワーク ゲートウェイの作成から、必要なパラメーターを入力します。

  • 名前:Virtual-Network-Gateway01 (任意)
  • 仮想ネットワーク:ゲートウェイを作成する、仮想ネットワーク (VPN-Network01)
  • パブリックIPアドレス:4-3-1で作成します。

4-3-add-vpn-gateway2

4-3-1. パブリックIPアドレスの作成

ここで、仮想ネットワークゲートウェイに割り当てるパブリックIPアドレスを作成します。
このパブリックIPアドレスをルーター側のピアとして設定します。
新規から、パブリックIPアドレスを追加します。

4-3-1-add-public-IP1

パブリックIPアドレスの作成画面で

  • 名前:Virtual-Network-Gateway01(任意)

を入力して[OK]をクリックします。
これでパブリックIPアドレスの作成は完了です。引き続き、仮想ネットワークゲートウェイの作成に戻ります。

4-3-2. 仮想ネットワークゲートウェイの作成(続き)

仮想ネットワークゲートウェイの作成について残りのパラメーターを指定します。
VPNの種類については、ルートベースがデフォルトになっています。
※古いポータルではポリシーベース(静的)がデフォルトになっていたようです。
ポリシーベースとルートベースの差異は、マイクロソフトのサイト「VPN ゲートウェイについて」に記載されています。

  • ゲートウェイの種類:VPN
  • VPNの種類:ルートベース(任意ですが、ルーター側に設定する内容が変わります。)
  • サブスクリプション:変更できません
  • リソースグループ:VPN-GROUP
  • 場所:西日本

4-3-2-add-vpn-gateway3

[作成]をクリックして、仮想ネットワークゲートウェイのデプロイを開始します。

4-3-add-vpn-gateway4

デプロイが完了するまで、約40~50分程度掛かりますので、この間に他の設定を行います。

4-4. ローカルネットワークゲートウェイの作成

ローカルネットワークゲートウェイはオンプレミス側のネットワーク設定になります。
この設定はVPNの[接続]を追加する際に利用されます。[接続]を設定する前に、ローカルネットワークゲートウェイの作成を完了しておく必要があります。
参照から、ローカルネットワークゲートウェイをクリックします。

4-4-add-localnetwork-gateway1

表示された画面から、追加[+]をクリックします。

4-4-add-local-network-gateway2

表示されたローカルネットワークゲートウェイの作成画面で以下のパラメーターを入力します。

  • 名前:任意
  • IPアドレス:オンプレミス側のWAN側IPアドレス
  • アドレス空間:オンプレミス側のLAN側IPアドレス
  • サブスクリプション:ご契約のサブスクリプション
  • リソースグループ:VPN-GROUP
  • 場所:西日本

4-4-add-local-network-gateway3

パラメーターを全て指定後、[作成]をクリックして、ローカルネットワークゲートウェイをデプロイします。

4-4-add-local-network-gateway4

デプロイが完了すると、作成したローカルネットワークゲートウェイが表示されます。
表示されない場合は、[最新の情報に更新]をクリックして、表示されることを確認して下さい。正常に表示されれば、ローカルネットワークゲートウェイの作成は完了です。

4-5. 仮想ネットワークゲートウェイのデプロイ完了

4-3-2. で作成した仮想ネットワークゲートウェイの作成が完了すると、リソースとして以下の状態になります。

4-5-virtual-network-gateway-complete

リソースは上から、以下の内容となります。

  • rem-site:ローカルネットワークゲートウェイ
  • Virtual-Network-Gateway01:グローバルIPアドレス
  • Virtual-Network-Gateway01:仮想ネットワークゲートウェイ
  • Virtual-Network01:仮想ネットワーク

ここまで表示されれば、Azure側ネットワーク環境の整備は完了です。
続いて、VPN接続設定の追加を行います。

5. VPN接続の追加

ここではVPNを行うための接続設定を追加します。
暗号に関するプロポーサルなどは指定できず、決め打ちになります。どのようなプロポーサルが利用できるかはマイクロソフトのサイト「サイト間 VPN Gateway 接続の VPN デバイスについて」を参照下さい。

5-1. 接続の追加

参照から「接続」を選択します。表示された画面から、追加をクリックします。
接続の追加画面が表示されます。
以下のパラメーターを設定します。共有キーについては、実際に利用するものに合わせて下さい。ここで設定した共有キーを、オンプレミス側のルーターにも設定します。

  • 名前:任意(ここではRem-Site-VPN)
  • 接続の種類:サイト対サイト(IPSec)
  • 仮想ネットワークゲートウェイ:Virtual-Network-Gateway01
  • ローカルネットワークゲートウェイ:rem-site
  • 共有キー(PSK):VPN接続の際に設定する共有キー (1234567890)

5-1-add-vpn-connect2

  • サブスクリプション:変更できない
  • リソースグループ:VPN-GROUP
  • 場所:変更できない

5-1-add-vpn-connect3

[OK]をクリックして、接続をデプロイします。

5-1-vpn-conncet-deploy

接続のデプロイが正常に完了すると、Azure側の設定は完了です。
接続画面に作成した[接続]が表示されます。
この時点では、ルーター側の設定が行われていないため、接続状態は不明になっています。

5-1-vpn-connect-complete

6. ルーター側の設定

ルーター側にVPN設定を追加します。本記事ではVPNルーターとしてCenturySystemsのNXR-230を利用しました。ルーターの設定に必要となるパラメーターは以下になります。事前にご用意下さい。

  • Azure側のpeer IP (パブリックIPアドレス/Azureのリソースから確認できます。)
  • Azure側のローカルIPサブネット(本環境では172.16.0.0/16)
  • Azureの仮想ネットワークゲートウェイに設定した共有キー(本環境では11234567890)

ルーター側の設定はCenturySystemsのサイト、「4-2. Windows Azure接続設定例」に記載されています。
ほぼこのサイトに記載されている設定内容でVPN接続には問題ありませんが、Azure側のVPNをルートベースにした場合、IKEv1だと接続できませんのでIKEv2を指定する必要があります。
Azureが利用するプロポーサル(暗号化方式などのVPN設定)はマイクロソフトのサイト「サイト間 VPN Gateway 接続の VPN デバイスについて」で確認できます。

本記事では参考としてNXRを利用した場合のVPN設定を記載します。
環境はPPPoEによる固定IPで、ローカルIPサブネットは192.168.10.0/24を想定しています。
*(アスタリスク)で伏せてある設定パラメーターについては、環境に合わせて設定して下さい。

hostname *********
ssh-server enable
ssh-server address-family ip
http-server enable
!
password *********** <=CLIでルーターへログインする場合のパスワードを指定します
gui password ********* <=WEBでルーターへログインする場合のパスワードを指定します
!
ipv6 forwarding
fast-forwarding enable
!
ppp account username ************ password ******* <=ISPからの情報を指定します
!
ipsec nat-traversal enable
!
ipsec local policy 1
address ip
!
ipsec isakmp policy 1
description WindowsAzure
version 2
authentication pre-share 1234567890 <= Azure側に設定した共有キーを指定します
no keepalive
hash sha1
encryption aes256
group 2
lifetime 28800
isakmp-mode main
remote address ip 40.74.**.*** <= Azure環境のパブリックIPアドレスを指定します
local policy 1
!
!
ipsec tunnel policy 1
description WindowsAzure
set transform esp-aes256 esp-sha1-hmac
no set pfs
set key-exchange isakmp 1
set sa lifetime 28800
match address ipsec_acl
!
!
interface tunnel 1
no ip address
ip tcp adjust-mss 1350
tunnel mode ipsec ipv4
tunnel protection ipsec policy 1
!!
interface ppp 0
description *********
ip address ***.***.**.***/32 <= 固定IPを指定します。
no ip redirects
ip tcp adjust-mss auto
ip access-group in in-ppp0
ip masquerade
ip spi-filter
ppp username ****************
ipsec policy 1
!
interface ethernet 0
ip address 192.168.10.254/24
!
interface ethernet 1
no ip address
pppoe-client ppp 0
!
interface ethernet 2
no ip address
!!
!
ip route 0.0.0.0/0 ppp 0
ip route 172.16.0.0/16 null 254
ip route 172.16.0.0/16 tunnel 1
!
!
ip access-list in-ppp0 permit any any icmp
ip access-list in-ppp0 permit any ***.***.***.*** udp any 500 <= WAN側固定IPを指定
ip access-list in-ppp0 permit any ***.***.***.*** udp any 4500 <= WAN側固定IPを指定
ip access-list in-ppp0 permit 210.173.160.57 any udp any 123
ip access-list in-ppp0 permit any ***.***.***.*** 50 <= WAN側固定IPを指定
!
ipsec access-list ipsec_acl ip 192.168.10.0/24 172.16.0.0/16
!
!
!
end

ヤマハのRTXシリーズでAzure環境とのVPNを行う場合は、「Microsoft AzureとVPN接続するルーターの設定」以下のサイトに掲載されている設定を参考にして下さい。
気を付ける点として、IKEのバージョンがあります。NXRと同じくIKEのバージョンがv1だと接続できませんので、IKEv2を指定する必要があります。VPNトンネルで、IKEv2をコマンドは以下になるようです。

ipsec ike version 1 2

もしRTXで接続が出来た方は設定について、教えて下さい。

7. VPN接続の確認

ルーター側とAzure側の両方でVPN設定ができれば、VPNは自動的に接続されます。古いポータルや、クラシックメニューを利用したVPN設定だと、「接続」「切断」を操作できたのですが、新ポータルでは探してみた限り、そのようなメニューがありません。(切断するにはルーター側で行うしかなさそうです。)

VPN接続されると、Azure側の接続画面が、「接続」に変更されます。
ルーター側でも確認してみます。NXRでは、ipsecの確認に、show ipsec statusコマンドを利用します。
sshでログインして、コマンドを実行した結果は以下の通りです。

#show ipsec status
Connections:
tunnel1: ***.*.**.***...40.74.**.** interface tunnel1
tunnel1: local: [***.*.**.***] uses pre-shared key authentication
tunnel1: remote: [40.74.**.***] uses any authentication
tunnel1: child: 192.168.10.0/24 === 172.16.0.0/16
Security Associations:
tunnel1[155]: ESTABLISHED 118 minutes ago, ***.*.**.***[***.*.**.***]...40.74.**.***[40.74.**.***]
tunnel1[155]: IKE SPIs: 5ac3591f585b0928_i* d2bd608e96fcb1f2_r, pre-shared key reauthentication in 5 hours
tunnel1[155]: IKE proposal: AES_CBC_256/HMAC_SHA1_96/PRF_HMAC_SHA1/MODP_1024
tunnel1{1}: INSTALLED, TUNNEL, ESP SPIs: c0324b75_i 71e45652_o
tunnel1{1}: AES_CBC_256/HMAC_SHA1_96, 3808 bytes_i 119 packets_i (0s ago), 59980 bytes_o 847 packets_o(0s ago), rekeying in 5 hours
tunnel1{1}: 192.168.10.0/24 === 172.16.0.0/16

出力結果からVPN接続が正常に完了していることが確認できます。
VPNトンネルのステータスはshow ipsec status briefコマンドで確認できます。

#show ipsec status brief
TunnelName Status
tunnel1 up


トンネルのステータスが[up]になっていることが確認できます。
VPNが接続できれば、後は仮想マシンへのリモートデスクトップ接続やアプリケーションへの接続をローカルIPで行うことができます。

8. まとめ

AzureでのVPNは新ポータルに代わってから、情報が少ないことから、難しい部分が多いと思います。
恐らく新ポータルでのVPN接続は、まだ環境が十分に整っていないように見受けられます。
今後は、より使いやすいように手が入っていくと考えられますが、現時点ではまだ使いにくい部分が多々あります。そんなときに本記事が参考になれば幸いです。
オンプレミス側のVPNルーターについては、マイクロソフトのサイトに動作確認済みの機器が掲載されていますが、ipsecが利用できるVPNルーターなら、殆どの機種が利用できます。
クラウドとオンプレミス側の環境を統合するためにはVPNは欠かせない設定ですので、是非、試して見て下さい。

9. RTXでのipsec設定(2018年1月追記)

一年近く経過してしまいましたが、記事を見た読者様よりRTXで上手くipsecが設定できたconfigを頂きました。
以下に掲載しますので、RTXでの設定を行っている方は参考にしていただければ幸いです。
K様、心より感謝申し上げます。(掲載するのが大変遅くなってしまい申し訳ございません。)

# RTX3500 Rev.14.00.13
# MAC Address : *******
# Memory 1024Mbytes, 4LAN
# main: RTX3500 ver=00 serial=********* MAC-Address=**********
ip route default gateway pp 1
ip route 10.102.0.0/16 gateway tunnel 1
ip lan1 address 10.11.0.1/16
pp select 1
pp always-on on
pppoe use lan3
pppoe auto disconnect off
pp auth accept pap chap
pp auth myname *********** *******
ppp lcp mru on 1454
ppp ipcp msext on
ppp ccp type none
ip pp address 22.33.44.5/32
ip pp secure filter in 200003 200020 200021 200022 200023 200024 200025 200030 200032 200080 200081 200082 200083 200084
ip pp secure filter out 20013 200020 200021 200022 200023 200024 200025 200026 200027 200099 dynamic 200080 200081 200082 200083 200084 200085 200098 200099
ip pp nat descriptor 1000
pp enable 1
tunnel select 1
ipsec tunnel 1
ipsec sa policy 1 1 esp aes256-cbc sha256-hmac anti-replay-check=off
ipsec ike version 1 1
ipsec ike duration ipsec-sa 1 3600
ipsec ike encryption 1 aes256-cbc
ipsec ike group 1 modp1024
ipsec ike hash 1 sha256
ipsec ike keepalive log 1 off
ipsec ike local address 1 10.11.0.1
ipsec ike local id 1 10.11.0.1
ipsec ike nat-traversal 1 on
ipsec ike backward-compatibility 1 2
ipsec ike pre-shared-key 1 text ABCEDFGH0
ipsec ike remote address 1 12.23.45.66
ipsec ike remote id 1 10.102.1.4
ip tunnel tcp mss limit 1350
tunnel enable 1
ip filter 200000 reject 10.0.0.0/8 * * * *
ip filter 20001 reject 10.11.0.151.0/24 * * * *
ip filter 200002 reject 10.11.0.0/16 * * * *
ip filter 20010 reject * 10.0.0.0/8 * * *
ip filter 20011 reject * 10.11.0.151.0/24 * * *
ip filter 20012 reject * 10.11.0.0/16 * * *
ip filter 200020 reject * * udp,tcp 135 *
ip filter 200021 reject * * udp,tcp * 135
ip filter 200022 reject * * udp,tcp netbios_ns-netbios_ssn *
ip filter 200023 reject * * udp,tcp * netbios_ns-netbios_ssn
ip filter 200024 reject * * udp,tcp 445 *
ip filter 200025 reject * * udp,tcp * 445
ip filter 200026 restrict * * tcpfin * www,21,nntp
ip filter 200027 restrict * * tcprst * www,21,nntp
ip filter 200030 pass * 10.11.0.0/16 icmp * *
ip filter 200031 pass * 10.11.0.0/16 established * *
ip filter 200032 pass * 10.11.0.0/16 tcp * ident
ip filter 200033 pass * 10.11.0.0/16 tcp ftpdata *
ip filter 200034 pass * 10.11.0.0/16 tcp,udp * domain
ip filter 200035 pass * 10.11.0.0/16 udp domain *
ip filter 200036 pass * 10.11.0.0/16 udp * ntp
ip filter 200037 pass * 10.11.0.0/16 udp ntp *
ip filter 200080 pass * 10.11.0.1 udp * 500
ip filter 200081 pass * 10.11.0.1 esp * *
ip filter 200082 pass * 10.11.0.1 udp * 4500
ip filter 200083 pass * 10.11.0.1 udp * 50
ip filter 200084 pass 210.173.160.57 * udp * ntp
ip filter 200098 reject-nolog * * established
ip filter 200099 pass * * * * *
ip filter dynamic 200080 * * ftp
ip filter dynamic 200081 * * domain
ip filter dynamic 200082 * * www
ip filter dynamic 200083 * * smtp
ip filter dynamic 200084 * * pop3
ip filter dynamic 200085 * * submission
ip filter dynamic 200098 * * tcp
ip filter dynamic 200099 * * udp
nat descriptor type 1000 masquerade
nat descriptor address outer 1000 22.33.44.5/32
nat descriptor masquerade static 1000 1 10.11.0.1 udp 500
nat descriptor masquerade static 1000 2 10.11.0.1 esp
nat descriptor masquerade static 1000 3 10.11.0.1 udp 4500
ipsec use on
ipsec auto refresh on
syslog notice on
dhcp service server
dhcp server rfc2131 compliant except remain-silent
dhcp scope 1 10.11.0.2-10.11.0.191/24
dns server 12.22.33.4

レムシステムでは、ブログで紹介した設定ができない場合や、利用中のサーバー・ネットワークについての相談を受け付けています。利用中のシステムやセットアップでお困りの点がございましたら、お気軽にご相談ください。

メールでのお問い合わせ

メールフォームからシステムの
知りたいことや問題点をお問い合わせ

メールで問い合わせる

電話でのお問い合わせ

電話でお気軽にお問い合わせください
(受付時間:平日10:00〜18:00)

053-525-7357

  • この記事を書いた人
  • 最新記事
レムシステム

小村定

SIerでIT系インフラの設計と構築を経験したのちに独立、「レムシステム株式会社」を設立する。インフラ系エンジニア歴20年の経験を活かしてITに関わる課題解決や効率化に取り組む日々を送っている。

Copyright© レムシステム エンジニアブログ , 2019 All Rights Reserved.