SE(しがないエンジニア)のブログ

IT技術ネタ(クラウド・セキュリティ周り)が中心です!他雑記(お馬さん 他いろいろ)もあり。

AzureとVPN接続してみる(YAMAHA RTX-1210編)

Azureとオンプレの環境を接続する方法は?

Azure勉強中ですが、欲が出てくるとAzureとオンプレ拠点(私の場合は自宅ですが。笑)を結びたくなります。特にIaaSの延長線上という意味ではこの接続がカギになってきます。

cloud.nissho-ele.co.jp

タイトル内には「ExpressRoute」とキーワードがありますが、記事内には実際3つの方式はこんな感じです、という旨が記載されております。今回、私が検証した方法は「S2S(Site-to-Site) VPN」(一番お手軽?)ですが、「ExpressRoute」の場合はPaaS(とSaaS)環境の接続も可能です。企業の利用用途を検討した上でPaaSも必要となる場合は自ずと「ExpressRoute」が選択肢となります。勿論、他パターンと比較してもコストは高くなります。

料金 - ExpressRoute | Microsoft Azure

YAMAHA RTX-1210を利用して検証

我が家のTP-LinkルータではVPN検証が出来なかった為、表題にもあるYAMAHAルータを検証でお借りしました。ちなみに、参考となるページは下記の通りです。

Microsoft Azureの仮想ネットワーク(IPsec)を設定する

Microsoft AzureとVPN(IPsec IKEv2)接続するルーターの設定 : コマンド設定

参考例では固定IP前提のような形になっていましたが、自宅のUCOM(動的IP)でも検証は可能でした。まずは、1点目のリンクの事前準備を完了させましょう。途中、仮想ネットワークゲートウェイをデプロイするところがありますが、これは結構な時間がかかるので夜作業している場合は寝落ちしましょう。実際しました。笑

2点目のリンクに関しては自宅内環境に合わせて幾らかコマンドを変更しております。実際に通ったコマンドを参考例で載せます。なお、一度ルータを初期化した後にプロバイダ接続をDHCP形式で行い、IPフィルターの設定なし、NATディスクリプタの数字は200で設定されていることを前提とします。また、更なる補足でLAN2を利用してインターネットに出ていることとします。

#
# Microsoft AzureとVPN(IPsec IKEv2)接続するルーターの設定 : コマンド設定
#

#
# ルーターの設定
#

#
# ゲートウェイの設定
#
ip route 172.16.0.0/16 gateway tunnel 1

#
# WANインターフェースの設定
#(LAN2ポートを使用)
#
ip lan2 secure filter in 200003 200020 200021 200022 200023 200024 200025 200030 200032 200080 200081 200082
ip lan2 secure filter out 200013 200020 200021 200022 200023 200024 200025 200026 200027 200099 dynamic 200080 200081 200082 200083 200084 200085 200098 200099
ip lan2 nat descriptor 200

#
# VPN(IPsec)の設定
#
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.100.1
ipsec ike local name 1 (ルーターグローバルIPアドレス) 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 (事前共有鍵)
ipsec ike remote address 1 (Microsoft AzureのゲートウェイIPアドレス)
ipsec ike remote name 1 (Microsoft AzureのゲートウェイIPアドレス) ipv4-addr
ipsec ike negotiation receive 1 off
ip tunnel tcp mss limit auto
tunnel enable 1
ipsec auto refresh on

#
# フィルターの設定
#
ip filter 200000 reject 10.0.0.0/8 * * * *
ip filter 200001 reject 172.16.0.0/12 * * * *
ip filter 200002 reject 192.168.0.0/16 * * * *
ip filter 200003 reject 192.168.100.0/24 * * * *
ip filter 200010 reject * 10.0.0.0/8 * * *
ip filter 200011 reject * 172.16.0.0/12 * * *
ip filter 200012 reject * 192.168.0.0/16 * * *
ip filter 200013 reject * 192.168.100.0/24 * * *
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 * 192.168.100.0/24 icmp * *
ip filter 200031 pass * 192.168.100.0/24 established * *
ip filter 200032 pass * 192.168.100.0/24 tcp * ident
ip filter 200033 pass * 192.168.100.0/24 tcp ftpdata *
ip filter 200034 pass * 192.168.100.0/24 tcp,udp * domain
ip filter 200035 pass * 192.168.100.0/24 udp domain *
ip filter 200036 pass * 192.168.100.0/24 udp * ntp
ip filter 200037 pass * 192.168.100.0/24 udp ntp *
ip filter 200080 pass * 192.168.100.1 udp * 500
ip filter 200081 pass * 192.168.100.1 esp * *
ip filter 200082 pass * 192.168.100.1 udp * 4500
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の設定
#
nat descriptor type 200 masquerade
nat descriptor address outer 200 (ルーターグローバルIPアドレス)
nat descriptor masquerade static 200 1 192.168.100.1 udp 500
nat descriptor masquerade static 200 2 192.168.100.1 esp
nat descriptor masquerade static 200 3 192.168.100.1 udp 4500

コマンドが全て成功して通れば出来上がったTUNNELが接続状態になり、下記のようにAzure側のサブネットに対してpingが通るようになります。勿論、YAMAHAルータのセグメント内にもpingは飛び、インターネットに出ることも可能です。

f:id:btsn:20190718001218j:plain

世界が広がりましたね!接続としてはYAMAHAルータとAzure側VPNで下記のような形になっていれば問題ありません。

YAMAHAルータ】

f:id:btsn:20190718001643j:plain

【Azure側VPN】「接続中」➡「接続済み」になるまでラグがありました

f:id:btsn:20190718001831j:plain

今回はサブネットに対してpingが通るところまでをゴールとしてしまいましたが、実際はIaaSの延長線の環境をAzure上に構築する流れになると思います。眠い。。