まず、仮想ネットワークを作ります。
172.16.1.0/24のpublicの仮想ネットワークは既に作成されているので、内部ネットワーク「private」を作る作業を行います。
lab-desktopから下記のコマンドを実行します。privateのサブネットは10.0.0.0/24を使います。
$ neutron net-create private $ neutron subnet-create --name private_subnet private 10.0.0.0/24 $ neutron net-list
次に仮想ルーター「myrouter」を作ります。ここでは作成後にルーターの状態を確認するためにneutron router-listも実行しています。
$ neutron router-create myrouter $ neutron router-list
ルーター「myrouter」をゲートウェイとしてpublicネットワークに接続します。
$ neutron router-gateway-set myrouter public $ neutron router-list
次に仮想ルーターを「myrouter」をprivateネットワークに接続します。下記コマンドのように、「myrouter」にprivateへの接続インターフェースを追加します。
$ neutron router-interface-add myrouter private_subnet
ここまでで、仮想ネットワーク、仮想ルーターの作成ができました。
踏み台(Jumphost)用のセキュリティグループを作成します。
$ neutron security-group-create jumphost
ICMP、SSHのルールを作ります。
$ neutron security-group-rule-create --protocol icmp jumphost $ neutron security-group-rule-create --protocol tcp --port-range-min 22 --port-range-max 22 jumphost
踏み台へログインしやすくするため、SSHキーを作成します。
$ nova keypair-add mykey > ~/.ssh/id_rsa.pub
踏み台が接続するprivateのIDを作成します。
$ NET_ID=`neutron net-list | grep private | awk '{print $2}'`
踏み台の仮想マシンを起動します。
$ nova boot --image cirros --flavor 1 --key-name mykey --nic net-id=$NET_ID jumphost --security_groups jumphost
踏み台のIPアドレスを確認します。
$ nova list
踏み台のネットワークport IDを確認します。
$ PORT_ID=`neutron port-list -- --fixed_ips ip_address=10.0.0.2 | grep ip_address | awk '{print $3}'`
このport IDに対してフローティングIPを作ります。
$ neutron floatingip-create --port-id=$PORT_ID public Created a new floatingip: : floating_ip_address | 172.16.1.129 :
踏み台へ接続してみます。デフォルトパスワードは cubswin:) です。
$ ssh cirros@172.16.1.129
ここから仮想Webサーバーを作るので、踏み台から抜けておきます。
$ exit
上記と同じような手順でWebサーバーのセキュリティグループを作ります。
$ neutron security-group-create web $ neutron security-group-rule-create --protocol TCP --port-range-min 80 --port-range-max 80 web
Webセキュリティーグループに対して、jumphostセキュリティーグループのメンバーからのssh接続を許可します。
$ neutron security-group-rule-create --direction ingress --protocol TCP --port-range-min 22 --port-range-max 22 --remote-group-id jumphost web
仮想Webサーバーを2台起動し、privateネットワークに接続します。
$ nova boot --image cirros --flavor 1 webserver1 --nic net-id=$NET_ID --security_groups web $ nova boot --image cirros --flavor 1 webserver2 --nic net-id=$NET_ID --security_groups web
Webサーバーへ接続テストします。まず、「踏み台」にログインして、Webサーバーにログインします。
$ ssh cirros@172.16.1.129
webserver1、webserver2のそれぞれに対して"web_server1"、"web_server2"という文字列を書き込みます。
$ ssh 10.0.0.4 $ while true; do echo -e 'HTTP/1.0 200 OK\r\n\r\nweb_server1' | sudo nc -l -p 80 ; done & $ exit # いったん踏み台に戻ります。 $ ssh 10.0.0.5 $ while true; do echo -e 'HTTP/1.0 200 OK\r\n\r\nweb_server2' | sudo nc -l -p 80 ; done &
Copyright © ITmedia, Inc. All Rights Reserved.