IPマスカレードのルータとして使用するマシンには
既に、Debian GNU/Linux(version2.2,potato)がインストールされている
必要があります。まだインストールされていない場合は
そちらから先に行って下さい。
カーネルの再構築を行う際に、ネットワークカードのデバイスを
選択する必要があるので、今のうちに使用する2枚のネットワークカードの
製造元・型番を確認しておいてください。
解説 IPマスカレードとは?にも
書いた通り、パソコンをルータ代わりに使うには2枚のネットワークカードが
必要になります。
1枚はそのパソコン自体が通信するためのものでこれは既に取り付けてあるはずです。
もう1枚は内部ネットワークを構築するためのもので、
これを新たに取り付ける必要があります。
できれば既に取り付けてあるものと同じ型のものを用意し、取り付けてください。
なお、取り付ける際にはきちんと電源を落として取り付けましょう。
電源の落とし方については
こちらを参照。
 
IPマスカレードのルータとして使用するためには
カーネルの再構築と必要な設定を行わなければなりません。
以下の手順に従って作業を行って下さい。
カーネルを再構築するためのパッケージをインストールします。
インストールするパッケージは以下の通りです 
(すでにインストールされているものもあるかもしれません)。
  - ・kernel-source-2.2.19
 
    - このパッケージにはLinuxカーネルバージョン2.2.19
        のソースファイルをまとめたものが入っています。
        なお、このカーネルのバージョンは時々更新されるので
        最新のものを入手してください。
    
 
    - 〔2001/09/06にblueにインストールした
        カーネルのバージョンは2.2.19でした。〕
    
 
  - ・kernel-package
 
    - これはカーネルのコンパイルの支援を行うためのパッケージです。
        このパッケージをインストールすると「 make-kpkg 」が
        使用できるようになります。
        このコマンドの意味は使用するところで説明します。
    
 
  - ・bzip2
 
    - bz2形式で圧縮されているソースを伸張するために必要なパッケージです。
    
 
  - ・bin86
 
    - カーネルのコンパイルで推奨されているパッケージです。
    
 
  - ・tcl8.2
 
  - ・tk8.2
 
    - この2つはスクリプト型のプログラミング言語で、
        言語環境TclとGUIを担当するtkがセットになっています。
        この後の設定をGUIで(xconfig)行う際に必要となるパッケージです。 
    
 
先ほど[2.1.1]でインストールしたファイル
(カーネルのソース kernel-source-2.2.19.tar.bz2)
は /usr/scr/ 以下にインストールされているのでまずそこに移動します。
# cd /usr/src/ 
ダウンロードしてきたファイルは、本来何種類もあるファイルを tar で一つにまとめ、
さらにそれを bzip2 で圧縮をかけているものです。
そのため、まず bzip2 で解凍し、
それを tar で本来のファイル群に分けます。(「展開する」と言います。)
# bzip2 -d kernel-source-2.2.19.tar.bz2 
# tar xvf kernel-source-2.2.19.tar 
先ほどの作業で /usr/src/ 以下に kernel-source-2.2.19 
というディレクトリができるので、
そこにシンボリックリンクを張り、そこに移動します。
# ln -s kernel-source-2.2.19 linux 
# cd linux 
xconfig を使用してカーネルの設定を行います。
(有効になるのは再起動後です。)
xconfig を起動させるには以下のコマンドを入力します。
# make xconfig 
メニューが出るので、以下の項目を有効にしてください。
(不要なものもあるかもしれません)
  - [Code maturyty lebel options]
    
      - Prompt for development and/or incomplete code/drivers
    
 
     
   - [Loadable module support]
    
      - Enable loadable module support
      
 - Kernel mudule loader
    
 
     
   - [Networking options]
    
      - Network firewalls
      
 - TCP/IP networking
      
 - Socket filtering
      
 - IP: advanced router
      
 - IP: firewalling
      
 - IP: firewall packet netlink device
      
 - IP: masquerading
      
 - IP: ICMP masquerading
        
      
 - IP: masquerading special modules support
      
 - IP: ipautofw masq support (EXPERIMENTAL) 
      
 - IP: ipportfw masq support (EXPERIMENTAL) 
      
 - IP: ip fwmark masq-forwarding support (EXPERIMENTAL)
      
 - IP: optimize as router not host
      
 - IP: TCP syncookie support (not enabled per default)
    
 
     
   - [Network device support]   
    
      - Dummy net driver support
      
 - [Ethernet 10 or 100Mbit]
        
        - 3COM cards
        
 - 3c590/3c900 series (592/595/597) "Vortex/Boomerang" support
                  
この項目はネットワークカードのドライバです。
                  
もしも、上記以外のネットワークカードを使用する場合は
                      そのネットワークカードにあったドライバを選択してください
         
     
     
 
設定が終わったら Save and Exit を選択して終了して下さい。
カーネルパッケージの作成を行います。
作成には「 make-kpkg 」コマンドを使用します。
このコマンドは、パッケージ「kernel-package」をインストールすることで
使えるようになるコマンドで、カーネルのコンパイルからDebianパッケージの作成までを
請け負います。後はできたパッケージを
 dpkg -i パッケージ名でインストールすれば
よいことになります。
まずはディレクトリ内の余分なファイルを削除するため、
# make-kpkg clean 
とします。
そして、カーネルをコンパイルし、新しいカーネルをパッケージ化するため
以下のコマンドを入力します。
# make-kpkg --revision blue0-2.2.19 kernel_image 
リヴィジョンナンバー ( blue0-2.2.19 ) 
は適当につけて良いですが、
最初の文字列(この場合は「 blue0 」)
の中に必ず数字を
含むようにしてください。含まないとカーネルパッケージの作成が行えません。
また、カーネルのバージョン
「2.2.19」
も、インストールに使用したカーネルのバージョンに合わせておいてください。
もし作業が滞ってしまったら、
# make-kpkg clean 
からやり直して下さい。
速いマシンなら10分程度で /usr/src/ のディレクトリ内にカーネルのパッケージ
「 kernel-image-2.2.19_blue0-2.2.19_i386.deb 」
が作成されるはずです。
先ほど作成したパッケージをインストールします。以下のコマンドを入力してください。
# dpkg -i /usr/src/kernel-image-2.2.19_blue0-2.2.19_i386.deb 
〔この際に、「/lib/mudules/2.2.19 を 
/lib/modules/2.2.19.old など
に書き換えろ」と指示された場合は、いったんインストールを停止して、
( そのような選択肢を聞かれます )指示された通りにしてください。〕
# mv /lib/modules/2.2.19 /lib/modules/2.2.19.old 
書き換えたら、インストールを開始します。
(このような指示を受けなかった場合は構わず進んでください。)
    - ・起動ディスクを作成するのかどうか
    
 - 作成するため Yes を選びます。
        以前に使用した起動ディスクを使うので、探してください。
    
 - ・どのFDDを使用するのか
    
 - 「Which floppy drive [0-7] do you want to use?[0]」
        
と聞かれますが、普通のフロッピーディスクドライブのデバイス番号は
        [0]なのでそのまま
        
        を押してください。
     - ・フォーマットするかどうか
    
 - 「Do you wish me to format the floppy?[No]」
        
と聞かれます。フロッピーディスクが初期化されていないのであれば、
         Yes と答えて下さい。
     - ・既に /etc/lilo.conf にある設定をフロッピーディスクに書き込むのか
    
 - 「 You already have a LILO configuration in /etc/lilo.conf .
    
Install a boot block using the existing /etc/lilo.conf? [Yes] 」
    
という質問はデフォルトの Yes と答えてください。
 
以上で設定は終了です。再起動してください。
# reboot 
 
カーネルの再構築は終了しました。後はこれを利用するために設定ファイル
を書き換えます。
ip_forward=no
となっている部分を
ip_forward=yes
に書き換えます。
もともと書いてあるものの下に以下のものを書き足します。
iface eth1 inet static
        address 192.168.0.1
        netmask 255.255.255.0
        network 192.168.0.0
        broadcast 192.168.0.255
        geteway 133.87.45.66
up ipchains -P forward DENY
up ipchains -A forward -s 192.168.0.0/24 -j MASQ 
up ipchains -M -S 21600 0 0
up /sbin/depmod -a
up /sbin/modprobe ip_masq_ftp
「gateway 133.87.45.66 」
にはルータ(この場合は blue )の
IPアドレスを設定する。
ホストテーブルの設定を行います。
内部ネットワークでのDNSは、/etc/hosts ファイルの設定に
よって決められています。
 /etc/hosts ファイルに
192.168.0.1   blue.ep.sci.hokudai.ac.jp    blue
と書き込み、IPアドレスとホスト名の対応を書いておいてください。
[3.1.4] 再起動
以上でルータの設定は終了しました。これらの設定を有効にするため再起動します。
# reboot 
ルータとしての機能を停止する場合、注意することがあります。
[3.2.1] 全ての設定ファイルを元に戻す
ルータとしての機能を停止する場合は、上記で編集した
3つのファイルについて全て元通りにして下さい!!
どれか1つでも中途半端に残すと、
ネットワーク全体に悪影響を及ぼす可能性があります!!
過去に
「プライベート空間からグローバル空間へのルーティングが断続的に行われない」
事態も発生しました。設定は完全に元に戻してください。
 
IPマスカレードを使用する際には、
クライアント側もそれに応じた設定をする必要があります。
実際に動かすことが出来るのかどうか、
近くにあって使用できるパソコンをクライアント用として設定、接続し、
使えるのかどうか実験してみましょう。
ここにはネットワークの設定が書き込まれています。
既に書き込まれている値はインストール時に設定したものですが、
ここをIPマスカレードを利用するために以下のように書き換えます。
iface eth0 inet static
        address 192.168.0.10
        netmask 255.255.255.0
        network 192.168.0.0
        broadcast 192.168.0.255
        geteway 192.168.0.1
「 address 」の行には 192.168.0.2 から 192.168.0.254 までの
好きな値を入れてもらって構いません。
※これを新たに下に書き足すのではなく、既にあるものの数値を書き換えて下さい。
このファイルにはDNSサーバのIPアドレスが書いてあります。
(インストール時に設定しましたよね?)
ここの1行目を
search ep.sci.hokudai.ac.jp
とします。
ホストテーブルの設定を行います。
内部ネットワークでのDNSは、/etc/hosts ファイルの設定に
よって決められています。
 /etc/hosts ファイルに
192.168.0.1   blue.ep.sci.hokudai.ac.jp    blue
と書き込み、IPアドレスとホスト名の対応を書いておいてください。
Windows の設定はLinuxよりは容易にできます。
(ちなみに画面はWindows 98 Second Edition のものです)
[4.2.1] IP アドレス等の設定
 
 | 
マイコンピュータをクリックして, コントロールパネルを開きます
 | 
 
 | 
コントロールパネルから「ネットワーク」をクリックします。  
そして「TCP/IP → (ネットワークカード名)」を選択します。
 | 
 
 | 
下にある表にしたがって、IP アドレス, ネットマスク, 
ゲートウェイ, ホスト名, ドメイン名, DNS サーバを
正しく設定して下さい。  
 | 
ルータ(blue) 以下に接続するローカル機での設定項目
| 設定タグ | 
詳細項目 | 
答え方 | 
| IP アドレス | 
IP アドレス | 
192.168.0.2 〜 192.168.0.254 (どれか一つを指定) | 
| ネットマスク | 
255.255.255.0 | 
| ゲートウェイ | 
ゲートウェイ | 
192.168.0.1 | 
| DNS設定 | 
ホスト名 | 
接続するマシンのホスト名(必ず設定してください) | 
| ドメイン名 | 
ep.sci.hokudai.ac.jp | 
| DNS サーバ | 
133.87.45.70, 133.87.45.66, 133.87.1.11 | 
 
ルータ、クライアント双方の設定が終了したので実際に接続して
IPマスカレードが作動しているのか確かめてみましょう。
[5.1] ハブ経由でサーバとクライアントをつなぐ
サーバ( blue )の内部ネットワーク用のネットワークカードから
いったんハブにつなぎ、そのハブからクライアント側の機械に接続してください。
[5.1.1] ハブの接続の仕方
ハブには10BASE-Tケーブル(電話のモジュラーケーブルに似たやつ)
を接続するコネクタがいくつかあると思いますが、
サーバ側からのケーブルを「 カスケード接続 」
に使用するところにはつながないでください。
他のところならどこでも構いません。
ちなみに、「カスケード接続」とはハブ同士を繋ぐ時の接続法です。
大抵は一つのハブに一箇所そのためのコネクタがついているはずです。
[5.2] 再起動
クライアント側の機械を再起動させてください。
起動したらネットワークと接続できているのか確認しましょう。
ブラウザなどで外の世界とつながっているのかを確認しても良いですが、
他にも、
2000年度 情報実験第5回「つながらないな,という時は」
などをを参照してどのようにつながっているのかなどを確認してください。
確認できたらひとまずOKです。接続できていなかったら上に張った
リンク先などを参照して原因を究明してください。