はじめに
Azure 仮想環境に対して、初めて自宅から Site-to-Site VPN 接続(IPSec)してみましたので、備忘録に設定を残しておきます。
環境
環境は以下の通りです。今回は PoC 環境用途としてシンプルな環境になっています。
自宅環境
- Flet's ルータで Internet には NAT 変換を行う
- Cisco 891 ルータが Azure から見た Local Gateway として設定する
- Private IP経由での IPSec パススルー接続(NATトラバーサル)を行う
- Flet's ルータ側のポートマッピング機能にて、UDP:500、UDP:4500を Cisco ルータにマッピングする
Azure 環境
- Azure VPN Gateway の構成は以下の通り。基本最安価構成の PoC 環境としている。
- Basic SKUのため、今回は静的ルーティング (Static Route) によるルート設定になる。
構成 | パラメータ |
---|---|
ゲートウェイの種別 | VPN |
VPNの種類 | ポリシーベース |
世代 | Generation1 |
SKU | Basic |
IKEプロトコル | IKEv1 |
VPN Gateway 補足
- Azure VPN Gateway は作成するVPN GatewayのSKUサイズでパフォーマンスが変わる構成になっています。詳しくは公式ドキュメントを参照してください。
- 今回は評価環境目的のため、Basic サイズを選定していますが、Basic はサイズ変更が出来ない制約があります。
- 異なるSKUに変更する場合は、一度BasicのVPNゲートウェイを削除してやり直す必要あり。
- 今後、本番環境などに変更する場合は、Generation1/VpnGw1以降のSKUで設定した方が良いと思います。
やってみる ~ Azure 編 ~
-
Azure 側 Vnet にて、VPN ゲートウェイのための専用サブネットを作成する
- VPN ゲートウェイの専用サブネットとして「GatewaySubnet」を作成します。
-
公式ドキュメントに「GatewaySubnet」に関する記述があるので参照のこと。
- サブネットのサイズについて、同じように調べられた方がいらっしゃるので、リンクを張っておきます。
- VPN のみの場合: /29
- ExpressRoute のみの場合: /28
- VPN / ExpressRoute を併用する場合: /27
- サブネットのサイズについて、同じように調べられた方がいらっしゃるので、リンクを張っておきます。
-
VPN ゲートウェイを作成する(※ 30-40分かかるので注意!)
-
ローカルネットワークゲートウェイを作成する
-
Site-to-Site VPN (IPSec)設定を行う
- VPNゲートウェイの設定から、「接続」を選択し、Site-to-Site 接続のプロファイルを作成します。
- 対象のローカルネットワークゲートウェイ、IPSec Pre-Shared Key (共有キー)を設定します。
- 対抗先のVPNルータとのIPSec ピアが張られると、「接続済み」にステータスが変わります。
-
対抗先の静的ルートを設定する
やってみる ~ VPNルータ (Cisco 891) ~
- Azure の VPNルータについては、公式ドキュメントに検証済みデバイス、および構成ガイドが掲載されています。
- デバイスによっては、Azure Portal から直接コンフィグファイルを落とせたりします。
- 詳細なサンプルは GitHub に Config Sample として掲載されていますので、最新情報をWatchしておいた方がよさそうです。
- GitHubのサンプルをベースに、自宅のCisco891を設定してみました。
- 「1.1.1.1」はdummyで、Azure VPN GatewayのグローバルIPアドレスになります。
version 15.3
no service pad
service tcp-keepalives-in
service tcp-keepalives-out
service timestamps debug datetime localtime year
service timestamps log datetime localtime year
service password-encryption
service sequence-numbers
!
hostname c891home
!
!
logging buffered 512000
!
no aaa new-model
memory-size iomem 15
clock timezone JST 9 0
!
!
!
!
!
!
!
!
ip dhcp pool MyHome
network 10.16.0.0 255.255.0.0
default-router 10.16.0.1
lease 7
!
!
no ip bootp server
!
!
crypto isakmp policy 10
encr aes 256
authentication pre-share
group 2
lifetime 28800
crypto isakmp key testtest address 1.1.1.1
!
!
crypto ipsec transform-set azure-ipsec-set esp-aes 256 esp-sha-hmac
mode tunnel
!
!
!
crypto map azure-crypto-map 10 ipsec-isakmp
set peer 1.1.1.1
set security-association lifetime kilobytes 102400000
set transform-set azure-ipsec-set
match address 101
!
!
!
!
!
!
interface FastEthernet0
description *** Home Hub ***
ip address 192.168.11.254 255.255.255.0
ip tcp adjust-mss 1350
duplex auto
speed auto
crypto map azure-crypto-map
!
interface GigabitEthernet0
description *** Home Hub ***
switchport access vlan 11
no ip address
no cdp enable
spanning-tree portfast
!
~省略
interface Vlan1
no ip address
!
interface Vlan11
description *** VPN localside ***
ip address 10.16.0.1 255.255.0.0
!
!
ip dns server
ip route 0.0.0.0 0.0.0.0 192.168.11.1
!
no cdp run
!
access-list 101 permit ip 10.16.0.0 0.0.255.255 10.4.0.0 0.0.255.255 log-input
!
!
!
line con 0
no modem enable
line aux 0
line 3
modem InOut
speed 115200
flowcontrol hardware
line vty 0 4
access-class remoteaccess in
login
transport input all
!
end
- IPSec Site-Site VPNが確立すると、以下のようになります。
- pkts encaps / decaps で暗号化通信のパケット状況をチェックできます。
c891home#show crypto ipsec sa
(抜粋)
local ident (addr/mask/prot/port): (10.16.0.0/255.255.0.0/0/0)
remote ident (addr/mask/prot/port): (10.4.254.0/255.255.255.0/0/0)
current_peer 2.2.2.2 port 4500
PERMIT, flags={}
#pkts encaps: 86, #pkts encrypt: 86, #pkts digest: 86
#pkts decaps: 88, #pkts decrypt: 88, #pkts verify: 88
#pkts compressed: 0, #pkts decompressed: 0
#pkts not compressed: 0, #pkts compr. failed: 0
#pkts not decompressed: 0, #pkts decompress failed: 0
#send errors 0, #recv errors 0
local crypto endpt.: 192.168.11.254, remote crypto endpt.: 2.2.2.2
plaintext mtu 1422, path mtu 1500, ip mtu 1500, ip mtu idb FastEthernet0
current outbound spi: 0xB17D7BF2(2977790962)
PFS (Y/N): N, DH group: none
inbound esp sas:
spi: 0xE41B5685(3826996869)
transform: esp-256-aes esp-sha-hmac ,
in use settings ={Tunnel UDP-Encaps, }
conn id: 13, flow_id: Onboard VPN:13, sibling_flags 80000040, crypto map: azure-crypto-map
sa timing: remaining key lifetime (k/sec): (96859361/3506)
IV size: 16 bytes
replay detection support: Y
Status: ACTIVE(ACTIVE)
確認など
まとめ
Azure へのVPN接続についてまとめてみました。VPNテストは環境を作るのが大変ですが、NATトラバーサルが普通に使えるので、事前接続試験などを検討されている方は何かの参考にしていただけたらと思います。
*本稿は、個人の見解に基づいた内容であり、所属する会社の公式見解ではありません。また、いかなる保証を与えるものでもありません。正式な情報は、各製品の販売元にご確認ください。