仮想化でプリセールスしてるSEの一日

VMware から Azure まで、インフラや仮想化の最新情報をベンダー色をできるだけ抑えて綴っていきます

WANem で Software-Defined なネットワーク帯域制御装置を作る (3)

(1) (2) (3)
前回 の続きです。
Linux 周りをカスタマイズしていきましょう。


CLI / GUI どちらのターミナルも、起動時は WANem シェルが動いています。exit2shell と叩くと通常の bash シェルに抜けることが可能です。WANem シェルに戻りたいときは wanem と叩いてください。


3. VMware Tools をインストールする

VMware 仮想マシン上に WANem を立てた場合、
まずは vmware-tools をインストールします。

VMware Tools メディアは /mount/sr0 にマウントされますので解凍して、、、

root@WANem_3-0:/# cd /media/sr0
root@WANem_3-0:/media/sr0# 
root@WANem_3-0:/media/sr0# ll
total 60582
-r--r--r-- 1 root root 60638465 Oct 18 01:26 VMwareTools-9.6.1-1378637.tar.gz
-r-xr-xr-x 1 root root     1961 Oct 18 01:26 manifest.txt
-r--r--r-- 1 root root     1847 Oct 18 01:25 run_upgrader.sh
-r-xr-xr-x 1 root root   689456 Oct 18 01:25 vmware-tools-upgrader-32
-r-xr-xr-x 1 root root   702472 Oct 18 01:25 vmware-tools-upgrader-64
root@WANem_3-0:/media/sr0# 
root@WANem_3-0:/media/sr0# tar -C /tmp -xvzf VMwareTools-9.6.1-1378637.tar.gz

vmware-install.pl を実行します。

root@WANem_3-0:/media/sr0# cd /tmp/vmware-tools-distrib/
root@WANem_3-0:/tmp/vmware-tools-distrib# 
root@WANem_3-0:/tmp/vmware-tools-distrib# 
root@WANem_3-0:/tmp/vmware-tools-distrib# ll
total 468
-rw-r--r--  1 root root 258515 Oct 18 01:26 FILES
-rw-r--r--  1 root root   2538 Oct 18 01:26 INSTALL
drwxr-xr-x  2 root root    100 Oct 18 01:26 bin
drwxr-xr-x  2 root root    100 Oct 18 01:26 doc
drwxr-xr-x  5 root root    420 Oct 18 01:26 etc
drwxr-xr-x  2 root root    120 Oct 18 01:26 installer
drwxr-xr-x 15 root root    300 Oct 18 01:26 lib
-rwxr-xr-x  1 root root 192871 Oct 18 01:26 vmware-install.pl
root@WANem_3-0:/tmp/vmware-tools-distrib# 
root@WANem_3-0:/tmp/vmware-tools-distrib# ./vmware-install.pl 
Creating a new VMware Tools installer database using the tar4 format.

Installing VMware Tools.

In which directory do you want to install the binary files? 
[/usr/bin] 

ウィザード内で聞かれる内容は、下記を除いて基本的にそのまま Enter キーで OK。

Searching for a valid kernel header path...
The path "" is not a valid path to the 3.0.4 kernel headers.
Would you like to change it? [yes] no

次のメッセージで終われば正常終了です。

To enable advanced X features (e.g., guest resolution fit, drag and drop, and 
file and text copy/paste), you will need to do one (or more) of the following:
1. Manually start /usr/bin/vmware-user
2. Log out and log back into your desktop session; and,
3. Restart your X session.

Enjoy,

--the VMware team

Found VMware Tools CDROM mounted at /media/sr0. Ejecting device /dev/sr0 ...
root@WANem_3-0:/tmp/vmware-tools-distrib# 
root@WANem_3-0:/tmp/vmware-tools-distrib# 


4. ホスト名の設定

WANem OS のホスト名は既定で「WANem_3-0」です。
もし、変更したいようであれば /etc/hostname を修正します。

root@WANem_3-0:/# 
root@WANem_3-0:/# cat /etc/hostname
WANem_3-0
root@WANem_3-0:/# 
root@WANem_3-0:/# echo "wanem.xxxxxx.com" >/etc/hostname
root@WANem_3-0:/# 
root@WANem_3-0:/# cat /etc/hostname
wanem.xxxxxx.com
root@WANem_3-0:/# 

完了したら再起動せずに次に進んでください。


5. ブリッジによるネットワーク設定

ホスト名に続けて IP アドレスなどを付与していくのですが、WANem のマニュアル では WANem を NAT や L3 のように設定するよう記載されています。
 

 


しかし、これでは既存の各マシンや L3 スイッチについて、デフォルトゲートウェイやルーティング情報を変更しなければならず、運用の視点からすると好ましくありません。検証期間中だけさっと設置し、終わったらさっと撤収するためにも、既存のネットワークに影響しない ブリッジ構成 を取りましょう。
 


Network Manager を無効化する

最近の Linux は、ネットワーク管理サービスとして昔ながらの network ではなく、「Network Manager」(NM) という、メディア自動検出・動的切替サービスが採用されているケースがあります。
WANem v3.0 のベースである Debian 6 も NM が採用されているのですが、
NM はブリッジをサポートしていませんので、まずは NM 管理を無効にし、旧来の network サービス管理に戻す必要があります。


通常、NM を無効化するには chkconfig や insserv コマンドで /etc/rc*.d から外しますが、KNOPPIX はそもそも rc*.d を利用していません。サービス起動を担っているのは /etc/init.d/knoppix-autoconfig というスクリプトですので、このファイルを編集します*1
※ このファイルはとても重要なため、編集前にコピーを取っておいてください。

311  if ! checkbootparam "nonetworkmanager" && [ -x "/etc/init.d/network-manager" ]; then
312   ( /etc/init.d/network-manager start & ) >/dev/null 2>&1
313  else
314   ( ifup -a & ) >/dev/null 2>&1
315  fi

(311 〜 315 行目の if 文を以下のように修正)

311  # if ! checkbootparam "nonetworkmanager" && [ -x "/etc/init.d/network-manager" ]; then
312  #  ( /etc/init.d/network-manager start & ) >/dev/null 2>&1
313  # else
314   ( /etc/init.d/networking start ) >/dev/null 2>&1
315  # fi

ブリッジネットワークを定義する

旧来の network サービスで管理できるようになりましたら、/etc/network/interfaces ファイルでブリッジネットワークとその IP アドレスを定義します*2

# /etc/network/interfaces -- configuration file for ifup(8), ifdown(8)

# The loopback interface
# automatically added when upgrading
auto lo
iface lo inet loopback

auto  br0
iface br0 inet static
  address 10.1.0.253
  netmask 255.255.255.0
  gateway 10.1.0.254
  bridge_ports all
  bridge_fd    0
  bridge_stp   off

ここで設定する IP アドレスは、WANem の管理 Web にアクセスするためのものです。DHCP にしたい場合は br0 のセクションを次のように設定してください。

auto  br0
iface br0 inet dhcp
  bridge_ports all
  bridge_fd    0
  bridge_stp   off

DNS 周りを設定する

/etc/hosts を設定します。

127.0.0.1	localhost.localdomain	localhost
10.1.0.253	wanem.xxxxxx.com	wanem

1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters ff02::3 ip6-allhosts

/etc/resolv.conf を設定します。

search     xxxxxx.com
nameserver 10.1.0.1


これですべてのカスタマイズは終了です。
一度 OS をリブートしてください。その後、リモート端末からブラウザで http://10.1.0.253/WANem とアクセスし、GUI で帯域制御を実施します*3
startx を実行し、ローカルのウィンドウマネージャーのブラウザでも構いません。


VMware ESXi 仮想マシンの場合の注意点

最後に、私自身の経験から、
VMware ESXi 仮想マシンにインストールした場合の注意点を2つ挙げておきます。

「無差別モード」を許可する

ブリッジを構成した場合、WANem 仮想マシンに接続する仮想スイッチ(またはポートグループ)は双方とも「無差別モード」を許可する必要があります。
※ 当たり前と言えばそれまでなのですが、私は2年前これに気づくのに徹夜しました...


VMware Tools サービスが「実行していません」になる場合

VMware Tools サービスが「実行していません」となってしまうことがあります。


中途半端にスタートアップしているように見えたので、私は /etc/rc.local でサービスを立ち上げ直す一文を加えています。より良い方法があったら教えてください。

#!/bin/bash
#
# rc.local
#
# Start local services after hardware detection

SERVICES="apache2 ajaxterm"

for i in $SERVICES; do
 [ -x /etc/init.d/"$i" ] && /etc/init.d/"$i" start >/dev/null 2>&1
done

/etc/init.d/vmware-tools restart

exit 0

*1:カーネルパラメータに nonetworkmanager を渡した場合も、ifup -a がうまく作用しないため結局ファイル編集が必要です

*2:WANem シェルにも bridge コマンドが用意されていますが、設定が non-persistent のため再起動すると設定が消えてしまいますので interfaces ファイルへの記入が必要です

*3:URL の WANem 部分は大文字・小文字を区別することに注意