SUMIT.JP

IT Outsourcing Company

Microsoft Azure 仮想ネットワークの接続設定 〜 StrongSwanを使った動的ルーティングゲートウェイ接続 〜

      2014/07/28

Microsoft Azure 仮想ネットワーク

StrongSwanを使った「動的ルーティング」サイト間接続

OpenSwanによる「静的ルーティング」でのサイト間VPN接続ができることは確認しました。

現実的に仮想ネットワークを利用する事を想定した場合、マルチサイトでVPN接続できなければ導入は難しいと思います。

マルチサイトVPNを行うために、StongSwanを用い「動的ルーティング」でのVPN接続を構成します。

マルチサイトVPNの要件

  • 「動的ルーティング」でのゲートウェイ作成が必要(IKEv2で接続できること)
  • 管理ポータルでは構成できない(PowerShellコマンド等が必要)

VPNデバイス情報(About VPN Device for Virtual Network

  • OpenswanはDynamic Routingに対応していない

(実際にOpenSwanを使って「動的ルーティング」ゲートウェイに接続できるかを試行してみましたが接続はできませんでした)

StrongSwan

Microsoft Azureの動的ゲートウェイで接続可能なVPNサービスを検索してみると、StrongSwanでMicrosoft Azure 仮想マシンへの「動的ルーティング」でVPN接続ができるたとのメールアーカイブが英文で見つかりましたので試行しました。

パッケージ・インストール

StrongSwanをCentOS6.5へインストールする必要がありますが、StrongSwanのサイトでにRPMパッケージがありますがEPELにもパッケージが用意されているとの事でしたのでyumでインストール可能なEPELパッケージを使います。

epelパッケージインストール
[root@vpngate] # wget http://ftp-srv2.kddilabs.jp/Linux/distributions/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm
[root@vpngate] # rpm –ivh epel-release-6-8.noarch.rpm
Strongswanインストール
[root@vpngate] # yum –enablerepo=epel install strongswan

 

Microsoft Azure仮想ネットワーク構成変更

既に静的ルーティングでゲートウェイを構成済みのため、ひとまずゲートウェイを切断・削除した後にゲートウェイを「動的ルーティング」で作成し直しします。

(かなり長いこと待ちます)

図 1:「動的ルーティング」でのゲートウェイ作成

 

ゲートウェイを再作成するとゲートウェイアドレスが変更になります。

また共有キーも変更となりますので、キーの管理で共有キー(PSK)を確認します。

 

StrongSwanコンフィギュレーション・ファイル

OpenSwanとコンフリクトしないように設定されているようでディレクトリ構成が若干違います。

設定ファイルディレクトリ

/etc/strongswan
/etc/strongswan/ipsec.secrets  :共有キー
/etc/strongswan/ipsec.conf     :接続設定

 

設定例:/etc/strongswan/ipsec.conf

conn Azure
    type          = tunnel
    authby        = secret
    left          = 192.168.32.2
    leftid        = XXX.XXX.XXX.XXX(プライベート側グローバルIPアドレス)
    leftsourceip  = %config
    leftsubnet    = 192.168.32.0/24
    leftauth      = psk
    lefthostaccess= yes
    right         = YYY.YYY.YYY.YYY(AzureグローバルIPアドレス)
    rightsubnet   = 192.168.16.0/20
    rightauth     = psk
    forceencaps   = yes
    reauth        = no
    closeaction   = clear
    dpdaction     = clear
    keyexchange   = ikev2
    mobike        = no
    ike           = aes256-sha1-modp1024,aes128-sha1-modp1024
    ikelifetime   = 28800s
    esp           = aes256-sha1,aes128-sha1-modp1024
    keylife       = 3600s
    keyingtries   = 1
    dpdtimeout    = 10
    dpddelay      = 3
    auto          = start

 

共有キー設定

XXX.XXX.XXX.XXX YYY.YYY.YYY.YYY: PSK "vnxzaM2fXegb4I4ukMsHt9iABJyP7gO7"

 

接続確認

StrongSwan起動

StrongSwanを起動して接続の確認をします。

[root@vpngate] # /etc/rc.d/init.d/strongswan start
[root@vpngate] # strongswan statusall
tatus of IKE charon daemon (strongSwan 5.1.3, Linux 2.6.32-431.1.2.0.1.el6.x86_64, x86_64):
  uptime: 9 hours, since Jun 20 02:28:26 2014
  malloc: sbrk 405504, mmap 0, used 322864, free 82640
  worker threads: 11 of 16 idle, 5/0/0/0 working, job queue: 0/0/0/0, scheduled: 216
  loaded plugins: charon curl aes des rc2 sha1 sha2 md4 md5 random nonce x509 revocation constraints pubkey pkcs1 pkcs8 pgp dnskey sshkey pem fips-prf gmp xcbc cmac hmac attr kernel-netlink resolve socket-default farp stroke updown eap-identity eap-md5 eap-gtc eap-mschapv2 eap-tls eap-ttls eap-peap xauth-generic xauth-eap xauth-pam dhcp
Listening IP addresses:
  192.168.32.2
Connections:
   azure:  192.168.32.2...YYY.YYY.YYY.YYY  IKEv2, dpddelay=3s
   azure:   local:  [XXX.XXX.XXX.XXX] uses pre-shared key authentication
   azure:   remote: [YYY.YYY.YYY.YYY] uses pre-shared key authentication
   azure:   child:  192.168.32.0/24 === 192.168.16.0/20 TUNNEL, dpdaction=clear
Security Associations (1 up, 0 connecting):
   azure[107]: ESTABLISHED 0 seconds ago, 192.168.32.2[XXX.XXX.XXX.XXX]...YYY.YYY.YYY.YYY[YYY.YYY.YYY.YYY]
   azure[107]: IKEv2 SPIs: 7a25aedf67a0b51f_i b0f4a7a0bc535a72_r*, rekeying in 7 hours
   azure[107]: IKE proposal: AES_CBC_256/HMAC_SHA1_96/PRF_HMAC_SHA1/MODP_1024
   azure{143}:  INSTALLED, TUNNEL, ESP in UDP SPIs: c5b7b320_i 6b6023fe_o
   azure{143}:  AES_CBC_256/HMAC_SHA1_96, 0 bytes_i, 0 bytes_o, rekeying in 48 minutes
   azure{143}:   192.168.32.0/24 === 192.168.16.0/20 

 

Azureダッシュボード

うまくいけば、Azure側のダッシュボードが接続にかわります。

図 2:ダッシュボードでの接続確認

 

まとめ

OpenSwanとStrongSwanの設定は似ていますが、サポートしている構文に違いがいくつかありました。起動時にエラーメッセージが出ますので適宜コメントアウトしながら設定を調整しました。

シンプルなネットワーク構成において、StrongSwanを使ってサイト間VPN接続(動的ゲートウェイ)の接続確認をとることができました。

動的ルーティングを用いた、仮想ネットワーク間接続とマルチサイトVPN接続実験を行いたいともいます。

 

 - Microsoft Azure