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 を追記。

RedHatlibvirtの文書読んだだけだと共有専用のインターフェースを用意しないとホストは外からつながらなくなるんじゃないかと思ってたんだけど(だから拡張できるマザーボード買ってきたのに)、ホストのsshdはこれでちゃんとbr0で待ち受けてくれるようです。内部どうなってるかよく分かってないけど

ゲスト側の設定

その1
virsh edit して、ネットワークを以下のように書き換える

    
      
      
      
      

その2

virt-install に以下のオプションを加える

 --network bridge=br0 

その3

virt-manager の新規ゲスト作成画面でネットワークの設定をブリッジbr0 にする


どれかやっとけば、DHCPで自宅内ネットワークのIPがもらえました。結構簡単ですな。
前はvirt-manager が作ったホストオンリーネットワークのアドレスしかもらえなくてWebサービスとか作るのめんどくさかったんですが、これで夢がひろがりんぐ