はじめに
Azure Virtual WANが2018年9月にGAしていましたが、やっと検証する時間が取れましたのでポストします。
誤解を恐れずにAzure Virtual WANの事を整理すると既存のAzure VPN Gatewayを使いやすくパッケージ化したものです。
AzureにあるVirtual Networkへの接続にはVirtual Network Peeringを使っているのですが、この辺の接続の操作もAzure Virtual WANの中のメニューから1発で設定できるため、オペレータの操作が簡単になります。
オンプレミス側のルータがVirtual WANの対応機器の場合、Virtual WANへの接続設定が自動で行えるという機能もあります。
今回は以下のような構成で、オンプレミス側のLANからAzure Virtual WANを利用してAzure仮想ネットワーク上のLinux仮想マシンにつなげてみます。
構築の流れ
主な構築の流れは以下のとおりです。
- Virtual WANリソースの作成
- ハブの作成
- VPNサイトの作成
- VPNサイトをハブに関連付け
- Azure仮想ネットワーク及び仮想マシンを作成
- Azure仮想ネットワークをハブにピアリング
- VPN構成のダウンロード
- オンプレルータの設定
Virtual WANリソースの作成
Azureポータルから「+リソースの作成」でフィルタ項目に「wan」と入力して、一覧から「Virtual WAN」を選択して作成します。
名前とリソースグループは適当に選択します。
ハブの作成
Virtual WANリソースのメニューから「ハブ」を選んで作成します。
この際にリージョンの指定を行いますが、本記事執筆時点(2018/12/19)では以下の制限があります。
- 複数のハブを作成しても相互接続できない
- Azure仮想ネットワークとのピアリングは同一リージョンでないとだめ(グローバルVNETピアリングが使えない)
他にハブ自身にもネットワーク空間を割り当てる必要があるので、アドレス設計は慎重に。
こちらはVPNゲートウェイを内部的に作成するため、完了までに30分くらいかかります。
VPNサイトの作成
Virtual WANリソースのメニューから「VPNサイト」を選んで作成します。
名前は適当に、パブリックIPアドレスにはオンプレミスのルータのWAN側アドレスを指定します。
プライベートアドレス空間もオンプレのものを指定します。BGPを使わない場合は疎通させたいオンプレ側のプライベートアドレスを全てCIDR形式で登録します。
今回は詳細設定項目のBGPは無効状態のまま、デバイス情報も特に指定せずに作成します。
VPNサイトをハブに関連付け
VPNサイト一覧から「+新しいハブの関連付け」にて作成したVPNサイトをハブに関連付けします。
この際に「PSK」の指定があるので、適当な文字列を入力します。こちらの値はオンプレルータ側のVPN接続設定でも利用します。
Azure仮想ネットワーク及び仮想マシンを作成
いつもの手順で仮想ネットワークと仮想マシンを作成します。今回は仮想マシンはCentOS 7.5を利用しました。
仮想ネットワークのアドレス空間は192.168.0.0/24で作成します。オンプレ、Virtual WANのハブのアドレス空間と重複しないように注意します。
Azure仮想ネットワークをハブにピアリング
Virtual WANリソースのメニューから「仮想ネットワーク接続」を選んで作成します。
「+接続の追加」から先に作成した仮想ネットワークをハブに関連付けます。
仮想ネットワークとハブが同一リージョンでないと関連付けできないので注意してください。
VPN構成のダウンロード
Virtual WAN概要ブレードから「↓VPN構成をダウンロードする」からオンプレ側ルータに設定する設定ファイル(json)をダウンロードします。
内容の例は以下の通り
[
{
"configurationVersion": {
"LastUpdatedTime": "2018-12-18T02:42:14.6153434Z",
"Version": "040a8a3e-19f9-4a24-b4b9-367b558636c8"
},
"vpnSiteConfiguration": {
"Name": "Kita-Shinagawa",
"IPAddress": "XX.XX.XX.XX"
},
"vpnSiteConnections": [
{
"hubConfiguration": {
"AddressSpace": "192.168.200.0/24",
"Region": "Japan East",
"ConnectedSubnets": [
"192.168.0.0/24"
]
},
"gatewayConfiguration": {
"IpAddresses": {
"Instance0": "40.XX.XX.139",
"Instance1": "40.XX.XX.124"
}
},
"connectionConfiguration": {
"IsBgpEnabled": false,
"PSK": "hoehoehoehoe",
"IPsecParameters": {
"SADataSizeInKilobytes": 102400000,
"SALifeTimeInSeconds": 3600
}
}
}
]
}
]
オンプレルータで設定するときに必要な情報としては、vpnSiteConnections.gatewayConfiguration.Instance0 と vpnSiteConnections.connectionConfiguration.PSK あたりでしょうか。
オンプレルータの設定
今回はYAMAHA RTX810を使用します。既にPPPoEでインターネットへの接続は済んでいる状態を想定しています。
AzureへIKEv2でSite to Site接続するconfig例は「Microsoft AzureとVPN(IPsec IKEv2)接続するルーターの設定 : コマンド設定」を参考に作成しました。
以下はRTX810への追加configです。
IPアドレスなどは適宜修正してください。
tunnel select 1
ipsec tunnel 1
ipsec sa policy 1 1 esp aes256-cbc sha256-hmac anti-replay-check=off
ipsec ike version 1 2
ipsec ike duration child-sa 1 27000
ipsec ike duration ike-sa 1 28800
ipsec ike group 1 modp1024
ipsec ike keepalive log 1 off
ipsec ike keepalive use 1 on rfc4306
ipsec ike local address 1 192.168.XXX.1
ipsec ike local name 1 XX.XX.XX.XX ipv4-addr
ipsec ike nat-traversal 1 on
ipsec ike message-id-control 1 on
ipsec ike child-exchange type 1 2
ipsec ike pre-shared-key 1 text hoehoehoehoe
ipsec ike remote address 1 40.81.XX.XX
ipsec ike remote name 1 40.81.XX.XX ipv4-addr
ipsec ike negotiation receive 1 off
ip tunnel tcp mss limit auto
tunnel enable 1
ipsec auto refresh on
p route 192.168.0.0/24 gateway tunnel 1
こちらをRTX810に流し込むことでしばらく待つとVPN接続が完了します。
接続確認
オンプレ拠点のPCからAzure仮想マシンにpingを飛ばしてみます。
katakura@LENOVO2018X1:~$ ping -c 3 192.168.0.4
PING 192.168.0.4 (192.168.0.4) 56(84) bytes of data.
64 bytes from 192.168.0.4: icmp_seq=1 ttl=62 time=6.16 ms
64 bytes from 192.168.0.4: icmp_seq=2 ttl=62 time=6.22 ms
64 bytes from 192.168.0.4: icmp_seq=3 ttl=62 time=6.13 ms
sshも無論大丈夫
katakura@LENOVO2018X1:~$ ssh azureuser@192.168.0.4
Password:
Last login: Tue Dec 18 02:57:24 2018 from xxxxx.i-revonet.jp
[azureuser@TokyoVM01 ~]$
おわりに
特に今回試した範囲ですと、オンプレ機器のconfig自動設定も出来ていない他、VPNのActive/Active接続も行っていないため、今ひとつイケていない感じですが(そもそもAzure Virtual WANの特徴的な機能を使い切っていない)、構築の流れは理解できるかと思います。
しばらくしたらconfig自動設定に対応した機器を借りられそうですので、その際に追加で検証してみたいと思います。