仮想環境でのネットワーク&サーバ構築 その3

VMware Playerの仮想ネットワークアダプタの追加

【カスタムの仮想ネットワークアダプタ】

Dynamips上で動作しているルータとホストOSが認識しているネットワークアダプタを接続することができます。つまり、特別な設定をしなくてもホストオンリーのVMnet1とNATのVMnet8の仮想ネットワークアダプタとDynamips上のルータを接続できます。また、ホストOSの物理的なネットワークアダプタとDynamips上のルータを接続すれば、ブリッジの仮想ネットワークアダプタとの接続もできます。ただし、これだけではあまり柔軟な構成はできません。VMware Playerで新しくホストOSから認識できる仮想ネットワークアダプタを追加して、ゲストOSとDynamipsの仮想ルータを接続することで、より柔軟な構成を取ることができます。VMware Workstationであれば、新しくカスタムの仮想ネットワークアダプタを簡単に作成できますが、VMware Playerではちょっと手間がかかります。
以降では、VMware Playerで新しくカスタムの仮想ネットワークアダプタを追加する手順を解説します。

【Step1:仮想ネットワーク設定ツール(vmnetcfg.exe)の展開】

仮想ネットワークアダプタを新しく追加するためには、仮想ネットワーク設定ツール(vmnetcfg.exe)を利用します。ただ、VMware Playerのインストーラはデフォルトでは、vmnetcfg.exeをインストールしません。インストーラからvmnetcfg.exeを展開する必要があります。
コマンドプロンプトで以下のようにVMware Playerのインストーラ(VMware-Player-xxxx.exe)を展開します。

------------------
C:\>VMware-Player-4.0.2-591240.exe /e tmp
------------------

※インストーラをC:\直下において、C:\tmpに展開している例です。

そして、展開されたファイルの中から「network.cab」をさらに展開します。
Windows 7であれば、ダブルクリックで開けます。network.cabの中にvmnetcfg.exe
が入っています。

dynamips_vmware07.png
図 vmnetcfg.exeの展開

そして、vmnetcfg.exeをVMware Playerがインストールされているフォルダにコピーします。

※VMware Player 5以降では、インストーラにvmnetcfg.exeが含まれなくなっているようです。VMware Player 4のインストーラに含まれているvmnetcfg.exeはVMware Player 5では利用できませんでした。VMware Workstation 9の評価版インストーラ内の「core.cab」から同様に展開してください。

【Step2:仮想ネットワークアダプタの追加】

vmnetcfg.exeを利用して仮想ネットワークアダプタを追加します。vmnetcfg.exeを起動すると、仮想ネットワーク設定ツールが起動します。ネットワークの追加をクリックして、「VMnet2」~「VMnet7」、「VMnet9」の中から仮想ネットワークアダプタを追加します。必要な数だけ仮想ネットワークアダプタを追加してください。

dynamips_vmware08.png
図 仮想ネットワークアダプタの追加

例として、「VMnet2」と「VMnet3」の仮想ネットワークアダプタを追加したあとの画面です。なお、追加した仮想ネットワークアダプタはホストオンリーとなります。また、自動的にサブネットのアドレスが割り当てられて、ローカルDHCPサービスも有効化されます。

dynamips_vmware09.png
図 仮想ネットワークアダプタの追加

こうして仮想ネットワークアダプタを追加すると、ホストOSからも認識できます。「コントロールパネル」→「ネットワークと共有」→「アダプターの設定の変更」でネットワークアダプタを見ると、仮想ネットワークアダプタが追加されていることがわかります。

dynamips_vmware12.png
図 追加された仮想ネットワークアダプタ

【Step3:ゲストOSと仮想ネットワークアダプタの接続】

ゲストOS(仮想マシン)と追加した仮想ネットワークアダプタの接続は、GUIの仮想マシンの設定ではできません。仮想マシンの構成ファイル(.vmx)を直接編集します。
仮想マシンは、デフォルトでは「ドキュメント」→「Virtual Machines」の中に作成されます。vmxファイルをテキストエディタで開いて、仮想マシンのネットワークアダプタの設定を次のように変更します。

--------------------------
ethernetX.present = "TRUE"
ethernetX.connectionType = "Custom"
ethernetX.vnet = "VMnetY"
--------------------------

※Xは仮想マシンのネットワークアダプタに応じて変えてください。YはStep2で追加した仮想ネットワークアダプタの識別番号です。

以下は、仮想マシン「Ubuntu 12.04」のEth0とVMnet2を接続している例です。

dynamips_vmware10.png
図 ゲストOSと仮想ネットワークアダプタの接続

そして、GUIの仮想マシンの設定画面で「ネットワークアダプタ」の部分が「カスタム(VMnetY)となっていればOKです。

dynamips_vmware11.png
図 ゲストOSと仮想ネットワークアダプタの接続の確認

Dynamips/DyangenでルータとゲストOSの接続

【Step1:デバイスIDの取得】

vmnetcfg.exeで追加したカスタムの仮想ネットワークアダプタのデバイスIDを取得します。Dynamipsをインストールしたときにデスクトップに追加される「Network device list」を実行します。

------------------------------------
Network adapters on this machine:
NIO_gen_eth:\Device\NPF_{0D64DD14-F04C-4C55-92A0-B8F966FE119E}
Name      : ローカル エリア接続
Desciption: Realtek PCIe GBE Family Controller
NIO_gen_eth:\Device\NPF_{CE4D02F2-006D-4C12-AB5E-2D29670D68E6}
Name      : VMware Network Adapter VMnet3
Desciption: VMware Virtual Ethernet Adapter
NIO_gen_eth:\Device\NPF_{C96CADA8-E302-468E-8A24-4286BFA76BD5}
Name      : VMware Network Adapter VMnet2
Desciption: VMware Virtual Ethernet Adapter
NIO_gen_eth:\Device\NPF_{C0659E27-3CA1-481A-A6C4-CF3825AD96E3}
Name      : VMware Network Adapter VMnet1
Desciption: VMware Virtual Ethernet Adapter
NIO_gen_eth:\Device\NPF_{A7239BE2-3D03-4885-9739-A248CB45BF78}
Name      : Network Connect Adapter
Desciption: Juniper Network Connect Virtual Adapter
NIO_gen_eth:\Device\NPF_{44699612-00C2-4882-84F0-A0BE7C01B4DA}
Name      : VMware Network Adapter VMnet8
Desciption: VMware Virtual Ethernet Adapter
Use as follows:
F0/0 = NIO_gen_eth:\Device\NPF_{...}
------------------------------------

※デバイスIDはDynamipsを動作させているPC環境によって異なります。

【Step2:Dynamips netファイルの編集】

Dynamipsのnetファイル上で、仮想ルータのインタフェースとゲストOSを接続します。仮想ルータのインタフェースにStep1で確認したデバイスIDを記述します。

以下は、netファイルの例です。

R1 E0/0 – VMnet2(ゲストOS1 Ubuntu 12.04)
E0/1 – Vmnet3(ゲストOS2 Ubuntu)

------------------------------------------
[[ROUTER R1]]
model = 3640
console = 2001
slot0 = NM-4E
E0/0 = NIO_gen_eth:\Device\NPF_{C96CADA8-E302-468E-8A24-4286BFA76BD5}
E0/1 = NIO_gen_eth:\Device\NPF_{CE4D02F2-006D-4C12-AB5E-2D29670D68E6}
------------------------------------------

次の図は、ゲストOS側のvmxファイルとDynamips仮想ルータのnetファイルの対応をまとめたものです。

dynamips_vmware13.png
図 vmxファイルとnetファイルの対応

これでホストOS上のDynamips仮想ルータとゲストOSの相互接続が完了です。

仮想ルータとゲストOSの設定

ホストOS上のDynamips仮想ルータとゲストOSの相互接続が完了すれば、あとは仮想ルータとゲストOSでIPアドレスなどの設定をするだけです。シンプルに以下のような設定を行います。

dynamips_vmware14.png
図 仮想ルータ/ゲストOSの設定

【Step1:仮想ルータの設定】

仮想ルータのインタフェースにIPアドレスを設定します。インタフェースは忘れずにno shutdownしてください。

R1

------------------------------------------
interface Ethernet0/0
ip address 192.168.1.1 255.255.255.0
no shutdown
!
interface Ethernet0/1
ip address 192.168.2.1 255.255.255.0
no shutdown
------------------------------------------

そして、設定が正しく行われているかshow ip interfaces briefおよびshow ip routeコマンドで確認します。

R1

------------------------------------------
R1#show ip interface brief
Interface                  IP-Address      OK? Method Status                Protocol
Ethernet0/0                192.168.1.1     YES manual up                    up
Ethernet0/1                192.168.2.1     YES manual up                    up
Ethernet0/2                unassigned      YES NVRAM  administratively down down
Ethernet0/3                unassigned      YES NVRAM  administratively down down
R1#show ip route
~省略~
Gateway of last resort is not set
C    192.168.1.0/24 is directly connected, Ethernet0/0
C    192.168.2.0/24 is directly connected, Ethernet0/1
------------------------------------------

【Step2:ゲストOSの設定】

ゲストOSでIPアドレス、サブネットマスク、デフォルトゲートウェイの設定を行います。

dynamips_vmware15.png
図 ゲストOS1 Ubuntu 12.04のネットワーク設定

dynamips_vmware16.png
図 ゲストOS2 Ubuntuのネットワーク設定

【Step3:通信確認】

仮想ルータとゲストOS間の通信を確認します。R1からそれぞれのゲストOSへのPingを実行すると、成功します。

R1

------------------------------------------
R1#ping 192.168.1.100
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.1.100, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/10/44 ms
R1#ping 192.168.2.100
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.2.100, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/10/28 ms
------------------------------------------

また、ゲストOS1からゲストOS2へのPingも成功することがわかります。

dynamips_vmware17.png
図 ゲストOS1からゲストOS2へのPing

まとめ

このようにDynamipsの仮想ルータとVMwareのゲストOSを相互接続して、サーバやクライアントも含めていろんなネットワーク構成を手軽に手元のPC上で再現することが可能です。いろんな構成を実際に作って、動作を確かめることで効果的なスキルアップができるようになるでしょう!!