VYATTA USERS MEETING Spring 2014 - JAZUG

46
Vyatta x Microsoft Azure 2014/04/04 Japan Azure User Group @kamebuchi

description

VYATTA USERS MEETING Spring 2014

Transcript of VYATTA USERS MEETING Spring 2014 - JAZUG

Page 1: VYATTA USERS MEETING Spring 2014 - JAZUG

Vyatta x Microsoft Azure

2014/04/04

Japan Azure User Group

@kamebuchi

Page 2: VYATTA USERS MEETING Spring 2014 - JAZUG

自己紹介

2

KeijiKamebuchi buchizo@kamebuchiSenior Fellow

{

"name" : "Keiji Kamebuchi",

"corporation" : "pnop Inc.",

"mail" : "[email protected]",

"web" : "http://buchizo.wordpress.com/",

"twitter" : "@kamebuchi",

"facebook" :

"https://www.facebook.com/keijikamebuchi"

}

Page 3: VYATTA USERS MEETING Spring 2014 - JAZUG

JAZって?

• Japan Azure User Groupの略• Microsoft Azureを学び、楽しみ、活かす、

日本のユーザーグループ• 2010/8/26に結成したコミュニティ

• ちょっと興味がある=ゆるふわな方 から実ビジネスで使うんだよね な方まで歓迎職種はなんでもござれ※プログラマ~企画者、デザイナ歓迎

• ゆるふわなコミュニティ

3

Page 4: VYATTA USERS MEETING Spring 2014 - JAZUG

JAZUGって?

GROUP はFBで。Japan Azure User Group https://www.facebook.com/groups/jazug/

大阪(関西Azure研究会)、福岡(ふくあず)、仙台、名古屋、札幌

Twitter: #jazug

一緒に楽しんだり、運営してくれるメンバーを募集中です☆

Page 5: VYATTA USERS MEETING Spring 2014 - JAZUG

最近のJAZUG

5

Page 6: VYATTA USERS MEETING Spring 2014 - JAZUG

大事なお知らせ

6

• このセッションは 2014/04/04 時点の情報を基にしています

• 最新情報はWebで❕

Page 7: VYATTA USERS MEETING Spring 2014 - JAZUG

Vyattaの使いどころ

• Azureで提供しているSaaSと接続する

– 仮想ネットワーク

• VPNゲートウェイ

– Site to Site VPN

– Point to Site VPN

• Azure上のネットワークと接続

• Azure上でVyattaを使う

– 仮想マシンとしてVyattaを起動

• 動作検証 / ホビー

• Proxyや他のサービスの土台として

7

Page 8: VYATTA USERS MEETING Spring 2014 - JAZUG

CASE 1: VYATTA TO AZURE

8

Page 9: VYATTA USERS MEETING Spring 2014 - JAZUG

Case 1: Vyatta to Azure

• Azure VPNゲートウェイとVyattaを接続させる

9

Vyatta

参考: http://www.slideshare.net/kazumihirose/vyatta-user-meeting-2013-spring

AzureVPNゲートウェイ

仮想ネットワーク

VPN Tunnel

Page 10: VYATTA USERS MEETING Spring 2014 - JAZUG

Step 1: Azure側の準備

• 仮想ネットワークを作成します

10

論理的に近くに配置するためのグループです

Page 11: VYATTA USERS MEETING Spring 2014 - JAZUG

Step 1: Azure側の準備

11

サイト間VPNにチェック

接続元のネットワーク

Page 12: VYATTA USERS MEETING Spring 2014 - JAZUG

Step 1: Azure側の準備

12

Vyatta側のグローバルIPアドレス接続元のネットワーク

Page 13: VYATTA USERS MEETING Spring 2014 - JAZUG

Step 1: Azure側の準備

13

Azure側のネットワーク

ゲートウェイ用のサブネットを追加しておきます(1つだけ)

Page 14: VYATTA USERS MEETING Spring 2014 - JAZUG

Step 1: Azure側の準備

14

作成直後の状態

下部メニューからVPNゲートウェイを作成します

Page 15: VYATTA USERS MEETING Spring 2014 - JAZUG

Step 1: Azure側の準備

15

VPNゲートウェイ作成中

Page 16: VYATTA USERS MEETING Spring 2014 - JAZUG

Step 1: Azure側の準備

16

VPNゲートウェイ作成中

Page 17: VYATTA USERS MEETING Spring 2014 - JAZUG

Step 1: Azure側の準備

• VPNゲートウェイのIPアドレスと事前共有キーを控える

17

Page 18: VYATTA USERS MEETING Spring 2014 - JAZUG

Step 2: Vyattaの設定

• 詳細はこちらを参照

• http://www.slideshare.net/kazumihirose/vyatta-user-meeting-2013-spring

18

Page 19: VYATTA USERS MEETING Spring 2014 - JAZUG

注意事項など

• プロトコルについてはこちら

• http://msdn.microsoft.com/library/azure/jj156075.aspx

19

プロパティ 静的ルーティング VPN ゲートウェイ動的ルーティング VPN ゲートウェイ [プレビュー]

サイト間接続 (S2S) ポリシー ベースの VPN 構成 ルート ベースの VPN 構成

コンピューター対サイト接続 (P2S) サポートされていません サポートされています (S2S 接続と共存します)

認証方法 事前共有キー •サイト間接続用の事前共有キー

•ポイント対サイト接続用の証明書

サイト間 (S2S) 接続の最大数 1 1

ポイント対サイト (P2S) 接続の最大数 サポートされていません 250

アクティブなルーティングのサポート (BGP) サポートされていません サポートされていません

* 上記URLより抜粋

Page 20: VYATTA USERS MEETING Spring 2014 - JAZUG

注意事項など

• IKE フェーズ1 セットアップ

20

プロパティ静的ルーティング VPN ゲートウェイ

動的ルーティング VPN ゲートウェイ [プレビュー]

IKE のバージョン IKEv1 IKEv2

Diffie-Hellman グループ グループ 2 (1024 ビット) グループ 2 (1024 ビット)

[認証方法] 事前共有キー 事前共有キー

暗号化アルゴリズム AES256AES1283DES

AES2563DES

ハッシュ アルゴリズム SHA1 (SHA128) SHA1 (SHA128)

フェーズ 1 のセキュリティ アソシエーション (SA) の有効期間(時間)

28,800 秒 28,800 秒

Page 21: VYATTA USERS MEETING Spring 2014 - JAZUG

注意事項など

• IKE フェーズ2 セットアップ

21

プロパティ 静的ルーティング VPN ゲートウェイ動的ルーティング VPN ゲートウェイ [プレビュー]

IKE のバージョン IKEv1 IKEv2

ハッシュ アルゴリズム SHA1 (SHA128) SHA1 (SHA128)

フェーズ 2 のセキュリティ アソシエーション(SA) の有効期間 (時間)

3,600 秒 -

フェーズ 2 のセキュリティ アソシエーション(SA) の有効期間 (スループット)

102,400,000 KB -

IPsec SA 暗号化および認証プラン (優先度順)

1.ESP-AES2562.ESP-AES1283.ESP-3DES4.該当なし

「動的ルーティング ゲートウェイの IPsec セキュリティ アソシエーション (SA) プラン」を参照

PFS (Perfect Forward Secrecy) なし なし

停止しているピアの検出 サポートされていません サポートされています

Page 22: VYATTA USERS MEETING Spring 2014 - JAZUG

注意事項など

• Vyatta側– NATトラバーサルが可能である

– グローバルなIPv4アドレスを持っている

– 以下の通信が許可されていること• UDP/500

• UDP/4500

• ESP

– VPNヘッダの付与とカプセル化以前にパケットのフラグメント修正処理が可能であること(MSS: 1350)

22

Page 23: VYATTA USERS MEETING Spring 2014 - JAZUG

CASE 2: VYATTA ON AZURE

23

Page 24: VYATTA USERS MEETING Spring 2014 - JAZUG

Case 2: Vyatta on Azure

• Windows Azure上の仮想マシン(IaaS)でVyattaを稼働させる

– 単に仮想マシンとしてVyattaを動かすだけ

24

Vyatta

Page 25: VYATTA USERS MEETING Spring 2014 - JAZUG

Step 1: ローカルでVyatta作る

• Hyper-Vのイメージであれば動作できる

– レガシーデバイスは不可なので注意

– Vyattaは問題ない

• Hyper-V上にVyattaをインストール

– 世代1(Gen1)で作ること

– 仮想ハードディスクはVHD形式

• ※今は可変長もOKらしい※固定長でしておきましょうか(Max127GB)

25

Page 26: VYATTA USERS MEETING Spring 2014 - JAZUG

Step 2: Vyattaの設定

• IPアドレスはDHCPで

– set interfaces ethernet eth0 address dhcp

• SSHを有効に

– set service ssh

– Azureではコンソールは触れない

• Azure用Agentをインストール

– 状態管理や初期構成などを行うAgent

– ※但し初期構成は行えない模様(後述)

26

Page 27: VYATTA USERS MEETING Spring 2014 - JAZUG

Step 2: Vyattaの設定

• Azure用Agentのインストール$ /usr/bin/curl -L -O https://codeload.github.com/WindowsAzure/WALinuxAgent/zip/master

$ /usr/bin/unzip master

$ sudo cp master/waagent /usr/sbin

$ sudo chmod 755 /usr/sbin/waagent

$ sudo /usr/sbin/waagent -install

27

Page 28: VYATTA USERS MEETING Spring 2014 - JAZUG

よくある失敗

28

Page 29: VYATTA USERS MEETING Spring 2014 - JAZUG

Step 2: Vyattaの設定

• MACアドレスを削除

del interfaces; commit;save;

もしくは

/opt/vyatta/etc/config/config.boot からhw_id 行を削除

• Vyattaをシャットダウン

– ※Azureにあげる前に再度起動するとMACアドレスついちゃうので注意

29

Page 30: VYATTA USERS MEETING Spring 2014 - JAZUG

Step 3: Azure上へUpload

• 作成したVHDファイルをAzure上(BLOBストレージ)にアップロード

30

Add-AzureVhd -Destination http://<Storage>.blob.core.windows.net/vhds/xxx.vhd

-localfilepath "xxx.vhd“

※実際は一行です

http://www.windowsazure.com/en-us/documentation/articles/virtual-machines-linux-create-upload-vhd/http://www.windowsazure.com/en-us/documentation/articles/virtual-machines-create-upload-vhd-windows-server/

Page 31: VYATTA USERS MEETING Spring 2014 - JAZUG

Step 4: 仮想マシンの作成

• アップロードしたVHDを構成

31

Page 32: VYATTA USERS MEETING Spring 2014 - JAZUG

Step 4: 仮想マシンの作成

• 仮想マシンを作成

32

Page 33: VYATTA USERS MEETING Spring 2014 - JAZUG

結果

• ローカルで設定した通りで起動する

33

http://wp.me/pWENl-122

Page 34: VYATTA USERS MEETING Spring 2014 - JAZUG

汎用イメージへのハードル

• Agentの問題

– Uploadするイメージを作る段階で汎用化する

– waagent -force –deprovision

– Azure上で起動した後の初期化で問題

• ユーザー情報などのプロビジョニング用ファイル(ovf-env.xml)がDVDとしてマウントされる

• UDFフォーマットが使われるがVyattaには無い?

• マウントできず初期化できない※一応起動はする

34

Page 35: VYATTA USERS MEETING Spring 2014 - JAZUG

Azure上での注意点

• デプロイしている間はMACアドレス固定

– 障害時などでホストが変わっても維持される

– VHDを保持しておいて削除後再作成などすると変更される

• 静的IPアドレスは無理そう

– 汎用化できれば(構成時にIPアドレスを含めるため)

35

Page 36: VYATTA USERS MEETING Spring 2014 - JAZUG

Azure上での注意点

• /var/log/waagent.log

2014/01/31 16:36:56 ERROR:CalledProcessError. Error Code: 32

2014/01/31 16:36:56 ERROR:CalledProcessError. Command string: "mount -v /dev/hdc /mnt/cdrom/secure"

2014/01/31 16:36:56 ERROR:CalledProcessError. Command result: "mount: you must specify the filesystem type

2014/01/31 16:36:56 ERROR:mount: you didn't specify a filesystem type for /dev/hdc

2014/01/31 16:36:56 ERROR: I will try all types mentioned in /etc/filesystems or /proc/filesystems"

2014/01/31 16:36:56 mount: you must specify the filesystem type

2014/01/31 16:36:56 mount: you didn't specify a filesystem type for /dev/hdc

2014/01/31 16:36:56 I will try all types mentioned in /etc/filesystems or /proc/filesystems

36

Page 37: VYATTA USERS MEETING Spring 2014 - JAZUG

まとめ

• Azure上でVyattaは動く– 動くのは動く

– 今のところは

• WAAgent– オープンソースです

– https://github.com/Azure/WALinuxAgent

– Vyatta用のカスタマイズを!

– http://www.windowsazure.com/ja-jp/manage/linux/how-to-guides/linux-agent-guide/

37

Page 38: VYATTA USERS MEETING Spring 2014 - JAZUG

CASE 3: VYATTA TO VYATTAIN AZURE

38

Page 39: VYATTA USERS MEETING Spring 2014 - JAZUG

Case 3: Vyatta to Vyatta in Azure

• Azure上のVyatta同士をVPNで接続

– Azure VPNゲートウェイに頼らない

– マルチSite to Site VPNを目指す(1つ出来たらどうとでもなるはず)

39

Vyatta Vyatta

VPN Tunnel

Page 40: VYATTA USERS MEETING Spring 2014 - JAZUG

やってみる

• OpenVPNを使用

40

firewall {name FWv4 {

default-action accept}

}interfaces {

ethernet eth0 {address dhcpduplex autohw-id 00:15:5d:39:79:a6smp_affinity autospeed auto

}openvpn vtun1 {

local-address 172.17.1.11 {subnet-mask 255.255.255.0

}mode site-to-siteopenvpn-option --float

protocol udpremote-address 172.17.1.21remote-host 137.116.162.125shared-secret-key-file

/config/auth/secret}

}protocols {

static {interface-route 10.1.1.0/24 {

next-hop-interface vtun1 {}

}}

}

::

Page 41: VYATTA USERS MEETING Spring 2014 - JAZUG

Azure側の設定

41

Page 42: VYATTA USERS MEETING Spring 2014 - JAZUG

結果

• Vyatta間は疎通OK

• LAN to LANはNG

– Vyattaがルーティングしてくれない

– というよりはVyattaからパケットが転送されない → MAC Address Spoofingがオフ?

42

Vyatta Vyatta

OK

NGNG

Page 43: VYATTA USERS MEETING Spring 2014 - JAZUG

まとめ

43

Page 44: VYATTA USERS MEETING Spring 2014 - JAZUG

Azure側の制限*

• Point to Site VPN は Preview GAした!

• Site to Site VPN は 1:1のみ

– 動的ルーティングゲートウェイは PreviewGAした!

• vNICアダプタは1つだけ

– IPアドレス複数設定は可能• 但し障害があった場合、リセットされる可能性アリ

– Hyper-VでいうところのMAC AddressSpoofingがオフになってる?

44* 2014年4月4日現在

Page 45: VYATTA USERS MEETING Spring 2014 - JAZUG

まとめ

• Azureで提供されるネットワークまわりはまだ制限多い

– ほしい機能があったらリクエスト!– http://feedback.windowsazure.com/forums/217313-networking-

dns-traffic-manager-vpn-vnet

• Azure用のVyattaイメージがあると嬉しいですね

– 是非VMDepotで公開を!– https://vmdepot.msopentech.com/List/Index

45

Page 46: VYATTA USERS MEETING Spring 2014 - JAZUG

46