専用ルータと同等の機能を備える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のようになっている。
構成例 | メモリ | ストレージ | CPUコア数 |
---|---|---|---|
NIC×1~4、最大100ルーティングルール、基本的なファイアウォール | 512MB | 2GB | 1コア |
NIC×2~6、最大10000ルーティングルール、ファイアウォールおよびNAT | 1GB | 2GB以上 | 1~2コア |
NIC×6~10、インターネット規模のルーティング、ファイアウォールおよびNAT、VPN、IPS | 2GB | 2GB以上 | 2~4コア |
10以上のNIC、複数のBGPピアを使用するルーティング、複雑なファイアウォールおよびNAT、VPN、IPS | 4GB | 4GB以上 | 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のとおりだ。
オプション名 | 説明 | 指定した値 |
---|---|---|
–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
以上でインストール作業は完了だ。