ぷれいんぐLinux

Linuxを遊びたい?Linuxと遊びたい?それとも、Linuxに遊ばれたい?

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

VirtualBox on Ubuntu 8.04 Vol. 5 (Final) ブリッジ接続

今回は、ubuntu (8.04)で動作しているVirtualBoxで、
ゲストOSをブリッジ接続にします。

大抵、職場などでは、Windowsネットワークが構成されており、
さらに、プリンターもネットワークプリンタだったりします。
ActiveDirectoryでユーザ管理している場合も、ネットワークに直接参加しないとだめですもんね。
ubuntu HardyはActiveDirectoryのユーザでログインすることもできるみたいだし。
(やったことありませんけどね。今後、やってみなくちゃ)

なので、ホストOSをWindowsにした場合、Windowsネットワークに直接することが余儀なくされます。
そのために、どうするか。
キーとなるのが「ブリッジ接続」です。
ホストOSをブリッジとしてネットワークを構成されることにより、
ゲストOSも、ホストOSと同じネットワークに参加することが可能となるのです。

ホストOSがWindowsの場合、比較的簡単にブリッジ接続することができますが、
Linuxの場合には、なかなか難しいところがありました。

Linux自体の仕組みを利用したブリッジ接続方法が有名ではあるようですが、
Linuxを再起動すると、一部構成し直しだったりと、Linux起動時用のスクリプトを用意したりと、
大変。

なので、もう少し簡単で、誰でもVirtualBoxでブリッジ接続できる方法を紹介します。
ヒント、というか、方法はVirtualBoxのマニュアルにありました。
マニュアルの
6.7 Host Interface Networking and bridging on Linux hosts
です。
マニュアルはここからダウンロードできます

VirtualBox上のゲストOSの設定としては、ネットワークの設定が必要です。
バーチャルマシンの「詳細」-「ネットワーク」から、「割り当て」を変更します。
VBoxネットワーク割り当て


NATは"Network Address Translation"の略で、
ゲストOSがネットワークに出て行くときには、ホストOSのIPアドレス変換されて出て行きます。
外部からみたら、ゲストはホストにしか見えないんです。
ホストOSには、VirtualBox内でのプライベートアドレスが利用されます。

デフォルトだと、ネットワークの設定はNATになっています。
この状態では、外部のネットワークに本当に参加していることにはなりません。

ただし、外部のWindows共有フォルダなどは、
アドレスに"\\マシン名\共有フォルダ名"と直接入力すればアクセス可能です。
マイコンピュータで、マシン名一覧なんかは参照することはできません。

また、割り当てを"内部ネットワーク"でももちろん、外部とやりとりすることはできません。
VirtualBox内の複数のゲストOS達のネットワークとなります。
インターネットへもアクセスできません。

結局、ネットワークの割り当てを何にすればよいのかというと
「ホスト インターフェース」にします。
でも、これだけでは、だめです。
"インターフェース"を作成、設定してあげなければいけないのです。
この作成する"インターフェース"をブリッジ接続にしなければいけないのです。

Linuxに、ブリッジのインターフェースを作り、そのインターフェースに
いままで、ホストOSのeth0等に設定していたIPアドレスなどの
ネットワーク設定をします。
eth0に設定していたネットワーク情報は削除してしまい、
ブリッジインターフェースにブリッジ接続します。
さらに、VirtualBox用のインターフェースを作成し、そのインタフェースを、
ブリッジインタフェースにブリッジ接続するのです。
あとは、VirtualBox用のインタフェースをVirtualBoxのネットワーク設定の"インタフェース"に
設定してあげればよいのです。

さて、ここからが具体的な方法です。
VirtualBoxが正常にインストール完了していることを前提としています。
(VirtualBoxのツールを利用しています)


1. ブリッジユーティリティのインストール

$ sudo apt-get install bridge-utils

2. ブリッジの追加

$ sudo brctl addbr br0

("br0"は任意で決めることができます)

3. eth0をブリッジ接続

$ sudo brctl addif br0 eth0

("eth0"はもともとネットワーク接続に利用しているインターフェースで、
IPアドレス等が設定されているものです。環境に合わせて変更します)

4. VitualBox用のホストインターフェースをブリッジ接続

$ sudo VBoxAddIF vbox0 ユーザ名 br0

("vbox0"はVirtualBoxのホストインタフェースになります。
"vbox0"をVirtualBoxのネットワーク設定で、入力します。(後ほど)
もちろん、名前はなんでもよいです。よくつける名前としては"tap1"とか)

--実行結果--
VirtualBox host networking interface creation utility, version 1.6.2
(C) 2005-2007 Sun Microsystems, Inc.
All rights reserved.

Creating the permanent host networking interface "vbox0" for user ユーザ名.
--実行結果

5. /etc/network/interfaces を編集し、ネットワーク設定を行う

--変更前(例:固定IPアドレス)--
$ more /etc/network/interfaces
auto lo
iface lo inet loopback
address 127.0.0.1
netmask 255.0.0.0


iface eth0 inet static
address 192.168.1.71
netmask 255.255.255.0
gateway 192.168.1.1

auto eth0
--ここまで

--ここから編集後
$ sudo vi interfaces

auto lo
iface lo inet loopback
address 127.0.0.1
netmask 255.0.0.0

iface eth0 inet static
address 0.0.0.0
#address 172.16.1.71
#netmask 255.255.0.0
#gateway 172.16.0.1

auto eth0

auto br0
iface br0 inet static
address 192.168.1.71
netmask 255.255.255.0
gateway 192.168.1.1
bridge_ports eth0
--ここまで

6. vbox0をトンネリングさせる

$ sudo VBoxTunctl -t vbox0 -u ユーザ名

Set 'vbox0' persistent and owned by uid 1000

7. ネットワークインターフェースの再起動(設定を反映させる)

$ sudo /etc/init.d/networking restart

* Reconfiguring network interfaces...
Don't seem to be have all the variables for eth0/inet.
Failed to bring up eth0.
device br0 already exists; can't create bridge with the same name

Waiting for br0 to get ready (MAXWAIT is 32 seconds).
[ OK ]

8. ネットワーク設定の確認

$ ifconfig -a

--実行結果
br0 Link encap:イーサネット ハードウェアアドレス 00:19:b9:XX:XX:XX
inetアドレス:192.168.1.71 ブロードキャスト:192.168.1.255 マスク:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 メトリック:1
RXパケット:0 エラー:0 損失:0 オーバラン:0 フレーム:0
TXパケット:17 エラー:0 損失:0 オーバラン:0 キャリア:0
衝突(Collisions):0 TXキュー長:0
RXバイト:0 (0.0 B) TXバイト:2497 (2.4 KB)

eth0 Link encap:イーサネット ハードウェアアドレス 00:19:b9:XX:XX:XX
inetアドレス:192.168.1.71 ブロードキャスト:192.168.1.255 マスク:255.255.255.0
BROADCAST MULTICAST MTU:1500 メトリック:1
RXパケット:20853 エラー:0 損失:0 オーバラン:0 フレーム:0
TXパケット:2508 エラー:0 損失:0 オーバラン:0 キャリア:0
衝突(Collisions):0 TXキュー長:1000
RXバイト:5221159 (4.9 MB) TXバイト:417113 (407.3 KB)
割り込み:22

lo Link encap:ローカルループバック
inetアドレス:127.0.0.1 マスク:255.0.0.0
UP LOOPBACK RUNNING MTU:16436 メトリック:1
RXパケット:56 エラー:0 損失:0 オーバラン:0 フレーム:0
TXパケット:56 エラー:0 損失:0 オーバラン:0 キャリア:0
衝突(Collisions):0 TXキュー長:0
RXバイト:3484 (3.4 KB) TXバイト:3484 (3.4 KB)

vbox0 Link encap:イーサネット ハードウェアアドレス 00:ff:c6:a8:4e:b2
UP BROADCAST RUNNING MULTICAST MTU:1500 メトリック:1
RXパケット:0 エラー:0 損失:0 オーバラン:0 フレーム:0
TXパケット:0 エラー:0 損失:17 オーバラン:0 キャリア:0
衝突(Collisions):0 TXキュー長:500
RXバイト:0 (0.0 B) TXバイト:0 (0.0 B)
--ここまで


あれ?eth0のIPアドレスがそのまま残ってる・・・・
ま、いっか。以下のコマンドを実行

$ sudo ifconfig eth0 inet 0.0.0.0

再度、確認

$ ifconfig -a
--中略
eth0 Link encap:イーサネット ハードウェアアドレス 00:19:b9:75:14:42
UP BROADCAST RUNNING MULTICAST MTU:1500 メトリック:1
RXパケット:20954 エラー:0 損失:0 オーバラン:0 フレーム:0
TXパケット:2508 エラー:0 損失:0 オーバラン:0 キャリア:0
衝突(Collisions):0 TXキュー長:1000
RXバイト:5231918 (4.9 MB) TXバイト:417113 (407.3 KB)
割り込み:22
--ここまで

9. VirtualBoxの仮想マシンの設定
 ネットワークの設定において、
 「割り当て」を「ホスト インタフェース」に。
 そうすると「ホスト インタフェース」の入力欄が有効になるので、
 「インタフェース名」に"vbox1"を入力する


以上で、完成です。
ゲストOSからホストOSと同じネットワークに参加することができます。

最後に、注意点。
ゲストOSは、固有のIPアドレスを必要とします。
ホストOSのIPアドレスと同じにはできません。
ゲストOSのネットワーク設定に、ホストOSのブリッジに設定したIPアドレス以外の、
同一ネットワークのIPアドレスを設定します。
(今回の設定の場合の例:
 ホストOSのブリッジのIPアドレス=192.168.1.71/24
ゲストOSのネットワークインタフェースのIPアドレス=192.168.1.90/24 )

不明点などその他、コメントなどもいただけると、幸いです。

スポンサーサイト
コメント
No title
こんにちは。
今までdebianで1.6.6-dfsg-3を使っていました。
上記の方法を参考にGuestOSのWindows XP上で通信出来て
いました。

しかし、 2.1.2-dfsg-2にupdateしたら、通信出来なくなってしまい
ました。
こちらのversionではVBoxTunctlやVBoxAddIF等のコマンドが
無くなっているようです。

2.1.xではどうされていますでしょうか?
2009/02/24(火) 14:00 | URL | wa #SrC47hCA[ 編集]
Re: No title
こんにちは。

> しかし、 2.1.2-dfsg-2にupdateしたら、通信出来なくなってしまい
> ました。
> こちらのversionではVBoxTunctlやVBoxAddIF等のコマンドが
> 無くなっているようです。

そうなんですよね。2.1.xからブリッジ接続が、超簡単になり、
たくさんの作業がいらなくなりました。

私の別の記事
http://superlinux.blog50.fc2.com/blog-entry-59.html
の方に、そのあたりのことを簡単に書いてありますので、
もし、よろしかったら、ご参照ください。

簡単に説明しますと、
VirtualBoxのネットワークの設定にて、
割当てを「ホスト インタフェース」にして、
その後、下のウィンドウの「ホスト インタフェース」から、
ブリッジさせたい、ホストインタフェースを選択するだけで、OKです。

そのため、今まで、ブリッジ接続のために、
ブリッジ用インタフェースなどを作成している場合、
それらを削除、設定し直しをしなければいけなくなりました。

ある意味、元に戻すのが面倒くさいですかね。

2009/02/25(水) 09:55 | URL | クマぷ~ #-[ 編集]
できました
コメントありがとうございました。
下記の方法で出来ました。

済みません。別の記事に書いてあったのですね。
お手数をかけて済みません。
2009/03/02(月) 16:41 | URL | wa #QPsy8DDE[ 編集]
コメントの投稿
管理者にだけ表示を許可する
プロフィール

クマぷ~

Author:クマぷ~
Linuxに遊ばれてますか?

FC2カウンター
アドセンス
最近の記事
最近のコメント
月別アーカイブ
カテゴリー
リンク
このブログをリンクに追加する
最近のトラックバック
FC2ブログランキング
押していただけると励みになります

FC2Blog Ranking

カレンダー
08 | 2017/09 | 10
- - - - - 1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
RSSフィード
ブロとも申請フォーム

この人とブロともになる

QRコード
QRコード
ブログ内検索
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。