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

Preview:

DESCRIPTION

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

Citation preview

VPCを作ってみよう

2013/12/30

CloudStack Advent Calendar 2013

わたし

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

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

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

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

@副会長

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社より 絶賛発売中

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

CloudStack ユーザ会

これまで

AdventCalendar2012

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

勉強会19回ラジオ出演

読書会

翻訳会

その他イベント11回

今日のテーマ

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

VPCってなぁに?

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

★VPCとは

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

CloudStack

ユーザAのVPC

サブネット サブネット

……

ユーザBのVPC

サブネット サブネット

……

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

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

VPCで何ができるの?

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

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

ユーザ環境

VPC

Web

VPC

サブネット1

Application/DB

サブネット2

運用担当者

一般ユーザ

開発担当者

VPN

VPN

×

http

VPCで何ができるの?

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

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

作ってみよう

NTTコミュニケーションズの 「クラウド・エヌ Compute(VPCタイプ OpenNW)」※ を使って、簡単に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

例えばこんな感じ!

つくりかた

1. VPCを作成

2. サブネットを作成

3. インスタンスを作成

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

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

6. VPN接続

7. 接続確認

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

ローカル環境の用意

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

(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

ありがとう 桜葉愛ちゃん

ローカル環境の用意

Vyatta を選択

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

vyattaサーバを作ります

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

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

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

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

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

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

NICを追加します

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

停止したvyattaサーバで

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

スイッチに接続します

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

sshd を起動します

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

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

今度はVMを作ります

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

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

$ 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にアドレスを付与

ローカル環境の用意

$ 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はコントロールパネルから確認できます

# 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の設定

ローカル環境の用意

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

2.VPCを作成

3.サブネットを作成

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

3.サブネットを作成

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

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

クリック

4.インスタンスを作成

4.インスタンスを作成

4.インスタンスを作成

4.インスタンスを作成

4.インスタンスを作成

4.インスタンスを作成

4.インスタンスを作成

4.インスタンスを作成

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ゲートウェイ」を作成します

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

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

VPNゲートウェイができた

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

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の設定をします

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カスタマーゲートウェイを作成

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

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

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

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

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

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

7.VPN接続

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

「VPN接続」をクリック

7.VPN接続

VPN接続ができた

7.VPN接続

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

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 cloudn@192.168.100.72cloudn@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

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 ubuntu@172.16.200.50ubuntu@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→ローカル

応用例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

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

VPN接続!

VPN接続が できた

VPN接続

応用例1

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のルール設定はできない仕様となっています。 以下は、参考まで

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の変更はできない (ルールの追加削除は可能)ので注意!

※ACLの設定

「NETWORK ACL LISTS」をクリック

応用例2

「Add ACL LISTS」をクリック

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

ACLが追加された

応用例2

※ACLの設定

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

応用例2

※ACLの設定

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の変更はできない (ルールの追加削除は可能)ので注意!

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

IPアドレスが追加された

(1)Global IPの追加

応用例2

「構成」タブ

(2)ポート転送

応用例2

ルールを追加する

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

など

(2)ポート転送

応用例2

来年もどうぞよろしくね

Recommended