hirosanote’s blog

検証環境の構築手順やネットワーク機器のテスト結果、関連する事について記載します。このブログは個人で行っており、所属する会社とは関係ありません。

VMware Workstation PlayerでOpenstack Kiloを動かす手順

VMware Workstation Playerを使用して、Openstack KiloとLBaaSを動かす手順を記述します。

 

環境

富士通ノートPC / Windows8.1 / 10GBメモリ / 1TBハードディスク

 

使用したインストーラ

CentOS 7.2 / CentOS-7-x86_64-Minimal-1511.iso

VMware Workstation Player / VMware-player-12.1.0-3272444.exe

 

1. VMware Workstation Playerのインストール

デフォルト値のままで、インストールします。

 

2.  仮想マシンの作成

f:id:hirosanote:20160416163232p:plain

f:id:hirosanote:20160416163338p:plain

f:id:hirosanote:20160416163510p:plain

f:id:hirosanote:20160416163951p:plain

f:id:hirosanote:20160416164113p:plain

f:id:hirosanote:20160416164214p:plain

f:id:hirosanote:20160416164431p:plain

f:id:hirosanote:20160416164610p:plain

f:id:hirosanote:20160416164850p:plain

f:id:hirosanote:20160416165210p:plain

f:id:hirosanote:20160416165433p:plain

f:id:hirosanote:20160416170630p:plain

 

3. CentOS7.2のインストール

f:id:hirosanote:20160416170823p:plain

f:id:hirosanote:20160416170921p:plain

f:id:hirosanote:20160416171133p:plain

f:id:hirosanote:20160416171734p:plain

f:id:hirosanote:20160416172229p:plain

f:id:hirosanote:20160416172352p:plain

f:id:hirosanote:20160416172530p:plain

f:id:hirosanote:20160416172655p:plain

f:id:hirosanote:20160416172819p:plain

f:id:hirosanote:20160416173031p:plain

 

f:id:hirosanote:20160416173305p:plain

f:id:hirosanote:20160416173453p:plain

f:id:hirosanote:20160416173556p:plain

f:id:hirosanote:20160416173735p:plain

f:id:hirosanote:20160416173909p:plain

f:id:hirosanote:20160416174211p:plain

f:id:hirosanote:20160416174405p:plain

f:id:hirosanote:20160416174648p:plain

f:id:hirosanote:20160416175205p:plain

f:id:hirosanote:20160416175301p:plain

f:id:hirosanote:20160416175401p:plain

f:id:hirosanote:20160416175617p:plain

f:id:hirosanote:20160416181637p:plain

f:id:hirosanote:20160416182333p:plain

 

4. CentOSツールのインストールと各種設定

この手順書は、ルートユーザーを使用します。SSHクライアントからログインし、以下のツールのインストールおよび設定を行います。

yum -y install net-tools

yum install -y ntp

service ntpd start

systemctl disable NetworkManager

systemctl stop NetworkManager

NM_CONTROLLED=no

ONBOOT=yes

service network start

chkconfig network on

vi /etc/selinux/config
SELINUX=permissive <-- 変更

yum -y install deltarpm

 

5. OpenStack Kiloのインストール

yum install http://rdo.fedorapeople.org/openstack-kilo/rdo-release-kilo.rpm

yum install openstack-packstack

yum -y update

reboot

 ifconfigコマンドにて、インターフェース名を確認します。

ifconfig
eno16777736: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.0.140 netmask 255.255.255.0 broadcast 192.168.0.255
inet6 fe80::20c:29ff:fef8:b640 prefixlen 64 scopeid 0x20<link>
inet6 2408:211:4b08:4600:20c:29ff:fef8:b640 prefixlen 64 scopeid 0x0<global>

アンサーファイルを作成し、以下の箇所を変更します。

packstack --gen-answer-file=answer.txt

vi answer.txt

CONFIG_LBAAS_INSTALL=y
CONFIG_NOVA_COMPUTE_PRIVIF=lo
CONFIG_NOVA_NETWORK_PUBIF=eno16777736 <-- 確認したインタフェース名
CONFIG_NOVA_NETWORK_PRIVIF=lo
CONFIG_KEYSTONE_ADMIN_PW=admin
CONFIG_PROVISION_DEMO=n 

インストールを開始します。

 packstack --answer-file=answer.txt

インストール完了後、以下のエラーとなりますが、そのまま進めます。

ERROR : Error appeared during Puppet run: 192.168.0.140_mongodb.pp
Error: Unable to connect to mongodb server! (192.168.0.140:27017) 

 

6. ネットワーク設定の変更

インタフェースを以下と同じ設定にします。

vi /etc/sysconfig/network-scripts/ifcfg-eno16777736
DEVICE=eno16777736
ONBOOT=yes
TYPE=OVSPort
DEVICETYPE=ovs
OVS_BRIDGE=br-ex 

 以下の設定ファイルを作成します。

vi /etc/sysconfig/network-scripts/ifcfg-br-ex
DEVICE=br-ex
ONBOOT=yes
DEVICETYPE=ovs
TYPE=OVSBridge
BOOTPROTO=static
IPADDR=192.168.0.140
NETMASK=255.255.255.0
GATEWAY=192.168.0.1
DNS1=8.8.8.8

 各種設定を行います。

systemctl disable iptables
 

最後の行に、以下を追加します。

vi /etc/neutron/plugin.ini

[ovs]
network_vlan_ranges = physnet1
bridge_mappings = physnet1:br-ex

 

以下と、同じになるようにします。

vi /etc/sysctl.d/99-sysctl.conf

net.ipv4.tcp_keepalive_intvl=1
net.ipv4.tcp_keepalive_time=5
net.ipv4.tcp_keepalive_probes=5
net.ipv4.ip_forward=1
net.bridge.bridge-nf-call-ip6tables=0
net.bridge.bridge-nf-call-iptables=0
net.bridge.bridge-nf-call-arptables=0

以下を最終行に追加します。
net.ipv4.conf.default.rp_filter = 0
net.ipv4.conf.all.rp_filter = 0
net.ipv4.conf.all.forwarding = 1

 

 リブートします。

reboot 

 

7. Openstack ルーター、ネットワークの作成

ルーター、ネットワークを作成します。

cd ~

source keystonerc_admin
neutron router-create router1

f:id:hirosanote:20160416204238p:plain

tenant idをメモし、tenant idを必要とするコマンドに使用します。

neutron net-create public --tenant-id 26481926301b4ab1a036e267abe3e1e4 --router:external

f:id:hirosanote:20160416204646p:plain

neutron net-create private-net1 --tenant-id 26481926301b4ab1a036e267abe3e1e4

f:id:hirosanote:20160416205253p:plain

neutron subnet-create --name public_subnet --enable_dhcp=False --allocation-pool=start=192.168.0.141,end=192.168.0.199 --gateway=192.168.0.1 public 192.168.0.0/24 

f:id:hirosanote:20160416205034p:plain

 neutron subnet-create --name private-net_subnet1 --enable_dhcp=True --allocation-pool=start=192.168.10.101,end=192.168.10.199 --gateway=192.168.10.1 --dns-nameserver 8.8.8.8 private-net1 192.168.10.0/24 

f:id:hirosanote:20160416205550p:plain

neutron router-gateway-set router1 public 

f:id:hirosanote:20160416205714p:plain

neutron router-interface-add router1 subnet=private-net_subnet1 

f:id:hirosanote:20160416205841p:plain

 

8. Linuxイメージの登録

軽量Linux Cirrosのイメージをダウンロードし、登録します。

glance image-create --name cirros --is-public true --container-format bare --disk-format qcow2 --location https://launchpad.net/cirros/trunk/0.3.0/+download/cirros-0.3.0-x86_64-disk.img

f:id:hirosanote:20160416210112p:plain

 

9. WebUIにログイン

WebUIにログインします。

http://192.168.0.140/dashboard

ユーザ名 : amdin

パスワード : admin

f:id:hirosanote:20160416210331p:plain

 

10.セキュリティグループの作成

f:id:hirosanote:20160416210646p:plain

f:id:hirosanote:20160416210952p:plain

f:id:hirosanote:20160416211718p:plain

f:id:hirosanote:20160416211916p:plain

f:id:hirosanote:20160416212027p:plain

同様の手順で、HTTP,ICMPを追加します。

f:id:hirosanote:20160416212223p:plain

f:id:hirosanote:20160416212345p:plain

f:id:hirosanote:20160416212426p:plain

 

11.Webサーバのインスタンスを起動

f:id:hirosanote:20160416212610p:plain

f:id:hirosanote:20160416213048p:plain

f:id:hirosanote:20160416213214p:plain

f:id:hirosanote:20160416213728p:plain

同じ手順で「web02」を起動します。

2つのインスタンスが起動していることを確認します。

f:id:hirosanote:20160416220128p:plain

 

12.Webサーバのレスポンスを作成

ネットワークトポロジーより、ルーターIPアドレスを確認します。

f:id:hirosanote:20160416220317p:plain

Webサーバへアクセスするために、OpenStackが動作しているCentOS上に、スタティックルートを追加します。

route add -net 192.168.10.0/24 gw 192.168.0.141 br-ex

 

web01サーバへアクセスします。 

ユーザ名:cirros パスワード:cubswin:)

ssh cirros@192.168.10.102

 HTTPリクエストに対するレスポンスを、戻すように設定します。

while true; do echo -e 'HTTP/1.0 200 OK\r\n\r\nweb_server01' | sudo nc -l -p 80 ; done &

f:id:hirosanote:20160416221241p:plain

同様の手順で、web02サーバにアクセスし、httpレスポンスを作成します。レスポンス文字の"web_server01"を"web_server02"に変更します。

 

13.LBaasの設定

ロードバランサの設定を行います。

f:id:hirosanote:20160416221646p:plain

f:id:hirosanote:20160416221835p:plain

仮想IPを追加します。

f:id:hirosanote:20160416221957p:plain

f:id:hirosanote:20160416222309p:plain

 

メンバーを追加します。

f:id:hirosanote:20160416222515p:plain

f:id:hirosanote:20160416222658p:plain

 

仮想IPを、Publicネットワークに紐付けます。VIP 192.168.10.253のポートIDを確認します。

f:id:hirosanote:20160416222911p:plain

f:id:hirosanote:20160416223054p:plain

VIPとPublicを紐付けます。紐付いたfloating_ip_addressを確認します。

neutron floatingip-create --port-id=696de69c-ed3e-423d-9de9-7fc3af3de7bf public

f:id:hirosanote:20160416223354p:plain

 

14.動作確認
PublicのフローティングIPアドレスにアクセスし、ページが表示されることを確認します。キーボードよりCTRL+F5を押し、ラウンドロビンで分散されることを確認します。

f:id:hirosanote:20160416223544p:plain

 

 

OPCEL認定試験 OpenStack技術者認定試験対策教科書

OPCEL認定試験 OpenStack技術者認定試験対策教科書

 

 

ロードバランサベンダーと機能の変遷

現在、数多くのロードバランサベンダーが存在しますが、ロードバランサが誕生したのち、そのベンダーがどのように変遷し、機能が進化してきたのか調べてみました。

 

ロードバランサベンダーの歴史

- 1995年 Zeus Technology設立。2004年にロードバランサプロダクトをリリース。2011年にRiverbedが買収。2015年にBrocadeがRiverbedからZeusを買収。

- 1996年 CiscoがロードバランサプロダクトのLocalDirectorをリリース。買収したNetwork Translation Incの技術がベース。

- 1996年 Alteon Networks設立。2000年にNortelが買収。

- 1996年 F5 Networks設立。

- 1996年 Foundry Networks設立。2008年にBrocadeが買収。

- 1996年 HolonTech設立。2000年にCyberIQsystemsに社名変更し、その後倒産。

- 1997年 ArrowPoint Communications設立。2000年にCiscoが買収。

- 1997年 Radware設立。2009年にNortelが買収したAlteonを買収。

- 1998年 Coyote Point Systems設立。2013年にFortiNetが買収。

- 1998年 NetScaler設立。2005年にCitrixが買収。

- 2000年 Array Networks設立。

- 2000年 Redline Networks設立。2005年にJuniperが買収。

- 2004年 A10 Networks設立。

 

ロードバランサは、1996年にCiscoから誕生し、同じ年に多くのベンダーが設立されています。この時期の日本のインターネット関連会社、サービスの状況について調べてみました。

1996年

1997年

1999年

 

この当時は、インターネットへの接続が普及し、そのインターネット上でビジネスを目的としたサービスが多く開始されることに伴い、多くのクライアントアクセスの負荷を分散し可用性のために、ロードバランサが必要とされました。

当初のロードバランサのセッション維持方法は、IPアドレス、ポート番号を元に同じクライアントは同じサーバへ分散する方式でした。しかしながら日本で多くのユーザーが使用したNTTドコモiモードは、IPアドレスによってパーシステンスが行うことができず、多くの商用サイトで問題が発生しました。iモードサービスは、プロキシサーバを経由してインターネットに接続を行っており、クライアントのリクエスト毎に使用されるプロキシサーバが異なることによってIPアドレスが変更されるため、セッション維持が出来ません。しかも、iモードブラウザはクッキーが使用できないため、クッキーパーシステンス方式も使用できません。この問題を解決したのが、2000年にF5 Networksが発表したURLによるパーシステンス方式で、URLに埋め込まれた携帯電話の識別子を使用しました。ロードバランサはパケットベースのL4-SLBではなく、HTTPベースのL7-SLBが重要となり、スイッチ型からプロキシ型に移行されてきています。

 2000年に設立されたArray Networksは、プロキシ型のロードバランサで、負荷分散機能のほかに、SSLアクセラレータ、キャッシュ、ファイアウォール、コネクション集約機能を持った統合型のアプライアンスをリリースし、複数の機器を経由することによる遅延、障害解析の複雑さを解消し、パケットの分散の他に、SSLオフロード、TCPオフロードをロードバランサが行うようになりました。

 現在のWebサイトは、HTTPから常時SSLが推奨されており、ロードバランサのSSL機能が、重要になってきています。

 

slowhttp攻撃とロードバランサ

slow http攻撃は、時間がかかったり、終了しないHTTPリクエストを送ることにより、コネクションを長時間保持し大量に消費させる攻撃です。

 

プロキシタイプのロードバランサは、クライアントからのリクエストを終端してから、別のコネクションで実サーバとコネクションを作ります(Delayed Binding)。よって、クライアントから全てのHTTPリクエストを受け取ってから実サーバへデータを送るので、終了しないHTTPリクエストによって、実サーバのコネクションが消費されることがありません。

 

実際に動作テストを行ってみます。

slow http攻撃ツール : google slowhttptest

http://code.google.com/p/slowhttptest/downloads/list

ロードバランサ : Array vAPV

 

手順

1. CentOS6.5 minimalを標準でインストールし、以下を設定します。

-  FireWallの停止

chkconfig iptables off

- SE linuxの停止

vi /etc/selinux/config

SELINUX=disabled

 

2.slowhttptestのサイトより、ファイルをダウンロードします。ここでは、最新版のslowhttptest-1.6.tar.gzを使用しました。

- PCから、slowhttptestのURLへアクセスし、ファイルをダウンロードします。

- WinSCP等で、ファイルをLinuxサーバへアップロードします。

 

3.動作に必要なモジュールをインストールします。

yum install gcc-c++

yum install openssl-devel

 

4.slowhttpをインストールします。

- インストールファイルの展開

gzip -cd slowhttptest-1.6.tar.gz | tar xvf -

- フォルダの作成

mkdir /home/slowhttptest

- インストール

cd slowhttptest-1.6

./configure --prefix=/home/slowhttptest

make

make install

- 動作確認のために、ヘルプメッセージを表示

cd /home/slowhttptest/bin

./slowhttptest -h

 

ロードバランサのVIPへ対して、遅いHTTPヘッダリクエストを10コネクション作成し送ってみます。

構成

Client(192.168.0.33) ----- Port1 | VIP(192.168.0.78) | Port2 ---- Real Server(192.168.99.21)

./slowhttptest -c 10 -H -l 300 -g -o logtest -i 300 -r 10 -t GET -u http://192.168.0.78/ -x 10 -p 100

ロードバランサのコネクション情報を見てみます。

AN(config)#show connection
Proto Local Address Foreign Address state expire Interface
----------------------------------------------------------------------------------------
TCP 192.168.0.78:80 192.168.0.33:37440 ESTABLISHED 248 port1
TCP 192.168.0.78:80 192.168.0.33:37442 ESTABLISHED 248 port1
TCP 192.168.0.78:80 192.168.0.33:37434 ESTABLISHED 248 port1
TCP 192.168.0.78:80 192.168.0.33:37436 ESTABLISHED 248 port1
TCP 192.168.0.78:80 192.168.0.33:37438 ESTABLISHED 248 port1
TCP 192.168.0.78:80 192.168.0.33:37441 ESTABLISHED 248 port1
TCP 192.168.0.78:80 192.168.0.33:37433 ESTABLISHED 248 port1
TCP 192.168.0.78:80 192.168.0.33:37435 ESTABLISHED 248 port1
TCP 192.168.0.78:80 192.168.0.33:37437 ESTABLISHED 248 port1
TCP 192.168.0.78:80 192.168.0.33:37439 ESTABLISHED 248 port1

Port1のClientとVIP間のコネクションが作成されますが、Port2側の実サーバとのコネクションは作成されていません。よって、HTTPヘッダが全て送られない場合、コネクションはロードバランサのみに作成され、実サーバには作成されません。ロードバランサ標準の機能によって、slowhttp攻撃から実サーバを守ることが出来ます。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

IISでHTTP/2を動かす方法

Windows Server 2016 Technical Preview 2のIISにてSSLを有効にすると、HTTP/2で動作します。インストール及び設定手順を記述します。

 

1. ISOイメージのダウンロード

https://technet.microsoft.com/ja-jp/evalcenter/dn781243.aspx?f=255&MSPPError=-2147217396

 

2. OSのインストール

"Windows Server Technical Preview 2 (with local admin tools)を選択し、ウィザードに従ってインストールを行います。

f:id:hirosanote:20150705114113j:plain

 

3. IISGUIのインストール

インストール完了後、いつものスタート画面がありません。コマンドプロンプトとサーバマネージャのみが表示されています。以下の手順でIISGUIをインストールします。

f:id:hirosanote:20150705120202j:plain

 

f:id:hirosanote:20150705120426j:plain

 

f:id:hirosanote:20150705120633j:plain

 

f:id:hirosanote:20150705120758j:plain

 

f:id:hirosanote:20150705121205j:plain

f:id:hirosanote:20150705121623j:plain

 

f:id:hirosanote:20150705121746j:plain

f:id:hirosanote:20150705122231j:plain

f:id:hirosanote:20150705122538j:plain

自動でリブートします。ログイン後、いつものGUIが現れます。

 

4. IISSSL

IISSSLを有効化します。証明書は、自己証明書を使用します。

サーバマネージャを起動し、以下の手順で行います。

f:id:hirosanote:20150705124233j:plain

Server Certificatesを実行します。

f:id:hirosanote:20150705124431j:plain

Create Self-Signed Certificateを実行します。

f:id:hirosanote:20150705124720j:plain

サイト名を入力し、"Web Hosting"を選択します。

f:id:hirosanote:20150705125238j:plain

作成したSSL証明書をバインドします。

f:id:hirosanote:20150705130543j:plain

 

4.動作確認

HTTP/2をサポートしているブラウザで、HTTP/2で通信していることを確認します。

HTTP/2 and SPDY indicatorのプラグインを入れたブラウザで確認できます。

f:id:hirosanote:20150705130741j:plain

VMware PlayerでOpenstackを動かす手順

Openstackって何?どのように使える?インターネットで検索するといろいろ情報が出てきますが、実際に動かして使ってみると、より理解が深まります。

OpenStackのインストールは難しく、なかなかうまくいきませんでした。ネットの情報を駆使してVMware Playerで動かすことが出来ましたので、LBaaSの設定も含めて記述します。 

 この手順は、Icehouseをインストールします。Kiloのインストール手順も作成しまししたので、ご参照下さい。 

hirosanote.hatenablog.jp

 

環境

富士通 Windows8.1 64bit Note PC / 10GBメモリ、1TBハードディスク

使用したインストーラ

VMware-player-7.1.0-2496824.exe

CentOS-6.5-x86_64-minimal.iso

 

1. VMware Playerのインストール

デフォルト値のままで、インストールします。

 

2. 仮想マシンの作成

f:id:hirosanote:20150517161916j:plain

f:id:hirosanote:20150517162059j:plain

f:id:hirosanote:20150517162306j:plain

 

f:id:hirosanote:20150517162855j:plain

f:id:hirosanote:20150517163147j:plain

f:id:hirosanote:20150517163250j:plain

f:id:hirosanote:20150517163415j:plain

f:id:hirosanote:20150517163623j:plain

f:id:hirosanote:20150517163953j:plain

f:id:hirosanote:20150517164246j:plain

f:id:hirosanote:20150517164441j:plain

f:id:hirosanote:20150517164623j:plain

f:id:hirosanote:20150517164803j:plain

 

3. CentOSのインストール

 

f:id:hirosanote:20150517170134j:plain

f:id:hirosanote:20150517170250j:plain

f:id:hirosanote:20150517170418j:plain

f:id:hirosanote:20150517170718j:plain

f:id:hirosanote:20150517170906j:plain

f:id:hirosanote:20150517171007j:plain

f:id:hirosanote:20150517171124j:plain

f:id:hirosanote:20150517171224j:plain

f:id:hirosanote:20150517171336j:plain

f:id:hirosanote:20150517204708j:plain

f:id:hirosanote:20150517204851j:plain

f:id:hirosanote:20150517205003j:plain

f:id:hirosanote:20150517205056j:plain

f:id:hirosanote:20150517205229j:plain

f:id:hirosanote:20150517205341j:plain

f:id:hirosanote:20150517205436j:plain

f:id:hirosanote:20150517205529j:plain

f:id:hirosanote:20150517205706j:plain

f:id:hirosanote:20150517210005j:plain

f:id:hirosanote:20150517205529j:plain

f:id:hirosanote:20150517210543j:plain

f:id:hirosanote:20150517210657j:plain

f:id:hirosanote:20150517205529j:plain

f:id:hirosanote:20150517210841j:plain

f:id:hirosanote:20150517210932j:plain

f:id:hirosanote:20150517211029j:plain

f:id:hirosanote:20150517211125j:plain

f:id:hirosanote:20150517211239j:plain

f:id:hirosanote:20150517211552j:plain

 

3. OpenStackのインストール

インストール手順は、以下のスライドを参考にしました。作業はrootユーザで行っています。

http://www.slideshare.net/VirtualTech-JP/rdo-quick-start1

 

インターフェースIPをDHCPから固定に変更します。

vi /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.0.140
NETMASK=255.255.255.0
GATEWAY=192.168.0.1
DNS1=8.8.8.8
HWADDR=00:0C:29:12:C7:F8 <== 自分のMACアドレス

 

service network restart

 

インターネットに通信できることを確認します

ping www.yahoo.co.jp
PING www.g.yahoo.co.jp (183.79.197.250) 56(84) bytes of data.
64 bytes from 183.79.197.250: icmp_seq=1 ttl=51 time=23.6 ms
64 bytes from 183.79.197.250: icmp_seq=2 ttl=51 time=19.0 ms

 

カーネルパラメータを変更します。

vi /etc/sysctl.conf

net.ipv4.ip_forward = 1 < = 変更

net.ipv4.conf.default.rp_filter = 0 < = 変更

net.bridge.bridge-nf-call-ip6tables = 0 < = 0でない場合に変更

net.bridge.bridge-nf-call-iptables = 0 < === 0でない場合に変更

net.bridge.bridge-nf-call-arptables = 0 < === 0でない場合に変更

net.ipv4.conf.all.rp_filter = 0 < === 追加

net.ipv4.conf.all.forwarding = 1 < === 追加

 

パラメーターをロードします

sysctl -e -p /etc/sysctl.conf

 

rc.localファイルに、設定を追加します。

vi /etc/rc.local

echo 0 > /proc/sys/net/bridge/bridge-nf-call-iptables < = 追加
echo 0 > /proc/sys/net/bridge/bridge-nf-call-ip6tables < = 追加
echo 0 > /proc/sys/net/bridge/bridge-nf-call-arptables < = 追加

 

 NTPサービスをインストールします。

yum install -y ntp

service ntpd start

 

Icehouseのリポジトリを追加します。

yum install http://rdo.fedorapeople.org/openstack-icehouse/rdo-release-icehouse.rpm

 

SELINUXを無効化にします。

vi /etc/selinux/config

SELINUX=permissive <= 変更

 

アップデートを行い、リブートします。

yum -y update

reboot

 

Packstackをインストールします。

yum install -y openstack-packstack python-netaddr

 

アンサーファイルを作成します。

packstack --gen-answer-file=answer.txt

 

アンサーファイルの以下の箇所を変更します。

vi answer.txt

CONFIG_LBAAS_INSTALL=y <= 変更

 

CONFIG_NOVA_COMPUTE_PRIVIF=lo <= 変更

CONFIG_NOVA_NETWORK_PUBIF=eth0

CONFIG_NOVA_NETWORK_PRIVIF=lo <= 変更

 

CONFIG_KEYSTONE_ADMIN_PW=admin <= 変更

CONFIG_KEYSTONE_TOKEN_FORMAT=UUID <= 変更

 

CONFIG_PROVISION_DEMO=n <= 変更

 

アンサーファイルを使用してOpenStackをインストールします。

packstack --answer-file=answer.txt

インストールが完了したことを確認します

**** Installation completed successfully ******

 

ブリッジをeth0に割り当てます。

vi /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0

ONBOOT=yes

HWADDR=52:54:00:92:05:AE <= 自分のMACアドレス

TYPE=OVSPort

DEVICETYPE=ovs

OVS_BRIDGE=br-ex

 

vi /etc/sysconfig/network-scripts/ifcfg-br-ex

DEVICE=br-ex

ONBOOT=yes

DEVICETYPE=ovs

TYPE=OVSBridge

BOOTPROTO=static

IPADDR=192.168.0.140

NETMASK=255.255.255.0

GATEWAY=192.168.0.1

DNS1=8.8.8.8

 

 plugin.iniの最後の行に設定を追加します。

vi /etc/neutron/plugin.ini

[ovs]

network_vlan_ranges = physnet1

bridge_mappings = physnet1:br-ex

 

リブートします

reboot

 

4. オープンスタックのネットワーク、サーバイメージの作成

認証情報を、ロードします。

cd ~

source keystonerc_admin

 

ルーターを作成します

neutron router-create router1
Created a new router:
+-----------------------+--------------------------------------+
| Field | Value |
+-----------------------+--------------------------------------+
| admin_state_up | True |
| external_gateway_info | |
| id | 63946bd6-a891-4625-b552-8c2af35501dd |
| name | router1 |
| status | ACTIVE |
| tenant_id | 79f838b144a54c0f89704f03e2b08436 |
+-----------------------+--------------------------------------+

テナントIDをメモしておきます。

 

パブリックネットワークを作成します。テナントIDはルータを作成したときのものと同じIDを使用します。

neutron net-create public --tenant-id 79f838b144a54c0f89704f03e2b08436 --router:external=True

Created a new network:
+---------------------------+--------------------------------------+
| Field | Value |
+---------------------------+--------------------------------------+
| admin_state_up | True |
| id | 596253c9-5976-4d11-8d06-aba1e858447e |
| name | public |
| provider:network_type | vxlan |
| provider:physical_network | |
| provider:segmentation_id | 10 |
| router:external | True |
| shared | False |
| status | ACTIVE |
| subnets | |
| tenant_id | 79f838b144a54c0f89704f03e2b08436 |
+---------------------------+--------------------------------------+

 

プライベートネットワークを作成します。

neutron net-create private-net --tenant-id 79f838b144a54c0f89704f03e2b08436 --shared

Created a new network:
+---------------------------+--------------------------------------+
| Field | Value |
+---------------------------+--------------------------------------+
| admin_state_up | True |
| id | 1fac572d-bcdb-472b-96f4-5e928b808093 |
| name | private-net |
| provider:network_type | vxlan |
| provider:physical_network | |
| provider:segmentation_id | 11 |
| shared | True |
| status | ACTIVE |
| subnets | |
| tenant_id | 79f838b144a54c0f89704f03e2b08436 |
+---------------------------+--------------------------------------+

 

パブリックネットワークのサブネットを作成します。

neutron subnet-create --name public_subnet --enable_dhcp=False --allocation-pool=start=192.168.0.241,end=192.168.0.254 --gateway=192.168.0.1 public 192.168.0.0/24

+------------------+----------------------------------------------------+
| Field | Value |
+------------------+----------------------------------------------------+
| allocation_pools | {"start": "192.168.0.241", "end": "192.168.0.254"} |
| cidr | 192.168.0.0/24 |
| dns_nameservers | |
| enable_dhcp | False |
| gateway_ip | 192.168.0.1 |
| host_routes | |
| id | 0f2ef07a-cc2d-4add-bebb-546341a3e6b2 |
| ip_version | 4 |
| name | public_subnet |
| network_id | 596253c9-5976-4d11-8d06-aba1e858447e |
| tenant_id | 79f838b144a54c0f89704f03e2b08436 |
+------------------+----------------------------------------------------+

 

プライベートネットワークのサブネットを作成します。

neutron subnet-create --name private-net_subnet --enable_dhcp=True --allocation-pool=start=192.168.99.100,end=192.168.99.254 --gateway=192.168.99.1 --dns-nameserver 8.8.8.8 private-net 192.168.99.0/24

Created a new subnet:
+------------------+------------------------------------------------------+
| Field | Value |
+------------------+------------------------------------------------------+
| allocation_pools | {"start": "192.168.99.100", "end": "192.168.99.254"} |
| cidr | 192.168.99.0/24 |
| dns_nameservers | 8.8.8.8 |
| enable_dhcp | True |
| gateway_ip | 192.168.99.1 |
| host_routes | |
| id | 4cb8c5c1-6ff5-4e26-86bd-09ff508c7000 |
| ip_version | 4 |
| name | private-net_subnet |
| network_id | 1fac572d-bcdb-472b-96f4-5e928b808093 |
| tenant_id | 79f838b144a54c0f89704f03e2b08436 |
+------------------+------------------------------------------------------+

 

ゲートウェイをセットします。

neutron router-gateway-set router1 public

 

プライベートネットワークに、ルーターのインタフェースを追加します。

neutron router-interface-add router1 subnet=private-net_subnet

 

 

サーバーのイメージを登録します。

glance image-create --name cirros --is-public true --container-format bare --disk-format qcow2 --location https://launchpad.net/cirros/trunk/0.3.0/+download/cirros-0.3.0-x86_64-disk.img

+------------------+--------------------------------------+
| Property | Value |
+------------------+--------------------------------------+
| checksum | None |
| container_format | bare |
| created_at | 2015-05-24T09:24:35 |
| deleted | False |
| deleted_at | None |
| disk_format | qcow2 |
| id | 50798580-6aee-4bb3-b90b-5edbb1f38a40 |
| is_public | True |
| min_disk | 0 |
| min_ram | 0 |
| name | cirros |
| owner | 79f838b144a54c0f89704f03e2b08436 |
| protected | False |
| size | 9761280 |
| status | active |
| updated_at | 2015-05-24T09:24:39 |
| virtual_size | None |
+------------------+--------------------------------------+

 

5. WebUIよりインスタンスの起動

WebUIにログインします。ユーザー名、パスワード : admin

http://192.168.0.140/dashboard

f:id:hirosanote:20150524194058j:plain

 

セキュリティグループを作成します

f:id:hirosanote:20150524194340j:plain

f:id:hirosanote:20150524194609j:plain

f:id:hirosanote:20150524194718j:plain

f:id:hirosanote:20150524194821j:plain

f:id:hirosanote:20150524195110j:plain

 

同様の手順で、HTTP, ICMPを追加します。

f:id:hirosanote:20150524195736j:plain

f:id:hirosanote:20150524195830j:plain

 

Webサーバ用のインスタンスを起動します

f:id:hirosanote:20150524200408j:plain

f:id:hirosanote:20150524200557j:plain

f:id:hirosanote:20150524201209j:plain

f:id:hirosanote:20150524201457j:plain

 

同様の手順で、web2サーバを起動します。

2つのインスタンスが動作していることを確認します。

f:id:hirosanote:20150524201948j:plain

 

ネットワークトポロジより、ルーターIPアドレスを確認し、webサーバへアクセスするために、OpenStackが動作しているCentOS上にスタティックルートを追加します。

f:id:hirosanote:20150524202312j:plain

route add -net 192.168.99.0/24 gw 192.168.0.241 br-ex

 

web01サーバにアクセスします。ユーザー名 : cirros パスワード : cubswin:)

ssh cirros@192.168.99.100
The authenticity of host '192.168.99.100 (192.168.99.100)' can't be established.
RSA key fingerprint is d2:ac:e8:11:25:32:fe:a5:06:83:29:5c:ff:14:52:60.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.99.100' (RSA) to the list of known hosts.
cirros@192.168.99.100's password:
$

 

httpリクエストに対するレスポンスを戻すようにします。

while true; do echo -e 'HTTP/1.0 200 OK\r\n\r\nweb_server1' | sudo nc -l -p 80 ; done  &

 

同様の手順で、web02サーバへアクセスし、httpレスポンスを作成します。"web_server1"を"web_server2"に変更します。

 

6. LBaaSの設定

WebUI上でロードバランサの設定を行います。

f:id:hirosanote:20150524205957j:plain

f:id:hirosanote:20150524225831j:plain

 

仮想IPを設定します。

f:id:hirosanote:20150524225911j:plain

f:id:hirosanote:20150524230040j:plain

 

メンバーを追加します。

f:id:hirosanote:20150524213600j:plain

f:id:hirosanote:20150524213756j:plain

 

仮想IPをPublicネットワークに紐付けます。VIP 192.168.99.253のIDを確認します。

f:id:hirosanote:20150524230237j:plain

f:id:hirosanote:20150524230319j:plain

 

VIPとPublicを紐付けます。

neutron floatingip-create --port-id=c5bc7f69-317b-4be2-9067-483b4b00416a public
Created a new floatingip:
+---------------------+--------------------------------------+
| Field | Value |
+---------------------+--------------------------------------+
| fixed_ip_address | 192.168.99.253 |
| floating_ip_address | 192.168.0.242 |
| floating_network_id | 596253c9-5976-4d11-8d06-aba1e858447e |
| id | 8eedc1dd-dd6a-4a53-b675-cecdf724c7ca |
| port_id | c5bc7f69-317b-4be2-9067-483b4b00416a |
| router_id | 63946bd6-a891-4625-b552-8c2af35501dd |
| status | DOWN |
| tenant_id | 79f838b144a54c0f89704f03e2b08436 |
+---------------------+--------------------------------------+
[root@centos65 ~(keystone_admin)]#

 

紐付けたPublic IPにアクセスし、ロードバランスされることを確認します。

f:id:hirosanote:20150524230615j:plain

 

 

OPCEL認定試験 OpenStack技術者認定試験対策教科書

OPCEL認定試験 OpenStack技術者認定試験対策教科書

 

 

 

 

 

SSL-VPNとOpenStack

ArrayNetworks社のSSL-VPN製品にAGシリーズがあります。仮想用SSL-VPNのvxAGをOpenStack内で動かしてみました。

Openstack / ICEHOUSE

vxAG / 9.3.1.36

vxAGのMotionPro機能を使用(iOS, AndroidからWindows PCへリモートデスクトップを行う事ができる)

 

ネットワークトポロジー

f:id:hirosanote:20150517001952j:plain

 

インスタンス

f:id:hirosanote:20150517002205j:plain

f:id:hirosanote:20150517002401j:plain

 

Andoroid MotionProクライアントからの接続

f:id:hirosanote:20150517002751j:plain

f:id:hirosanote:20150517002833j:plain

 

OpenStack内で動作しているSSL-VPNのvxAGへログインし、OpenStack内で動作しているWindowsPCに、リモートデスクトップ接続することが出来ました。

OpenStackは、自由にネットワークを作成することが出来ますし、イメージをインスタンスとして起動するだけで、LinuxWindowsが動作します。

そのインスタンスへのアクセス手段として、SSL-VPNが使えますね。

 

 

 

Cactiのインストール手順

Cactiをインストールしてみましたので、その構築方法の手順です。

以下のサイトを参考にしました。

 

Server OS : Ubuntu 14 / メディア : ubuntu-14.04.2-server-amd64.iso

http://www.itzgeek.com/how-tos/linux/ubuntu-how-tos/setup-cacti-network-monitoring-tool-on-ubuntu-14-04-linux-mint-17.html#axzz3Z81rZlWj

 

1. Ubuntu14のインストール

選択するオプションは、OpenSSH serverのみで、あとはデフォルトのままです。

 

2. Cactiをセットアップするために必要なモジュールをインストール

2-1. 以下のコマンドを実行します。

sudo apt-get install apache2 php5 php5-mysql php5-snmp mysql-client mysql-server snmpd rrdtool

2-2. My SQL rootユーザのパスワード設定を求められますので、パスワードを設定します。

 

3. Cactiのインストール

3-1. 以下のコマンドで、インストールします。

sudo apt-get install cacti

3-2. PHP設定ファイルの変更に関するワーニングメッセージが表示されます。そのまま<OK>を実行します。

3-3. Webサーバの選択画面が表示されます。"apache2"を選択し、<Ok>を実行します。

3-4. DB設定の確認メッセージが表示されますので<Yes>選択します。

3-5. My SQL rootユーザのパスワードを入力し、<Ok>を実行します。

3-6. Cactiデータベースのためのユーザのパスワードを設定します。<Ok>実行後、再入力画面が表示されますので、同じパスワードを入力<Ok>を実行します。

 

4. Cactiのセットアップ

4-1. ブラウザより、以下のアドレスにアクセスします。”next”をクリックします。

http://your-ip-address/cacti

4-2. "New Install"を選択し、"next"をクリックします。

4-3. 各インストールのパスが表示されます。デフォルトのままにし"Finsih"をクリックします。

4-4. ユーザログイン画面が表示されます。デフォルトのアカウントはadmin/adminです。

4-5. adminユーザに対するパスワード変更画面が表示されますので、パスワードを変更します。

 

5. 動作確認

"Graphs"タブをクリックし、"Default Tree" --> "Host: Localhost"を選択します。

グラフが表示されない場合、以下を実行します。

5-1. Ubuntu CLIより、snmpdの再起動を行い、snmpwalkコマンドで応答があることを確認します。

sudo /etc/init.d/snmpd stop
sudo /etc/init.d/snmpd start

snmpwalk -v 1 -c public localhost