CloudStack usersgroup_21_nakaya_20140912

Post on 27-Nov-2014

466 Views

Category:

Software

9 Downloads

Preview:

Click to see full reader

DESCRIPTION

 

Transcript

Apache CloudStack 4.4

New features of VPC

2014/9/12第21回 CloudStackユーザー会 in 東京

Satoru Nakaya(@giraffeforestg)____http://giraffeforestg.blog.fc2.com/

自己紹介× 中谷 悟 / Satoru Nakaya× 岐阜県在住× 大学情報基盤 や オープンソースクラウド を担当× ⾃宅SAN友の会× VMware Certified Advanced Professional× CCA for Citrix XenServer

本日はよろしくお願いします。

2

お約束× 本資料の情報を利⽤することによって⽣じるいかなる損害についても責

任を負うものではありません。× 発⾔は個⼈の⾒解であり所属する組織の公式⾒解ではありません。

3

4

VPCの新機能1) Distributed routing and network ACL with OVS plug-in2) Region wide Guest networks and VPC

5

かなり

6

上級者向きです

7

まずCloudStack のVPC について

User VM Instance

Guest Network

Basic Network

8

Internet

VR

User VM Instance

Guest Network

Public Network

Advanced Network

9

Internet

VR

VPC (Virtual Private Cloud)

10

データセンター内ネットワーク 他データセンター

VPC-VR

オンプレミスサイトInternet

Network1(Web)

Network2(AP)

Network3(DB)

ルーティング IPSEC-VPN

11

Distributed routing andnetwork ACL with

OVS plug-in

12

Distributed routing and network ACL with OVS plug-in・OVS

→ Open vSwitch (仮想スイッチ)

・Distributed routing→ 分散ルーティング

・network ACL→ アクセス制御リスト

13

Network1

VPC-VR

Open vSwitch

Open vSwitch

HOST1

HOST2

普通のルーティングルーティングテーブル

Network2 Network3

Open vSwitch

HOST3

Network4

14

Network1

VPC-VR

Open vSwitch

Open vSwitch

HOST1

HOST2

分散ルーティングルーティングテーブル

Network2 Network3

Open vSwitch

HOST3

Network4

フローテーブル フローテーブル

フローテーブル

15

Distributed routing with OVS plug-in

16

Distributed routing with OVS plug-in

VPC-VR

Open vSwitch Open vSwitch

Open vSwitch

Full mesh of GRE tunnels

17

動かしてみよう

18

システム構成・Apache Cloudstack 4.4・HOST: XenServer 6.2 SP1 x 3

19

設定の流れ1) グローバルコンフィグレーションを設定する2) ゾーンを作成する3) サービス オファリングを作成する

・VPC オファリング・ネットワーク オファリング

4) VPCを作成する・VPC-VR・Tier・ACL (デフォルト使用)

5) VMインスタンスを作成する

20

1) グローバルコンフィグレーションを設定する

・sdn.ovs.controller.default.label

sdn.ovs.controller.default.label にゲストネットワークのネットワークラベルを⼊⼒する。

設定後はcloudstack-management プロセス再起動を忘れずに。

21

2) ゾーンを作成するAdvanced Networkを使⽤する。

ゲストネットワークのPhysical Networkを分ける。ゲストネットワークのIsolation methodにGREを設定する。

22

2) ゾーンを作成する

Isolation methodにGREを設定したゾーンを作成するとネットワークサービス プロバイダーでovsが⾃動で有効化される。

23

3) サービス オファリングを作成する

VPCオファリングを作成する。

24

3) サービス オファリングを作成する

Connectivity ProviderはOvsを選択する。

その他のService ProviderはVpcVirtualRouterを選択する。

分散ルーターを選択する。

25

3) サービス オファリングを作成する

ネットワークオファリングを作成する。

26

3) サービス オファリングを作成する

VPCを選択する。

仮想ネットワーク ProviderはOvsを選択する。

その他のService ProviderはVpcVirtualRouterを選択する。

4) VPCを作成する

27

VPCを作成する。先ほど作成したVPCオファリングを選択する。

4) VPCを作成する

28

4) VPCを作成する

29

階層(Tier)を作成する。先ほど作成したネットワークオファリングを選択する。

4) VPCを作成する

30

5) VMインスタンスを作成する

31

5) VMインスタンスを作成する

32

VPC-VR

VPC-VRとVMの位置

33

WEB SERVER

DB SERVER

VPC-VR

34

VPC GRE tunnels [root@xen01 ~]# ovs-vsctl show

:Bridge "xapi1"

fail_mode: standalonePort "t125-1-5"

Interface "t125-1-5"type: greoptions: {cloudstack-network-id="6150d7b7-24fb-4a64-9cd0-b1e77f69d0c8", key="125", remote_ip="10.0.3.7"}

Port "vif3.2"Interface "vif3.2"

Port "t105-1-5"Interface "t105-1-5"

type: greoptions: {cloudstack-network-id="b5fb008f-ce97-4001-83db-23424547cfdb", key="105", remote_ip="10.0.3.7"}

Port "xapi1"Interface "xapi1"

type: internalPort "vif3.3"

Interface "vif3.3"Port "t105-1-2"

Interface "t105-1-2"type: greoptions: {cloudstack-network-id="b5fb008f-ce97-4001-83db-23424547cfdb", key="105", remote_ip="10.0.3.6"}

Port "t125-1-2"Interface "t125-1-2"

type: greoptions: {cloudstack-network-id="6150d7b7-24fb-4a64-9cd0-b1e77f69d0c8", key="125", remote_ip="10.0.3.6"}

35

通信テスト

10.50.1.53 → 10.50.2.218

36

VPC-VR

10.50.2.218/24

10.50.1.53/24

10.50.2.1/24

10.50.1.1/24

Ping 10.50.1.53 → 10.50.2.218

Tracert 10.50.1.53 → 10.50.2.218

パケットキャプチャ

39

VPC-VR

10.50.2.218/24

10.50.1.53/24

10.50.2.1/24

10.50.1.1/24

ここでパケットをキャプチャしてみる

VPC-VRではパケットを処理していない[root@xen01 ~]# tcpdump -n -i vif3.2tcpdump: WARNING: vif3.2: no IPv4 address assigned tcpdump: verbose output suppressed, use -v or -vv for full protocol decodelistening on vif6.2, link-type EN10MB (Ethernet), capture size 65535 bytes^C0 packets captured0 packets received by filter0 packets dropped by kernel

40

[root@xen01 ~]# tcpdump -n -i vif3.3tcpdump: WARNING: vif3.3: no IPv4 address assignedtcpdump: verbose output suppressed, use -v or -vv for full protocol decodelistening on vif6.3, link-type EN10MB (Ethernet), capture size 65535 bytes^C0 packets captured0 packets received by filter0 packets dropped by kernel

Open vSwitchのフローテーブル(1)[root@xen02 ~]# ovs-ofctl dump-flows xapi1NXST_FLOW reply (xid=0x4):cookie=0x0, duration=601.33s, table=0, n_packets=0, n_bytes=0, priority=1100,in_port=5 actions=resubmit(,1)cookie=0x0, duration=1244.934s, table=0, n_packets=19, n_bytes=2206, priority=1100,in_port=1 actions=resubmit(,1)cookie=0x0, duration=664.007s, table=0, n_packets=0, n_bytes=0, priority=1100,in_port=3 actions=resubmit(,1)cookie=0x0, duration=602.592s, table=0, n_packets=0, n_bytes=0, priority=1100,in_port=4 actions=resubmit(,1)cookie=0x0, duration=1245.463s, table=0, n_packets=23, n_bytes=2466, priority=1200,dl_dst=ff:ff:ff:ff:ff:ff actions=resubmit(,2)cookie=0x0, duration=601.34s, table=0, n_packets=0, n_bytes=0, priority=1000,ip,in_port=5,nw_dst=224.0.0.0/24 actions=dropcookie=0x0, duration=602.602s, table=0, n_packets=0, n_bytes=0, priority=1000,ip,in_port=4,nw_dst=224.0.0.0/24 actions=dropcookie=0x0, duration=664.017s, table=0, n_packets=0, n_bytes=0, priority=1000,ip,in_port=3,nw_dst=224.0.0.0/24 actions=dropcookie=0x0, duration=592.617s, table=0, n_packets=0, n_bytes=0, priority=1200,ip,in_port=2,nw_dst=10.50.1.0/24 actions=resubmit(,1)cookie=0x0, duration=1244.945s, table=0, n_packets=0, n_bytes=0, priority=1000,ip,in_port=1,nw_dst=224.0.0.0/24 actions=dropcookie=0x0, duration=1245.442s, table=0, n_packets=2, n_bytes=84, priority=0 actions=resubmit(,1)cookie=0x0, duration=592.617s, table=0, n_packets=0, n_bytes=0, priority=1100,ip,in_port=2,dl_dst=02:00:45:d3:00:02,nw_dst=10.50.0.0/16 actions=resubmit(,3)cookie=0x0, duration=601.35s, table=0, n_packets=0, n_bytes=0, priority=1000,in_port=5,dl_dst=ff:ff:ff:ff:ff:ff actions=dropcookie=0x0, duration=602.612s, table=0, n_packets=0, n_bytes=0, priority=1000,in_port=4,dl_dst=ff:ff:ff:ff:ff:ff actions=dropcookie=0x0, duration=664.028s, table=0, n_packets=0, n_bytes=0, priority=1000,in_port=3,dl_dst=ff:ff:ff:ff:ff:ff actions=dropcookie=0x0, duration=1244.961s, table=0, n_packets=0, n_bytes=0, priority=1000,in_port=1,dl_dst=ff:ff:ff:ff:ff:ff actions=dropcookie=0x0, duration=1245.452s, table=0, n_packets=0, n_bytes=0, priority=1200,ip,nw_dst=224.0.0.0/24 actions=resubmit(,2)cookie=0x0, duration=592.618s, table=1, n_packets=0, n_bytes=0, priority=1100,dl_dst=02:00:71:b4:00:01 actions=output:2cookie=0x0, duration=592.616s, table=1, n_packets=0, n_bytes=0, priority=1100,dl_dst=02:00:14:01:00:02 actions=output:3cookie=0x0, duration=592.617s, table=1, n_packets=0, n_bytes=0, priority=1100,dl_dst=02:00:45:d3:00:02 actions=output:1cookie=0x0, duration=592.615s, table=1, n_packets=0, n_bytes=0, priority=1100,dl_dst=02:00:39:8e:00:01 actions=output:5cookie=0x0, duration=592.614s, table=1, n_packets=0, n_bytes=0, priority=0 actions=resubmit(,2)

41

Open vSwitchのフローテーブル(2)cookie=0x0, duration=600.994s, table=2, n_packets=4, n_bytes=468, priority=1100,in_port=5 actions=output:2cookie=0x0, duration=600.994s, table=2, n_packets=0, n_bytes=0, priority=1100,in_port=1 actions=output:2cookie=0x0, duration=600.995s, table=2, n_packets=0, n_bytes=0, priority=1100,in_port=3 actions=output:2cookie=0x0, duration=600.994s, table=2, n_packets=5, n_bytes=810, priority=1100,in_port=4 actions=output:2cookie=0x0, duration=600.993s, table=2, n_packets=0, n_bytes=0, priority=1100,in_port=2 actions=output:3,output:5,output:1,output:4cookie=0x0, duration=600.993s, table=2, n_packets=0, n_bytes=0, priority=0 actions=dropcookie=0x0, duration=606.83s, table=3, n_packets=0, n_bytes=0, priority=0 actions=resubmit(,4)cookie=0x0, duration=606.831s, table=3, n_packets=0, n_bytes=0, priority=1002,ip,nw_src=10.50.1.0/24 actions=resubmit(,4)cookie=0x0, duration=606.83s, table=3, n_packets=0, n_bytes=0, priority=1002,ip,nw_src=10.50.2.0/24 actions=resubmit(,4)cookie=0x0, duration=592.618s, table=4, n_packets=0, n_bytes=0, ip,nw_dst=10.50.1.53 actions=mod_dl_src:02:00:45:d3:00:02,mod_dl_dst:02:00:71:b4:00:01,resubmit(,5)cookie=0x0, duration=592.614s, table=4, n_packets=0, n_bytes=0, ip,nw_dst=10.50.2.218 actions=mod_dl_src:02:00:14:01:00:02,mod_dl_dst:02:00:39:8e:00:01,resubmit(,5)cookie=0x0, duration=592.616s, table=4, n_packets=0, n_bytes=0, ip,nw_dst=10.50.1.1 actions=mod_dl_src:02:00:45:d3:00:02,mod_dl_dst:02:00:45:d3:00:02,resubmit(,5)cookie=0x0, duration=592.615s, table=4, n_packets=0, n_bytes=0, ip,nw_dst=10.50.2.1 actions=mod_dl_src:02:00:14:01:00:02,mod_dl_dst:02:00:14:01:00:02,resubmit(,5)cookie=0x0, duration=592.614s, table=4, n_packets=0, n_bytes=0, priority=0 actions=resubmit(,1)cookie=0x0, duration=606.829s, table=5, n_packets=0, n_bytes=0, priority=0 actions=dropcookie=0x0, duration=606.831s, table=5, n_packets=0, n_bytes=0, priority=1001,ip,nw_dst=10.50.2.0/24 actions=resubmit(,1)cookie=0x0, duration=606.832s, table=5, n_packets=0, n_bytes=0, priority=1001,ip,nw_dst=10.50.1.0/24 actions=resubmit(,1)

42

10.50.1.53 → 10.50.1.1

43

VPC-VR

10.50.2.218/24

10.50.1.53/24

10.50.2.1/24

10.50.1.1/24

Ping 10.50.1.53 → 10.50.1.1

パケットキャプチャ

45

VPC-VR

10.50.2.218/24

10.50.1.53/24

10.50.2.1/24

10.50.1.1/24

ここでパケットをキャプチャしてみる

VPC-VRでパケット到着を確認[root@xen01 ~]# tcpdump -n -i vif3.2tcpdump: WARNING: vif3.2: no IPv4 address assignedtcpdump: verbose output suppressed, use -v or -vv for full protocol decodelistening on vif3.2, link-type EN10MB (Ethernet), capture size 65535 bytes22:02:10.978747 IP 10.50.1.53 > 10.50.1.1: ICMP echo request, id 33555, seq 7, length 6422:02:10.978990 IP 10.50.1.1 > 10.50.1.53: ICMP echo reply, id 33555, seq 7, length 6422:02:11.978760 IP 10.50.1.53 > 10.50.1.1: ICMP echo request, id 33555, seq 8, length 6422:02:11.979023 IP 10.50.1.1 > 10.50.1.53: ICMP echo reply, id 33555, seq 8, length 6422:02:12.978616 IP 10.50.1.53 > 10.50.1.1: ICMP echo request, id 33555, seq 9, length 6422:02:12.978911 IP 10.50.1.1 > 10.50.1.53: ICMP echo reply, id 33555, seq 9, length 6422:02:13.978617 IP 10.50.1.53 > 10.50.1.1: ICMP echo request, id 33555, seq 10, length 6422:02:13.978863 IP 10.50.1.1 > 10.50.1.53: ICMP echo reply, id 33555, seq 10, length 64^C8 packets captured8 packets received by filter0 packets dropped by kernel

46

VPC-VRでパケット到着を確認[root@xen01 ~]# tcpdump -n -i eth2 ip proto gre

tcpdump: WARNING: eth2: no IPv4 address assignedtcpdump: verbose output suppressed, use -v or -vv for full protocol decodelistening on eth2, link-type EN10MB (Ethernet), capture size 65535 bytes23:07:39.209985 IP 10.0.3.6 > 10.0.3.5: GREv0, key=0x7d, length 106: IP 10.50.1.53 > 10.50.1.1: ICMP echo request, id 33555, seq 3935, length 6423:07:39.210311 IP 10.0.3.5 > 10.0.3.6: GREv0, key=0x7d, length 106: IP 10.50.1.1 > 10.50.1.53: ICMP echo reply, id 33555, seq 3935, length 6423:07:40.210167 IP 10.0.3.6 > 10.0.3.5: GREv0, key=0x7d, length 106: IP 10.50.1.53 > 10.50.1.1: ICMP echo request, id 33555, seq 3936, length 6423:07:40.210614 IP 10.0.3.5 > 10.0.3.6: GREv0, key=0x7d, length 106: IP 10.50.1.1 > 10.50.1.53: ICMP echo reply, id 33555, seq 3936, length 6423:07:41.209520 IP 10.0.3.6 > 10.0.3.5: GREv0, key=0x7d, length 106: IP 10.50.1.53 > 10.50.1.1: ICMP echo request, id 33555, seq 3937, length 6423:07:41.209769 IP 10.0.3.5 > 10.0.3.6: GREv0, key=0x7d, length 106: IP 10.50.1.1 > 10.50.1.53: ICMP echo reply, id 33555, seq 3937, length 6423:07:42.209465 IP 10.0.3.6 > 10.0.3.5: GREv0, key=0x7d, length 106: IP 10.50.1.53 > 10.50.1.1: ICMP echo request, id 33555, seq 3938, length 6423:07:42.209682 IP 10.0.3.5 > 10.0.3.6: GREv0, key=0x7d, length 106: IP 10.50.1.1 > 10.50.1.53: ICMP echo reply, id 33555, seq 3938, length 64^C8 packets captured44 packets received by filter5 packets dropped by kernel

47

48

Region wideGuest networks and VPC

通常のVPC

49

zone01 zone02

VPC1

tier

tier

VM

VM

VPC-VR

ゾーンが違えばVPCも別管理

VPC2

tier

tier

VM

VM

VPC-VR

Region wide VPC

50

zone01 zone02

Region wide VPC

tier1

tier2

VM1

VM2

VPC-VR

ゾーンをまたがったVPC

51

動かしてみよう

52

システム構成・Apache Cloudstack 4.4・HOST: XenServer 6.2 SP1 x 2

53

設定の流れ1) グローバルコンフィグレーションを設定する2) ゾーンを作成する(2つ)3) サービス オファリングを作成する

・VPC オファリング・ネットワーク オファリング

4) VPCを作成する・VPC-VR・Tier・ACL

5) VMインスタンスを作成する

54

2) ゾーンを作成する(2つ)

zone01

zone02

55

3) サービス オファリングを作成する

VPCオファリングを作成する。

56

3) サービス オファリングを作成する

Connectivity ProviderはOvsを選択する。

その他のService ProviderはVpcVirtualRouterを選択する。

リージョンレベルVPCを選択する。

分散ルーターは選択しない。※同時選択しても正常動作しない。

57

3) サービス オファリングを作成する

ネットワークオファリングを作成する。

58

3) サービス オファリングを作成する

VPCを選択する。

仮想ネットワーク ProviderはOvsを選択する。

その他のService ProviderはVpcVirtualRouterを選択する。

ストレッチドL2サブネットのサポートを選択する。

59

4) VPCを作成するVPCを作成する。

先ほど作成したVPCオファリングを選択する。

60

4) VPCを作成する

注意:VPC作成時にゲストネットワークのDNSドメインを⼊⼒しないとエラーになる。

4) VPCを作成する

61

4) VPCを作成する

62

次に階層(Tier)を作成するが,Region level VPCの場合はVPCビューでは作成せず

ゲストネットワークビューで作成する。

4) VPCを作成する

63

理由: Region wide VPCはゾーン指定してTierを作成する必要があるが,いまのところVPCビューではゾーン選択ができない。

64

4) VPCを作成する

65

4) VPCを作成する

66

4) VPCを作成する階層(Tier)を作成する。

ゾーンおよび,先ほど作成したネットワークオファリング,VPNオファリングを選択する。

67

4) VPCを作成する

68

4) VPCを作成する

69

4) VPCを作成するACLを設定する。

(ゲストネットワークビューでTierを作成すると設定されない為,VPCビューで設定する)

70

4) VPCを作成する

71

5) VMインスタンスを作成する

72

5) VMインスタンスを作成する

73

5) VMインスタンスを作成する

74

5) VMインスタンスを作成する

zone01

zone02

VPC-VR

VM1

VM2

75

5) VMインスタンスを作成する

10.50.2.1/24

10.50.1.1/24

10.50.2.30/24

10.50.1.126/24

zone02

zone01

76

通信テスト:VM1→VPC-VR

77

通信テスト:VM2→VPC-VR

78

続いて ストレッチドL2サブネット

ストレッチドL2サブネット

79

zone01 zone02

Region wide VPC

tier2 VM2

VPC-VR

tier1 VM1 VM3

ストレッチドL2サブネット

L2サブネットの拡張

80

ストレッチドL2サブネット

ゾーン2 かつ Tier1 指定でVMインスタンス(VM3)を作成したい。

81

ストレッチドL2サブネットTier1が選択できない...

あきらめずにAPIを使う![root@acs ~]# curl -s 'http://localhost:8096/client/api?command=deployVirtualMachine&serviceofferingid=fb90e214-2210-438f-911d-108a234cd90c&hypervisor=XenServer&templateid=77591822-1554-11e4-ba4e-000c2982380a

※zone02のテンプレートID&zoneid=8ffe7c17-deb7-4718-89e9-cd3b7ea87bba

※zone02のID&iptonetworklist%5B0%5D.networkid=f9665bd6-1a14-4b8b-9dcf-7d58ec62c40d

※VPC TierのネットワークID&name=VM3&displayname=VM3&account=admin&domainid=775151aa-1554-11e4-ba4e-000c2982380a&response=json' | python -mjson.tool

82

83

ストレッチドL2サブネット

84

ストレッチドL2サブネット

zone01

zone02

VPC-VR

VM1

VM2

VM3

85

通信テスト:VM3→VPC-VR

まとめDistributed routing and network ACL with OVS plug-in・分散ルーテイング・Open vSwitch・GRE Tunnels

Region wide Guest networks and VPC・ゾーンをまたがったVPC・L2サブネットの拡張・Open vSwitch・GRE Tunnels

86

87

ありがとうございましたThank you so much.

top related