SUMIT.JP

IT Outsourcing Company

Microsoft Azure 仮想ネットワークとプライベートネットワーク間接続 〜 OpenSwanの接続設定/静的ルーティング 〜

      2014/07/29

Microsoft Azure

OpenSwanの構成と仮想ネットワーク―プライベートネットワーク間の接続

Micosoft Azure側で仮想ネットワークの構成が完了しましたので、次はプライベートネットワーク側のVPNルータを構成します。

 

Linuxとは言ってもディストリビューションがたくさんありますので手慣れたディストリビューションを利用していただくのが良いとおもいます。ここではRedHat系のCentOSを用いた例を紹介しています。

ディストリビューション毎にパッケージインストールのコマンドが異なりますのでパッケージのインストールに関してはここでは割愛させていただければと思います。

VPNルータの構成

  • CentOS 6.5
  • OpenSwan

IPSecコンフィグレーションファイル

/etc/ipsec.conf

ディレクトリ:/etc/ipsec.conf

#
version 2.0

config setup
dumpdir=/var/run/pluto/
nat_traversal=yes
virtual_private=%v4:10.0.0.0/8,%v4:192.168.0.0/16,%v4:172.16.0.0/12
oe=off
protostack=netkey
nhelpers=0
plutostderrlog=/var/log/pluto

include /etc/ipsec.d/*.conf

 

/etc/ipsec.d/azure.conf

ディレクトリ:/etc/ipsec.d/azure.conf

# Azure.conf --- 
#
# History
# 2014/06/19 Initial
# ------------------------------------------------------------------------------
conn azure
    type        = tunnel
    authby      = secret
    left        = "192.168.32.2"
    leftid      = "XXX.XXX.XXX.XXX"
    leftsubnet  = "192.168.324"
    leftnexthop = %defaultroute
    right       = "23.23.23.23"
    rightsubnet = "192.168.16/20"
    auth        = esp
    keyexchange = ike
    ike         = aes256-sha1-modp1024
    ikelifetime = 28800s
    pfs         = no
    esp         = aes256-sha1
    salifetime  = 3600s
    keylife     = 3600s
    dpdtimeout  = 10
    dpddelay    = 3
    auto        = start
# ------------------------------------------------------------------------------
# End of conf...
# ------------------------------------------------------------------------------

共有鍵の確認

図 1:キー管理

 

キーの管理から共有鍵を確認します。

 

図 2:共有キー

共有キー(PSK)を確認してコンフィギュレーション・ファイルへ設定します。

 

共有キーの設定

ディレクトリ:/etc/ipsec.d/azure.secret

XXX.XXX.XXX.XXX 23.23.23.23: PSK "PWat2IVDjmgkruQAUUliKbaMtGMxWyX2"

※1、XXX.XXX.XXX.XXX:プライベート側グローバルIPアドレス

※2、23.23.23.23:Azure側グローバルIPアドレス

 

サービスの起動とログの確認

ディレクトリ:/etc/rc.d/init.d

ディレクトリ:/var/log

[root@VPNGate rc.d] # ipsec start
[root@VPNGate  log] # cat pluto
"azure" #9: STATE_QUICK_R2: IPsec SA established tunnel mode {ESP=<0x20995cba >0x5f80a948 xfrm=AES_256-HMAC_SHA2_256 NATOA=none NATD=YYYY.YYYY.YYYY.YYYY:4500 DPD=none}
"azure" #8: received Delete SA payload: replace IPSEC State #9 in 10 seconds
"azure" #8: received and ignored informational message
"azure" #8: the peer proposed: 192.168.250.0/24:0/0 -> 192.168.16.0/20:0/0
"azure" #10: responding to Quick Mode proposal {msgid:02000000}
"azure" #10:     us: 192.168.32.0/24===192.168.32.2 <192.168.32.2 >[XXX.XXX.XXX.XXX,+S=C]---192.168.32.1
"azure" #10:   them: YYYY.YYYY.YYYY.YYYY<YYYY.YYYY.YYYY.YYYY >[+S=C]===192.168.16.0/20
"azure" #10: keeping refhim=4294901761 during rekey
"azure" #10: transition from state STATE_QUICK_R0 to state STATE_QUICK_R1
"azure" #10: STATE_QUICK_R1: sent QR1, inbound IPsec SA installed, expecting QI2
"azure" #10: Dead Peer Detection (RFC 3706): not enabled because peer did not advertise it
"azure" #10: transition from state STATE_QUICK_R1 to state STATE_QUICK_R2
"azure" #10: STATE_QUICK_R2: IPsec SA established tunnel mode {ESP=0xa633921b xfrm=AES_256-HMAC_SHA2_256 NATOA=none NATD=YYYY.YYYY.YYYY.YYYY:4500 DPD=none}

 

コンフィギュレーション・ファイルipsec.confで指定したパスにログが出力されます:plutostderrlog=/var/log/pluto

エラーがなく接続できているようならばAzureのダッシュボードで接続を確認します。

 

接続の確認

Azureダッシュボードの確認

 

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

ダッシュボードの接続が確認できるまでは少し時間がかかると思いますが、VPN接続するとゲートウェイがつながります。

 

仮想マシンの設置

仮想マシンの構成方法は基本的にはWebサービス等で構成する方法と同じです、構成する場所を仮想ネットワークを指定することです。

図 4:仮想マシン構成

仮想マシンを構成します。

図 5:仮想マシン構成(仮想ネットワーク)

先ほど作成した仮想ネットワーク名(AzureDC-SEA1)とサブネット(Subnet-1)を指定して仮想マシンを構成しています。

図 6:仮想マシン構成

チェックをすると、仮想マシンの作成が始まります。

 

しば~~~~~~らく待つ

 

図 7:仮想マシン ダッシュボード

仮想マシンの構成が完了したら、接続を選択してRDP接続します。

グローバルアドレスでの接続となります。

図 8:仮想マシン ランゲージパックインストール

初期は英語OSとなっていますので、ランゲージパックを適用して日本語設定に変更します。

ここは一番時間がかかります・・・

図 9:日本語化された仮想マシン

日本語設定完了!

RDP接続

疎通の確認

疎通確認するためにはプライベートネットワークのデフォルトルート指定をしているルータで経路情報を追加するかアクセスするクライアントに経路情報を追加する必要があります。

今回はテストですのでクライアントにrouteコマンドで経路情報を追加してテストしました。

経路:192.168.248.XXX -> 192.168.248.1 (redirect) -> 192.168.248.2 -> 192.168.47.1 -> 192.168.32.4

C:\> route -4 add 192.168.32.0 mask 255.255.240.0 192.168.248.2

 

Pingを確認するためには、Windowsサーバ側でICMPを通すようにセキュリティポリシーを変更する必要はあります。

図 10:疎通確認

 

RDP接続確認

PingはOSIモデルで言えばレイヤー3(ネットワーク層)の接続確認となりますので、アプリケーション層までの通信を確認するにはRDP接続で確認するのが手軽でしょう。

 

図 11:RDPを使って仮想ネットワーク内のサーバに接続

 

まとめ

スタティック・ルーティングでのプライベートネットワークとMicrosoft Azure仮想ネットワーク間のサイト間接続は確認できました、ネットワーク接続はサイト間は点と点での接続となります。

しかしながら、静的ルーティングでは2拠点以上ある場合には接続ができないため、現実的にはマルチサイト接続を構成する必要があると思います。

Microsoft Azureのドキュメントによりますと、「動的ルーティング」を用いることでマルチサイトVPNを構成できるとのことです。

残念ながら、OpenSwanではMicrosoft Azureの「動的ルーティング」に対応していないため異なるVPNアプリケーションを用いることが必要です。

 - Microsoft Azure