PPPでNAT


参考文献
FreeBSDフルコース-FreeBSD友の会(技術評論社)
ファイアーウォール&ネットワークセキュリィティ(技術評論社)
参考URL:PPP - Pedantic PPP Primer
内部のネットワークからインターネットへ接続するには、内部で使用されているIPアドレス(プライベートアドレス)とダイアルアップで割り当てられたIPアドレス(グローバルアドレス)を相互に変換する必要があります。この機能のことをNATと呼びます。
FreeBSDでNATを実現するには、
これらの方法があります。

ここでは、ppp内蔵のNAT機能を使用して、インターネットに接続してみます。
尚、自分がNAT機能を使用してインターネットに接続するのに、他のサーバーのミスなどもあり、かなり苦労しました。
その度に FreeBSD-beginners-jpのメーリングリストに質問を投げかけて、ようやくNAT機能が使用できるようになりました。FreeBSD-beginners-jpの皆さんには感謝です。m(__)m

/etc/ppp/ppp.confの設定
ppp.confに、以下の一行を追加して、pppのNATの機能をONにします。
nat enable yes

/etc/rc.confの設定
gateway_enable="YES"を追加します。これがないと、パケットが流れません。
gateway_enable="YES"

DHCPを使用していない場合の設定

以下DHCPサーバーを立ち上げていない方の場合の設定です。

/etc/hostsの設定
hostsに、クライアント側(windows)のマシンのIPアドレスを追加します。IPアドレスは、この場合192.168.0.1〜192.168.255.254の範囲内なら、何でも良いと思います。尚、クライアントが2台ならば同じように2個、3台ならば3個と追加していきます。
127.0.0.1		localhost.foo.jp localhost
192.168.0.15	hoge.foo.jp hoge	#サーバー側(FreeBSD側のIPアドレス)
192.168.0.15	hoge.foo.jp.		#サーバー側(FreeBSD側のIPアドレス)

192.168.0.2	Celeron	Celeron.foo.jp	#クライアント側(windows)のマシンのIPアドレス

Windows98/95(クライアント側)の設定
Windowsのネットワーク→EtherCard-TCP/IP→プロパティを開き、 先ほど/etc/hostsに記述したクライアント(WIndows)側のIPアドレスを、以下のように設定します。
NO_IP2.GIF - 9,398BYTES

ネームサーバー(DNS)がブロバイダーのネームサーバーのIPアドレスに指定してあるか確認をします。
(resolv.confが適切に設定されている場合は、DNSを使用しないでいいと思います・・・。)
NO_DNS.GIF - 6,688BYTES

ゲートウェイアドレスを指定します。
サーバーマシンが一台しかない人は、そのサーバーのアドレスで良いと思います。
NO_GATEWAY.GIF - 6,315BYTES

WINSの解決をしないを選択します。
WINS.GIF - 10,862BYTES

hostsの設定
最後に、Windowsのフォルダの中のHostsを、さっき/etc/hostsで記述したものと、同じものを書いておきます。
# Copyright (c) 1998 Microsoft Corp.
#
# This is a sample HOSTS file used by Microsoft TCP/IP stack for Windows98
#
# This file contains the mappings of IP addresses to host names. Each
# entry should be kept on an individual line. The IP address should
# be placed in the first column followed by the corresponding host name.
# The IP address and the host name should be separated by at least one
# space.
#
# Additionally, comments (such as these) may be inserted on individual
# lines or following the machine name denoted by a '#' symbol.
#
# For example:
#
#      102.54.94.97     rhino.acme.com          # source server
#       38.25.63.10     x.acme.com              # x client host


127.0.0.1		localhost.foo.jp localhost
192.168.0.15	hoge.foo.jp hoge
192.168.0.15	hoge.foo.jp.

192.168.0.2	Celeron	Celeron.foo.jp

DHCPを使用している場合の設定

/etc/dhcpdb.poolをエデイタで開いて、rout(ルーティングアドレス)とdnsv(ネームサーバーアドレス)が、きちんと設定されているか確認をします。
この場合rout=192.168.0.15(ゲートウェイ) dnsv=211.11.96.1 203.139.160.103 127.0.0.1(ブロバイダーDNSプライマリ、セカンダリ、ローカル)になります。
ちなみに、自分の場合この設定が適切で無かったため、はまりました。(^^;;
# # start of /etc/dhcpdb.pool 
#
global:!snmk=255.255.255.0:tmof=32400:
#
# "global"というエントリで全体的な設定
# サブネットマスクは/24に
# UTCとの差は9時間=32400秒
#
internal:tblc=global:rout=192.168.0.15:dht1=500:dht2=850:\
:brda=192.168.0.255:\
:dnsv=211.11.96.1 203.139.160.103 127.0.0.1:dnsd=foo.jp:
#
# "internal"というエントリをつくる
# 全体的な設定globalを参照する
# rout=ルーティングアドレスはこの場合192.168.0.15に。
# dht1とdht2はよくわからない
# brda=クライアントを接続しているネットのbroadcast address・・・linuxではIPマスカレード
# dnsv=ネームサーバー(DNS)のアドレス。複数指定できます。
# dnsd=サーバのドメイン名。自分のサーバードメインに書き換えてください。
#
# 以下にDHCPで割り当てるエントリを記載する
# とりあえず、192.168.0.2〜192.168.0.10まで、DHCPが自由に割り当てられるような設定。
# 必要に応じて、変更してください。

2:  :ipad=192.168.0.2:dfll=3600:maxl=7200:tblc=internal:
3:  :ipad=192.168.0.3:dfll=3600:maxl=7200:tblc=internal:
4:  :ipad=192.168.0.4:dfll=3600:maxl=7200:tblc=internal:
5:  :ipad=192.168.0.5:dfll=3600:maxl=7200:tblc=internal:
6:  :ipad=192.168.0.6:dfll=3600:maxl=7200:tblc=internal:
7:  :ipad=192.168.0.7:dfll=3600:maxl=7200:tblc=internal:
8:  :ipad=192.168.0.8:dfll=3600:maxl=7200:tblc=internal:
9:  :ipad=192.168.0.9:dfll=3600:maxl=7200:tblc=internal:
10: :ipad=192.168.0.10:dfll=3600:maxl=7200:tblc=internal:
#
# end of/etc/dhcpdb.pool
#


Windows98/95(クライアント側)の設定
Windowsのネットワーク→EtherCard-TCP/IP→プロパティを開き、 IPアドレスを自動的に取得するようにします。
NO_IP.GIF - 9,054BYTES

ゲートウェイアドレスを指定します。
サーバーマシンが一台しかない人は、そのサーバーのアドレスで良いと思います。
NO_GATEWAY.GIF - 6,315BYTES

BACK