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を直接監視する設定も行ってみるつもりです。

2014年4月28日月曜日

System Center 2012 R2 App Controllerのインストール、VMMの関連付け

System Center 2012 R2 App ControllerでAzureを管理してみたいので、これまた遅まきながらセットアップしていきます。
システム要件は、
System Requirements for System Center 2012 R2 App Controller
に情報があります。

システム要件に基づき、IISの役割及び役割サービスをインストールしていきます(しかしこれは、後で全く徒労に終わりました)。
sc2012r2ac-install01
sc2012r2ac-install02
sc2012r2ac-install03
sc2012r2ac-install04
sc2012r2ac-install05
sc2012r2ac-install06
sc2012r2ac-install07
sc2012r2ac-install08
sc2012r2ac-install09
sc2012r2ac-install10

ここからApp Controllerをインストールしていきます(半分、パラメーター設計のためにさらしているようなものですね(^^;)。
App Controllerのメディアをセットし、インストール画面が表示されたら、[インストール]をクリックします。
sc2012r2ac-install12

プロダクトキーを入力し、[次へ]ボタンを押します。
sc2012r2ac-install13

[使用許諾契約書に同意します]をチェックし、[次へ]ボタンを押します。
sc2012r2ac-install14

いくつかのドキュメントに記載がありましたが、ここでIISの役割が自動的にインストールされます。なので事前にIISをインストールするのは徒労でした。[インストール]ボタンを押します。
sc2012r2ac-install15

[次へ]ボタンを押します。
sc2012r2ac-install16

ここで、App Controller用のサービスアカウントが必要だとわかりましたので、作ります。
sc2012r2ac-install17
sc2012r2ac-install18
sc2012r2ac-install19

作成したサービスアカウントを指定し、[次へ]ボタンを押します。
sc2012r2ac-install20

今回は[自己署名証明書を生成する]がチェックされた状態で[次へ]ボタンを押します。
証明機関があるようであれば、その証明書を使うのがベターではあります。
sc2012r2ac-install21

別サーバーに構築済みのSQL Serverを指定します。ここでちょっと変な挙動があり、サーバー名を入力した時点でインスタンス名が消えてしまい[次へ]ボタンが押せなくなることがありました。試行錯誤したところ画面のようになりましたので、[次へ]ボタンを押します。
sc2012r2ac-install22

ここは設定変更せず、[次へ]ボタンを押します。
sc2012r2ac-install23

[インストール]ボタンを押します。
sc2012r2ac-install24

待つことしばし。インストールが完了しました。[完了]ボタンを押して、ウィザードを閉じます。
sc2012r2ac-install25

App Controllerの管理画面(Webコンソール)にアクセスします。自己署名証明書を指定しましたので、おなじみの画面が表示されます。[このサイトの閲覧を続行する]をクリックして先に進みます(正規の証明書を使えばこの画面は表示されませんね)。
sc2012r2ac-install26

Sliverlightのインストール画面になりましたので、インストールを進めます(余談ですが、将来バージョンでSilverlightを使わなくなるのでしょうかね?!)。
sc2012r2ac-install27
sc2012r2ac-install28
sc2012r2ac-install29
sc2012r2ac-install30

Sliverlightがインストール完了しましたので、漸くサインインの画面が表示されました。
sc2012r2ac-install31

サインインしてみました。まだ何も関連付けされていないので全く何もありません。
sc2012r2ac-install32

まずはVMMを関連付けます。Overviewの画面からも設定可能でしたが、Settings→Connectionsの順で展開し、[Connet]→[SCVMM]をクリックします。
sc2012r2ac-install33

構築済みなSCVMMの情報を設定し、[OK]ボタンを押します。
sc2012r2ac-install34

VMMの関連付けが完了しました。
sc2012r2ac-install35

Overviewの画面に戻り、
sc2012r2ac-install36

Jobsをクリックすると関連付けのジョブを確認できました。
sc2012r2ac-install38

次にVirtual Machinesをクリックしてみましたが何も出ません。
sc2012r2ac-install37
で、以前SP1を試したときに、VMMでクラウドの設定が必要なことを思い出しました。

ということで、VMMでクラウドを作成します。
クラウドの作成ウィザードを起動、名前を設定し、[次へ]ボタンを押します。
sc2012r2vmm-cloud01

[すべてのホスト]をチェックし、[次へ]ボタンを押します。
sc2012r2vmm-cloud02

ラボとゲートウェイ用の仮想スイッチを両方選択し、[次へ]ボタンを押します。
sc2012r2vmm-cloud03

ロードバランサーは指定せず。[次へ]ボタンを押します。
sc2012r2vmm-cloud04

VIPテンプレートは指定せず。[次へ]ボタンを押します。
sc2012r2vmm-cloud05

ポート分類は指定せず。[次へ]ボタンを押します。
sc2012r2vmm-cloud06

[Local Storage]をチェックし、[次へ]ボタンを押します。
sc2012r2vmm-cloud07

ライブラリを二つ追加し、[次へ]ボタンを押します。
sc2012r2vmm-cloud08

容量の設定は変更せず。[次へ]ボタンを押します。
sc2012r2vmm-cloud09

機能プロファイルで[Hyper-V]をチェックし、[次へ]ボタンを押します。
sc2012r2vmm-cloud10

[完了]ボタンを押します。
sc2012r2vmm-cloud11

ジョブ画面で完了を確認します。
sc2012r2vmm-cloud12

作成したクラウドに対してVMを新規作成します。

ここまでやるとApp Controllerでいろいろ見えてきます。
作成したクラウドが表示されました。
sc2012r2ac-cloud01

作成したVMも表示されました。
sc2012r2ac-cloud-vm01
sc2012r2ac-cloud-vm02

Active Xだったと思うのですが、ブラウザ越しにコンソール接続できます。
IEのセキュリティ設定に追加します。
sc2012r2ac-cloud-vm03

ブラウザ越しにコンソールが接続できました。OSのインストール途中ですので、RDPではないことが確認できますね。
sc2012r2ac-cloud-vm04

この後、Azureの管理設定を行いますが、それはまた別記事にて。