専用ルータと同等の機能を備えるLinuxベースのソフトウェアルーター「Vyatta」を使う 3ページ

Vyattaのダウンロードとインストール

 Vyattaはオープンソースで開発されており、Vyatta.orgのダウンロードページから無償でダウンロードできる。VyattaはISOイメージ形式で配布されており、32ビット版のLive CDおよびVirtualization版、そして64ビット版の3種類が提供されている。今回は仮想マシン上にインストールを行うため、「 Virtualization ISO」版をダウンロードして利用する。ダウンロードしたISOファイルは、仮想マシンの実行を行う「qemu」ユーザーがアクセスできるようそのパーミッションやディレクトリのパーミッションを設定しておく。たとえば今回は/var/isoというディレクトリを作成し、そこにダウンロードしたISOファイルを格納している。

# mkdir /var/iso
# mv vyatta-livecd-virt_VC6.5R1_i386.iso /var/iso
# chmod 644 /var/iso/vyatta-livecd-virt_VC6.5R1_i386.iso

 Vyattaの仮想マシンへのインストールは、仮想マシンの新規作成とインストールを同時に実行するvirt-installコマンドを使用する。virt-installコマンドでは、作成する仮想マシンに割り当てるメモリ容量や仮想CPU数、割り当てるディスクの容量などを事前に決めておく必要がある。Vyattaの実行に必要な基本的なハードウェア要件についてはVyattaのWebサイト内に記載されているが、簡単にまとめると表2のようになっている。

表2 Vyattaの実行に必要な基本的なハードウェア要件
構成例メモリストレージCPUコア数
NIC×1~4、最大100ルーティングルール、基本的なファイアウォール512MB2GB1コア
NIC×2~6、最大10000ルーティングルール、ファイアウォールおよびNAT1GB2GB以上1~2コア
NIC×6~10、インターネット規模のルーティング、ファイアウォールおよびNAT、VPN、IPS2GB2GB以上2~4コア
10以上のNIC、複数のBGPピアを使用するルーティング、複雑なファイアウォールおよびNAT、VPN、IPS4GB4GB以上4~8コア

 今回は最小構成であるメモリ512MB、ストレージ2GB、CPU1コアという構成で仮想マシンを作成することとする。このようなスペックで仮想マシンを作成して指定したISOイメージから仮想マシンをブートするには、次のようにvirt-installコマンドを実行する。

#  virt-install \
> --name=Vyatta01 \
> --disk path=/var/lib/libvirt/images/vyatta65.dsk,size=2 \
> --vcpus=1 \
> --ram=512 \
> --cdrom=/var/iso/vyatta-livecd-virt_VC6.5R1_i386.iso \
> --network bridge=br0 \
> --os-type=linux \
> --os-variant=debiansqueeze

 ここで指定しているオプションの意味とその値については表3のとおりだ。

表3 virt-installコマンドで指定したオプションとその値
オプション名説明指定した値
–name作成する仮想マシンの名称Vyatta01
–disk使用する仮想ストレージの作成先およびその容量(GB単位)の指定path=/var/lib/libvirt/images/vyatta65.dsk,size=2
–vcpus割り当てる仮想CPU数1
–ram割り当てるメモリ512
–cdromブートに使用するISOイメージ/var/iso/vyatta-livecd-virt_VC6.5R1_i386.iso
–network仮想NICの接続方式bridge=br0
–os-typeゲストOSの種別linux
–os-variantゲストOSのバージョンdebiansqueeze

 なお、–diskオプションではpathオプションで作成するディスクイメージのパスを指定し、さらにsizeオプションでそのサイズをGB単位で指定する。また、–networkオプションで「bridge=br0」と指定することでブリッジ接続を使用した仮想NICが作成され、その仮想NICがbr0ブリッジデバイスに接続されるようになる。そのほか、今回使用しているVyatta 6.5はDebian GNU/Linux 6.0(Squeeze)をベースにしているため、–os-variantには「debiansqueeze」を指定している。

 virt-installコマンドによる仮想マシンの作成とCD-ROMからのブートに成功すると、次のように作成された仮想マシンのコンソールに接続された状態となり、ブート時のメッセージが表示されたあとログインプロンプトが表示される。

Connected to domain Vyatta01
Escape character is ^]

Booting from DVD/CD...

ISOLINUX 4.02 debian-20101014 ETCD Copyright (C) 1994-2010 H. Peter Anvin et al
ISOLINUX 4.02 debian-20101014  Copyright (C) 1994-2010 H. Peter Anvin et al
P
Prreessss  <F1>control and F then 1  for  help,  or  ENTER  to boot:

Welcome to Vyatta - vyatta ttyS0

vyatta login:

 ログインプロンプトが表示されたら、ユーザー名「vyatta」、パスワード「vyatta」でVyattaのシステムにログインし、installコマンドでインストールを行う。

 なお、Vyattaのインストール方法としては「system」および「image」の2種類が提供されている。前者は一般的なLinuxと同様、ハードディスクにファイルシステムを作成して必要なファイルをインストールするものだ。いっぽう後者はVyattaの構成ファイルをディスクイメージの状態でHDD内にインストールし、unionfsを使ってそのディスクイメージを/(ルート)にマウントするという構成になる。unionfsはリードオンリーのディレクトリを別の書き込み可能なディレクトリにマウントすることで、リードオンリーのディレクトリ中に含まれるファイルやディレクトリを仮想的に変更可能なように見せる機構だ。imageインストールを利用した場合、複数のディスクイメージをHDD内にインストールして複数環境を同居させられる点や、初期状態に簡単に戻せる点などがメリットとなる。

 どちらの場合もインストール作業やVyattaの使い方に違いは無いが、今回はストレージを容易に差し替えられる仮想マシン上にVyattaをインストールということで、systemインストールを利用することにする。systemインストールを実行するには、Vyattaへのログインを行った後に以下のように「system」オプション付きでinstallコマンドを実行する。するとインストーラが起動し、以下のように対話的にインストールの際の設定が尋ねられる。その際に[]内で表示されているのがデフォルトの設定値で、何も入力せずにEnterキーを押すとその値が使用される。

$ install system
Welcome to the Vyatta install program.  This script
will walk you through the process of installing the
Vyatta image to a local hard drive.

Would you like to continue? (Yes/No) [Yes]:
Probing drives: OK
Looking for pre-existing RAID groups...none found.
The Vyatta image will require a minimum 1000MB root.
Would you like me to try to partition a drive automatically
or would you rather partition it manually with parted?  If
you have already setup your partitions, you may skip this step.

Partition (Auto/Union/Parted/Skip) [Auto]:

I found the following drives on your system:
 vda    2147MB

 通常はすべてデフォルトの設定値で問題無いが、ディスクの初期化を確認するところだけはデフォルトが「No」になっているので気を付けたい。

Install the image on? [vda]:

This will destroy all data on /dev/vda.
Continue? (Yes/No) [No]: Yes

How big of a root partition should I create? (1000MB - 2147MB) [2147]MB:

Creating a new disklabel on vda
parted /dev/vda mklabel msdos
Creating filesystem on /dev/vda1: OK
Mounting /dev/vda1
Copying system files to /dev/vda1:
 97% [=================================================> ]
OK
I found the following configuration files
/opt/vyatta/etc/config/config.boot
Which one should I copy to vda? [/opt/vyatta/etc/config/config.boot]:

 また、インストール後に使用できるデフォルトのユーザーとしては「vyatta」が用意される。途中でこのユーザー用に設定するパスワードが尋ねられるので、適切なものを入力しておこう。

Enter password for administrator account
Enter password for user 'vyatta':
Retype password for user 'vyatta':
I need to install the GRUB boot loader.
I found the following drives on your system:
 vda    2147MB


Which drive should GRUB modify the boot partition on? [vda]:

Setting up grub: OK
Done!
$

 インストールが完了すると再度プロンプトが表示されるので、poweroffコマンドを実行してシャットダウンを行おう。

$ poweroff

 以上でインストール作業は完了だ。