IPマスカレードルータの構築   ▲戻る
最終更新日 : 2006/09/14(岩堀智子)  <<  作成日 : 2001/09/09(森川靖大)
  1. 準備
  2. カーネルの再構築
  3. ルータ側の設定ファイルの編集
  4. iptables の設定
  5. クライアント側の設定ファイルの編集
  6. 接続

1.準備

[1.1] インストールされているOSの確認

IPマスカレードのルータとして使用するマシンには 既に、Debian GNU/Linux ( ver 3.1 --sarge--) がインストールされている必要があります。 まだインストールされていない場合は 専攻サーバの基本部分構築ガイド を参考にして, OSのインストールを行っておくこと.


[1.2] 2枚のネットワークカードの認識

解説 IPマスカレードとは?にも 書いた通り、パソコンをルータ代わりに使うには2枚のネットワークカードが 必要になります。

[1.2.1] ネットワークカードが 1枚の場合

ルータとして機能するためには, Network Device が2つ必要になります. もし, コンピュータにネットワークカードが 1枚しか装備されていない場合は もう 1枚ネットワークカードを増設して下さい.

もう 1枚のネットワークカードが現在使用するネットワークカードと 異なる機種の場合, 新たなデバイスドライバをインストールする 必要があります. カーネルの再構築を行う際に、ネットワークカードのデバイスを 選択する必要があるので、 今のうちに使用するもう1枚のネットワークカードの 製造元・型番を確認しておいてください。

ネットワークカードの用意・チェックが終わったら, 本体に取り付けてください. (もちろん, 電源を停止してから行うように!!)

[1.2.2] ネットワークカードが 2枚の場合

既にネットワークカードが 2枚ある場合, その 2枚のネットワークカードを使用してルータを構築します. 両方のネットワークカードが OS に認識されているか確認してください.

確認には dmesg コマンドを使用すると良いでしょう.

$ dmesg [Enter]
        :
eepro100.c:v1.09j-t 9/29/99 Donald Becker http://cesdis.gsfc.nasa.gov/linux/drivers/eepro100.html
                :
eth0: OEM i82557/i82558 10/100 Ethernet, 00:03:2D:00:03:BF, IRQ 10.
Receiver lock-up bug exists -- enabling work-around.
                :
Receiver lock-up workaround activated.
eth1: OEM i82557/i82558 10/100 Ethernet, 00:03:2D:00:05:AA, IRQ 5.
Receiver lock-up bug exists -- enabling work-around.
                :
eepro100.c: VA Linux custom, Dragan Stancevic 2000/11/15
                :

ネットワークモジュール (この場合は 「eepro100 (EtherExpressPro/100)」)と, 2枚のネットワークカード ( eth0eth1 ) が表示されていれば OK です.

2 枚のネットワークカードが認識されていない場合は [1.2.1] ネットワークカードが 1枚の場合 と同様にしてネットワークカードを 2枚認識できるようにして下さい.

[2003年度] blue に使用しているマシン (SUPERSURVER 6012P-6) には始めから 2枚のネットワークカードが装備されています. 使用するネットワークモジュールは EtherExpressPro/100 と Intel PRO/1000 です. この時点では EtherExpressPro/100 しか認識できません.


[1.3] X サーバ の設定

本ドキュメントでは, カーネルの再構築において 「xconfig」というツールを使用します. このツールは X サーバ上で動くため, X サーバの設定をおこなっておいて下さい.

[2003 年度] カーネルの再構築には xconfig ではなく menuconfig を用いたためこの設定はとくに必要ではなかった.


2. カーネルの再構築

IPマスカレードのルータとして使用するためには カーネルの再構築と必要な設定を行わなければなりません。 以下の手順に従って作業を行って下さい。

[2.1] パッケージのインストールと展開

[2.1.1]ソースの取得

・kernel-source (linux-2.6.17.8.tar.gz)
2006年09月01日現在の blue のカーネルは 2.6.17.8 である. 再構築時の最新版をもちいること. 以下から wget で取得する.
ftp://ftp.ep.sci.hokudai.ac.jp/pub/Linux/kernel/v2.6/

[2.1.2]パッケージのインストール

カーネルを再構築するためのパッケージをインストールします。

インストールするパッケージは以下の通りです (すでにインストールされているものもあるかもしれません)。

・kernel-package
これはカーネルのコンパイルの支援を行うためのパッケージです。 このパッケージをインストールすると「 make-kpkg 」が 使用できるようになります。 このコマンドの意味は使用するところで説明します。
・bzip2
bz2形式で圧縮されているソースを伸張するために必要なパッケージです。
・bin86
カーネルのコンパイルで推奨されているパッケージです。
・libncurses5-dev
menuconfig を使って設定を行う際に必要となるパッケージです。
・debmake
・gawk
・libncurses5-dbg

[2.1.3] ソースの展開

先ほど[2.1.1]で取得したファイル (カーネルのソース linux-2.6.17.8.tar.gz) を /usr/scr/ 以下にコピーし, そこに移動します。

# cp linux-2.6.17.8.tar.gz /usr/src/ [Enter]
$ cd /usr/src/ [Enter]

ダウンロードしてきたファイルは、本来何種類もあるファイルを tar で一つにまとめ、 さらにそれを gzip で圧縮をかけているものです。 そのため、まず gzip で解凍し、 それを tar で本来のファイル群に分けます。(「展開する」と言います。) ここでは tar の z オプションで gzip 解凍をします。

# tar zxvf linux-2.6.17.8.tar.gz [Enter]

[2.1.4] kernel-source-2.4.25 にシンボリックリンクを張る。

先ほどの作業で /usr/src/ 以下に linux-2.6.17.8 というディレクトリができるので、名前を kernel-source-2.6.17.8_2006_0811 に変更してそこにシンボリックリンクを張り、そこに移動します。

# mv linux-2.6.17.8 kernel-source-2.6.17.8_YYYYMMDD [Enter]
# ln -s kernel-source-2.6.17.8_YYYYMMDD linux [Enter]
$ cd linux [Enter]

[2.2] カーネルの設定

menuconfig を使用してカーネルの設定を行います。 (有効になるのは再起動後です。)

menuconfig を起動させるには以下のコマンドを入力します。

# make menuconfig [Enter]

メニューが出るので、以下の通りに設定. (不要なものもあるかもしれません)

ネットワークカードのサポート

Device Drivers --->

  Network Device Support --->

    Ethernet (10 or 100 Mbit) ---> 

       [*]   EISA, VLB, PCI and on board controllers
       <*>     DECchip Tulip (dc21x4x) PCI support

    Ethernet (1000 Mbit) --->

       <*> Intel PRO/1000 Gigabit Ethernet Support

RAID コントローラのサポート

Device Drivers --->

  SCSI device support --->

    SCSI low-level drivers --->

      <*> Adaptec I2O RAID Support

SMPのサポートを外す, プロセッサファミリーの選択

Processor type and features --->

  [ ] Symmetric multi-processing support

  Processor family --->

    (X) Pentium-4/Celeron(P4-based)/Pentium-4 M/Xeon

APMを有効にする

Power management options (ACPI, APM) --->

  APM (Advanced Power Management) BIOS Support --->

    <*> APM (Advanced Power Management) BIOS support
    [ ] Ignore USER SUSPEND 
    [*] Make CPU Idle calls when idle
    [*] Enable console blanking using APM

iptables で IPマスカレードが行えるようにする

Networking --->

  [*] Networking support 

     Networking options --->

    [*] Network packet filtering (replaces ipchains) --->

     Core Netfilter Configration --->

      <M> Netfilter netlink interface (NEW)
      <M>   Netfilter NFQUEUE over NFNETLINK interface (NEW)
      <M>   Netfilter LOG over NFNETLINK interface (NEW)
      <M> Netfilter Xtables support (required for ip_tables) (NEW)
      <M>   "CLASSIFY" target support (NEW)
      <M>   "MARK" target support (NEW)
      <M>   "NFQUEUE" target support (NEW)
      <M>   "comment" match support (NEW)
      <M>   "conntrack" connection tracking match support (NEW)
      <M>   "DCCP" protocol match support (NEW)
      <M>   "ESP" match support (NEW)
      <M>   "helper" match support (NEW)
      <M>   "length" match support (NEW)
      <M>   "limit" match support (NEW)
      <M>   "mac" address match support (NEW)
      <M>   "mark" match support (NEW)
      <M>   IPsec "policy" match support (NEW)
      <M>   Multiple port match support (NEW)
      <M>   "pkttype" packet type match support (NEW)
      <M>   "realm" match support (NEW)
      <M>   "sctp" protocol match support (NEW)
      <M>   "state" match support (NEW)
      <M>   "string" match support (NEW)

     IP: Netfilter Configration --->

      <M> Connection tracking (required for masq/NAT)
      <M>   FTP protocol support
      <M>   IRC protocol support
      <M>   TFTP protocol support
      <M>   Amanda backup protocol support
      <M>   PPTP protocol support (NEW)
      <M>	IP Userspace queueing via NETLINK (OBSOLETE)
      <M> IP tables support (required for filtering/masq/NAT) (NEW)
      <M>   IP range match support (NEW)
      <M>   TOS match support (NEW)
      <M>   recent match support (NEW)
      <M>   ECN match support (NEW)
      <M>   DSCP match support (NEW)
      <M>   AH match support (NEW)
      <M>   TTL match support (NEW)
      <M>   Owner match support (NEW)
      <M>   address type match support (NEW)
      <M>   hashlimit match support (NEW)
      <M>   Packet filtering support (NEW)
      <M>     REJECT target support (NEW)
      <M>   ULOG target support (NEW)
      <M>   TCPMSS target support (NEW)
      <M>   Full NAT (NEW)
      <M>     MASQUERADE target support (NEW)
      <M>     REDIRECT target support (NEW)
      <M>     SAME target support (NEW)
      <M>   Packet mangling (NEW)
      <M>     TOS target support (NEW)
      <M>     ECN target support (NEW)
      <M>     DSCP target support (NEW)
      <M>     TTL target support (NEW)
      <M>   raw table support (required for NOTRACK/TRACE) (NEW)
      <M> ARP tables support (NEW)
      <M>   ARP packet filtering (NEW)
      <M>   ARP payload mangling (NEW)

Quotaをサポートする

File systems --->
      
  [*] Quota support

Windows 系ファイルシステムをサポートする (これらは, 後で起動ディスクを作成する際に必要となる)

File systems --->

  DOS/FAT/NT Filesystems --->      

    <*> MSDOS fs support
    <*> VFAT (Windows-95) fs support
    <*> NTFS file system support

FAT や CD-ROM のファイルシステムを扱う際の言語コードの設定

File systems --->
      
Native Language Support --->
         
  <*> Codepage 437 (United States ,Canada)
  <*> Japanese charasets (Shift-JIS, EUC-JP)
  <*> NLS ISO 8859-1 (Latin 1; Western Europearn Languages)

設定が終わったら Save and Exit を選択して終了して下さい。


[2.3] カーネルパッケージの作成とインストール

[2.3.1] カーネルパッケージの作成

カーネルパッケージの作成を行います。 作成には「 make-kpkg 」コマンドを使用します。 このコマンドは、パッケージ「kernel-package」をインストールすることで 使えるようになるコマンドで、カーネルのコンパイルからDebianパッケージの作成までを 請け負います。後はできたパッケージを dpkg -i パッケージ名でインストールすれば よいことになります。

カーネルのコンパイルの前にディレクトリ内の余分なファイルを削除するため、

# make-kpkg clean [Enter]

とします。

そして、カーネルをコンパイルし、新しいカーネルをパッケージ化するため 以下のコマンドを入力します。

# make-kpkg --revision blue-2006-08-11 kernel_image [Enter]

リヴィジョンナンバー ( blue-2006-08-11 ) には, ホスト名と作成日時を書き込んでください.

もし作業が滞ってしまったら、

# make-kpkg clean [Enter]

からやり直して下さい。 速いマシンなら 5 分程度で /usr/src/ のディレクトリ内にカーネルのパッケージ 「 kernel-image-2.6.17.8_blue-2006-08-11 _i386.deb 」 が作成されるはずです。

[2.3.2] カーネルパッケージのインストール

先ほど作成したパッケージをインストールします。以下のコマンドを入力してください。

# dpkg -i /usr/src/kernel-image-2.6.17.8_blue-2006-08-11_i386.deb [Enter]

〔この際に、「/lib/mudules/2.4.25 を /lib/modules/2.4.25.old など に書き換えろ」と指示された場合は、いったんインストールを停止して、 ( そのような選択肢を聞かれます )指示された通りにしてください。〕

# mv /lib/modules/2.4.25 /lib/modules/2.4.25.old [Enter]

書き換えたら、インストールを開始します。 (このような指示を受けなかった場合は構わず進んでください。)

[2.3.3] インストール中の質問

・起動ディスクを作成するのかどうか
作成するため Yes を選びます。 以前に使用した起動ディスクを使うので、探してください。
・どのFDDを使用するのか
「Which floppy drive [0-7] do you want to use?[0]」
と聞かれますが、普通のフロッピーディスクドライブのデバイス番号は [0]なのでそのまま [Enter] を押してください。
・フォーマットするかどうか
「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 と答えてください。

[2.4] 再起動

以上で設定は終了です。再起動してください。

# reboot [Enter]

3. ルータ側の設定ファイルの編集

カーネルの再構築は終了しました。後はこれを利用するために設定ファイル を書き換えます。

[3.1] 各設定ファイルの編集

[3.1.1] /etc/network/options の編集

ip_forward=no

となっている部分を

ip_forward=yes

に書き換えます。

[3.1.2] /etc/network/interfaces の編集

もともと書いてあるものの下に以下のものを書き足します

iface eth1 inet static
        address 192.168.16.1
        netmask 255.255.255.0
        network 192.168.16.0
        broadcast 192.168.16.255

eth1 にはgateway の項目を書かないで下さい。

[3.1.3] /etc/hosts の編集

ホストテーブルの設定を行います。 内部ネットワークでのDNSは、/etc/hosts ファイルの設定に よって決められています。

/etc/hosts ファイルに

192.168.16.1   blue.ep.sci.hokudai.ac.jp    blue

と書き込み、IPアドレスとホスト名の対応を書いておいてください。

[3.1.4] 再起動

以上でルータでの設定ファイルの編集は終了しました。これらの設定を有効にするため再起動します。

# reboot [Enter]

[3.2] ※ルータの機能停止の際の注意!!※

ルータとしての機能を停止する場合、注意することがあります。

[3.2.1] 全ての設定ファイルを元に戻す

ルータとしての機能を停止する場合は、上記で編集した 3つのファイルについて全て元通りにして下さい!!

どれか1つでも中途半端に残すと、 ネットワーク全体に悪影響を及ぼす可能性があります!!

過去に 「プライベート空間からグローバル空間へのルーティングが断続的に行われない」 事態も発生しました。設定は完全に元に戻してください。


4 iptables の設定

ルータを再起動したことで, マシンはルータとして機能しているが, 具体的なルーティングの設定はまだである. ここでは iptables を用いたルーティングの設定方法について解説する. iptables コマンドは IP マスカレードの設定をするためのものである.

2002 年度までは iptables を使って IP マスカレードの設定を行っていた. iptables は 2.4 系カーネルで使える ipchains の改良版(?)である.

以下では, 今回使用されている iptables コマンドについて簡単に 解説を行っておきます.

[4.1] iptables の設定

[4.1.1] チェインの初期化

チェインの初期化とはそのチェインについての設定を全て削除することである. 例えば filter チェインを初期化するには以下のコマンドを実行する.

# iptables -t filter -F FORWARD [Enter]

[4.1.2] nat テーブルの基本ポリシーの設定

nat は(プライベートアドレス空間とグローバルアドレス空間の間での) IP アドレスの変換に用いられるテーブルである.

以下のコマンドで, nat テーブルにおける IP アドレス変換の基本ポリシーを「拒否」にします.

# iptables -t nat -P PREROUTING DROP [Enter]

「-P」は Policy の略で, まずこのオプションをつけた iptables コマンドを使用し, デフォルトでの設定を決めてしまいます.

「PREROUTING」は「外部から通信を受信する時のルート」を意味します. 他にも「POSTROUTING(外部へ通信を発信する時のルート)」 「OUTPUT(ローカルホストからの通信を発信する時のルート)」 といった表記を入れることも出来ます.

「DROP」は「拒否」です. まず, デフォルトでは転送を行わないように 設定します. なお許可する時は「ACCEPT」です. この後のコマンドで, 後から転送許可を与えていきます.

[4.1.3] 転送許可の設定

以下のコマンドで, プライベートIPアドレス空間から外部(制限無し) への転送許可を与えます.

# iptables -t nat -A POSTROUTING  -s 192.168.0.0/24 -o eth0 -j MASQUERADE[Enter]

「-A」は Append の略で, この後ろに書いてある 設定を現設定に「追加」します.

「-s」は source の略で, 「発信元」を意味し, この場合は 192.168.0.0 〜 192.168.0.255 を意味しています. 後ろの「/24」はネットマスクを意味し, これは「/255.255.255.0」と等価です.

「-j MASQUERADE」は その前で指定された発信元 (-s で指定されているアドレス) から宛先への通信をマスカレードすることを示します.

なお, 「宛先」の指定は「-d (destination)」で行いますが, 全ての宛先を指定する場合にはこのオプションは省略できます.

つまり, ここでは 「発信元 (192.168.0.0 〜 192.168.0.255) から 全ての宛先に対してルーティングを許可する」 という設定を追加した事になります.

また, 特定の MAC アドレスと IP アドレスを持つホストに対して設定を行うことも可能である. 以下のコマンドで MAC アドレス 00:5C:75:53:2B:3A を持つ IP 192.168.16.8 のホストに対して通信を許可する.

# iptables -t nat -A PREROUTING -s 192.168.16.8 -i eth1
 --match mac --mac-source 00:5C:75:53:2B:3A -j ACCEPT [Enter]

[4.1.4] 特定ポートへの通信のみを許可するための設定

filter テーブルはルータを通過するパケットの許可, 不許可を行うためのものである. 特定のポートへのパケットのみ通過を許可するといったことが filter テーブルによって可能になる.

特定のポートへのパケットのみ通過を許可するための方針を以下に示す.

ポリシーは通過拒否とすることにより, 全てのパケットの通過を拒否する. filter テーブルの設定も nat テーブルと同じように行う. 具体的には以下のコマンドを実行する.

# iptables -t filter -P FORWARD DROP[Enter]

特定のポートへのパケットのみ通過を許可するには (例えば、http (80 番ポート)を許可する場合) 以下のコマンドを実行する.

# iptables -t filter -A FORWARD -i eth1 -p tcp --dport 80 -j ACCEPT[Enter]

[4.2] iptables 制御コマンドの作成

[4.2.1] シェルスクリプトの作成

iptables の設定方法を解説して来たが, iptables の設定をコマンドラインからひとつずつ行うのは面倒であるため現実的ではない. 実際には必要な設定を記述したシェルスクリプトを作成して, それで iptables の設定を行う.

ここで紹介するシェルスクリプトでのルーティングの基本ポリシーは以下のようにしてある.

以下のシェルスクリプト /etc/init.d/ip-masq をエディタで作成する.

#!/bin/sh
#
# iptables を用いてルーティングを行う
# シェルスクリプト
#

# IP フォワーディングを有効にする
echo 1 > /proc/sys/net/ipv4/ip_forward

# テーブルの初期化
iptables -t filter -F FORWARD
iptables -t nat -F POSTROUTING
iptables -t nat -F PREROUTING

# POSTROUTING, PREROUTING ともにアドレス変換を許可
iptables -t nat -P PREROUTING ACCEPT
iptables -t nat -P POSTROUTING ACCEPT

# フィルタの設定: 通過許可
iptables -t filter -P FORWARD ACCEPT

# 内部から外部への IP マスカレードを許可
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

# ftp 通信用のモジュールのロード
/sbin/modprobe ip_nat_ftp
/sbin/modprobe ip_conntrack_ftp

このシェルスクリプトを実行するには以下のコマンドを入力する.

# /etc/init.d/ip-masq

[4.3] gate-toroku-system を利用した iptables の設定

ここでは, gate-toroku-system をインストールし, iptables の設定を自動で行う.

gate-toroku-system のインストールは基本的に gate-toroku-system インストールの手引き に従って行えばよい.

[ep local] 地球惑星専攻のサーバにおいては上記の手引よりも 専攻サーバへの gate のインストール が役に立つであろう.

gate-toroku-system の設定ファイルである /etc/gate.conf を編集するに当たって iptables に関係する部分を抜き出して説明する.

[4.3.1] iptables によるルーティングの有効化

iptables によるルーティングを有効にするかどうかは $IPTABLES_ENABLEで設定する. この値が 1 の場合, gate-toroku-system によって[3.3.4]に対応するシェルスクリプト gate-ip-masq が自動生成される.

$IPTABLES_ENABLE = 1 ;

[4.3.2] データベースを置くディレクトリの位置

gate-toroku-system では特定のホストのみ通信を許可している. 通信を許可するホストのデータベースを置くディレクトリの位置を $DB_PIP_BASE, $DB_PIP_PENDING, $DB_PIP_STABLE, $DB_PIP_DEFUNCT で指定する.

$DB_PIP_BASE = '/home/gate/pipdb';

$DB_PIP_PENDING = "$DB_PIP_BASE/pending";
$DB_PIP_STABLE = "$DB_PIP_BASE/stable";
$DB_PIP_DEFUNCT = "$DB_PIP_BASE/defunct";

[4.3.3] プライベート IP の自動配付

プライベート IP の自動配付を $IP_AUTO_DISTRIBUTION で設定する.

$IP_AUTO_DISTRIBUTION = 1 ;

この設定を有効にしておくと, gate-toroku-system で プライベート IP 申請が行われたとき, 自動的にあるプライベート IP を配付する.

[4.3.4] プライベート IP アドレスの範囲の指定

配付するプライベート IP アドレスの範囲は %MIN_PRIVATE_IP, %MAX_PRIVATE_IP で指定する.

%MIN_PRIVATE_IP = (
        '8',    '192.168.16.10',        # 8 号館
        '3',    '',                     # 3 号館
        '6',    '',                     # 6 号館
        );
%MAX_PRIVATE_IP = (
        '8',    '192.168.16.254',       # 8 号館
        '3',    '',                     # 3 号館
        '6',    '',                     # 6 号館
        );

[4.3.5] ルータの指定

ルータのホスト, IP アドレスは $IPTABLES_SERVER, IPTABLES_ROUTER_IP で指定する.

$IPTABLES_SERVER = 'blue.ep.sci.hokudai.ac.jp';
$IPTABLES_ROUTER_IP = '133.87.45.66';          

ルータの IP アドレスは gate-ip-masq の以下の部分と一致する.

$IPTABLES -t nat -A POSTROUTING  -s 133.87.45.66 -o eth0 -j ACCEPT

$IPTABLES -t nat -A PREROUTING  -d 133.87.45.66 -i eth1 -j ACCEPT

[4.3.6] ルーティング制御コマンド実行ファイルの指定

iptables を用いたルーティング制御コマンド実行ファイル名を $IPTABLES_FILE で指定する.

$IPTABLES_FILE = "/usr/local/sbin/gate-ip-masq";

コマンドパスを指定するため, 絶対パスで指定すること.

[4.3.7] ルータの NIC の指定

ルータの NIC がネットワークの内側, 外側のどちらに属するかを $INSIDE_ETH, $OUTSIDE_ETH で指定する.

$INSIDE_ETH = 'eth1';   # プライベート空間側のNIC
$OUTSIDE_ETH = 'eth0';  # グローバル空間側のNIC

この部分は gate-ip-masq の以下の部分と一致する.

$IPTABLES -t nat -A POSTROUTING  -s 133.87.45.66 -o eth0 -j ACCEPT
$IPTABLES -t nat -A PREROUTING  -d 133.87.45.66  -i eth1 -j ACCEPT

[4.3.8] ログを取るための設定

ログの設定をするかどうかを $IPTABLES_LOG で指定する. ログ中につけるプレフィックスを $LOG_PREFIX で指定する.

$IPTABLES_LOG = 1;

$LOG_PREFIX = 'IPTABLES-LOG: ';

[4.3.9] アクセス許可ポートの指定

アクセスを許可するポート番号およびそのポートで通信するためのプロトコルを %ALLOW_ACCESS_PORT で指定する.

%ALLOW_ACCESS_PORT = (
        21,    'tcp',
          :
          :
        );

この部分は gate-ip-masq の以下の部分と一致する.

$IPTABLES -t filter -A FORWARD -i eth1 -p tcp --dport 21 -j ACCEPT

[4.3.10] 起動時に最新の設定が反映されるようにする

gate 登録システムで更新作業が行われた場合には gate-daily によって 新しい設定を反映させるが, 何らかの理由(全学停電など)で再起動等を行ったときにも 自動で設定が行われるようにする.

[4.2.1]で作成したスクリプトは削除しておく.

# rm /etc/init.d/ip-masq

/etc/init.d ディレクトリにスクリプト(のシンボリックリンク)を置く.

# ln -s /usr/local/sbin/gate-ip-masq /etc/init.d/gate-ip-masq

起動時に自動設定させるため, 以下のように update-rc.d コマンドを用いて ディレクトリ /etc/rc?.d にシンボリックリンクをはる. (ln コマンドでもシンボリックリンクをはることは できるが, update-rc.d コマンドを用いれば以下の一行だけで ランレベルごとに /etc/rc?.d/S* や /etc/rc?.d/K* を作れて簡単である. ちなみに削除も簡単である.)

# update-rc.d gate-ip-masq defaults

5. クライアント側の設定ファイルの編集

IPマスカレードを使用する際には、 クライアント側もそれに応じた設定をする必要があります。

実際に動かすことが出来るのかどうか、 近くにあって使用できるパソコンをクライアント用として設定、接続し、 使えるのかどうか実験してみましょう。

[ep local] 地球惑星専攻内では dhcp によってプライベート IP が自動的に割り振られているため, 一般的には以下の設定をする必要はない. ただしここでは iptables の動作確認の意味で以下の設定を行う.

[5.1] Debian GNU/Linux における設定ファイルの編集

[5.1.1] /etc/network/interfaces の編集

ここにはネットワークの設定が書き込まれています。 既に書き込まれている値はインストール時に設定したものですが、 ここをIPマスカレードを利用するために以下のように書き換えます

iface eth0 inet static
        address 192.168.16.10
        netmask 255.255.255.0
        network 192.168.16.0
        broadcast 192.168.16.255
        geteway 192.168.16.1

「 address 」の行には 192.168.16.10 から 192.168.16.254 までの 好きな値を入れてもらって構いません。

※これを新たに下に書き足すのではなく、既にあるものの数値を書き換えて下さい

[ep local] gate-toroku-system によってルーティングが制御されている場合 gate-toroku-system によって与えられているプライベート IP を設定する必要がある.

[5.1.2] /etc/resolv.conf の編集

このファイルにはDNSサーバのIPアドレスが書いてあります。 (インストール時に設定しましたよね?)

ここの1行目を

search ep.sci.hokudai.ac.jp

とします。

[5.1.2] /etc/hosts の編集

ホストテーブルの設定を行います。 内部ネットワークでの DNS は、/etc/hosts ファイルの設定に よって決められています。

/etc/hosts ファイルに

192.168.16.1   blue.ep.sci.hokudai.ac.jp    blue

と書き込み、IPアドレスとホスト名の対応を書いておいてください。




[5.2] Windows95/98/Me における設定

Windows9x 系 の設定はLinuxよりは容易にできます。 (ちなみに画面はWindows 98 Second Edition のものです)

[5.2.1] IP アドレス等の設定

マイコンピュータをクリックして, コントロールパネルを開きます
コントロールパネルから「ネットワーク」をクリックします。
そして「TCP/IP → (ネットワークカード名)」を選択します。
下にある表にしたがって、IP アドレス, ネットマスク, ゲートウェイ, ホスト名, ドメイン名, DNS サーバを 正しく設定して下さい。


ルータ(blue) 以下に接続するローカル機での設定項目
設定タグ 詳細項目 答え方
IP アドレス IP アドレス 192.168.16.10 〜 192.168.16.254
(どれか一つを指定)
ネットマスク 255.255.255.0
ゲートウェイ ゲートウェイ 192.168.16.1
DNS設定 ホスト名 接続するマシンのホスト名(必ず設定してください)
ドメイン名 ep.sci.hokudai.ac.jp
DNS サーバ 133.87.45.70, 133.87.45.66, 133.87.1.11

[5.3] WindowsNT/2000/XP における設定

WindowsNT 系 の設定はLinuxよりは容易にできます。 (ちなみに画面はWindows XP Home Edition のものです)

[5.3.1] IP アドレス等の設定

  • [スタート] から [コントロールパネル] を開く
  • [コントロールパネル] から [ネットワークとインターネット接続] をクリック
  • [ローカルエリア接続] を右クリックし, [プロパティ] を選択
  • [全体] タブにある [インターネットプロトコル(TCP/IP)] を選択
  • [プロパティ] をクリック
  • 「次の IP アドレスを使う」をチェックし、 該当する事項を下の表を参照して入力する。
  • 「次の DNS サーバを使う」をチェックし、該当事項を入力。
  • DNS サーバのアドレス入力が終ったら [詳細設定] に進む。
  • DNS タブをクリック。
  • 「この接続の DNS サフィックス」に下表の 「ドメイン名」 を入力する。
  • 「この接続のアドレスを DNS に登録する」のチェックを外し [OK] を押す。


ルータ(blue) 以下に接続するローカル機での設定項目
設定項目 答え方
IP アドレス 192.168.16.10 〜 192.168.16.254 (どれか1つを指定)
サブネットマスク 255.255.255.0
ドメイン名 ep.sci.hokudai.ac.jp
DNS 優先:133.87.45.70, 代替: 133.87.45.66
デフォルトゲートウェイ 192.168.16.1



6.接続

ルータ、クライアント双方の設定が終了したので実際に接続して IPマスカレードが作動しているのか確かめてみましょう。

[6.1] ハブ経由でサーバとクライアントをつなぐ

サーバ( blue )の内部ネットワーク用のネットワークカードから いったんハブにつなぎ、そのハブからクライアント側の機械に接続してください。

[6.1.1] ハブの接続の仕方

ハブには10BASE-Tケーブル(電話のモジュラーケーブルに似たやつ) を接続するコネクタがいくつかあると思いますが、 サーバ側からのケーブルを「 カスケード接続 」 に使用するところにはつながないでください。 他のところならどこでも構いません。 ちなみに、「カスケード接続」とはハブ同士を繋ぐ時の接続法です。 大抵は一つのハブに一箇所そのためのコネクタがついているはずです。


[6.2] 再起動

クライアント側の機械を再起動させてください。 起動したらネットワークと接続できているのか確認しましょう。 ブラウザなどで外の世界とつながっているのかを確認しても良いですが、 他にも、 2000年度 情報実験第5回「つながらないな,という時は」 などをを参照してどのようにつながっているのかなどを確認してください。 確認できたらひとまずOKです。接続できていなかったら上に張った リンク先などを参照して原因を究明してください。


▲戻る     作成日:2001/09/09(森川靖大)