ネットワークからみるPCC - PrimeCloud Controller / OSS

ネットワークからみるPCC
2015-08-26
寺内康之
自己紹介
名前:寺内康之
元ネットワーク屋からインフラ屋になり、今は
プログラマを目指したい。
今後、PCCの開発・発展の推進をしていくこと
になりまして・・・
Agenda
• PCCに関わるモノたち
• OpenVPNを使うか使わなないか
• PCCと仮想マシン
• 接続形態とプラットフォーム
• プラットフォームにおけるネットワーク情報
• 宛先IPと設定
• PCCとZabbixと私
• 管理端末とPCC
• まとめ
PCCに関わるモノたち
•PCC本体
•Dynamic DNS
•Zabbix
•OpenVPN
•各種IaaS
•管理端末
OpenVPNを使うか使わないか 1/3
AWSならば
somewhere
PrimeCloud
Controller
OpenVPN
Private IP
Global IP
OpenVPN Network
Internet
Private IP
Global IP
Global IP
Private IP
PCC管理対象
VM
PCC管理対象
VM
Classic EC2
Default VPC
/グローバルIPを持つVPC
direct connect/
site to site VPN/
peering
Private IP
PCC管理対象
VM
VPC
OpenVPNを使うか使わないか 2/3
Azureならば
somewhere
PrimeCloud
Controller
OpenVPN
Global IP
Private IP
VPN GW
OpenVPN Network
Internet
VPN GW
Private IP
Global IP
PCC管理対象
VM
Private IP
PCC管理対象
VM
OpenVPNを使うか使わないか 3/3
Platform A
OpenVPN
Global IP
PrimeCloud
Controller
PCC管理対象
VM
Private IP
VPN GW
OpenVPN
Internet
private網
Site to Site VPN
VPN GW
Private IP
Global IP
PCC管理対象
VM
Platform B
Private IP
PCC管理対象
VM
Platform C
Private IP
PCC管理対象
VM
Platform D
接続形態とプラットフォーム
• グローバルIPアドレスならOpenVPN
• プライベートIPアドレスなら直接接続
• Platformを登録するときに接続形態を
指定
• 1bitで表現できる
• Platformテーブルのinternalカラム
接続形態とプラットフォーム
【Classic EC2プラットフォームの登録】
pcc add platform --iaasName aws
--platformName aws_Tokyo
--platformNameDisp 'Amazon EC2(Tokyo)‘
--platformSimpleDisp 'Amazon EC2(Tokyo)‘
--endpoint https ://ap-northeast-1.amazonaws.com
--region NORTHEAST
【VPCプラットフォームの登録】
pcc add platform --iaasName aws
--platformName aws_vpc_Tokyo
--platformNameDisp 'Amazon EC2 VPC(Tokyo)‘
--platformSimpleDisp 'Amazon EC2 VPC(Tokyo)‘
--internal 1
--endpoint https://ap-northeast-1.amazonaws.com
--region NORTHEAST
--vpcid vpc-xxxxx
プライベートIPでの接続のと
きはinternalフラグを1にして
プラットフォームを登録する
【default VPCプラットフォームの登録】
pcc add platform --iaasName aws
--platformName aws_defvpc_Tokyo
--platformNameDisp 'Amazon EC2 DefVPC(Tokyo)‘
--platformSimpleDisp 'Amazon EC2 DefaultVPC(Tokyo)‘
--endpoint https://ap-northeast-1.amazonaws.com
--region NORTHEAST
--vpcid vpc-xxxxxx
接続形態とプラットフォーム
プライベートIPでの接続のときはinternalフラグ
を1にしてプラットフォームを作成する
mysql> use adc;
Database changed
mysql> select * from PLATFORM;
+-------------+---------------+---| PLATFORM_NO | PLATFORM_NAME | PLA
+-------------+---------------+---|
1 | ec2_tokyo
| Ama
|
2 | aws_vpc_tokyo | Ama
+-------------+---------------+---2 rows in set (0.00 sec)
----+----------+-------+---------------+------------+
ISP | INTERNAL | PROXY | PLATFORM_TYPE | SELECTABLE |
----+----------+-------+---------------+------------+
|
0 |
0 | aws
|
1 |
|
1 |
0 | aws
|
1 |
----+----------+-------+---------------+------------+
宛先IPと設定
Platform A
PrimeCloud
Controller
Global IP
PCC管理対象
VM1
Private IP
OpenVPN
Global IP
Private IP
PCC管理対象
VM2
Platform B
VM1からみたPCCサーバとVM2か
らみたPCCサーバのIPアドレス
は?
VM1とVM2の各種サーバの宛先指
定を分けなければいけない?
宛先IPと設定
Platform A
PrimeCloud
Controller
Global IP
Tunnel IP
PCC管理対象
VM1
Private IP
OpenVPN
Tunnel IP
Global IP
Platform AがIaaSだと、PCCの
private IPは変わる
Private IP
PCC管理対象
VM2
Platform B
OpenVPNのトンネルインターフェ
ースは設定で固定可能
VM1からでもIP到達性あり
宛先IPと設定
OpenVPN設定ファイル
[pcc@root:openvpn]# cat /etc/openvpn/server.conf
(中略)
# Configure server mode and supply a VPN subnet
# for OpenVPN to draw client addresses from.
# The server will take 10.8.0.1 for itself,
# the rest will be made available to clients.
# Each client will be able to reach the server
# on 10.8.0.1. Comment this line out if you are
# ethernet bridging. See the man page for more info.
;server 10.8.0.0 255.255.255.0
server 172.16.2.0 255.255.255.0
VPN上のサブネット
(後略)
宛先IPと設定
PCC設定ファイル
[pcc@root:conf]# cat /opt/adc/conf/config.properties
(中略)
# Script
script.server = 172.16.2.1
# DNS
dns.server = 172.16.2.1
#dns.server2 =
dns.domain = primecloud.jp
dns.timeToLive = 3600
dns.reverseEnabled = true
# VPN
vpn.server = 52.69.42.123
vpn.port = 1197
(後略)
VMが起動シェルスクリプトを取ってくる元サーバ
PCCのOpenVPNトンネルインターフェース
VMが参照するDynamic DNS
PCCのOpenVPNトンネルインターフェース
VMがVPNを張る先のOpenVPNサーバ
PCCのグローバルIPアドレス
PCCとZabbixと私
PCCとZabbix同居の通信パターン
Platform A
Zabbix
Global IP
Tunnel IP
PrimeCloud
Controller
PCC管理対象
Agent VM1
Private IP
閉域網
OpenVPN
Internet
Tunnel IP
Global IP
管理端末B
Private IP
PCC管理対象
VM2 Agent
Platform B
管理端末A
PCCとZabbixと私
PCCとZabbix別居の通信パターン
Platform Bへの
Platform A
経路追加
PrimeCloud
Controller
Zabbix
Global IP
Tunnel IP
PCC管理対象
Agent VM1
管理端末B
Private IP
閉域網
Internet
Tunnel IP
Global IP
Private IP
PCC管理対象
VM2 Agent
Platform B
管理端末A
PCCとZabbixと私
PCC設定ファイル
[pcc@root:conf]# cat /opt/adc/conf/config.properties
(中略)
PCCがZabbix APIを呼ぶendpoint URL
同居の場合は、localhostか、自分の
OpenVPNトンネルインターフェース
# Zabbix
zabbix.useZabbix = true
zabbix.url = http://172.16.2.1/zabbix/
zabbix.display = http://52.69.42.123/zabbix/
管理端末からみたZabbix GUI URL
zabbix.server = 172.16.2.1
アクセス経路を考慮して決定
(後略)
VMからみたZabbix Agentの接続先
PCCのOpenVPNトンネルインターフェース
まとめ
プライベートなネットワークとグローバルなネットワ
ークが混在したいろいろな環境を、ひっくるめて管理
するための工夫
プライベートNWとグローバルNWの仮想マシンから、
PCCを同じに見せる
PCC、Zabbix、仮想マシン、管理端末の接続の仕方
も多岐にわたり柔軟な設定が可能