Arch Linux でlibvirt サーバを作る
要求は以下
- eth0 をホストとゲストで共有する
- 外部からホストにもssh ログイン出来るようにする。
NIC共有の設定
$ more /etc/network.d/br0 INTERFACE="br0" CONNECTION="bridge" DESCRIPTION="bridge br0 static" BRIDGE_INTERFACES="eth0" IP='static' ADDR='192.168.1.6' GATEWAY='192.168.1.1' DNS='192.168.1.1'
$ more conf.d/netcfg NETWORKS=(br0) ## Specify the name of your wired interface for net-auto-wired WIRED_INTERFACE="eth0" ## Specify the name of your wireless interface for net-auto-wireless WIRELESS_INTERFACE="wlan0"
多分これで起動時にbr0 とeth0 がつながって、br0 に192.168.1.6が割り当てられる筈。
駄目なら /etc/rc.conf のDAEMON配列に net-profiles を追記。
RedHatのlibvirtの文書読んだだけだと共有専用のインターフェースを用意しないとホストは外からつながらなくなるんじゃないかと思ってたんだけど(だから拡張できるマザーボード買ってきたのに)、ホストのsshdはこれでちゃんとbr0で待ち受けてくれるようです。内部どうなってるかよく分かってないけど
ゲスト側の設定
その1
virsh edit
その2
virt-install に以下のオプションを加える
--network bridge=br0
その3
virt-manager の新規ゲスト作成画面でネットワークの設定をブリッジbr0 にする
どれかやっとけば、DHCPで自宅内ネットワークのIPがもらえました。結構簡単ですな。
前はvirt-manager が作ったホストオンリーネットワークのアドレスしかもらえなくてWebサービスとか作るのめんどくさかったんですが、これで夢がひろがりんぐ