65
VPCを作ってみよう 2013/12/30 CloudStack Advent Calendar 2013

20131230_CloudStack Advent Calendar VPCを作ってみよう

Embed Size (px)

DESCRIPTION

2013年 CloudStack Advent Calendar の12月30日分です (・∀・) (http://atnd.org/events/45595) NTTコミュニケーションズのクラウド・エヌとさくらクラウドを使って、CloudStackでVPC環境を簡単に構築する方法をご紹介します

Citation preview

Page 1: 20131230_CloudStack Advent Calendar VPCを作ってみよう

VPCを作ってみよう

2013/12/30

CloudStack Advent Calendar 2013

Page 2: 20131230_CloudStack Advent Calendar VPCを作ってみよう

わたし

大削 緑/Midori Oge みろりん @star76popin

☆某SI会社 → 某通信事業者 → NTTコミュニケーションズで の開発を担当しています

☆こんな記事を書いてますオープンソースの「クラウド基盤ソフトウェア」を比較する【第1回】 機能を徹底比較! ~Eucalyptus、CloudStack、OpenStackオープンソースの「クラウド基盤ソフトウェア」を比較する【第2回】 【徹底比較】Eucalyptus、CloudStack、OpenStackの仮想マシン性能

☆いろんなユーザ会にいます

@副会長

Page 3: 20131230_CloudStack Advent Calendar VPCを作ってみよう

CloudStackの青本登場!

CloudStack実践ガイド

1. CloudStackってなぁに? 2. CloudStackのしくみ 3. つくってみよう: CloudStackのインストール 4. つかってみよう: CloudStackの基本操作 !5. もっとつかってみよう1: APIでもっと便利 6. もっとつかってみよう2: 自分だけのテンプレートを作ろう 7. もっとつかってみよう3: Virtual Private Cloud(VPC)を使おう 8. あたらしい機能たち 9. I♡CloudStack

前 編

後 編

インプレスR&D社より 絶賛発売中

Page 4: 20131230_CloudStack Advent Calendar VPCを作ってみよう

この他にも多数のイベントを予定しています

CloudStack ユーザ会

これまで

AdventCalendar2012

1ヶ月で27の ブログ記事を公開

勉強会19回ラジオ出演

読書会

翻訳会

その他イベント11回

Page 5: 20131230_CloudStack Advent Calendar VPCを作ってみよう

今日のテーマ

V・P・C!(・∀・)b

Page 6: 20131230_CloudStack Advent Calendar VPCを作ってみよう

VPCってなぁに?

ユーザがCloudStack上に独自のクラウドを構築できる機能

★VPCとは

・ユーザ側で使いたいIP空間(VPC) を作成できる !・VPCにユーザがサブネットを 切ることができる !・サブネット単位で アクセスリストが設定できる

CloudStack

ユーザAのVPC

サブネット サブネット

……

ユーザBのVPC

サブネット サブネット

……

Page 7: 20131230_CloudStack Advent Calendar VPCを作ってみよう

・別ロケーション(オンプレミスやデータセンタなど)

とのハイブリッド環境を簡単に構築できる

VPCで何ができるの?

→ VPCがユーザ環境の一部にみえるため、 社内システムやソフトウェアの移行が簡単に!

→ 既存の環境を、IPアドレス体系を変更することなく CloudStackに移行できる!

ユーザ環境

VPC

Page 8: 20131230_CloudStack Advent Calendar VPCを作ってみよう

Web

VPC

サブネット1

Application/DB

サブネット2

運用担当者

一般ユーザ

開発担当者

VPN

VPN

×

http

VPCで何ができるの?

・柔軟なネットワークの設定が可能

→ サブネットワーク単位で外部からの アクセスコントロールが可能なため、 用途をわけられる!

Page 9: 20131230_CloudStack Advent Calendar VPCを作ってみよう

作ってみよう

NTTコミュニケーションズの 「クラウド・エヌ Compute(VPCタイプ OpenNW)」※ を使って、簡単にVPC環境を構築してみましょう♪

※ を基盤に採用しています

Page 10: 20131230_CloudStack Advent Calendar VPCを作ってみよう

基本的な構成

Subnet1

VM153.146.159.210

192.168.100.72

192.168.100.0/24

VPC(VPC-test) 192.168.0.0/16

VPN GW

CloudStack VPC とローカル環境のルータをVPNで接続! 2つのネットワークを繋いでみよう(^^♪

172.16.200.0/24

Vyatta

擬似ローカル環境

VMInternet133.242.48.93

172.16.200.10 172.16.200.50

DHCP

HUBVPN

例えばこんな感じ!

Page 11: 20131230_CloudStack Advent Calendar VPCを作ってみよう

つくりかた

1. VPCを作成

2. サブネットを作成

3. インスタンスを作成

4. VPNゲートウェイを作成

5. VPNカスタマーゲートウェイを作成

6. VPN接続

7. 接続確認

Page 12: 20131230_CloudStack Advent Calendar VPCを作ってみよう

まずはローカル環境を 用意しよう

Page 13: 20131230_CloudStack Advent Calendar VPCを作ってみよう

ローカル環境の用意

今回は、ローカルの擬似環境として、さくらクラウドを 使用しました。

(VPNがはれるルータとサーバ があれば何でもOK!)

・VM×2

- Vyatta6.5 + NIC追加

- Ubuntu12.04.3

・仮想Switch ×1

172.16.200.0/24

Vyatta

擬似ローカル環境

VM133.242.48.93

172.16.200.10 172.16.200.50

DHCP

HUB

・VM×2

- Vyatta6.5 + NIC追加

- Ubuntu12.04.3

・仮想Switch ×1

ありがとう 桜葉愛ちゃん

Page 14: 20131230_CloudStack Advent Calendar VPCを作ってみよう

ローカル環境の用意

Vyatta を選択

さくらクラウドのコントロールパネル

vyattaサーバを作ります

Page 15: 20131230_CloudStack Advent Calendar VPCを作ってみよう

ローカル環境の用意さくらクラウドのコントロールパネル

Page 16: 20131230_CloudStack Advent Calendar VPCを作ってみよう

ローカル環境の用意さくらクラウドのコントロールパネル

正常にvyattaサーバが作成されているのを確認し、 サーバをシャットダウンします

Page 17: 20131230_CloudStack Advent Calendar VPCを作ってみよう

ローカル環境の用意さくらクラウドのコントロールパネル

サーバをシャットダウンしている間に、 スイッチを追加します。

Page 18: 20131230_CloudStack Advent Calendar VPCを作ってみよう

ローカル環境の用意さくらクラウドのコントロールパネル

NICを追加します

「接続を編集」をクリック

停止したvyattaサーバで

Page 19: 20131230_CloudStack Advent Calendar VPCを作ってみよう

ローカル環境の用意さくらクラウドのコントロールパネル

スイッチに接続します

Page 20: 20131230_CloudStack Advent Calendar VPCを作ってみよう

ローカル環境の用意さくらクラウドのコントロールパネル

sshd を起動します

サーバを起動して、コンソール画面を表示します

Page 21: 20131230_CloudStack Advent Calendar VPCを作ってみよう

ローカル環境の用意さくらクラウドのコントロールパネル

今度はVMを作ります

Page 22: 20131230_CloudStack Advent Calendar VPCを作ってみよう

ローカル環境の用意さくらクラウドのコントロールパネル

「スイッチに接続」を選択

Page 23: 20131230_CloudStack Advent Calendar VPCを作ってみよう

$ show interfacesCodes: S - State, L - Link, u - Up, D - Down, A - Admin DownInterface IP Address S/L Description--------- ---------- --- -----------eth0 133.242.48.93/24 u/ueth1 - u/ulo 127.0.0.1/8 u/u ::1/128!$ configure# set interfaces ethernet eth1 address 172.16.200.10/24!$ show interfacesCodes: S - State, L - Link, u - Up, D - Down, A - Admin DownInterface IP Address S/L Description--------- ---------- --- -----------eth0 133.242.48.93/24 u/ueth1 172.16.200.10/24 u/ulo 127.0.0.1/8 u/u ::1/128

インタフェース の設定確認

Vyattaの設定

eth1にアドレスを付与

ローカル環境の用意

Page 24: 20131230_CloudStack Advent Calendar VPCを作ってみよう

$ configure!# edit service dhcp-server shared-network-name m-private# set subnet 172.16.200.0/24 default-router 172.16.200.10# set subnet 172.16.200.0/24 dns-server 133.242.0.3# set subnet 172.16.200.0/24 dns-server 133.242.0.4# set subnet 172.16.200.0/24 start 172.16.200.100 stop 172.16.200.200# set subnet 172.16.200.0/24 static-mapping server01 ip-address 172.16.200.50# set subnet 172.16.200.0/24 static-mapping server01 mac-address 9C:A3:BA:21:2D:BB!# exit

DHCPサーバの設定

Vyattaの設定

ローカル環境の用意

※コントロールパネルで設定済みの場合は省略可 MAC Addressはコントロールパネルから確認できます

Page 25: 20131230_CloudStack Advent Calendar VPCを作ってみよう

# set vpn ipsec ipsec-interfaces interface eth0!# set vpn ipsec ike-group IKE-POLICY lifetime '86400'# set vpn ipsec ike-group IKE-POLICY proposal 1 encryption 'aes256'# set vpn ipsec ike-group IKE-POLICY proposal 1 hash 'sha1'# set vpn ipsec ike-group IKE-POLICY proposal 1 dh-group '2'# set vpn ipsec ike-group IKE-POLICY proposal 2 encryption '3des'# set vpn ipsec ike-group IKE-POLICY proposal 2 hash 'md5'# set vpn ipsec ike-group IKE-POLICY proposal 2 dh-group '2'!# set vpn ipsec esp-group ESP-POLICY lifetime '3600'# set vpn ipsec esp-group ESP-POLICY proposal 1 encryption 'aes256'# set vpn ipsec esp-group ESP-POLICY proposal 1 hash 'sha1'# set vpn ipsec esp-group ESP-POLICY proposal 2 encryption '3des'# set vpn ipsec esp-group ESP-POLICY proposal 2 hash 'md5'!# commit# exit

IKEグループの 設定

ESPグループの 設定

Vyattaの設定

ローカル環境の用意

Page 26: 20131230_CloudStack Advent Calendar VPCを作ってみよう

172.16.200.0/24

Vyatta

擬似ローカル環境

VM133.242.48.93

172.16.200.10 172.16.200.50

DHCP

HUB

Cloudnに「VPC-test」という名前のVPCを作成します (192.168.0.0/16)

1.VPCを作成

VPC(VPC-test) 192.168.0.0/16

Page 27: 20131230_CloudStack Advent Calendar VPCを作ってみよう

2.VPCを作成

Page 28: 20131230_CloudStack Advent Calendar VPCを作ってみよう

3.サブネットを作成

VPCが作成された

Page 29: 20131230_CloudStack Advent Calendar VPCを作ってみよう

172.16.200.0/24

Vyatta

擬似ローカル環境

VM133.242.48.93

172.16.200.10 172.16.200.50

DHCP

HUB

作成したVPCの中に、「Subnet1」という名前の サブネットワークを作ります(192.168.100.0/24)

3.サブネットを作成

サブネットワークのアドレスレンジは、 VPCのCIDRの範囲内である必要があります

Subnet1 192.168.100.0/24

VPC(VPC-test) 192.168.0.0/16

Page 30: 20131230_CloudStack Advent Calendar VPCを作ってみよう

3.サブネットを作成

Page 31: 20131230_CloudStack Advent Calendar VPCを作ってみよう

作成したサブネットワークの中に、インスタンスを作ります

4.インスタンスを作成

Subnet1

VM

172.16.200.0/24

Vyatta

192.168.100.72

192.168.100.0/24

VPC(VPC-test)

擬似ローカル環境192.168.0.0/16

VM133.242.48.93

172.16.200.10 172.16.200.50

DHCP

HUB

Page 32: 20131230_CloudStack Advent Calendar VPCを作ってみよう

クリック

4.インスタンスを作成

Page 33: 20131230_CloudStack Advent Calendar VPCを作ってみよう

4.インスタンスを作成

Page 34: 20131230_CloudStack Advent Calendar VPCを作ってみよう

4.インスタンスを作成

Page 35: 20131230_CloudStack Advent Calendar VPCを作ってみよう

4.インスタンスを作成

Page 36: 20131230_CloudStack Advent Calendar VPCを作ってみよう

4.インスタンスを作成

Page 37: 20131230_CloudStack Advent Calendar VPCを作ってみよう

4.インスタンスを作成

Page 38: 20131230_CloudStack Advent Calendar VPCを作ってみよう

4.インスタンスを作成

Page 39: 20131230_CloudStack Advent Calendar VPCを作ってみよう

4.インスタンスを作成

Page 40: 20131230_CloudStack Advent Calendar VPCを作ってみよう

Subnet1

VM

172.16.200.0/24

153.146.159.210

Vyatta

192.168.100.72

192.168.100.0/24

VPC(VPC-test)

擬似ローカル環境192.168.0.0/16

VMVPN GW

133.242.48.93

172.16.200.10 172.16.200.50

DHCP

HUB

5.VPNゲートウェイを作成

Cloudn側のVPNの終端となる「VPNゲートウェイ」を作成します

Page 41: 20131230_CloudStack Advent Calendar VPCを作ってみよう

5.VPNゲートウェイを作成

「SITE-TO-SITE VPNS」をクリック

Page 42: 20131230_CloudStack Advent Calendar VPCを作ってみよう

VPNゲートウェイができた

5.VPNゲートウェイを作成

Page 43: 20131230_CloudStack Advent Calendar VPCを作ってみよう

5.VPNゲートウェイを作成

$ configure!set vpn ipsec site-to-site peer 153.146.159.210 authentication mode pre-shared-secretset vpn ipsec site-to-site peer 153.146.159.210 authentication pre-shared-secret vpnkeyset vpn ipsec site-to-site peer 153.146.159.210 ike-group IKE-POLICYset vpn ipsec site-to-site peer 153.146.159.210 default-esp-group ESP-POLICYset vpn ipsec site-to-site peer 153.146.159.210 local-address 133.242.48.93 set vpn ipsec site-to-site peer 153.146.159.210 tunnel 1 local prefix 172.16.200.0/24set vpn ipsec site-to-site peer 153.146.159.210 tunnel 1 remote prefix 192.168.0.0/16

Vyattaの設定

vyattaサーバにVPNの設定をします

Page 44: 20131230_CloudStack Advent Calendar VPCを作ってみよう

Subnet1

VM

172.16.200.0/24

153.146.159.210

Vyatta

192.168.100.72

192.168.100.0/24

VPC(VPC-test)

擬似ローカル環境192.168.0.0/16

VMVPN GW

133.242.48.93

172.16.200.10 172.16.200.50

DHCP

HUB

ローカル側のVPN終端となる「VPNカスタマーゲートウェイ」を 設定します

6.VPNカスタマーゲートウェイを作成

Page 45: 20131230_CloudStack Advent Calendar VPCを作ってみよう

「VPNカスタマーゲートウェイ」をクリック

6.VPNカスタマーゲートウェイを作成

鍵共有アルゴリズムの強度は グループ2と5が使えます

Page 46: 20131230_CloudStack Advent Calendar VPCを作ってみよう

VPNカスタマーゲートウェイができた

6.VPNカスタマーゲートウェイを作成

Page 47: 20131230_CloudStack Advent Calendar VPCを作ってみよう

Subnet1

VM

172.16.200.0/24

153.146.159.210

Vyatta

192.168.100.72

192.168.100.0/24

VPC(VPC-test)

擬似ローカル環境192.168.0.0/16

VMVPN GWInternet

133.242.48.93

172.16.200.10 172.16.200.50

DHCP

HUB

7.VPN接続

Cloudn側からVPNをはります

VPN

Page 48: 20131230_CloudStack Advent Calendar VPCを作ってみよう

7.VPN接続

「SITE-TO-SITE VPNS」をクリック

Page 49: 20131230_CloudStack Advent Calendar VPCを作ってみよう

「VPN接続」をクリック

7.VPN接続

Page 50: 20131230_CloudStack Advent Calendar VPCを作ってみよう

VPN接続ができた

7.VPN接続

Page 51: 20131230_CloudStack Advent Calendar VPCを作ってみよう

8.接続確認

# run show vpn ike saPeer ID / IP Local ID / IP------------ -------------153.146.159.210 133.242.48.93! State Encrypt Hash D-H Grp NAT-T A-Time L-Time ----- ------- ---- ------- ----- ------ ------ up aes256 sha1 2 no 1028 86400!!# run show vpn ipsec saPeer ID / IP Local ID / IP------------ -------------153.146.159.210 133.242.48.93! Tunnel State Bytes Out/In Encrypt Hash NAT-T A-Time L-Time Proto ------ ----- ------------- ------- ---- ----- ------ ------ ----- 1 up 0.0/0.0 aes256 sha1 no 937 3600 all

Page 52: 20131230_CloudStack Advent Calendar VPCを作ってみよう

8.接続確認

$ ping -c 3 192.168.100.72PING 192.168.100.72 (192.168.100.72) 56(84) bytes of data.64 bytes from 192.168.100.72: icmp_req=1 ttl=62 time=22.9 ms64 bytes from 192.168.100.72: icmp_req=2 ttl=62 time=22.3 ms64 bytes from 192.168.100.72: icmp_req=3 ttl=62 time=22.1 ms!--- 192.168.100.72 ping statistics ---3 packets transmitted, 3 received, 0% packet loss, time 2002msrtt min/avg/max/mdev = 22.139/22.481/22.991/0.367 ms!$ ssh [email protected]@192.168.100.72's password:Welcome to Ubuntu 12.10 (GNU/Linux 3.5.0-17-generic x86_64)! * Documentation: https://help.ubuntu.com/! System information as of Mon Dec 30 21:08:08 JST 2013! System load: 0.07 Processes: 70 Usage of /: 8.3% of 12.51GB Users logged in: 1 Memory usage: 2% IP address for eth0: 192.168.100.72 Swap usage: 0%! Graph this data and manage this system at https://landscape.canonical.com/!Last login: Mon Dec 30 21:07:57 2013 from 172.16.200.50

vyatta→Cloudn

Page 53: 20131230_CloudStack Advent Calendar VPCを作ってみよう

8.接続確認

$ ping -c 3 172.16.200.50PING 172.16.200.50 (172.16.200.50) 56(84) bytes of data.64 bytes from 172.16.200.50: icmp_req=1 ttl=62 time=22.5 ms64 bytes from 172.16.200.50: icmp_req=2 ttl=62 time=22.1 ms64 bytes from 172.16.200.50: icmp_req=3 ttl=62 time=22.2 ms!--- 172.16.200.50 ping statistics ---3 packets transmitted, 3 received, 0% packet loss, time 2003msrtt min/avg/max/mdev = 22.176/22.309/22.515/0.226 ms!$ ssh [email protected]@172.16.200.50's password:Welcome to Ubuntu 12.04.3 LTS (GNU/Linux 3.8.0-29-generic x86_64)! * Documentation: https://help.ubuntu.com/! System information as of Mon Dec 30 21:04:26 JST 2013! System load: 0.0 Processes: 84 Usage of /: 5.8% of 17.73GB Users logged in: 1 Memory usage: 6% IP address for eth0: 172.16.200.50 Swap usage: 0%! Graph this data and manage this system at https://landscape.canonical.com/!Last login: Mon Dec 30 21:03:57 2013 from 192.168.100.72

Cloudn→ローカル

Page 54: 20131230_CloudStack Advent Calendar VPCを作ってみよう

応用例1

Subnet1

VM

172.16.200.0/24

153.146.159.210

Vyatta

192.168.100.72

192.168.100.0/24

VPC(VPC-test)

擬似ローカル環境192.168.0.0/16

VMVPN GWInternet

133.242.48.93

172.16.200.10 172.16.200.50

DHCP

HUB

CloudnのVPNゲートウェイをHUBにするパターン

VPN

Vyatta

133.242.54.62

VM

172.16.210.50

172.16.210.10

DHCP

VPN

対地となる環境をもう1セット用意します (VMは同じものを使ってNICを足してもOK)

172.16.210.0/24

Page 55: 20131230_CloudStack Advent Calendar VPCを作ってみよう

VPNカスタマーゲートウェイを作って

VPN接続!

VPN接続が できた

VPN接続

応用例1

Page 56: 20131230_CloudStack Advent Calendar VPCを作ってみよう

Subnet1

VM192.168.100.72

192.168.100.0/24

VPC(VPC-test) 192.168.0.0/16

Cloudnで複数サブネットを持つ構成

柔軟なセキュリティ設定が可能

応用例2

Private

VM192.168.200.4

192.168.200.0/24 ◯

×Internet

153.146.160.108

R

※注意 2013年12月30日現在では、CloudnにおいてACLのルール設定はできない仕様となっています。 以下は、参考まで

Page 57: 20131230_CloudStack Advent Calendar VPCを作ってみよう

Subnet1

VM192.168.100.72

192.168.100.0/24

VPC(VPC-test) 192.168.0.0/16

Cloudnで複数サブネットを持つ構成

柔軟なセキュリティ設定が可能

応用例2

Private

VM192.168.200.4

192.168.200.0/24 ◯

×Internet

153.146.160.108

R(2)ポート 転送

ACL※

(1)Global IPの追加

※ACLは「Private」サブネットを作る前に 作成しておく必要があります

あとでACLの変更はできない (ルールの追加削除は可能)ので注意!

Page 58: 20131230_CloudStack Advent Calendar VPCを作ってみよう

※ACLの設定

「NETWORK ACL LISTS」をクリック

応用例2

Page 59: 20131230_CloudStack Advent Calendar VPCを作ってみよう

「Add ACL LISTS」をクリック

デフォルトでは「default_allow」「default_deny」の2つが用意されている

ACLが追加された

応用例2

※ACLの設定

Page 60: 20131230_CloudStack Advent Calendar VPCを作ってみよう

サブネット「Subnet1」のアドレスからくるパケット(Port22とICMP)のみ許可

応用例2

※ACLの設定

Page 61: 20131230_CloudStack Advent Calendar VPCを作ってみよう

Subnet1

VM192.168.100.72

192.168.100.0/24

VPC(VPC-test) 192.168.0.0/16

Cloudnで複数サブネットを持つ構成

柔軟なセキュリティ設定が可能

応用例2

Private

VM192.168.200.4

192.168.200.0/24 ◯

×Internet

153.146.160.108

R(2)ポート 転送

ACL※

(1)Global IPの追加

※ACLは「Private」サブネットを作る前に 作成しておく必要があります

あとでACLの変更はできない (ルールの追加削除は可能)ので注意!

Page 62: 20131230_CloudStack Advent Calendar VPCを作ってみよう

「新しいIPアドレスの取得」

IPアドレスが追加された

(1)Global IPの追加

応用例2

Page 63: 20131230_CloudStack Advent Calendar VPCを作ってみよう

「構成」タブ

(2)ポート転送

応用例2

Page 64: 20131230_CloudStack Advent Calendar VPCを作ってみよう

ルールを追加する

例) →2222番ポートにきたパケットをVM「mvm-pri」の22番ポートに転送 →80番ポートにきたパケットをVM「mvm-pri2」の80番ポートに転送

など

(2)ポート転送

応用例2

Page 65: 20131230_CloudStack Advent Calendar VPCを作ってみよう

来年もどうぞよろしくね