PR

 今回は,LinuxのIPv6環境を構築します。カーネルを再構築し,基本的なIPv6アプリケーションを導入します。具体的には,「USAGI」と呼ばれるLinux用のIPv6キットをインストールします。

LinuxとIPv6

 Linuxは,コンピュータの基本ソフトウエアであるOS(オペレーティング・システム)の一種です。オフィスや家庭で広く利用されているWindows系OSは有償で販売されていますが,Linuxは基本的に無償で配布されています。オンラインあるいは雑誌付録のCD-ROMなどから入手できます。

 今回は,このLinuxをIPv6環境にするための手順を解説します。 Linuxの基本操作やカーネル構築の知識についてはここでは紹介しません。必要に応じて市販の書籍や雑誌,インターネット上の解説などを参照してください。

LinuxのIPv6対応

 Linuxという言葉は,実はLinuxのカーネル(OSの一番重要な部分)を指しています。いくつかのベンダーは,このカーネルにいろいろなプログラムを組み合わせたソフトウエアのセットを販売しています。例えば,「Debian」,「RedHat」,「Vine」などがあります。これらの配布セットは,一般に「ディストリビューション」と呼ばれています。

 Linuxカーネルは早くからIPv6をサポートしてきました。安定版では,カーネル2.2系列からサポートしています。しかし多くのディストリビューションでは,付属するカーネルやアプリケーションの多くがIPv6対応ではありません。利用できるアプリケーションが用意されていなかったので,カーネルをIPv6対応にしても意味はありませんでした。

 こうしたことからLinuxユーザーにはIPv6ユーザーがほとんどいない状況が続きました。ソフトウエアのIPv6化やカーネルの IPv6サポート機能の強化も遅れ気味でした。このような状況を打開するために,国内のLinuxユーザーが協力して作り上げたIPv6ソフトウエアがUSAGIです。

USAGIの登場

 USAGIプロジェクトは,IPv6とLinuxを愛する国内のソフトウエア技術者たちが「LinuxのIPv6環境向上」を目指して結成したプロジェクトです。ちなみにUSAGIとは「UniverSAl playGround for Ipv6」の略称だそうです(ちょっと強引な気もしますが・・・)。このサイトの用語解説(v6words)にも登場していますので,興味のある方は「USAGI」や「KAME」(BSD向けのIPv6ソフト開発プロジェクト)を参考にしてください。

 USAGIは,USAGIプロジェクトが配布しているIPv6キットの名称です。 USAGIを使うメリットとしては,
●カーネルのIPv6機能の向上
●よく使われる複数のIPv6ソフトウエアを単一パッケージで提供
があげられます。USAGIの成果は,将来的に本家LinuxやRedHatなどのディストリビューションに反映されることになるでしょう。

 USAGIが登場する前,LinuxカーネルのIPv6ソフトは標準から外れた仕様となっていました。また利用する際には,telnetなどの個々のプログラムのソース・コードごとにパッチをあててコンパイルしなければなりませんでした。 BSDユーザーからは,いつも冷たい目で見られていたものです。しかし今は違います。USAGIを手持ちのLinuxにインストールするだけで,最新標準の仕様を満たしたIPv6環境をLinuxに組み込むことができます。

必要なファイルのダウンロードとインストール

 まずはLinuxがインストールされているコンピュータを準備します。Linuxのインストール方法はここでは割愛します。ディストリビューションの種類は基本的に何でも構いません。RedHatでもDebianでもKondaraでもOKです。ただ,できるだけ新しいものを使うようにしてください。なお本記事では,Kondara-2.0を使いました。

 次にUSAGIのソフトウエアをダウンロードします。Webブラウザなどから

ftp://ftp.linux-ipv6.org/pub/usagi/snap/kit/

にアクセスしてみてください。もちろんftpコマンドでもOKです。すると,

usagi-[日付]-[カーネルのバージョン].tar.bz2

といった形式の名前のファイルがたくさん表示されます。自分が利用しているカーネルのバージョンと同じもののうち,できるだけ日付の新しいものを選んでダウンロードしてください。なお自分が利用しているカーネルのバージョンは,ktermからuname -rと入力すればわかります。最近のLinuxはほとんど2.4系列なのでlinux24をダウンロードすればいいでしょう。私の場合は2.4.9だったので,この時最新だった

usagi-20010903-linux24.tar.bz2

をダウンロードしました。

 保存先はどこでも構いません。ただ,結構大きなファイルなので,ハードディスクの残り容量には注意してください。残り容量はdfコマンドで調べることができます。また,書き込み権限のないディレクトリにはファイルを保存できません。

 私の場合は,あとから場所を忘れないように,ダウンロードしたファイルを /usr/src ディレクトリへ移動しておきました。この作業はrootになって行う必要があります。例を以下に示します。太字部分が自分が入力する部分です。

ファイルの展開とインストールの準備

 次にファイルを展開します。ここではファイルが /usr/srcにあるとします。まずktermなどを開き,ファイルを保存したディレクトリに移動します。そこで,ファイルを展開します。この時,作業はrootになってから行ってください。以下に具体的な手順を示します。太字が自分で入力する部分です。

 %や#はプロンプトなので,この記号を入力する必要はありません。 suコマンドでrootになった後,cdコマンドで保存先に移動(例では/usr/src)し,tarコマンドでファイルを展開します。

 ファイルが展開されると,展開を行ったディレクトリに usagiという名前のフォルダができます。展開終了後はこのディレクトリに移動してから作業します。引き続き以下のように入力します。

 次にcdコマンドで展開してできたディレクトリに移動します。makeコマンドを利用してインストールの下準備をします。makeコマンドを入力すると,何やら膨大なメッセージが出ますが無視して構いません。

 makeコマンドの引数に出てくるlinux24はカーネルのバージョンです。ダウンロードしたファイルがusagi-[日付]-linux22.tar.bz2だった場合は,ここをlinux22としてください。今後コマンドの引数としてlinux24が出てきた場合にも同様に読み替えてください。

IPv6をサポートしたカーネルの作成

 インストールの準備が済んだら,今度はカーネルの構築を行います。カーネルソースのあるディレクトリに移動して,どのようなカーネルにするのかを決定します。

カーネルの再構築するときは,十分に注意してください。これまでにカーネル再構築の経験がない場合は,JFなどのLinuxに関する文書をよく読んでから挑戦するのがいいでしょう。間違って操作すると,周辺機器が使えなくなることがあります。また最悪の場合は,Linuxが起動しなくなります。

 カーネルの構築は,kernel/linux24 ディレクトリで行います。作業手順を以下に示します。例ではmake menuconfigを用いていますが,make xconfigmake configでも構いません。

 make menuconfigを使うと,しばらくするとカーネルの設定メニューに入ります。NetworkやBlockDeviceなど、分野ごとに細かな設定項目が用意されています。ここでのキー操作は,矢印キーの上下(↑↓)で選択項目の移動,Enterキーで項目に入る,空白キーで項目の選択,Escキーでひとつ上のメニューに戻る--となっています。

 まず最初に,"Code maturity level options --->"を選んでEnterキーを押します。すると,そのメニューに入ります。

 ここで"Prompt for development and/or incomplete code/drivers"を選択し,空白キーを押します。空白キーを押すたびに左側の[ ]の部分にチェック(アスタリスク)がついたり([*])消えたり([ ])します。チェックが入っている状態で,Escキーを押して最初のメニューに戻ってください。このチェックが入っていないと,IPv6のような開発途上の機能が使えなくなります。必ずここにチェックを入れてください。

 最初の画面に戻ったら,今度は"Networking Options --->"のメニューを選択し,Enterキーを押してください。Networking Optionsの一覧が出てきますが,この下のほうにある"The IPv6 protocol (EXPERIMENTAL)"を選択します。ここで先ほどと同じように空白キーを押してください。

 前回と違って,チェックが < > → <*> → と変化していきます。<*>は「この機能をカーネルに組み込む」という意味,は「この機能はカーネルに組み込まないが,必要に応じて呼び出せるように別のファイル(モジュール)にしておく」という意味です。詳しくはLinuxの入門書などを参考にしてください。今回は設定を間単にするために,でなく,<*>にしました。

 IPv6を選択して有効にすると,IPv6に関する設定項目が増えます。増えた設定項目のすべてにチェックを入れて構いません。

 このあとは通常のカーネル再構築と同じです。自分の環境に合わせてメニューから設定を行ってください。

カーネルのコンパイルとインストール

 カーネルの設定が終わったら次はコンパイルです。以下のようにコンパイルしてください。

 膨大なメッセージが表示されますが,最後にエラーメッセージが出てなければ問題ありません。エラーが途中で出た場合,これまでの手順を見直してから再度挑戦してみてください。

LInux LOader (LILO)の設定

 多くのLinuxでは,ブートローダ(Linuxを起動するためのアプリケーション)として LILOと呼ばれるものを使っています(起動時にLILOと表示するあれです)。新しく作成したカーネルを起動時に読み込むための設定が必要になってきます。ただしディストリビューションによっては,これからの作業がいらないかもしれません。

 作業内容は,LILO設定ファイル(/etc/lilo.conf)の書き換えと liloコマンドの実行によるLILOの導入です。この作業は最初に1度だけ必要となります。2度目以降のインストールでは必要ありません。

 LILO以外のブートローダを用いている場合は,LILOの設定を参考にしてください

 以下に,LILOの設定ファイルである/etc/lilo.confの設定例を示します。この例は,私のKondara MNU Linuxのものですが,変更後のLILOを参照して自分の環境にあったlilo.confをviエディタやEmacsで書いてください。また/etc/lilo.confを修正するときは,rootで作業してください。

 imageの項目をひとつ追加するだけです。/etc/lilo.confの書き換えが済んだら,最後にLILOの導入をします。

 liloと打ち込んだときにエラーが出たら,lilo.confが間違っています。もう一度見直してください。liloの設定が正しくない状態で再起動したり電源をOFFにすると,Linuxが起動しなくなります。注意してください。エラーが出ずに,"Added ・・・"と表示されたらOKです。

IPv6用コマンド群のインストール

 最後に,USAGIに付属してくるIPv6アプリケーションをインストールします。最初にダウンロードしたusagiのファイルを/usr/srcで展開している場合は,以下のようになります。

 これで完了です。アプリケーションは,/usr/local/v6/bin と /usr/local/v6/sbin にインストールされました。このあとLinuxを再起動すると,最新のIPv6環境が構築されます。

 makeの途中でエラーが出て,インストールできなかったときは,おそらくlibcのバージョンが古いと思われます。libcのバージョンをあげてみてください。

 私の場合(Kondara-2.0)もエラーが出ました。そこで最新のglibcのソース・ファイルからat.hというファイルを探し出し,それを/usr/include/netatalk にコピーして解決しました。

 今回はLinuxでIPv6を利用するためにUSAGIのインストールを解説しました。次回はUSAGIに付属するアプリケーションの基本的な使い方について解説します。