2014年4月29日火曜日

VyOSでAzureにVPN接続

AzureにVPN接続するために、Vyattaを使おうとしていたのですが、去年の今頃から更新が止まっていることに気づきました
現在はforkして、VyOSが誕生しています。

インストール方法も、コマンド体系も、Vyattaのノウハウは流用できるのがうれしいですね。
コードネームは元素名になっているようで、現在は水素(Hydrogen)です。次のリリースはヘリウム(Helium)が1.1.0としてリリースされるようです。

2014/04/28時点で、VyOSのホームページからHydrogenとして1.0.2がダウンロード可能です。

さてVyattaを買収したBroadcomのコミュニティページでは、Microsoft AzureへのVPN接続設定が2014年4月3日に公開されています。
それまでは、見様見真似でconfigを書いていたのですが、VPN接続自体はできるもの通信が疎通いませんでしたので、今回これを利用してconfigを見直すます。
で、以前書いていたもの(vyatta-config-20140407.txt)、Broadcomのコミュニティページで公開されているものを参考に書きなおしたもの(vyos-config.txt)のdiff(Windowsのfcコマンド)を取ってみたので、VPN部分だけを下記に記載します。

***** vyos-config.txt
ipsec {
esp-group Azure {
compression disable
***** VYATTA-CONFIG-20140407.TXT
ipsec {
esp-group azure {
compression disable
*****

***** vyos-config.txt
proposal 1 {
encryption aes256
hash sha1
***** VYATTA-CONFIG-20140407.TXT
proposal 1 {
encryption aes128
hash sha1
*****

***** vyos-config.txt
}
ike-group Azure {
lifetime 28800
proposal 1 {
dh-group 2
encryption aes256
hash sha1
***** VYATTA-CONFIG-20140407.TXT
}
ike-group azure {
lifetime 28800
proposal 1 {
dh-group 2
encryption aes128
hash sha1
*****

***** vyos-config.txt
ipsec-interfaces {
interface eth0

}
***** VYATTA-CONFIG-20140407.TXT
ipsec-interfaces {
interface pppoe1

}
*****

***** vyos-config.txt
}
site-to-site {
***** VYATTA-CONFIG-20140407.TXT
}
nat-traversal enable
site-to-site {
*****

***** vyos-config.txt
}
connection-type initiate
default-esp-group Azure
description "Azure cloud Virtual Network Gateway"
ike-group Azure
local-address 192.168.1.254
***** VYATTA-CONFIG-20140407.TXT
}
connection-type respond
default-esp-group azure
description "Azure cloud Virtual Network Gateway"
ike-group azure
local-address 192.168.1.254
*****

※"default-esp-group"と、"ike-group"の最初の文字が大文字なのは大勢に影響ないので無視してください。
これを見るに、以前書いていたもの(vyatta-config-20140407.txt)は、下記の違いによりAzureのVPN接続経由で疎通していなかったと推測しました。

  1. ipsec-interfacesでデバイスとして存在しないものを指定している。

  2. nat-traversalをenableにしている。

  3. connection-typeをrespondにしている。


ということで、動いているconfigを晒しておきます(ntpはもう少し整理すべきかも)。

interfaces {
ethernet eth0 {
address 192.168.1.254/24
hw-id 00:15:5d:01:0f:2b
}
ethernet eth1 {
address 192.168.3.1/24
hw-id 00:15:5d:01:0f:2c
}
loopback lo {
}
}
protocols {
static {
route 0.0.0.0/0 {
next-hop 192.168.1.1 {
}
}
}
}
service {
ssh {
listen-address 192.168.1.254
listen-address 192.168.3.1
port 22
}
}
system {
config-management {
commit-revisions 20
}
console {
device ttyS0 {
speed 9600
}
}
domain-name sshzk2012r2.local
host-name vyos
login {
user vyos {
authentication {
encrypted-password パスワードが暗号化されて記載!
}
level admin
}
}
name-server 192.168.1.1
name-server 192.168.3.11
name-server 192.168.3.12
ntp {
server 0.pool.ntp.org {
}
server 1.pool.ntp.org {
}
server 2.pool.ntp.org {
}
server ntp.nict.jp {
}
}
package {
repository community {
components main
distribution hydrogen
url http://packages.vyos.net/vyos
}
}
syslog {
global {
facility all {
level notice
}
facility protocols {
level debug
}
}
}
time-zone Asia/Tokyo
}
vpn {
ipsec {
esp-group Azure {
compression disable
lifetime 3600
mode tunnel
pfs disable
proposal 1 {
encryption aes256
hash sha1
}
}
ike-group Azure {
lifetime 28800
proposal 1 {
dh-group 2
encryption aes256
hash sha1
}
}
ipsec-interfaces {
interface eth0
}
logging {
log-modes all
}
site-to-site {
peer AzureのVPNゲートウェイIPアドレス! {
authentication {
mode pre-shared-secret
pre-shared-secret IPSec事前共有キーを設定します!
}
connection-type initiate
default-esp-group Azure
description "Azure cloud Virtual Network Gateway"
ike-group Azure
local-address 192.168.1.254
tunnel 1 {
allow-nat-networks disable
allow-public-networks disable
local {
prefix 192.168.3.0/24
}
remote {
prefix 172.16.0.0/16
}
}
}
}
}
}


VPN接続ができた結果、下図の様なネットワーク構成となりました。
azure2lab-nw-diagram

RDP接続も問題なくできています。
azure2lab-rdp

ようやくここまで来たので、SC 2012 R2 OMからAzure上のVMを直接監視する設定も行ってみるつもりです。

0 件のコメント:

コメントを投稿