FreeBSD Daily Topics

2012年1月10日VirtualBox上のFreeBSD 8.2/9.0-RELEASEで準仮想化ネットワークを有効にする方法

virtualization

How to enable the virtio-net of the VirtualBox and FreeBSD 8.2/9.0-RELEASE guest

VirtIOカーネルモジュールはFreeBSD 10-CURRENTに同梱されていますが、Ports Collectionからカーネルモジュールをインストールすることで8.2-RELEASEや9.0-RELEASEでも利用することができます。まず、ホストのVirtualBoxなどで準仮想化ネットワークの機能を有効にします。ネットワークの設定において対象アダプタタイプとして準仮想化ネットワークを選択するなどして有効にします。

図1 準仮想化ネットワークを使用するように仮想環境を設定 - VirtualBox 4.1.8
図1 準仮想化ネットワークを使用するように仮想環境を設定 - VirtualBox 4.1.8

FreeBSD 9.0-RELEASE(そろそろリリースされます)またはFreeBSD 8.2-RELEASEゲストを起動して、Ports CollectionからVirtIOカーネルモジュール(emulators/virtio-kmod)をインストールします。

図2 FreeBSD 8.2-RELEASEを仮想環境で起動したところ
図2 FreeBSD 8.2-RELEASEを仮想環境で起動したところ
Ports CollectionからVirtIOカーネルモジュール(emulators/virtio-kmod)をインストール
cd /usr/ports/emulators/virtio-kmod/
make install clean

システム起動時にカーネルモジュールが読み込まれるように/boot/loader.confに次の設定を追加します。

/boot/loader.confに追加するカーネルモジュール読み込み設定
virtio_load="YES"
virtio_pci_load="YES"
if_vtnet_load="YES"

システムを再起動するとvtnet0というネットワークインターフェースが生えてきますので、あらかじめ次のように/etc/rc.confに設定を追加してネットワークにつながるようにしておきます。

準仮想ネットワーク用のネットワーク設定を/etc/rc.confに追加
ifconfig_vtnet0="DHCP"

システムを再起動すると次のように準仮想化ネットワークインターフェースが認識されます。

図3 準仮想化ネットワークが使用できるようになったFreeBSD 8.2-RELEASEゲスト
図3 準仮想化ネットワークが使用できるようになったFreeBSD 8.2-RELEASEゲスト
ifconfigの実行結果
vtnet0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=c03ba<TXCSUM,VLAN_MTU,VLAN_HWTAGGING,JUMBO_MTU,VLAN_HWCSUM,TSO4,TSO6,VLAN_HWTSO,LINKSTATE>
        ether 08:00:27:3f:52:8d
        inet 192.168.1.242 netmask 0xffffff00 broadcast 192.168.1.255
        media: Ethernet 1000baseT <full-duplex>
        status: active
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
        options=3<RXCSUM,TXCSUM>
        inet6 fe80::1%lo0 prefixlen 64 scopeid 0x2 
        inet6 ::1 prefixlen 128 
        inet 127.0.0.1 netmask 0xff000000 
        nd6 options=3<PERFORMNUD,ACCEPT_RTADV>

準仮想化ネットワークが利用できると通信速度がだいぶ変わってきます。FreeBSD 8.2-RELEASEや9.0-RELEASEを仮想環境で使用している場合には試してみる価値はあるかと思います。

おすすめ記事

記事・ニュース一覧