前のページ 次のページ 目次

3. IP マスカレードの設定

プライベートネットワーク上に重要な情報がある場合には、IP マスカレードを 使う前にもう一度考え直して下さい。IP マスカレードはあなたがインターネットへ 出てゆくゲートウェイともなりますが、逆に外側の世界にいる誰かがあなたの ネットワークに侵入するゲートウェイともなるのです。

3.1 IP マスカレードを組み込んだカーネルのコンパイル

原注: IP マスカレードを使う前に手でロードすることもできますが、 kerneld は使わないで下さい!

3.2 プライベートネットワーク IP アドレスの割り当て

クライアントマシンには公式にはアドレスが割り当てられていないわけですから、 これらのマシンに適切な方法でアドレスを割り当てなければなりません。

IP マスカレード FAQ からの引用:

外部に接続されていないネットワークでどのような IP アドレスを使うべきかに ついて、RFC (#1597) が発行されています。 この目的のために、3つのブロックが予約されています。 私が使っているのは、この中の 192.168.1.n から 192.168.255.n までの255個の クラス C サブネットです。

RFC 1597 からの引用:

Section 3: プライベートアドレス空間

Internet Assigned Numbers Authority (IANA) は、IP アドレス空間のうち
以下の3つのブロックをプライベートネットワーク用に予約しています。

              10.0.0.0        -   10.255.255.255
              172.16.0.0      -   172.31.255.255
              192.168.0.0     -   192.168.255.255

最初のブロックは「24ビットブロック」、2番目のブロックは「20ビット
ブロック」、3番目のブロックは「16ビット」ブロックと呼ばれます。
最初のブロックは単一のクラス A ネットワーク番号以外のなにものでもなく、
2番目のブロックは連続する16個のクラス B ネットワーク番号の集合であり、
3番目のブロックは連続する255個のクラス C ネットワーク番号の集合であることに
注意して下さい。
従って、クラス C ネットワークを使っている場合、マシンのアドレスは 192.158.1.1、192.168.1.2、192.168.1.3、…、192.168.1.x と割り当てる ことになります。

192.168.1.1 は通常ゲートウェイマシン、つまりインターネットに接続された Linux ホストとなります。 192.168.1.0 と 192.168.1.255 はネットワークアドレスとブロードキャストアドレス として予約されています。これらのアドレスをマシンに割り当てることは避けて 下さい。

3.3 クライアントマシンの設定

適切な IP アドレスを設定したら、次は適切なゲートウェイを設定しなければ なりません。普通はそう難しいことではありません。Linux ホストのアドレス (普通は 192.168.1.1)をゲートウェイとして入力すればいいのです。

DNS には任意のサーバーを指定することができますが、 Linux マシンと同じサーバーを指定するのが分かりやすいでしょう。 また、サーチサフィックスとして、任意のドメインを追加することもできます。
訳注: Linux マシンが 0.0.0.0 または 127.0.0.1 (どちらも自分自身を 示すアドレスです) を DNS サーバーとして指定している場合、これをこのまま クライアントマシンに指定してはいけません! この場合には、Linux マシンの IP アドレス(この例では 192.168.1.1)を指定 します。

IP アドレスを設定し直した後、適切なサービスを再起動するか、リブートする ことを忘れないで下さい。

以下の設定方法は、クラス C ネットワークを使い、Linux ホストのアドレスが 192.168.1.1 であると仮定しています。192.168.1.0 と 192.168.1.255 は予約 されていることに注意して下さい。

Windows 95 の設定

  1. ネットワークカードやドライバをインストールしていない場合には、 インストールする。
  2. 「コントロールパネル」/「ネットワーク」を開く。
  3. 「TCP/IP」 がない場合には、追加する。
  4. 「TCP/IP のプロパティ」 の中で「IP アドレス」を開き、 IP アドレスを 192.168.1.x (1 < x < 255) に設定する。 サブネットマスクを 255.255.255.0 に設定する。
  5. 「ゲートウェイ」 の項目に、192.168.1.1 を指定する。
  6. 「DNS 設定」/「DNS サーバーの検索順」 に、Linux ホストが 使っている DNS サーバーを追加する(通常 /etc/resolv.conf にあり ます)。必要に応じて「ドメインサフィックスの検索順」を追加する。
  7. その他の項目は、特に必要がない限り変更しないこと。
  8. すべてのダイアログボックスの 「OK」 ボタンをクリックし、 システムを再起動する。
  9. Linux マシンに Ping し、ネットワーク接続をテストする。 「ファイル名を指定して実行」 を選択し、ping 192.168.1.1 と 入力する。
    (これは LAN の接続をテストしているだけです。 まだ外の世界に ping することはできません。)
  10. 必要に応じて HOSTS ファイルを windows ディレクトリに作成すれば、 LAN 上のマシンをホスト名で参照できるようになります。 windows ディレクトリには、HOSTS.SAM という名前のサンプルファイルが あります。

Windows for Workgroup 3.11 の設定

訳注: 日本語版の Windows for Workgroup 3.11 は、発売されていません。

  1. ネットワークカードやドライバをインストールしていない場合には、 インストールする。
  2. TCP/IP 32b パッケージをインストールしていない場合には、インストールする。
  3. 「Main」/「Windows Setup」/「Network Setup」で、 「Drivers」をクリックする。
  4. 「Network Drivers」セクションで、 「Microsoft TCP/IP-32 3.11b」を選択し、「Setup」を クリックする。
  5. IP アドレスを 192.168.1.x (1 < x < 255) に、サブネットマスクを 255.255.255.0 に、デフォルトゲートウェイを 192.168.1.1 に設定する。
  6. 「Automatic DHCP Configuration」をイネーブルしないこと。 また、Windows NT のドメインに参加していて特に必要のある場合以外には、 「WINS Server」には何も入力しないこと。
  7. 「DNS」 をクリックし、3.3.1 節のステップ6で説明したように 情報を入力する。設定し終ったら 「OK」 をクリックする。
  8. 「Advanced」 をクリックし、 「Enable DNS for Windows Name Resolution」 をチェックする。 「Windows 95 の設定」のステップ10で説明したようにホストファイルを 参照したければ、「Enable LMHOSTS lookup」 をチェックする。
  9. すべてのダイアログボックスの 「OK」 ボタンをクリックし、 システムを再起動する。
  10. Linux マシンに ping し、ネットワーク接続をテストする。 「Start/Run」 を選択し、 ping 192.168.1.1 と入力する。
    (これは LAN の接続をテストしているだけです。 まだ外の世界に ping することはできません。)

Windows NT 3.51 の設定

  1. ネットワークカードやドライバをインストールしていない場合には、 インストールする。
  2. 「メイン」/「コントロールパネル」/「ネットワーク」 を開く。
  3. TCP/IP サービスをインストールしていない場合には、 「ソフトウェアの追加」 メニューを使って TCP/IP プロトコルと関連するコンポーネントを追加する。
  4. 「ネットワークソフトウェアとアダプターカード」「組み込まれているネットワークソフトウェア」セレクションボックス中の 「TCP/IP プロトコル」 を選択する。
  5. 「構成」ボタンをクリックし、「TCP/IP の構成」 ウィンドウで、適切なアダプタを選択する。 例えば、[1]Novell NE2000 Adapter。 IP アドレスを 192.168.1.x (1 < x < 255) に、サブネットマスクを 255.255.255.0 に、デフォルトゲートウェイを 192.168.1.1 に設定する。
  6. 「DHCP 自動構成を有効にする」をイネーブルしないこと。 また、Windows NT のドメインに参加していて、特に必要のある場合以外は、 「WINS サーバー」には何も入力しないこと。
  7. 「DNS」ボタンをクリックし、「Windows 95 の設定」のステップ6で 説明したように適切な情報を入力する。入力し終ったら、「OK」ボタンを クリックする。
  8. 「詳細」ボタンをクリックし、「Windows 名前解決に DNS を 使用する」をクリックする。「Windows 95 の設定」のステップ10で説明した ようにホストファイルを参照したければ、「LMHOSTS の参照を行なう」を クリックする。
  9. すべてのダイアログボックスの 「OK」 ボタンをクリックし、 システムを再起動する。
  10. Linux マシンに Ping し、ネットワーク接続をテストする。 「ファイル/ファイル名を指定して実行」 を選択し、 ping 192.168.1.1 と入力する。
    (これは LAN の接続をテストしているだけです。 まだ外の世界に ping することはできません。)

UNIX ベースのシステムの設定

  1. ネットワークカードをインストールしていなかったり、適切なアダプタ ドライバを組み込んでカーネルをリコンパイルしていない場合には、それを 行なう。
  2. nettools パッケージのような TCP/IP ネットワーキングをインストール していない場合には、インストールする。
  3. IPADDR を 192.168.1.x (1 < x < 255) に、NETMASK を 255.255.255.0 に、GATEWAY を 192.168.1.1 に、BROADCAST を 192.168.1.255 に設定する。
    例えば Red Hat Linux システムの場合には、 /etc/sysconfig/network-scripts/ifcfg-eth0 ファイルを編集するか、 コントロールパネルを使って上の設定を行ないます。
    (SunOS や BSDi、Slackware Linux などでは別の設定方法があります…)
  4. /etc/resolv.conf に DNS サーバーと ドメインサーチサフィックスを追加する。
  5. 必要に応じて、/etc/networks ファイルを更新する。
  6. 適切なサービスを再起動するか、システムを再起動する。
  7. ping コマンドを発行し、ゲートウェイマシンへの接続をテストする。 ping 192.168.1.1
    (これは LAN の接続をテストしているだけです。 まだ外の世界に ping することはできません。)

NCSA Telnet パッケージがインストールされた DOS の設定

  1. ネットワークカードをインストールしていない場合には、インストールする。
  2. 適切なパケットドライバをロードする。 IRQ が 10、ハードウェアアドレスが 0x300 に設定されている NE2000 カードの 場合、nwpd 0x60 10 0x300 を実行する。
  3. 新しいディレクトリを作成し、 次のコマンドを実行して NCSA telnet パッケージを展開する。 pkunzip tel2308b.zip
  4. テキストエディタで config.tel ファイルをオープンする。
  5. myip=192.168.1.x (1 < x < 255)、netmask=255.255.255.0 と 設定する。
  6. この例では、hardware=packet, interrupt=10, ioaddr=60 と 設定する。
  7. 少なくとも一台のマシンをゲートウェイとして設定する必要があります。 これはつまり Linux ホストのことです。
    name=default
    host=yourlinuxhostname
    hostip=192.168.1.1
    gateway=1
    
  8. DNS の設定をする。
    name=dns.domain.com ; hostip=123.123.123.123; nameserver=1
    
    原注: Linux ホストが使用している DNS 情報で置き換えて下さい。
  9. config.tel ファイルをセーブする。
  10. Linux マシンに telnet して、ネットワーク接続をテストする。 telnet 192.168.1.1

OS/2 やマッキントッシュのような、それ以外のシステムの設定

上で説明したのと同様な設定を行ないます。 これらのシステムの設定について書いてみようと思う方は、 詳細な設定方法を achau@wwonline.com に メールして下さい。

3.4 IP フォワーディングポリシーの設定

この時点で、カーネルと必要なパッケージがインストールされ、モジュールが ロードされているはずです。また、クライアントマシンの IP アドレス、 ゲートウェイ、それに DNS 設定もすべてできているはずです。

あと残っているのは、ipfwadm を使って適切なパケットを適切なマシンに 転送することだけです。

ipfwadm -F -a m -S yyy.yyy.yyy.yyy/x -D 0.0.0.0/0 
ipfwadm -F -p deny 
ここで x はサブネットのクラスによって決まる数(次の表を参照して下さい)、 また yyy.yyy.yyy.yyy はネットワークアドレスです。
ネットマスク    | x  | サブネット
~~~~~~~~~~~~~~~~|~~~~|~~~~~~~~~~~~~~~
255.0.0.0       | 8  | Class A
255.255.0.0     | 16 | Class B
255.255.255.0   | 24 | Class C
255.255.255.255 | 32 | Point-to-point
例えば、クラス C サブネットを使っている場合には、次のように入力します。
ipfwadm -F -a m -S 192.168.1.0/24 -D 0.0.0.0/0 
ipfwadm -F -p deny 
セキュリティを強化するために、-V オプションを追加することが できます。

マシンごとに設定することもできます。 例えば、192.168.1.2 と 192.168.1.8 にインターネットへのアクセスを許可し、 他のマシンには禁止したい場合には、次のように入力します。

ipfwadm -F -a m -S 192.168.1.2/32 -D 0.0.0.0/0 
ipfwadm -F -a m -S 192.168.1.8/32 -D 0.0.0.0/0 
ipfwadm -F -p deny 

これらのコマンドを /etc/rc.local ファイル(あるいは適当と思われる ファイル)に追加しておくのが良いでしょう。 そうでなければ、IP マスカレードが必要になるたびに実行する必要があります。

3.5 IP マスカレードをテストする

設定お疲れ様でした。いよいよ試運転です。 Linux ホストとインターネットの接続に問題がないことを確認しておいて下さい。

クライアントマシンから「インターネット上の!!!」ウェブサイトに アクセスして、うまくつながるかどうか見てみましょう。 DNS の設定が間違っているかもしれないので、 最初はホスト名ではなく IP アドレスを使うことをおすすめします。

例えば、Netscape のサイト、http://home.netscape.com にアクセスするには http://198.95.249.78 を使います。

ヨットが見えましたね? おめでとうございます! IP マスカレードはちゃんと動いています! 次の段階としてホスト名でのアクセスや、 telnet、ftp、Real Audio、True Speech などのクライアントを 試してみることができます。 でも PING はまだダメだということは忘れないで下さい!

私自身、ここまでは何のトラブルもなく設定できました。 この素晴らしい機能を実現してくれた人たちに感謝します。


前のページ 次のページ 目次