はじめに
Azure 仮想環境に対して、自宅から Site-to-Site VPN 接続 (IPSec) を行い、BGP を用いた動的ルーティングを試してみました。
以下、備忘録に残しておきます。
環境
環境は以下の通りです。今回は PoC 環境用途としてシンプルな環境になっていますが、前回の投稿(Azure と 自宅環境を Cisco ルータを用いて、NATトラバーサル経由で Site-to-Site VPN接続をしてみる)と比較して、以下を追加しています。
- BGP ルーティングによる経路交換
- IPSec / IKEv2
- Cisco IPSec Tunnel Interfaceの利用(Azure設定サンプルだとこちら)
自宅環境側設定
- NTT光ルータで Internet には NAT 変換を行う
- Cisco 891 ルータが Azure から見た Local Gateway として設定する
- Private IP経由での IPSec パススルー接続(NATトラバーサル)を行う
- Flet's ルータ側のポートマッピング機能にて、UDP:500、UDP:4500、ESP を Cisco ルータにポートマッピングする
Azure 環境設定
- Azure VPN Gateway の構成は以下の通り。
- Standard SKUを用いて、動的ルーティングを行う。
構成 | パラメータ |
---|---|
ゲートウェイの種別 | VPN |
VPNの種類 | ルートベース |
世代 | Generation1 |
SKU | VpnGw1 |
IKEプロトコル | IKEv2 |
#設定例
やってみる ~ Azure編 ~
-
Azure 側 Vnet にて、仮想ネットワークゲートウェイのための専用サブネットを作成する
- 仮想ネットワークゲートウェイの専用サブネットとして「GatewaySubnet」を作成します。
-
公式ドキュメントに「GatewaySubnet」に関する記述があるので参照のこと。
- サブネットのサイズについて、同じように調べられた方がいらっしゃるので、リンクを張っておきます。
- VPN のみの場合: /29
- ExpressRoute のみの場合: /28
- VPN / ExpressRoute を併用する場合: /27
- サブネットのサイズについて、同じように調べられた方がいらっしゃるので、リンクを張っておきます。
- 仮想ネットワークゲートウェイを作成する(※ 30-40分かかるので注意!)
- ローカルネットワークゲートウェイを作成する
- 仮想ネットワークゲートウェイでローカルネットワークゲートウェイの設定を行う
- (参考) Azure 推奨のルータ構成ファイルをダウンロードする
やってみる ~ VPNルータ (Cisco 891) ~
- Azure の VPNルータについては、公式ドキュメントに検証済みデバイス、および構成ガイドが掲載されています。
- デバイスによっては、Azure Portal から直接コンフィグファイルを落とせたりします。
- 詳細なサンプルは GitHub に Config Sample として掲載されていますので、最新情報をWatchしておいた方がよさそうです。
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
!
! ローカルの DHCP 設定
ip dhcp pool MyHome
network 10.16.0.0 255.255.0.0
dns-server 8.8.8.8
lease 7
!
!
! IKEv2 Proposal 設定
crypto ikev2 proposal azure-proposal-MyHome_BGP
encryption aes-cbc-256 aes-cbc-128
integrity sha1 sha256
group 2
!
! IKEv2 Policy 設定
crypto ikev2 policy azure-policy-MyHome_BGP
proposal azure-proposal-MyHome_BGP
!
! IKEv2 Keyring 設定
crypto ikev2 keyring azure-keyring-MyHome_BGP
peer (Azure仮想ネットワークゲートウェイのIPアドレス)
address (Azure仮想ネットワークゲートウェイのIPアドレス)
pre-shared-key (Pre-Shared Key)
!
!
!
crypto ikev2 profile azure-profile-MyHome_BGP
match address local interface FastEthernet0
match identity remote address (Azure仮想ネットワークゲートウェイのIPアドレス) 255.255.255.255
authentication remote pre-share
authentication local pre-share
keyring local azure-keyring-MyHome_BGP
lifetime 28800
dpd 10 5 on-demand
!
!
!
ip ssh version 2
!
!
!
crypto ipsec transform-set azure-ipsec-proposal-set esp-aes 256 esp-sha256-hmac
mode tunnel
!
crypto ipsec profile azure-ipsec-profile-MyHome_BGP
set security-association lifetime kilobytes 102400000
set transform-set azure-ipsec-proposal-set
set ikev2-profile azure-profile-MyHome_BGP
!
!
!
! Tunnel インターフェース設定(192.168.11.254はルータのFastEthernet0)
interface Tunnel100
ip address 10.16.254.1 255.255.255.254
ip tcp adjust-mss 1350
load-interval 30
tunnel source 192.168.11.254
tunnel mode ipsec ipv4
tunnel destination (Azure仮想ネットワークゲートウェイのIPアドレス)
tunnel protection ipsec profile azure-ipsec-profile-MyHome_BGP
!
!
interface FastEthernet0
description *** To Internet ***
ip address 192.168.11.254 255.255.255.0
ip tcp adjust-mss 1350
load-interval 30
duplex auto
speed auto
no cdp enable
!
interface GigabitEthernet0
description *** Home Hub ***
switchport access vlan 11
no ip address
no cdp enable
spanning-tree portfast
!
interface GigabitEthernet1
description *** Home Hub ***
switchport access vlan 11
no ip address
no cdp enable
! (以下省略)
!
! (オンプレ側vLANネットワーク)
interface Vlan11
description *** VPN localside ***
ip address 10.16.0.1 255.255.255.0
!
!
! (BGP設定 10.4.254.94はAzureのBGP広報先)
router bgp 65050
bgp log-neighbor-changes
neighbor 10.4.254.94 remote-as 65515
neighbor 10.4.254.94 ebgp-multihop 255
neighbor 10.4.254.94 update-source Tunnel100
!
address-family ipv4
network 10.16.0.0 mask 255.255.255.0
neighbor 10.4.254.94 activate
exit-address-family
!
!
! (BGP Peerをtunnnel先に向ける)
ip route 0.0.0.0 0.0.0.0 192.168.11.1
ip route 10.4.254.94 255.255.255.255 Tunnel100
!
経路情報が交換されているかを確認する
- 設定が無事完了すると、Azure側、および Cisco ルータ側でBGPによる経路交換の情報が確認できます。
- Azure側
- Cisco側
- show ip route
c891home#show ip route
Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2
i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
ia - IS-IS inter area, * - candidate default, U - per-user static route
o - ODR, P - periodic downloaded static route, H - NHRP, l - LISP
a - application route
+ - replicated route, % - next hop override
Gateway of last resort is 192.168.11.1 to network 0.0.0.0
S* 0.0.0.0/0 [1/0] via 192.168.11.1
10.0.0.0/8 is variably subnetted, 9 subnets, 4 masks
S 10.4.0.0/16 is directly connected, Tunnel100
B 10.4.1.0/24 [20/0] via 10.4.254.94, 01:17:58
B 10.4.2.0/24 [20/0] via 10.4.254.94, 01:17:58
B 10.4.254.0/24 [20/0] via 10.4.254.94, 01:17:58
S 10.4.254.94/32 is directly connected, Tunnel100
C 10.16.0.0/24 is directly connected, Vlan11
L 10.16.0.1/32 is directly connected, Vlan11
C 10.16.254.0/31 is directly connected, Tunnel100
L 10.16.254.1/32 is directly connected, Tunnel100
192.168.11.0/24 is variably subnetted, 2 subnets, 2 masks
C 192.168.11.0/24 is directly connected, FastEthernet0
L 192.168.11.254/32 is directly connected, FastEthernet0
c891home#
- show ip bgp neighbor
c891home#show ip bgp neighbors
BGP neighbor is 10.4.254.94, remote AS 65515, external link
BGP version 4, remote router ID 10.4.254.94
BGP state = Established, up for 01:18:47
Last read 00:00:37, last write 00:00:21, hold time is 180, keepalive interval is 60 seconds
Neighbor sessions:
1 active, is not multisession capable (disabled)
Neighbor capabilities:
Route refresh: advertised and received(new)
Four-octets ASN Capability: advertised and received
Address family IPv4 Unicast: advertised and received
Address family IPv6 Unicast: received
Graceful Restart Capability: received
Remote Restart timer is 120 seconds
Address families advertised by peer:
IPv4 Unicast (was not preserved
Enhanced Refresh Capability: advertised
Multisession Capability:
Stateful switchover support enabled: NO for session 1
Message statistics:
InQ depth is 0
OutQ depth is 0
Sent Rcvd
Opens: 1 1
Notifications: 0 0
Updates: 2 1
Keepalives: 89 91
Route Refresh: 0 0
Total: 92 93
Default minimum time between advertisement runs is 30 seconds
For address family: IPv4 Unicast
Session: 10.4.254.94
BGP table version 11, neighbor version 11/0
Output queue size : 0
Index 5, Advertise bit 0
5 update-group member
Slow-peer detection is disabled
Slow-peer split-update-group dynamic is disabled
Sent Rcvd
Prefix activity: ---- ----
Prefixes Current: 1 3 (Consumes 240 bytes)
Prefixes Total: 1 3
Implicit Withdraw: 0 0
Explicit Withdraw: 0 0
Used as bestpath: n/a 3
Used as multipath: n/a 0
まとめ
Azure へのVPN接続についてまとめてみました。VPNテストは環境を作るのが大変ですが、NATトラバーサルが普通に使えるので、事前接続試験などを検討されている方は何かの参考にしていただけたらと思います。
*本稿は、個人の見解に基づいた内容であり、所属する会社の公式見解ではありません。また、いかなる保証を与えるものでもありません。正式な情報は、各製品の販売元にご確認ください。