kvmでブリッジ接続の仕方

作成した日:忘れた
追記した日:2008/12/03

KVMでブリッジ接続をする

ブリッジがしたくて調べたことを書きます。
自分用メモです。
自分はubuntu,debianなどで作業をしています。

ブリッジとは

googleとかで調べてください。


はじめに

こちらとかこちらを参考にしました。
わかるかたはこちらをどうぞ。
kvmのインストールや、起動用のディスクイメージの作成はここでは省略します。

ブリッジインターフェイスの作成とかいろいろ

まずbridge-utilsをインストールします。
sudo aptitude install bridge-utils
次にネットワークの設定ファイルを書き換えます
/etc/network/interfaces
を以下の様にします。
アドレスの数字は適宜読み替えてください。
#below for kvm bridge
auto lo
iface lo inet loopback
auto br0
iface br0 inet static
address 192.168.83.99
netmask 255.255.255.0
gateway 192.168.83.243
bridge_ports eth0
bridge_stp off
bridge_maxwait 1
#pre-up /sbin/ifconfig eth0 promisc up
#pre-up /usr/sbin/brctl addbr br0
#post-up /usr/sbin/brctl addif br0 eth0
#pre-down /sbin/ifconfig eth0 down
#post-down /sbin/ifconfig br0 down
#post-down /usr/sbin/brctl delbr br0

 
#below default settting
#auto lo eth0
#iface lo inet loopback
#
#
auto eth0
iface eth0 inet dhcp
 
最後の
auto eth0
とかは実NICの設定です。
これを書かないと、立ち上げた仮想マシンはネットワークに繋がりますが、実機が繋がらなくなります。
もちろん静的にアドレスを取ってきてもよいです。

kvmの起動スクリプト

次にqemuの起動スクリプトを作ります。ここで作ったファイルをkvmの起動時に実行してもらいます。
#!/bin/sh
/sbin/ifconfig $1 0.0.0.0 promisc up
/usr/sbin/brctl addif br0 $1
sleep 2
 
このようにします。

起動してみる

次のようにkvmを起動します。
sudo kvm -hda ./hoge.img -m 256 -net nic,model=pcnet -net tap,script=/etc/qemu-ifup  -localtime
上で作ったqemu-ifupというスクリプトを引数に与えています。


                  • 追記----------------

あたらしいマシンにkvmをセットアップしたらいろいろうまくいかなかったので追記。

始めに

NICが二枚あるとして、それぞれeth0,eth1だとします。
ech1をブリッジにつなぎ、仮想計算機の通信に使います。
eth0はホストの通信に使います。

つぎに

/*bridge.sh*/
#!/bin/sh

sudo brctl addbr br0
sudo brctl addif br0 eth1
sudo ifconfig br0 up
sudo ifconfig eth1 0.0.0.0 up

/*/etc/qemu-ifup*/
#!bin/sh
sudo /sbin/ifconfig $1 0.0.0.0 promisc up
sudo /usr/sbin/brctl addif br0 $1
sleep 1

↑の二つの内容のスクリプトを用意します。
%sh bridge.sh
%sudo tunctl -b -u あなたのユーザ名
tap0(適当な数字が返って来る)
%sh /etc/qemu-ifup tap0(↑で帰ってきたtap)
ここまで実行したら、kvmを実行します。
tapモードで実行すると、/etc/kvm/kvm-ifupとかが勝手に実行されるようなので、実行しないようにします。
kvm (途中は省略) -net tap,ifname=tap0(↑で返ってきたtap),script=no


これでうまくいきました。
最終更新:2008年12月11日 08:58
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。