14
第5回 東京SoftLayer勉強会 LT7 SoftLayerでOpenStackを動かしてみた 2014年12月22日 TIS株式会社 松井 暢之 @n_matsui / nbyk.matsui

【第5回東京SoftLayer勉強会】LT7 SoftLayerでOpenStackを動かしてみた

Embed Size (px)

Citation preview

第5回 東京SoftLayer勉強会

LT7 SoftLayerでOpenStackを動かしてみた

2014年12月22日

TIS株式会社 松井 暢之 @n_matsui / nbyk.matsui

2

松井暢之(まつい のぶゆき)

TIS株式会社コーポレート本部戦略技術センター

~2003

2003~2008

2009

2010~2012

2013~

現場PJでアーキテクト兼モデラー兼プログラマ兼…を歴任

基盤技術センター(現戦略技術センター)で不芳PJの火消しに奔走

全社生産性向上の企画策定に従事

オープンでエッジな技術を活用した事業企画に従事

Cloud Orchestrator “CloudConductor®” の企画開発とOSS化開始

http://cloudconductor.org

nbyk.matsui

nmatsui

nbyk.matsui

@n_matsui

本日の内容

構築したOpenStack on SoftLayerの全体像

ホストサーバのネットワーク構成のポイント

OpenStack上の仮想ネットワーク構成のポイント

3

構築手順の詳細は次の記事をご参照ください

SoftLayer BareMetal上でOpenStack Icehouseを動作させるhttp://tech-sketch.jp/2014/12/softlayer-openstack-icehouse.html

構築したOpenStack on SoftLayerの全体像

4

Bare Metal

VM

Internal Subnet (192.168.0.0/24)

Internal IP: 192.168.0.2

Floating IP: 10.88.166.68

Private Portable Subnet (10.88.166.64/28)

router

eth1

eth0br-ex:0 br-ex

10.88.166.66

CinderSwiftGlance

keystone

NeutronNova

Horizon

NAT: 192.168.0.2 ⇔ 10.88.166.68

br-int

10.88.166.67

192.168.0.1

Private Primary Subnet (10.90.138.64/26)

SoftLayer Private Network

10.88.166.65 10.90.138.65

10.90.138.103

仮想マシンと仮想ネットワーク OpenStackサービス

Public Primary Subnet

PPTP or SSL-VPN

SSHInternet

構築したOpenStack on SoftLayerの要件

今回は「構築者がOpenStackの検証を行う」ことを目的とした環境(OpenStackはpackstackでAll-in-Oneでインストール)

インターネットにはOpenStackのAPIやGUIを公開しない

OpenStackで立ち上げたVMに与えるFloating IPは、SoftLayerのサーバに与えられるIPアドレスと重複しないように制御する

5

OpenStackの各サービスはPublic IPアドレスではなくPrivate IPアドレスでアクセスする

外部接続Subnetとして、Private Primary SubnetではなくPrivate Portable Subnetを利用する

ホストサーバのネットワーク構成のポイント

6

Bare Metal

VM

Internal Subnet (192.168.0.0/24)

Internal IP: 192.168.0.2

Floating IP: 10.88.166.68

Private Portable Subnet (10.88.166.64/28)

router

eth1

eth0br-ex:0 br-ex

10.88.166.66

CinderSwiftGlance

keystone

NeutronNova

Horizon

NAT: 192.168.0.2 ⇔ 10.88.166.68

br-int

10.88.166.67

192.168.0.1

Private Primary Subnet (10.90.138.64/26)

SoftLayer Private Network

10.88.166.65 10.90.138.65

10.90.138.103

仮想マシンと仮想ネットワーク OpenStackサービス

Public Primary Subnet

PPTP or SSL-VPN

SSHInternet

iptablesでssh以外のinboundをreject

OpenStackサービスのホストIPを10.90.138.103に変更

ovsブリッジにaliasを作成しPrivate Portable IPを割当

10.0.0.0/8は10.90.138.65へ静的ルーティング

ホストサーバのネットワーク構成のポイント

ホストサーバのネットワークインタフェース

7

[root@openstack01 ~]# ifconfig

br-ex Link encap:Ethernet HWaddr 00:25:90:91:7F:80

inet addr:10.90.138.103 Bcast:10.90.138.127 Mask:255.255.255.192

...

br-ex:0 Link encap:Ethernet HWaddr 00:25:90:91:7F:80

inet addr:10.88.166.66 Bcast:10.88.166.79 Mask:255.255.255.240

...

br-int Link encap:Ethernet HWaddr 66:FC:5D:97:48:48

...

br-tun Link encap:Ethernet HWaddr 72:17:42:94:A8:44

...

eth0 Link encap:Ethernet HWaddr 00:25:90:91:7F:80

...

eth1 Link encap:Ethernet HWaddr 00:25:90:91:7F:81

inet addr:AAA.BBB.CCC.DDD Bcast:AAA.BBB.CCC.yyy Mask:255.255.255.248

...

lo Link encap:Local Loopback

inet addr:127.0.0.1 Mask:255.0.0.0

...

virbr0 Link encap:Ethernet HWaddr 52:54:00:E7:5B:65

inet addr:192.168.122.1 Bcast:192.168.122.255 Mask:255.255.255.0

SoftLayerから与えられた Private Primary Subnet のIPアドレス

追加取得した Private Portable Subnet のIPアドレス

SoftLayerから与えられた Public Primary SubnetのIPアドレス

ホストサーバのネットワーク構成のポイント

ホストサーバのルーティングテーブル

VLAN Spanningされた他のPrivate Subnetのサーバとも通信できるように、SoftLayerのPrivate Network(10.0.0.0/8)宛のパケットはbr-exを使ってPrivate Primary Subnetのgateway (10.90.138.65)へ送出する静的routeを設定

デフォルトゲートウェイはeth1側にあるPublic Primary Networkのgatewayを設定

8

[root@openstack01 ~]# route -n

Kernel IP routing table

Destination Gateway Genmask Flags Metric Ref Use Iface

AAA.BBB.CCC.zz 0.0.0.0 255.255.255.248 U 0 0 0 eth1

10.88.166.64 0.0.0.0 255.255.255.240 U 0 0 0 br-ex

10.90.138.64 0.0.0.0 255.255.255.192 U 0 0 0 br-ex

192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0

169.254.0.0 0.0.0.0 255.255.0.0 U 1002 0 0 eth0

169.254.0.0 0.0.0.0 255.255.0.0 U 1003 0 0 eth1

169.254.0.0 0.0.0.0 255.255.0.0 U 1124 0 0 br-ex

10.0.0.0 10.90.138.65 255.0.0.0 UG 0 0 0 br-ex

0.0.0.0 AAA.BBB.CCC.x 0.0.0.0 UG 0 0 0 eth1

Private Primary Subnet

Private Portable Subnet

Public Primary Subnet

ホストサーバのネットワーク構成のポイント

ネットワークの疎通確認

9

Bare Metal (openstack01)

eth1

eth0br-ex:0 br-ex

SoftLayer Private Network

同一VLANのサーバ(test-sjc01)

別VLANのサーバ(test-sng01)

Private Portable Subnet (10.88.166.64/28)

10.88.166.66

Private Primary Subnet (10.90.138.64/26)

10.88.166.65 10.90.138.65

10.90.138.103

別DCのPrivate Primary Subnet (10.67.43.0/26)

OpenStack上の仮想ネットワーク構成のポイント

10

Bare Metal

VM

Internal Subnet (192.168.0.0/24)

Internal IP: 192.168.0.2

Floating IP: 10.88.166.68

Private Portable Subnet (10.88.166.64/28)

router

eth1

eth0br-ex:0 br-ex

10.88.166.66

CinderSwiftGlance

keystone

NeutronNova

Horizon

NAT: 192.168.0.2 ⇔ 10.88.166.68

br-int

10.88.166.67

192.168.0.1

Private Primary Subnet (10.90.138.64/26)

SoftLayer Private Network

10.88.166.65 10.90.138.65

10.90.138.103

仮想マシンと仮想ネットワーク OpenStackサービス

Public Primary Subnet

PPTP or SSL-VPN

SSHInternet

neutronの外部接続NWとしてPrivate Portable Subnetを指定(gatewayはホストサーバ自身)

Private Portable Subnetのパケットをeth1へNATするルールをiptablesへ追加

10.0.0.0/8は10.88.166.65へ静的ルーティング

OpenStack上の仮想ネットワーク構成のポイント

外部接続Subnetのgatewayルールをiptablesに設定

SoftLayerから与えられたPrivate Portable Subnetのgatewayはインターネットへルーティングする経路を持たないため、OpenStack上に作成したVMがインターネットに出られるように、Private Portable Subnetのパケットをeth1へ転送してNATするルールをiptablesに追加

念のため、Private IPのパケットをそのままインターネットへ流さないようにDROPするルールも追加

11

[root@openstack01 ~]# iptables -A FORWARD -o eth1 -s 10.88.166.64/28 -j ACCEPT

[root@openstack01 ~]# iptables -t nat -A POSTROUTING -o eth1 -s 10.88.166.64/28 -j MASQUERADE

[root@openstack01 ~]# iptables -A OUTPUT -o eth1 -d 10.0.0.0/8 -j DROP

[root@openstack01 ~]# iptables -A OUTPUT -o eth1 -d 172.16.0.0/12 -j DROP

[root@openstack01 ~]# iptables -A OUTPUT -o eth1 -d 192.168.0.0/16 -j DROP

[root@openstack01 ~]# iptables -A OUTPUT -o eth1 -d 127.0.0.0/8 -j DROP

OpenStack上の仮想ネットワーク構成のポイント

neutronの外部接続ネットワークの設定

ゲートウェイIPは、eth1へのNATルールを追加したホストサーバのbr-ex:0に割り当てたPrivate Portable IP Addressを指定

SoftLayerのPrivate Networkへ通信できるように、10.0.0.0/8はPrivate Portable Subnetのgateway(10.88.166.65)へルーティングする静的routeを設定

12

設定項目 値 備考

ネットワーク名 public

サブネット名 public_subnet

ネットワークアドレス 10.88.166.64/28 Private Portable Subnet

ゲートウェイIP 10.88.166.66 br-ex:0に設定したPrivate Portable IP Address

DHCP有効 有効

IPアドレスプール 10.88.166.67,10.88.166.78 Private Portable Subnetの空きIPレンジ

DNSサーバ 8.8.8.8 とりあえずGoogleのDNSサーバを利用

追加のルート設定 10.0.0.0/8,10.88.166.65 10.0.0.0/8は10.88.166.65へルーティング

OpenStack上の仮想ネットワーク構成のポイント

ネットワークの疎通確認

13

Bare Metal (openstack01)

VM

router

eth1

eth0br-ex:0 br-ex

br-int

SoftLayer Private Network

Internet

Public Primary Subnet

同一VLANのサーバ(test-sjc01)

別VLANのサーバ(test-sng01)

sourceが10.88.166.64/28のパケットはeth1へMASQUERADEInternal Subnet (192.168.0.0/24)

Internal IP: 192.168.0.2

Floating IP: 10.88.166.68

NAT: 192.168.0.2 ⇔ 10.88.166.68

10.88.166.67

192.168.0.1

10.0.0.0/8のgatewayは10.88.166.65

Private Portable Subnet (10.88.166.64/28)

10.88.166.66

Private Primary Subnet (10.90.138.64/26)

10.88.166.65 10.90.138.65

10.90.138.103

default gatewayは10.88.166.66