仮想環境でのネットワーク&サーバ構築 その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
が入っています。
そして、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」の中から仮想ネットワークアダプタを追加します。必要な数だけ仮想ネットワークアダプタを追加してください。
例として、「VMnet2」と「VMnet3」の仮想ネットワークアダプタを追加したあとの画面です。なお、追加した仮想ネットワークアダプタはホストオンリーとなります。また、自動的にサブネットのアドレスが割り当てられて、ローカルDHCPサービスも有効化されます。
こうして仮想ネットワークアダプタを追加すると、ホストOSからも認識できます。「コントロールパネル」→「ネットワークと共有」→「アダプターの設定の変更」でネットワークアダプタを見ると、仮想ネットワークアダプタが追加されていることがわかります。
【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を接続している例です。
そして、GUIの仮想マシンの設定画面で「ネットワークアダプタ」の部分が「カスタム(VMnetY)となっていればOKです。
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ファイルの対応をまとめたものです。
これでホストOS上のDynamips仮想ルータとゲストOSの相互接続が完了です。
仮想ルータとゲストOSの設定
ホストOS上のDynamips仮想ルータとゲストOSの相互接続が完了すれば、あとは仮想ルータとゲストOSでIPアドレスなどの設定をするだけです。シンプルに以下のような設定を行います。
【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アドレス、サブネットマスク、デフォルトゲートウェイの設定を行います。
図 ゲストOS1 Ubuntu 12.04のネットワーク設定
【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の仮想ルータとVMwareのゲストOSを相互接続して、サーバやクライアントも含めていろんなネットワーク構成を手軽に手元のPC上で再現することが可能です。いろんな構成を実際に作って、動作を確かめることで効果的なスキルアップができるようになるでしょう!!