ESXi上の仮想マシンでPackstackマルチノードをインストールしたときにハマったこと
Openstackのマルチノード検証環境をVMware上で構築したときにハマった記録。
概要図
事象
- 割り当てたFloatingIPに疎通ができない
インストールはうまくいって、FloatingIP割り当てまでうまくいったが、
Pingが通らない。iptablesかセキュリティグループを疑ったが、
最終的に以下の解決策に行き当たった。
解決策
仮想マシンの仮想NICを無差別モードに設定する
たったこれだけのことで数時間はまった。
↓同じところでハマっている人がいらして大変助かった。
【Neutron】 インスタンスの Floating IP アドレスへ Ping が通らない
VMware 上で OpenStack 環境を作る場合、1つやらなければならない設定があります。
VMware の仮想ネットワークは標準で、ポートセキュリティの為、違う MAC アドレスのパケットを仮想 NIC に流さないようになっています。 これが OpenStack の仮想ネットワーク機能の妨げになります。
よって、VMware のネットワーク設定で、問題のネットワークの標準スイッチのプロパティの「無差別モード」を「承認」(有効)に変更してください。 https://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=2078928
参考
vSphere ESXi 上の仮想マシンで VT-x を有効化するには
こちらもよければ
CentOS6.xにstoneをインストールした
http://www.flickr.com/photos/28145073@N08/7356884346
stoneとはなにか?
- パケットを中継してファイアウォールにトンネルを掘ることができる
stone は、アプリケーションレベルの TCP & UDP リピーターです。ファイアウォールの内から外へ、あるいは外から内へ、TCP あるいは UDP を中継します
ポートフォワーディングの例
- 例えば、Local → Remote へRemoteDesktopしたい場合SSHのポートフォワード機能を使うと、ファイアウォールに22番ポートしか空いてない場合、22番ポートで接続すると余計な穴を空ける必要がない
stoneに置き換えられそうなもの
参考:
* ポートフォワーディング
* SSHポートフォワード(トンネリング)を使って、遠隔地からLAN内のコンピュータにログインするAdd Star
stoneをインストールする
Makeに必要なパッケージを入れる
# yum install gcc openssl-devel
stoneをダウンロード
# cd /usr/local/src # wget http://www.gcd.org/sengoku/stone/stone-2.3e.tar.gz # tar zxvf stone-2.3e.tar.gz
Makefileを編集
- エラーを回避するために以下のようにmakefileを編集する
# cd stone-2.3d-2.3.2.7/ # cp -p Makefile Makefile.bak # diff Makefile Makefile.bak 100c100 < $(MAKE) FLAGS="-O -Wall -DCPP='\"/usr/bin/cpp -traditional\"' -DPTHREAD -DUNIX_DAEMON -DPRCTL -DSO_ORIGINAL_DST=80 -DUSE_EPOLL -D_GNU_SOURCE $(FLAGS)" LIBS="-lpthread $(LIBS)" stone --- > $(MAKE) FLAGS="-O -Wall -DCPP='\"/usr/bin/cpp -traditional\"' -DPTHREAD -DUNIX_DAEMON -DPRCTL -DSO_ORIGINAL_DST=80 -DUSE_EPOLL $(FLAGS)" LIBS="-lpthread $(LIBS)" stone [root@router-test stone-2.3d-2.3.2.7]#
syslog以外にログを吐くように設定
# cd /usr/local/src/stone-2.3d-2.3.2.7 # cp -p stone.c stone.c.bk
stone.cを編集
# diff stone.c stone.c.bk 9988c9988 < openlog(SyslogName, 0, LOG_LOCAL0); --- > openlog(SyslogName, 0, LOG_DAEMON); 10064c10064 < openlog(SyslogName, 0, LOG_LOCAL0); --- > openlog(SyslogName, 0, LOG_DAEMON);
コンパイル
# make linux-ssl make TARGET=linux ssl_stone LIBS="-ldl" make[1]: ディレクトリ `/usr/local/src/stone-2.3d-2.3.2.7' に入ります make FLAGS="-DUSE_POP -DUSE_SSL " LIBS="-ldl -lssl -lcrypto" linux make[2]: ディレクトリ `/usr/local/src/stone-2.3d-2.3.2.7' に入ります make FLAGS="-O -Wall -DCPP='\"/usr/bin/cpp -traditional\"' -DPTHREAD -DUNIX_DAEMON -DPRCTL -DSO_ORIGINAL_DST=80 -DUSE_EPOLL -D_GNU_SOURCE -DUSE_POP -DUSE_SSL " LIBS="-lpthread -ldl -lssl -lcrypto" stone make[3]: ディレクトリ `/usr/local/src/stone-2.3d-2.3.2.7' に入ります cc -O -Wall -DCPP='"/usr/bin/cpp -traditional"' -DPTHREAD -DUNIX_DAEMON -DPRCTL -DSO_ORIGINAL_DST=80 -DUSE_EPOLL -D_GNU_SOURCE -DUSE_POP -DUSE_SSL -o stone stone.c -lpthread -ldl -lssl -lcrypto stone.c: In function ‘saDup’: stone.c:1558: 警告: キャストによってポインタから異なるサイズの整数となります stone.c: In function ‘sendPairUDPbuf’: stone.c:3023: 警告: キャストによってポインタから異なるサイズの整数となります stone.c: In function ‘freePair’: stone.c:3644: 警告: キャストによってポインタから異なるサイズの整数となります stone.c: In function ‘doconnect’: stone.c:3883: 警告: キャストによってポインタから異なるサイズの整数となります stone.c: In function ‘acceptPair’: stone.c:4072: 警告: キャストによってポインタから異なるサイズの整数となります stone.c: In function ‘proto2fdset’: stone.c:6239: 警告: キャストによってポインタから異なるサイズの整数となります stone.c:6300: 警告: キャストによってポインタから異なるサイズの整数となります stone.c: In function ‘dispatch’: stone.c:6916: 警告: キャストによってポインタから異なるサイズの整数となります stone.c: In function ‘newMatch’: stone.c:7070: 警告: キャストによってポインタから異なるサイズの整数となります stone.c: In function ‘freeMatch’: stone.c:7084: 警告: キャストによってポインタから異なるサイズの整数となります stone.c: In function ‘sslopts_default’: stone.c:8875: 警告: assignment discards qualifiers from pointer target type stone.c:8885: 警告: assignment discards qualifiers from pointer target type stone.c: In function ‘sslopts’: stone.c:8971: 警告: assignment discards qualifiers from pointer target type stone.c:8972: 警告: assignment discards qualifiers from pointer target type stone.c:8976: 警告: assignment discards qualifiers from pointer target type stone.c:8977: 警告: assignment discards qualifiers from pointer target type stone.c:8981: 警告: assignment discards qualifiers from pointer target type stone.c:8982: 警告: assignment discards qualifiers from pointer target type stone.c: In function ‘initialize’: stone.c:10178: 警告: キャストによってポインタから異なるサイズの整数となります make[3]: ディレクトリ `/usr/local/src/stone-2.3d-2.3.2.7' から出ます make[2]: ディレクトリ `/usr/local/src/stone-2.3d-2.3.2.7' から出ます make[1]: ディレクトリ `/usr/local/src/stone-2.3d-2.3.2.7' から出ます
→エラーがでなければOK
Pathの通る位置に配置
# cp -rfpa stone /usr/local/bin/
stoneコマンドで起動
# stone Dec 2 18:19:22.812033 139932587710400 start (2.3e) [6991] Dec 2 18:19:22.812184 139932587710400 stone 2.3e http://www.gcd.org/sengoku/stone/ Dec 2 18:19:22.812204 139932587710400 Copyright(C)2007 by Hiroaki Sengoku <sengoku@gcd.org> Dec 2 18:19:22.812214 139932587710400 using OpenSSL 1.0.1e-fips 11 Feb 2013 http://www.openssl.org/ Usage: stone <opt>... <stone> [-- <stone>]... opt: -h opt ; help for <opt> more -h stone ; help for <stone> -h ssl ; help for <SSL>, see -q/-z opts
→動いたっぽい
ログの設定
# vim /etc/rsyslog.d/stone.conf // 1行を追記 local0.* /var/log/stone.log
stoneのログを/var/log/messagesに出力しないようにするため、以下を修正
# vi /etc/rsyslog.conf ・・・ *.info;mail.none;authpriv.none;cron.none /var/log/messages ↓ *.info;mail.none;authpriv.none;cron.none,local0.none /var/log/messages
ログファイル作成
# touch /var/log/stone.log
rsyslogを再起動
# /etc/init.d/rsyslog restart システムロガーを停止中: [ OK ] システムロガーを起動中: [ OK ] [root@router rsyslog.d]#
rsyslog で local ファシリティで指定したログが /var/log/messages にも出力されるので出力させないようにした記録
専用アカウントを設定
グループとユーザ作成
# groupadd -g 10001 stone # useradd -g stone -d /etc/stone -s /sbin/nologin -u 10003 stone
起動スクリプト作成
OPTIONS="-i $PID_FILE -C /etc/stone/stone.conf"
# vim /etc/init.d/stone #!/bin/bash # # stone Start up the stone # # chkconfig: 2345 55 25 # description: stone is a simple packet repeater. # # processname: stone # config: /usr/local/etc/stone.conf # pidfile: /var/run/stone.pid ### BEGIN INIT INFO # Provides: stone # Required-Start: $local_fs $network $syslog # Required-Stop: $local_fs $syslog # Should-Start: $syslog # Should-Stop: $network $syslog # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Start up the stone # Description: stone is a simple packet repeater. ### END INIT INFO # source function library . /etc/rc.d/init.d/functions # pull in sysconfig settings [ -f /etc/sysconfig/stone ] && . /etc/sysconfig/stone RETVAL=0 prog="stone" lockfile=/var/lock/subsys/${prog} # Some functions to make the below more readable STONE=/usr/local/bin/stone PID_FILE=/var/run/${prog}.pid #OPTIONS="-i $PID_FILE -C /usr/local/etc/stone.conf" OPTIONS="-i $PID_FILE -C /etc/stone/stone.conf" start() { [ -x $STONE ] || exit 5 echo -n $"Starting $prog: " $STONE $OPTIONS && success || failure RETVAL=$? [ $RETVAL -eq 0 ] && touch $lockfile echo return $RETVAL } stop() { echo -n $"Stopping $prog: " killproc -p $PID_FILE $STONE RETVAL=$? [ $RETVAL -eq 0 ] && rm -f $lockfile echo } reload() { echo -n $"Reloading $prog: " killproc -p $PID_FILE $STONE -HUP RETVAL=$? echo } restart() { stop start } case "$1" in start) start ;; stop) stop ;; restart) restart ;; reload) reload ;; *) echo $"Usage: $0 {start|stop|restart|reload}" RETVAL=2 esac exit $RETVAL
起動スクリプト自動起動設定
# chmod 755 /etc/init.d/stone # chkconfig stone on
起動する
/etc/init.d/stone start
stoneの動作確認
80番ポートを443に転送してみる
# stone 172.16.0.100:80 80 & # stone 172.16.0.100:443 443 &
参考
esxcliの便利な使い方
概要
ESXiで使えるコマンドラインツール「esxcli」で便利だったコマンド。
1台ならいいけど、GUIで設定してもいいが、複数台あるとしんどいので。
GUIでポチポチしなくていいのは楽。
使用するにはsshログインかコンソールへのログイン(ESXi Shell)が必要
参考:
ESXi 5.x および 6.0 での ESXi Shell の使用 (2014831)
ESXiネットワーク情報取得
vSwich一覧取得
# esxcli network vswitch standard list
ポートグループ一覧
# esxcli network vswitch standard portgroup list
ESXiネットワーク設定
vSwitch設定
vSwitchに物理nicを接続する
# esxcfg-vswitch --link=vmnic0 vSwitch0
ManagementPortのVLAN ID変更
## 設定確認 # esxcli network vswitch standard portgroup list | head -3 Name Virtual Switch Active Clients VLAN ID ------------------ -------------- -------------- ------- Management Network vSwitch0 1 ## 設定変更 # esxcli network vswitch standard portgroup set -p "Management Network" --vlan-id 100 # esxcli network vswitch standard portgroup list | head -3 # esxcli network vswitch standard portgroup list Name Virtual Switch Active Clients VLAN ID ------------------ -------------- -------------- ------- Management Network vSwitch0 1 200
※物理スイッチがネイティブVLANになっている場合、
パケットがネイティブVLANからタグVLANになるので、このコマンドを打った時点でライアントと疎通が取れなくなる。
物理スイッチにVLANの設定をするまで疎通が取れないので注意。
PortGroup作成
「VLAN100」というPortGroupを作成
# esxcfg-vswitch --add-pg=VLAN100 vSwitch0
PortGroupにVLANID設定
「VLAN100」に「VLAN ID100」を設定
# esxcfg-vswitch --vlan=100 --pg=VLAN100 vSwitch0
ESXiストレージ設定
情報を取得
# esxcli storage Usage: esxcli storage {cmd} [cmd options] Available Namespaces: core VMware core storage commands. nfs Operations to create, manage, and remove Network Attached Storage filesystems. nmp VMware Native Multipath Plugin (NMP). This is the VMware default implementation of the Pluggable Storage Architecture. san IO device management operations to the SAN devices on the system. vflash virtual flash Management Operations on the system. vmfs VMFS operations. filesystem Operations pertaining to filesystems, also known as datastores, on the ESX host.
# esxcli storage nfs Usage: esxcli storage nfs {cmd} [cmd options] Available Namespaces: param Operations on volume parameters of NAS filesystems. Available Commands: add Add a new NAS volume to the ESX Host and mount it with the given volume name. list List the NAS volumes currently known to the ESX host. remove Remove an existing NAS volume from the ESX host.
nfsストレージを追加
## esxcli storage nfs add -H (NFS_IP|NFS_HOSTNAME) -s (Share_mount_point_on_the_NFS) -v (Volume-name) # esxcli storage nfs add -H 192.168.1.1 -s /export/nfs/ -v nfsserver ## 確認 # esxcli storage nfs list
SNMP設定
## コミュニティ名に「public」を設定 # esxcli system snmp set --communities public ## SNMPを有効化 # esxcli system snmp set --enable true ## 確認 # esxcli system snmp get Authentication: Communities: public Enable: true Engineid: 00000063000000a100000000 Hwsrc: indications Largestorage: true Loglevel: info Notraps: Port: 161 Privacy: Remoteusers: Syscontact: Syslocation: Targets: Users: V3targets:
パッチの適用
## zipファイルのパッチファイルを適用する # esxcli software vib install -d "/vmfs/volumes/datastore1/patch-directory/ESXi500-201111001.zip"
ESXi 5.x/6.x ホストにコマンド ラインからパッチをインストールする (2092895)
esxcliのコマンドリファレンス
コマンドリストを取得
# esxcli esxcli command list | head Namespace Command -------------------------------------------------- ----------- esxcli.command list fcoe.adapter list fcoe.nic disable fcoe.nic discover fcoe.nic list hardware.bootdevice list hardware.clock get hardware.clock set ~~~省略~~~~
参考
こちらもよければ。
PackstackでOpenstack(Mitaka)をAllinOneでインストールする
- RDOとは
- Packstack
- 動作条件
- インストールした環境
- 事前準備
- Packstackのパッケージインストール
- Packstackで全部入りのOpenstackを入れてみる
- ダッシュボードにログイン
- CLIで操作する
- 次は
- 参考
RDOとは
Packstack
- PuppetベースのOpesntackデプロイツール
- マルチノード構成が簡単に作れるがHAが組めない
- とりあえずCentOSだったらこれかな
動作条件
- x86_64
- RAM 4GB以上
- RHEL7(CentOS7)最小構成が推奨
インストールした環境
- ESXi5.xの仮想マシン
- CentOS7.2
- RAM 4GB
- Disk 100GB
事前準備
# systemctl disable firewalld # systemctl stop firewalld # systemctl disable NetworkManager # systemctl stop NetworkManager # systemctl enable network # systemctl start network # yum update
Packstackのパッケージインストール
## リポジトリ追加 # yum install https://www.rdoproject.org/repos/rdo-release.rpm ## Packstackパッケージをインストール # yum install openstack-packstack
Packstackで全部入りのOpenstackを入れてみる
Answerファイル生成
# packstack --gen-answer-file=/root/answer.txt
編集したところだけ
全部入りにしたかったので、以下を変更
CONFIG_SAHARA_INSTALL=y CONFIG_HEAT_INSTALL=y CONFIG_TROVE_INSTALL=y CONFIG_IRONIC_INSTALL=y CONFIG_LBAAS_INSTALL=y CONFIG_NEUTRON_FWAAS=y CONFIG_NEUTRON_VPNAAS=y
Packstack実行
# packstack --answer-file=/root/answer.txt **** Installation completed successfully ****** Additional information: * Time synchronization installation was skipped. Please note that unsynchronized time on server instances might be problem for some OpenStack components. * File /root/keystonerc_admin has been created on OpenStack client host 192.168.1.1. To use the command line tools you need to source the file. * To access the OpenStack Dashboard browse to http://192.168.1.1/dashboard . Please, find your login credentials stored in the keystonerc_admin in your home directory. * To use Nagios, browse to http://192.168.1.1/nagios username: nagiosadmin, password: 891c4de6a9524084 * The installation log file is available at: /var/tmp/packstack/20160511-103152-Rm51YP/openstack-setup.log * The generated manifests are available at: /var/tmp/packstack/20160511-103152-Rm51YP/manifests
ダッシュボードにログイン
CLIで操作する
rcファイル読み込み
# source /root/keystonerc_admin
novaコマンド
# nova list +----+------+--------+------------+-------------+----------+ | ID | Name | Status | Task State | Power State | Networks | +----+------+--------+------------+-------------+----------+ +----+------+--------+------------+-------------+----------+
次は
参考
HPサーバのiLO設定をオンラインでCLIから行う「hponcfg」
hponcfgとは
HPのサーバで、ESXiホスト上に既に仮想マシンが動いていて、止めたくない時に便利なコマンド「hponcfg」というのが あると知ったのでメモ。 HPのバンドルのESXiからインストールしている場合は、デフォルトで既に入っている。 バンドル版じゃないときは、ここから指定のバージョンのモノをダウンロードできる。
iLOのIPアドレスやrootのパスワードの変更などが可能。
前提
- rootでESXiホストにSSHログインができること
使い方
HELP
# /opt/hp/tools/hponcfg -h HP Lights-Out Online Configuration utility Version 4.0-13 (c) Hewlett-Packard Company, 2011 Firmware Revision = 2.27 Device type = iLO 2 Driver name = hpilo iLO IP Address: xxxxxxx USAGE: hponcfg -? hponcfg -h hponcfg -m minFw hponcfg -r [-m minFw ] hponcfg [-a] -w filename [-m minFw] hponcfg -g [-m minFw] hponcfg -f filename [-l filename] [-s namevaluepair] [-v] [-m minFw] hponcfg -i [-l filename] [-s namevaluepair] [-v] [-m minFw] -h, --help Display this message -? Display this message -r, --reset Reset the Management Processor to factory defaults -f, --file Get/Set Management Processor configuration from "filename" -i, --input Get/Set Management Processor configuration from the XML input received through the standard input stream. -w, --writeconfig Write the Management Processor configuration to "filename" -a, --all Capture complete Management Processor configuration to the file. This should be used along with '-w' option -l, --log Log replies to "filename" -v, --xmlverbose Display all the responses from Management Processor -s, --substitute Substitute variables present in input config file with values specified in "namevaluepairs" -g, --get_hostinfo Get the Host information -m, --minfwlevel Minimum firmware level
現在の設定をファイルに出力する hponcfg -w
# /opt/hp/tools/hponcfg -w /tmp/ilo-conf.txt # cat /tmp/ilo-conf.txt <!-- HPONCFG VERSION = "4.0-13.0" --> <!-- Generated 1/6/2016 3:48:5 --> <RIBCL VERSION="2.1"> <LOGIN USER_LOGIN="Administrator" PASSWORD="YOUR-NEW-PASSWORD"> <DIR_INFO MODE="write"> <MOD_DIR_CONFIG> <DIR_AUTHENTICATION_ENABLED VALUE = "N"/> <DIR_LOCAL_USER_ACCT VALUE = "Y"/> <DIR_SERVER_ADDRESS VALUE = ""/> <DIR_SERVER_PORT VALUE = "636"/> <DIR_OBJECT_DN VALUE = ""/> <DIR_OBJECT_PASSWORD VALUE = ""/> <DIR_USER_CONTEXT_1 VALUE = ""/> <DIR_USER_CONTEXT_2 VALUE = ""/> <DIR_USER_CONTEXT_3 VALUE = ""/> </MOD_DIR_CONFIG> </DIR_INFO> <RIB_INFO MODE="write"> <MOD_NETWORK_SETTINGS> <SPEED_AUTOSELECT VALUE = "Y"/> <NIC_SPEED VALUE = "10"/> <FULL_DUPLEX VALUE = "N"/> <IP_ADDRESS VALUE = "xxx.xxx.xxx.xxx"/> <SUBNET_MASK VALUE = "255.255.0.0"/> <GATEWAY_IP_ADDRESS VALUE = "xxx.xxx.xxx.xxx"/> <DNS_NAME VALUE = "xxxxxxxxxxxx"/> <PRIM_DNS_SERVER value = "xxx.xxx.xxx.xxx"/> <DHCP_ENABLE VALUE = "N"/> <DOMAIN_NAME VALUE = "N"/> <DHCP_GATEWAY VALUE = "N"/> <DHCP_DNS_SERVER VALUE = "N"/> <DHCP_STATIC_ROUTE VALUE = "N"/> <DHCP_WINS_SERVER VALUE = "N"/> <REG_WINS_SERVER VALUE = "N"/> <PRIM_WINS_SERVER value = "0.0.0.0"/> <STATIC_ROUTE_1 DEST = "0.0.0.0" GATEWAY = "0.0.0.0"/> <STATIC_ROUTE_2 DEST = "0.0.0.0" GATEWAY = "0.0.0.0"/> <STATIC_ROUTE_3 DEST = "0.0.0.0" GATEWAY = "0.0.0.0"/> </MOD_NETWORK_SETTINGS> </RIB_INFO> <USER_INFO MODE="write"> </USER_INFO> </LOGIN> </RIBCL>
設定を変更 hponcfg -f
# hponcfg -f ファイル名
<IP_ADDRESS VALUE = “172.16.1.19”/> <SUBNET_MASK VALUE = “255.255.0.0”/> <GATEWAY_IP_ADDRESS VALUE = “172.16.0.1”/> <DNS_NAME VALUE = “xxxxxxxx”/>xxx <PRIM_DNS_SERVER value = “172.16.0.1”/> <DHCP_ENABLE VALUE = “N”/> <ribcl VERSION=”2.0″> <login USER_LOGIN=”Administrator” PASSWORD=”YOUR-NEW-PASSWORD“> <user_INFO MODE=”write”> <mod_USER USER_LOGIN=”Administrator”> <password value=”newpass”/> </mod_USER> </user_INFO> </login> </ribcl> <RIBCL VERSION="2.1"> <LOGIN USER_LOGIN="Administrator" PASSWORD="YOUR-NEW-PASSWORD"> <user_INFO MODE=”write”> <mod_USER USER_LOGIN="Administrator"> <password value=”caNsnFlz”/> </mod_USER> </user_INFO> </LOGIN> </RIBCL>
管理者のパスワードを変更する hponcfg -f reset_admin_pw.xml
# hponcfg -f reset_admin_pw.xml
<!-- HPONCFG VERSION = "4.0-13.0" --> <!-- Generated 1/6/2016 3:48:5 --> <RIBCL VERSION="2.1"> <LOGIN USER_LOGIN="Administrator" PASSWORD="YOUR-NEW-PASSWORD"> <DIR_INFO MODE="write"> <MOD_DIR_CONFIG> <DIR_AUTHENTICATION_ENABLED VALUE = "N"/> <DIR_LOCAL_USER_ACCT VALUE = "Y"/> <DIR_SERVER_ADDRESS VALUE = ""/> <DIR_SERVER_PORT VALUE = "636"/> <DIR_OBJECT_DN VALUE = ""/> <DIR_OBJECT_PASSWORD VALUE = ""/> <DIR_USER_CONTEXT_1 VALUE = ""/> <DIR_USER_CONTEXT_2 VALUE = ""/> <DIR_USER_CONTEXT_3 VALUE = ""/> </MOD_DIR_CONFIG> </DIR_INFO> <RIB_INFO MODE="write"> <MOD_NETWORK_SETTINGS> <SPEED_AUTOSELECT VALUE = "Y"/> <NIC_SPEED VALUE = "10"/> <FULL_DUPLEX VALUE = "N"/> <IP_ADDRESS VALUE = "172.16.1.19"/> <SUBNET_MASK VALUE = "255.255.0.0"/> <GATEWAY_IP_ADDRESS VALUE = "172.16.0.1"/> <DNS_NAME VALUE = "xxxxxxxxx"/> <PRIM_DNS_SERVER value = "172.16.0.1"/> <DHCP_ENABLE VALUE = "N"/> <DOMAIN_NAME VALUE = "N"/> <DHCP_GATEWAY VALUE = "N"/> <DHCP_DNS_SERVER VALUE = "N"/> <DHCP_STATIC_ROUTE VALUE = "N"/> <DHCP_WINS_SERVER VALUE = "N"/> <REG_WINS_SERVER VALUE = "N"/> <PRIM_WINS_SERVER value = "0.0.0.0"/> <STATIC_ROUTE_1 DEST = "0.0.0.0" GATEWAY = "0.0.0.0"/> <STATIC_ROUTE_2 DEST = "0.0.0.0" GATEWAY = "0.0.0.0"/> <STATIC_ROUTE_3 DEST = "0.0.0.0" GATEWAY = "0.0.0.0"/> </MOD_NETWORK_SETTINGS> </RIB_INFO> <USER_INFO MODE="write"> </USER_INFO> </LOGIN> </RIBCL>
参考
ESXi5.5でパケットキャプチャツール「pktcap-uw」を使ってみた
pktcap-uwとは
- ESXi5.5から提供されたパケットキャプチャツール
- 標準仮想スイッチ、分散仮想スイッチでも使用可能
- 以前からあったtcpdump-uwツールの代わりに使用できる
- tcpdump-uwはvmkernelだけだったが、pktcap-uwはハイパーバイザー内のすべてのポイントでトラフィックをキャプチャできる
- pcapファイルでエクスポートできるので、Wiresharkなどでパケット解析ができる
使い方
- ESXiにSSH接続する
できること
ポートごと
–switchport <port ID> (Specify the switch port by ID) –lifID <lif ID> (Specify the logical interface id of VDR port) –vmk <vmk NIC> (Specify the switch port by vmk NIC) –uplink <vmnic> (Specify the switch port by vmnic)
キャプチャポイント一覧
# pktcap-uw -A Supported capture points: 1: Dynamic — The dynamic inserted runtime capture point. 2: UplinkRcv — The function that receives packets from uplink dev 3: UplinkSnd — Function to Tx packets on uplink 4: Vmxnet3Tx — Function in vnic backend to Tx packets from guest 5: Vmxnet3Rx — Function in vnic backend to Rx packets to guest 6: PortInput — Port_Input function of any given port 7: IOChain — The virtual switch port iochain capture point. 8: EtherswitchDispath — Function that receives packets for switch 9: EtherswitchOutput — Function that sends out packets, from switch 10: PortOutput — Port_Output function of any given port 11: TcpipDispatch — Tcpip Dispatch function 12: PreDVFilter — The DVFIlter capture point 13: PostDVFilter — The DVFilter capture point 14: Drop — Dropped Packets capture point 15: VdrRxLeaf — The Leaf Rx IOChain for VDR 16: VdrTxLeaf — The Leaf Tx IOChain for VDR 17: VdrRxTerminal — Terminal Rx IOChain for VDR 18: VdrTxTerminal — Terminal Tx IOChain for VDR 19: PktFree — Packets freeing point
フィルターオプション
–srcmac <xx:xx:xx:xx:xx> (The Ethernet source MAC address) –dstmac <xx:xx:xx:xx:xx> (The Ethernet destination MAC address) –mac <xx:xx:xx:xx:xx> (The Ethernet MAC address(src or dst)) –ethtype 0x<ETHTYPE> (The Ethernet type. HEX format) –vlan <VLANID> (The Ethernet VLAN ID) –srcip <x.x.x.x[/<range>]> (The source IP address) –dstip <x.x.x.x[/<range>]> (The destination IP address) –ip <x.x.x.x> (The IP address(src or dst)) –proto 0x<IPPROTYPE> (The IP protocol) –srcport <SRCPORT> (The TCP source port) –dstport <DSTPORT> (The TCP destination port) –tcpport <PORT> (The TCP port(src or dst)) –vxlan <vxlan id> (The vxlan id of flow)
キャプチャする仮想マシンの情報を取得する
## 有効なnic一覧 # esxcli network nic list ## 有効なインターフェイス一覧 # esxcli network ip interface list ## iポートのIP情報 # esxcli network ip interface ipv4 get ## ネットワークが有効な仮想マシン一覧 # esxcli network vm list ## PortIDがわかる # esxtop → nを押下
ヘルプ
# pktcap-uw -h |more
vmkernel ポートのトラフィックのライブ キャプチャを表示する
# pktcap-uw --vmk vmkX
# pktcap-uw --vmk vmk0 The name of the vmk is vmk0 No server port specifed, select 48475 as the port Output the packet info to console. Local CID 2 Listen on port 48475 Accept...Vsock connection from port 1025 cid 2 04:55:36.998505[1] Captured at PortInput point, TSO not enabled, Checksum offloaded and not verified, length 154. Segment[0] ---- 54 bytes: 0x0000: 0000 5e00 0102 0026 554a 6100 0800 4510 0x0010: 008c dbf5 4000 4006 53d0 0ac8 3d35 c0a8 0x0020: 01f1 0016 f512 9103 f13d fcb2 da71 5018 0x0030: 0080 0b15 0000 Segment[1] ---- 100 bytes: 0x0030: e8bc 3e7d 8ccb ee66 7f60 0x0040: 6776 2009 f8b4 f247 f07e e17b b53b e19b 0x0050: 7759 cf68 00c9 2145 17b9 b95f f8bb 679c 0x0060: bfab b32c 79ef 60a5 7acb 38b2 e61f 1065 0x0070: 7612 6bc1 06e5 0aef 9b33 10b5 dd26 81f3 0x0080: 2327 1140 80d4 c590 5176 d587 62d2 09bf 0x0090: 2c1c f9e7 4e91 b5e8 3e88 ~~~~~~~~~~
ESXiホスト vmnic 上の特定の物理ネットワーク カードのライブ キャプチャを表示する
# pktcap-uw --uplink vmnic0
仮想マシンの特定の vSwitch ポートのライブ キャプチャを表示す
仮想マシンのvSwitch ポート番号を取得する
# net-stats -l
取得したポートをキャプチャする
# pktcap-uw --switchport switchportnumber # pktcap-uw --switchport (PortID)
キャプチャしたデータをpcapファイルに保存する
# pktcap-uw --vmk vmk0 -o /tmp/test.pcap The name of the vmk is vmk0 The output file is /tmp/test.pcap No server port specifed, select 58077 as the port Local CID 2 Listen on port 58077 Accept...Vsock connection from port 1030 cid 2 Dump: 171766, broken : 0, drop: 0, file err: 0Destroying session 6 Dumped 171766 packet to file /tmp/test.pcap, dropped 0 packets. Done. → ctl+c で終了する # ls -la /tmp/test.pcap -r--r--r-- 1 root root 31830971 Jun 8 05:57 /tmp/test.pcap
参考
OSSのプライベートクラウド基盤ソフトウェアまとめ
今回の選出の条件
主要なOSSのプライベートクラウド基盤ソフトウェア比較
- Rackspace HostingとNASAによって始められたIaaSクラウドコンピューティングプロジェクト
- 最も盛り上がっているプロジェクトだろう
- OpenNebula.orgで開発
- 企業や研究所,大学などの学術機関で,組織内の利用者にプライベートクラウドとして提供する,という用途が多い
- WebフロントエンドのsunstoneはRubyで書かれている
- 米・Eucalyptusで開発されていたが、2014年9月にHPに買収された
- というかCEOがOpenstackに寝返ったらしい
- ドイツopenQRM Enterprise社が開発
オープンソースの仮想基盤管理ツールまとめ
- ハイパーバイザーをWebブラウザから管理することのできるツール
- Redhat傘下
- KVMホストの情報、仮想マシンの状態、ネットワーク、クラスタ構成等の閲覧、操作、作成が可能
- RHEV (Red Hat Enterprise Virtualization)のOSS版
- 株式会社HDEが開発しているサーバ仮想化管理アプリケーション)
- XenServerを管理する
- 無償版では、XenMotion,リソースプール設定、リソース割り当ての制御が不可
virt-manager(Virtual Machine Manager)
参考
- OSSのクラウド基盤 OpenStack / CloudStack
- クラウド基盤ソフトウェアとCloudStack
- クラウド構築で注目が集まるCloudStackとは? (1/2)
- OpenStack ディストリビューションの比較調査
こちらも