ネットワークからみるPCC 2015-08-26 寺内康之
自己紹介 名前:寺内康之 元ネットワーク屋からインフラ屋になり、今はプログラマを目指したい。 今後、PCCの開発・発展の推進をしていくことになりまして・・・
Agenda PCCに関わるモノたち OpenVPNを使うか使わなないか 接続形態とプラットフォーム 宛先IPと設定 プラットフォームにおけるネットワーク情報 宛先IPと設定 PCCとZabbixと私 管理端末とPCC まとめ
PCCに関わるモノたち PCC本体 Dynamic DNS Zabbix OpenVPN 各種IaaS 管理端末
PrimeCloud Controller OpenVPNを使うか使わないか 1/3 somewhere AWSならば PrimeCloud Controller OpenVPN Global IP Private IP OpenVPN Network direct connect/ site to site VPN/ peering Internet Private IP Global IP Private IP Private IP Global IP PCC管理対象VM PCC管理対象VM PCC管理対象VM Classic EC2 Default VPC /グローバルIPを持つVPC VPC
PrimeCloud Controller OpenVPNを使うか使わないか 2/3 somewhere Azureならば PrimeCloud Controller OpenVPN Global IP Private IP VPN GW OpenVPN Network Internet VPN GW Private IP Private IP Global IP PCC管理対象VM PCC管理対象VM
PrimeCloud Controller Private IP OpenVPNを使うか使わないか 3/3 Platform A PrimeCloud Controller PCC管理対象VM OpenVPN Global IP Private IP VPN GW Internet private網 OpenVPN Site to Site VPN VPN GW Private IP Private IP Private IP Global IP PCC管理対象VM PCC管理対象VM PCC管理対象VM Platform B Platform C Platform D
接続形態とプラットフォーム グローバルIPアドレスならOpenVPN プライベートIPアドレスなら直接接続 Platformを登録するときに接続形態を指定 1bitで表現できる Platformテーブルのinternalカラム
接続形態とプラットフォーム プライベートIPでの接続のときはinternalフラグを1にしてプラットフォームを登録する 【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 【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にしてプラットフォームを登録する
接続形態とプラットフォーム プライベートIPでの接続のときはinternalフラグを1にしてプラットフォームを作成する mysql> use adc; Database changed mysql> select * from PLATFORM; +-------------+---------------+---- ----+----------+-------+---------------+------------+ | PLATFORM_NO | PLATFORM_NAME | PLA ISP | INTERNAL | PROXY | PLATFORM_TYPE | SELECTABLE | | 1 | ec2_tokyo | Ama | 0 | 0 | aws | 1 | | 2 | aws_vpc_tokyo | Ama | 1 | 0 | aws | 1 | 2 rows in set (0.00 sec)
PrimeCloud Controller 宛先IPと設定 Platform A PrimeCloud Controller PCC管理対象VM1 Global IP Private IP OpenVPN VM1からみたPCCサーバとVM2からみたPCCサーバのIPアドレスは? VM1とVM2の各種サーバの宛先指定を分けなければいけない? Private IP Global IP PCC管理対象VM2 Platform B
PrimeCloud Controller 宛先IPと設定 Platform A PrimeCloud Controller PCC管理対象VM1 Global IP Private IP Tunnel IP OpenVPN Platform AがIaaSだと、PCCのprivate IPは変わる OpenVPNのトンネルインターフェースは設定で固定可能 VM1からでもIP到達性あり Tunnel IP Private IP Global IP PCC管理対象VM2 Platform B
宛先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アドレス
PrimeCloud Controller PCCとZabbixと私 PCCとZabbix同居の通信パターン Platform A Zabbix PrimeCloud Controller PCC管理対象VM1 Agent 管理端末B Global IP Private IP Tunnel IP 閉域網 OpenVPN Internet 管理端末A Tunnel IP Private IP Global IP PCC管理対象VM2 Agent Platform B
PrimeCloud Controller PCCとZabbixと私 PCCとZabbix別居の通信パターン Platform Bへの経路追加 Platform A Zabbix PrimeCloud Controller PCC管理対象VM1 Agent 管理端末B Global IP Private IP Tunnel IP 閉域網 Internet 管理端末A Tunnel IP Private IP Global IP PCC管理対象VM2 Agent Platform B
PCCとZabbixと私 PCC設定ファイル [pcc@root:conf]# cat /opt/adc/conf/config.properties (中略) # Zabbix zabbix.useZabbix = true zabbix.url = http://172.16.2.1/zabbix/ zabbix.display = http://52.69.42.123/zabbix/ zabbix.server = 172.16.2.1 (後略) PCCがZabbix APIを呼ぶendpoint URL 同居の場合は、localhostか、自分のOpenVPNトンネルインターフェース 管理端末からみたZabbix GUI URL アクセス経路を考慮して決定 VMからみたZabbix Agentの接続先 PCCのOpenVPNトンネルインターフェース
まとめ プライベートなネットワークとグローバルなネットワ ークが混在したいろいろな環境を、ひっくるめて管理 するための工夫 プライベートNWとグローバルNWの仮想マシンから、 PCCを同じに見せる PCC、Zabbix、仮想マシン、管理端末の接続の仕方 も多岐にわたり柔軟な設定が可能