ネットワーク用のツールを使ったりネットワーク用の設定をする前にカーネル 自体にネットワーク機能が組みこまれているか確認する必要があります。一番 確実な方法は、自分自身で必要なオプションを指定してカーネルを再構築する ことでしょう。
カーネルのソースコードは正しく展開され、必要なパッチも既にあててあるも
のとの前提で話を進めます。その場合、必要なことは /usr/src/linux/drivers/net/CONFIG
ファイルを編集するだけです。
修正すべき点はファイル自体にコメントとして書きこんであるので、このファ
イルを見れば何を設定すべきかはわかるでしょう。通常、デフォルトの設定が
そのまま使えて、修正すべき点はごくわずかのはずです。私の場合、何も変更
する必要ありませんでした。このファイルは使おうとしているイーサネットカー
ドがあまり一般的なものでは無い場合やイーサネットドライバで正しく認識さ
れない場合にのみ必要となります。このファイルを修正すれば、いくつかのイー
サネットカードを直接認識させることが可能です。例えば、WD-8013 によく似
ているが、ドライバをそのままでは使えない場合、このファイルを修正して共
有メモリのアドレスを変更し、ドライバに正しく認識させてやる必要がありま
す。このファイルの詳細や適用可能なイーサネットカードについては
Ethernet-HOWTO に詳しく説明してあります。また、この CONFIG
ファイルでは PLIP に関するパラメータを指定することも可能ですが、特に遅
いマシン以外ではデフォルトの設定で大丈夫なはずです。
必要に応じて CONFIG ファイルを修正したらカーネルの再構築に移ります。ま
ず、/usr/src/linux
にある Makefile を修正して VGA を適切なも
のに設定し、カーネルの設定用のプログラムを起動します。
# cd /usr/src/linux
# make config
こうすれば、プログラムが必要な設定を尋ねてきます。ネットワークに関係す
る設定は 4 つ、 General Setup
、Networking option
、
Network device support
、Filesystems
の部分です。中で
も一番大変なのは Network device support
の部分でしょう。こ
の部分では実際に利用するデバイス(ネットワークカード)を指定する必要があ
ります。その他の部分ではたいていデフォルトの設定のままで大丈夫なはずで
す。以下に実際の方法を述べます。
*
* General setup
*
...
...
Networking support (CONFIG_NET) [y] y
...
...
General setup
の Networking support (CONFIG_NET)
の
部分ではネットワークを使うかどうかを指定します。これには "yes" と答え
なければなりません。
*
* Networking options
*
TCP/IP networking (CONFIG_INET) [y]
IP forwarding/gatewaying (CONFIG_IP_FORWARD) [n]
IP multicasting (CONFIG_IP_MULTICAST) [n]
IP firewalling (CONFIG_IP_FIREWALL) [n]
IP accounting (CONFIG_IP_ACCT) [n]
*
* (it is safe to leave these untouched)
*
PC/TCP compatibility mode (CONFIG_INET_PCTCP) [n]
Reverse ARP (CONFIG_INET_RARP) [n]
Assume subnets are local (CONFIG_INET_SNARL) [y]
Disable NAGLE algorithm (normally enabled) (CONFIG_TCP_NAGLE_OFF) [n]
The IPX protocol (CONFIG_IPX) [n]
*
Networking options
の後半ではネットワーク上のそれぞれの機能
を使うか否かを設定します。たいていデフォルトのままで大丈夫ですが、もし
何か変更したい場合は、それぞれの質問に対して適切な設定を行ってください。
表示される質問の意味については後で簡単に触れますので、興味があればご覧
ください。
*
*
* Network device support
*
Network device support? (CONFIG_NETDEVICES) [y]
Dummy net driver support (CONFIG_DUMMY) [n]
SLIP (serial line) support (CONFIG_SLIP) [y]
CSLIP compressed headers (CONFIG_SLIP_COMPRESSED) [y]
16 channels instead of 4 (SL_SLIP_LOTS) [n]
PPP (point-to-point) support (CONFIG_PPP) [y]
PLIP (parallel port) support (CONFIG_PLIP) [n]
Do you want to be offered ALPHA test drivers (CONFIG_NET_ALPHA) [n]
Western Digital/SMC cards (CONFIG_NET_VENDOR_SMC) [y]
WD80*3 support (CONFIG_WD80x3) [y]
SMC Ultra support (CONFIG_ULTRA) [n]
AMD LANCE and PCnet (AT1500 and NE2100) support (CONFIG_LANCE) [n]
3COM cards (CONFIG_NET_VENDOR_3COM) [n]
Other ISA cards (CONFIG_NET_ISA) [n]
EISA, VLB, PCI and on board controllers (CONFIG_NET_EISA) [n]
Pocket and portable adaptors (CONFIG_NET_POCKET) [n]
*
このセクションがもっとも重要かつ必須な部分です。この部分で利用するハー
ドウェアデバイスの種類を指定しています。この例では、ヘッダーの圧縮機能
込みで SLIP を指定し、その他 PPP と WD80*3 ドライバのみを指定していま
す。選んだ設定によっては、これら以外のオプションの設定もあらわれるかも
知れません。SLIP の設定に n
と答えたら、ヘッダの圧縮に関する
設定や 16 チャンネルに関する設定は省略されます。使いたい機能にのみ
y
と答えて、そうではない機能には n
と答えましょう。
不要な機能を組みこむとカーネルが大きくなりますし、ドライバ同士の干渉で
正しく働かないこともあります。
*
* Filesystems
*
...
...
/proc filesystem support (CONFIG_PROC_FS) [y]
NFS filesystem support (CONFIG_NFS_FS) [y]
...
...
手元のマシンで NFS を使いたい場合、NFS ファイルシステムを使うように指
定します。ネットワーク用の各種のユーティリティが利用するので
/proc
ファイルシステムも使うように設定しておきましょう。
設定が完了すれば、後は実際にカーネルをコンパイルするだけです。
# make dep
# make
新しいカーネルがちゃんとコンパイルできて問題ないようならば make
zlilo
することを忘れないように。
最新のカーネルでは make config
の際に多数のオプションの設定
を尋ねてきます。たいてい、これらのオプションはデフォルトのまま変更する
必要はありませんが、環境によってはいくつかのオプションを変更した方が有
効なこともあります。
この意味は明白でしょう。この指定によって tcp/ip プロトコルの機能をカー ネル内部に組みこみます。この HOWTO を読んでいる人はこのオプションに `y' と答えてください。
SLIP や PPP のユーザーが、ダイアルアップ時に指定されたシリアル接続とは 異なる、独立した IP アドレスを使う際に利用するデバイスです。この機能を 使えば、あなたのマシンに 2 つのアドレスを与えることが簡単にできます。
このオプションは、あなたのマシン宛てとは異なるアドレスを持ったデータグ ラムを受けとった時にどうするかの指定です。IP ルーターして機能させたい 場合、このオプションに `y' と答えてください。SLIP や PPP のサーバーと なるマシンでは、通常、このオプションを指定する必要があります。
これはα版の IP マルチキャスト機能を使うかどうかの指定です。この機能は `Internet Talk Radio' やビデオの放送などを受けとる際に利用します。ここ で指定するのはカーネルについての機能のみなので、実際に IP マルチキャス トを使う場合、それ用のプログラムが必要となります。
このオプションを指定すれば、 tcp/ip の各ポー トのどれを使用可能にし、どれを使用不能にするか、どの範囲の IP アドレス を持つホストからの接続を許可するか、といったさまざまなセキュリティに関 する設定が利用可能になります。この機能も、実際に使うには各種のプログラ ムが必要です。
このオプションは Linux マシンを使ってインターネットへの商用の接続サー ビスを提供しようとする人向けのものです。このオプションの指定によって、 IP アドレスごとにどのポートから何バイトのデータをやりとりしたかの記録 を取ることが可能になります。別途プログラムが必要となりますがが、この機 能を利用することで、あなたのマシンを使っている人ごと、サービスごとの課 金が可能になります。
このオプションはパソコン用の tcp/ip(PC/TCP) のバグに対応するためのもの です。パソコン用の PC/TCP の実装のいくつかには問題があって、それが Linux の(対応が難しい)バグに触れてしまい、クラッシュする可能性がありま す。このオプションの指定はそのようなトラブルを防ぐためのものです。通常 このオプションを指定する必要はありませんが、ネットワーク上に PC/TCP を 使って問題となるパソコンがあれば、このオプションを指定します。
RARP プロトコルの機能をカーネルに組みこむかどうかの指定です。Sun 3 マ シンをブートするために組みこまれた機能なので、それ以外の場面ではあまり 使うことはありません。
使っているサブネットにあなたのマシ ンが直接接続されているか、ブリッジなどで、さらに再分割されているかの指 定です。デフォルトのままでほとんど影響はないはずです。
これはデータグラムが転送されるタイミ ングを指定するためのオプションです。デフォルトの設定が殆んどの状況下で 最善のパフォーマンスを示し、disable にすれば性能は悪化するはずです。こ の設定はソケットを使えるプログラム内部で変更可能なので、カーネルの設定 はデフォルトのままにして、実際のプログラムの内部で、特に素早い反応が必 要な場合に限って NAGLE アルゴリズムを使用しないようにする方がいいでしょ う。
IPX プロトコルの機能をカーネルに組みこむかどうかの指定です。IPX とは Novell が開発した IP プロトコルによく似たネットワーク用のプロトコルです。
アマチュア無線用の AX.25 プロトコルを組みこむかどうかの指定です。この オプションを指定すれば、ネットワークソケットの新しいクラスがプログラム から使えるようになります。AX.25 プロトコルは、パケット無線を使うアマチュ ア無線家の間で使われているプロトコルです。