第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
eth0
br-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
SSH
Internet
構築した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
eth0
br-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
SSH
Internet
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
eth0
br-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
eth0
br-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
SSH
Internet
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
eth0
br-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
【第5回東京SoftLayer勉強会】LT7 SoftLayerでOpenStackを動かしてみた

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

  • 1.
  • 2.
  • 3.
    本日の内容  構築したOpenStack onSoftLayerの全体像  ホストサーバのネットワーク構成のポイント  OpenStack上の仮想ネットワーク構成のポイント 3 構築手順の詳細は次の記事をご参照ください SoftLayer BareMetal上でOpenStack Icehouseを動作させる http://tech-sketch.jp/2014/12/softlayer-openstack-icehouse.html
  • 4.
    構築したOpenStack on SoftLayerの全体像 4 BareMetal 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 eth0 br-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 SSH Internet
  • 5.
    構築した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.
    ホストサーバのネットワーク構成のポイント 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 eth0 br-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 SSH Internet 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.
    ホストサーバのネットワーク構成のポイント  ホストサーバのネットワークインタフェース 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アドレス
  • 8.
    ホストサーバのネットワーク構成のポイント  ホストサーバのルーティングテーブル  VLANSpanningされた他の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.
    ホストサーバのネットワーク構成のポイント  ネットワークの疎通確認 9 Bare Metal(openstack01) eth1 eth0 br-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)
  • 10.
    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 eth0 br-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 SSH Internet neutronの外部接続NWとして Private Portable Subnetを指定 (gatewayはホストサーバ自身) Private Portable Subnetのパケットを eth1へNATするルールをiptablesへ追加 10.0.0.0/8は10.88.166.65へ 静的ルーティング
  • 11.
    OpenStack上の仮想ネットワーク構成のポイント  外部接続Subnetのgatewayルールをiptablesに設定  SoftLayerから与えられたPrivatePortable 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
  • 12.
    OpenStack上の仮想ネットワーク構成のポイント  neutronの外部接続ネットワークの設定  ゲートウェイIPは、eth1へのNATルールを追加したホストサーバ のbr-ex:0に割り当てたPrivatePortable 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へルーティング
  • 13.
    OpenStack上の仮想ネットワーク構成のポイント  ネットワークの疎通確認 13 Bare Metal(openstack01) VM router eth1 eth0 br-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