2014年2月15日土曜日

VirtualBoxのゲストOS同士で通信する

今回はVirtualBoxの中のゲストOS同士で通信をします。

VirtualBoxのバージョンは4.3.6です。

1.VirtualBoxの設定

ホストOS側の仮想環境とのインターフェイスの設定をします。
メニューから、ファイル>環境設定で設定画面を開きます。

ネットワークをクリックし、ホストオンリーネットワークのタブを開きます。
「VirtualBox Host-Only Ethernet Adapter」をダブルクリック(もしくは選択して画面右側にあるドライバーのアイコンをクリック)します。


IPV4アドレスを入力します。
今回はデフォルト値(192.168.56.1)を使います。


次にゲストOSのネットワーク設定を行います。

メイン画面で、変更するゲストOSをクリックし、上部の「設定」アイコンをクリックします。

設定画面左側のネットワークをクリックします。
続いて画面右側のアダプタータブで設定を変更します。


【アダプター1のタブ】
 ・「ネットワークアダプターを有効化」にチェック入れます。
 ・割り当ては「NAT」を選択します

【アダプター2のタブ】
 ・「ネットワークアダプターを有効化」にチェック入れます
 ・割り当ては「ホストオンリーアダプター」を選択します
 ・名前は「VirtualBox Host-Only Ethernet Adapter」を選択します

アダプター1はインターネットなどができるように、NATにしておきます。
ホストOSからゲストOSにsshでログインできるように、アダプター2はホストオンリーアダプターにします。
ホストオンリーアダプターでもゲストOS同士の通信ができるようです。

今回使用するゲストOS(ゲストOS #1、ゲストOS #2とします)に同じ設定をします。


2.ゲストOSのネットワーク設定

ゲストOSを起動し、固定IPアドレスを変更します。
今回は以下のように設定します。

【ゲストOS #1】
 eth0 IPアドレス:DHCP
 eth1 IPアドレス:192.168.56.10

【ゲストOS #2】
 eth0 IPアドレス:DHCP
 eth1 IPアドレス:192.168.56.20

変更をする前に、ifconfigコマンドで変更前の情報を表示しておくと良いと思います。

vi等で設定ファイルを書き換えます。ゲストOS #1の場合は以下のようにします。

設定ファイル:/etc/network/interfaces

auto eth0
iface eth0 dhcp

auto eth1
iface eth1 inet static
address 192.168.56.10
netmask 255.255.255.0

↓この設定は残しておきます。

auto lo
iface lo inet loopback

設定を変更したら、有効にするためインターフェースの再起動をします。
再起動しても変わらなかったり、画面がちゃんと表示されなくなるようだったらOSを再起動した方がよさそうです。

sudo service networking restart

もしくは

sudo /etc/init.d/networking restart

ゲストOS #2も同様に(IPはゲストOS #2にIPで)設定します。


3.通信してみる

ゲストOS #1からpingを3回送ります。

ping -c3 192.168.56.10

$ ping -c3 192.168.56.20
PING 192.168.56.20 (192.168.56.20) 56(84) bytes of data.
64 bytes from 192.168.56.20: icmp_seq=1 ttl=64 time=0.395 ms
64 bytes from 192.168.56.20: icmp_seq=2 ttl=64 time=0.764 ms
64 bytes from 192.168.56.20: icmp_seq=3 ttl=64 time=0.775 ms

--- 192.168.56.20 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2000ms
rtt min/avg/max/mdev = 0.395/0.644/0.775/0.179 ms

ゲストOS #2からpingを送ります。

ping -c3 192.168.56.20

$ ping -c3 192.168.56.10
PING 192.168.56.10 (192.168.56.10) 56(84) bytes of data.
64 bytes from 192.168.56.10: icmp_req=1 ttl=64 time=0.335 ms
64 bytes from 192.168.56.10: icmp_req=2 ttl=64 time=1.05 ms
64 bytes from 192.168.56.10: icmp_req=3 ttl=64 time=0.844 ms

--- 192.168.56.10 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2003ms
rtt min/avg/max/mdev = 0.335/0.746/1.059/0.303 ms

ゲストOS同士で通信出来ました。
後はホストOSからゲストOSにログインしてみます。

teratermなどでゲストOSのeth1に設定したIPアドレスで接続して、ログインできればOKです。

今回は以上になります。

0 件のコメント:

コメントを投稿