FreeBSD 2.2 におけるユーザモード PPP ("IIJ-PPP" としても知られています) は, 現在ダイアルアップインターネット環境における Packet Aliasing をサポートしています. この機能は, "Masquerading", "IP Aliasing", そして "Network Address Translation" としても 知られており, この機能を生かせば FreeBSD システムをイーサネットを基盤とした ローカルエリアネットワーク (LAN) とインターネットサービスプロバイダ間の ダイアルオンデマンドルータとして活用することができます. LAN 上のシステムは FreeBSD システムを経由することにより, 単一のダイアルアップ接続を通してインターネットと情報を交換することが できるのです.
このガイドは
FreeBSD システムをダイアルアウト接続できるように設定し,
ダイアルアウト接続をネットワーク上の他のシステムと共用し,
Windows システムが FreeBSD システムをインターネットへの ゲートウェイとして用いる
このガイドは IP Aliasing の設定を助けることに重点を置いたものですが, 個々の構成要素をインストールし設定する時に必要となる具体例も含まれていますから, どの章をとっても, FreeBSD でネットワークに関する様々な設定を行うときの 助けになるでしょう.
ppp は通常 一台の ローカルな FreeBSD マシンに サービスを提供するために設定されていますが, LAN に接続された資源とインターネット, またはその他のダイアルアップサービス間の「ゲートウェイ」(または「ルータ」)として 使用することもできます.
このガイドでは, 典型的なローカルエリアネットワークでは, 次のような接続を行っていると想定しています.
+---------+ ----> ダイアルアップインターネット接続 | FreeBSD | \ (例: So-net, Infoweb, RIMNET, 等) | |-------- | "Curly" | | | +----+----+ | |----+-------------+-------------+----| <-- イーサネットネットワーク | | | | | | +----+----+ +----+----+ +----+----+ | | | | | | | Win95 | | WFW | | WinNT | | "Larry" | | "Moe" | | "Shemp" | | | | | | | +---------+ +---------+ +---------+
このガイド中のネットワークでは, 次のようなことを想定しています.
三台のワークステーションとサーバはイーサネットでつながっています.
FreeBSD サーバ ("Curly") は 'ed0' として設定された NE-2000 アダプタを使用しています.
Windows-95 ワークステーション ("Larry") は Microsoft 「ネイティブ」な 32 ビット TCP/IP ドライバを使用しています.
Windows for Wrokgroups ワークステーション ("Moe") は Microsoft の 16 ビット TCP/IP エクステンションを使用しています.
Windows NT ワークステーション ("Shemp") は Microsoft 「ネイティブ」な 32 ビット TCP/IP ドライバを使用しています.
イーサネットで結ばれた LAN 内部での IP アドレスは, RFC-1597 で提案された「予約」アドレスの中から選ばれています. 具体的には以下の通り.
名前 | IP Address | 備考 |
---|---|---|
Curly | 192.168.1.1 | FreeBSD マシン |
Larry | 192.168.1.2 | Win95 マシン |
Moe | 192.168.1.3 | WfW マシン |
Shemp | 192.168.1.4 | Windows NT マシン |
このガイドではモデムは FreeBSD マシンの一番目のシリアルポート ('/dev/cuaa0' DOS 用語では 'COM1:') に接続されているものとします.
最後に, インターネットサービスプロバイダ (ISP) は PPP/FreeBSD サイドと ISP サイドの両方に自動的に IP アドレスを割り当てるものとします. (つまり, リンクの両端で動的 IP アドレス割り当てが行われます.) PPP のダイアルアウトの設定の詳細については, 第 2 章 「FreeBSD システムの設定」で扱います.
ローカルエリアネットワーク (LAN) の統合を進める前に FreeBSD マシンについて基本的な情報を三つ知っておく必要があります.
FreeBSD システムのホスト名 (ガイドの例の中では "Curly"),
ネットワークの設定,
/etc/hosts ファイル. (ネットワーク内の 他のシステムの名前を IP アドレスをリストにしたもの)
FreeBSD システムをネットワークインストールした場合, これらの幾つかはすでに設定されている場合があります.
インストール時に FreeBSD システムの設定を正しく行った自信がある場合でも, 後のステップでつまずかないよう, もう一度見直しておくと良いでしょう.
FreeBSD システムのインストール時に, マシンのホスト名が指定, 保存されている場合があります. 確認のため, 以下のコマンドをプロンプトから入力してください.
FreeBSD システムのホスト名が表示されたはずです. もしホスト名が正しければ (すぐわかるでしょ :-), 項2.2 まで進んでください.
例えば, ガイド中のネットワークでは, インストール中 / 後にホスト名を正しく設定していれば, 'hostname` コマンドは 'curly.my.domain' を返します. (ここでは ".my.domain" の部分はあまり気にしないでください. それは後で片付けます. ここで大事なのは最初のドットまでの部分です.)
FreeBSD のインストール時にホスト名を設定していない場合, たぶん 'myname.my.domain` という答が返ってくるはずです. /etc/rc.conf を編集し, マシンに名前をつけてください.
念のため: システム設定ファイルを編集するためには 'root' でログインする必要があります!
警告: システム設定ファイルにおかしな変更を 加えた場合, システムが正常に **起動しない** 可能性があります! くれぐれもご注意を!
ブート時に FreeBSD システムのホスト名を決定している設定ファイルは /etc/rc.conf です. デフォルトのテキストエディタ ('ee') を使ってこのファイルを編集しましょう.
ユーザ 'root' でログインし, 以下のコマンドを入力して /etc/rc.conf をエディタに読み込みましょう.
矢印キーや scroll down を使って, FreeBSD システムのホスト名を 記述した部分を見つけましょう. デフォルトではこうなっているはずです.
これを次のように変えましょう.(あなたの環境に合わせてください)ホスト名を変更したら, 'Esc' キーを押してコマンドメニューを呼び出して下さい. "leave editor" を選択し, 確認を求めてきたら "save changes" を選びましょう.
もう一度確認ですが, このガイドでは FreeBSD システムのイーサネットインタフェイスとして 'ed0' が用いられていると想定しています. これは NE-1000, NE-2000, WD/SMC models 8003, 8013 と Elite Ultra (8216) ネットワークアダプタがデフォルトで使用するものです.
これ以外のネットワークアダプタは FreeBSD では異なったデバイス名で参照されます. FAQ をチェックして, ネットワークアダプタの記述を探してください. アダプタのデバイス名が分からない場合は, FreeBSD FAQ を読んで, 使用中のカードのデバイス名を確かめ, 以下のステップで登場するデバイス名をその名前 (例えば 'de0', 'zp0' など) に読み替えてください.
ホスト名と同様, イーサネットインタフェイスも FreeBSD システムのインストール時に設定されている場合があります.
FreeBSD システムの (イーサネットその他の) インタフェイスに関する設定を表示するために, 以下のコマンドを入力してください.
(フツーの言葉に直すと, 「うちのネットワークデバイスの InterFace CONFIGuration を見せて」って意味です)例えば...
# ifconfig -a ed0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 inet 192.168.1.1 netmask 0xffffff00 broadcast 192.168.1.255 ether 01:02:03:04:05:06 lp0: flags=8810<POINTOPOINT,SIMPLEX,MULTICAST> mtu 1500 tun0: flags=8050<POINTOPOINT,RUNNING, MULTICAST> mtu 1500 sl0: flags=c010<POINTOPOINT,LINK2,MULTICAST> mtu 552 ppp0: flags=8010<POINTOPOINT,MULTICAST> mtu 1500 lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384 inet 127.0.0.1 netmask 0xff000000 # _
この例では, 以下のデバイスが表示されました.
ed0: イーサネットインタフェイス
lp0: パラレルポートインタフェイス (このガイドでは触れません)
tun0: 「トンネル」デバイス ユーザモード ppp が使うやつです!
sl0: SL/IP デバイス (このガイドでは触れません)
ppp0: もう一つの PPP デバイス (カーネル ppp 用. このガイドでは触れません)
lo0: 「ループバック」デバイス (このガイドでは触れません)
この例では, 'ed0' デバイスは「上がって」動作しています. 以下の表示がキーになります.
このデバイスのステータスは "UP" で,
インターネット ("inet") アドレス (この例では 192.168.1.1) を持ち,
有効なサブネットマスク ("netmask" 0xffffff00 は 255.255.255.0 に等しい) を持ち,
有効なブロードキャストアドレス (この例では 192.168.1.255) を持っている.
もしイーサネットカードに関する表示がこんな感じだったら,
イーサネットカードはまだ設定されていません.イーサネットインタフェイスの設定が正しく行われているなら, 項2.4 まで進んでください.
年のため: システム設定ファイルを編集するためには 'root' でログインする必要があります!
警告: システム設定ファイルにおかしな変更を 加えた場合, システムが正常に **起動しない** 可能性があります! くれぐれもご注意を!
ブート時に FreeBSD システムのネットワークインタフェイスの設定を決定している設定ファイルは /etc/rc.conf です. デフォルトのテキストエディタ ('ee') を使ってこのファイルを編集しましょう.
ユーザ 'root' でログインし, 以下のコマンドを入力して /etc/rc.conf をエディタに読み込みましょう.
# ee /etc/rc.conf
/etc/rc.conf の先頭から 20 行ほどの所に, システムのブート時にアクティブにするネットワークインタフェイスを記述する節があります. デフォルトの設定ファイルでは, 当該行は次のようになっています.
FreeBSD に 'ed0' という名前の 別のデバイスを加えることを伝えるには, この行を修正する必要があります. この行を次のように変えてください.
(ループバックデバイス ("lo0") と イーサネットデバイス ("ed0") の定義の間に スペースを入れるのを忘れないでください!)
念のため: イーサネットカードの名前が 'ed0' でない場合, きちんとその正しいデバイス名を指定してください
FreeBSD をネットワークインストールした場合, 'network_interfaces=' の行がすでにイーサネットアダプタを参照している場合があります. その場合, それが正しいデバイス名かどうかを確認してください.
次に, イーサネットデバイス ('ed0') インタフェイスの設定を行いましょう.
アクティブにするインタフェイスの指定行の下に, 各インタフェイスに対する実際の設定を記述する行があります. /etc/rc.conf のデフォルトでは, この一行があるだけです.
この下に 'ed0' デバイスの 設定を記述する行を加えましょう.
FreeBSD をネットワークインストールした場合, 'ifconfig_ed0=' の行がループバックデバイスの定義の下に存在する場合があります. その場合, 記述された値が正しいものであるかどうか確認してください.
このガイドでは, ループバックデバイスの定義のすぐ次の行に次の一文を加えることにします.
/etc/rc.conf の編集が終わったとき, ネットワークインタフェイスの記述と設定を行う行は, だいたいこんな感じになっているはずです.
--- network_interfaces="ed1 lo0" # List of network interfaces (lo0 is loopback). ifconfig_lo0="inet 127.0.0.1" # default loopback device configuration. ifconfig_ed1="inet 192.168.1.1 netmask 255.255.255.0" ---
/etc/rc.conf の編集が終わったら, 'Esc' キーを押してコントロールメニューを呼び出して下さい. "leave editor" を選択し, 確認を求めてきたら "save changes" を選びましょう.
デフォルトでは, FreeBSD システムは様々なネットワークインタフェイス間で IP パケットのフォワードを行いません. 言い換えると, ルーティングの機能 (ゲートウェイの機能とも言えます) は無効にされています.
FreeBSD システムただ一台をインターネット用のワークステーションとして使用し, LAN ノードと ISP 間とのゲートウェイとして使用しない場合は, 項2.4 まで進みましょう.
PPP プログラムを使用してローカルの FreeBSD マシンを LAN のワークステーション (つまりルータ) としても機能させる場合は, IP フォワーディングを有効にする必要があります.
IP パケットのフォワーディングを有効にするためには /etc/rc.conf を編集する必要があります.
このファイルは /etc/defaults/rc.conf によるデフォルト値を上書きします. デフォルトゲートウェイの設定はそのファイルの 以下の行で行われています.
gateway_enable="NO"
上書きするには, 以下の様な行を
gateway_enable="YES"
/etc/rc.conf に追加します.
注意: FreeBSD システムのインストール時に IP フォワーディングが有効になっていた場合, すでに 'gateway_enable=YES' という設定が行われている場合があります.
FreeBSD システムの LAN に関する設定の最後のステップは, ローカルエリアネットワーク (LAN) に接続された様々なシステムのホスト名と TCP/IP アドレスのリストをつくることです. このリストは '/etc/hosts' の中に記述されます.
デフォルトの状態では, このファイルにはホスト名が一つしか含まれていません. ループバックデバイス ('lo0') のホスト名とアドレスです. ネットワークに関する約束事にしたがって, このデバイス名はいつも "localhost" と名付けられ, 127.0.0.1 という IP アドレスを持つことになっています 項2.2.
/etc/hosts を編集するために, 以下のコマンドを入力してください.
ファイルの終りまで一気に移動して, (途中のコメントも気をつけて見ておきましょう. 有益な情報がいくつか書いてありますよ!) LAN 上のホストの IP アドレスとホスト名を入力してください. ガイド中のネットワークでは次のようになります.
192.168.1.1 curly curly.my.domain # FreeBSD システム 192.168.1.2 larry larry.my.domain # Windows '95 システム 192.168.1.3 moe moe.my.domain # Windows for Workgroups システム 192.168.1.4 shemp shemp.my.domain # Windows NT システム
('127.0.0.1 localhost' のエントリが書かれた行は変更する必要はありません.)
入力を終えたら, 'Esc' キーを押してコントロールメニューを呼び出してください. "leave editor" を選択し, 確認を求めてきたら "save changes" を選びましょう.
おめでとう! これで FreeBSD システムはネットワークに接続された UNIX システムとして設定されました. /etc/rc.conf を変更した場合, ここで FreeBSD システムをリブートしてください. これには二つの大きな目的があります.
インタフェイスの設定に加えた変更を反映させ,
システムが設定エラーを報告せずに再起動することを確かめるためです.
システムのリブートが完了したら, ネットワークインタフェイスのテストを行ってください.
ループバックデバイスが正しく設定されているかどうか確かめるために, 'root' でログインしてこう入力してください.
こういうメッセージが見えるはずです.
# ping localhost PING localhost.my.domain. (127.0.0.1): 56 data bytes 64 bytes from 127.0.0.1: icmp_seq=0 ttl=255 time=0.219 ms 64 bytes from 127.0.0.1: icmp_seq=1 ttl=255 time=0.287 ms 64 bytes from 127.0.0.1: icmp_seq=2 ttl=255 time=0.214 m [...]
イーサネットデバイスが正しく設定されているかどうか確かめるために, こう入力してください.
こういうメッセージが見えるはずです.
# ping curly PING curly.my.domain. (192.168.1.1): 56 data bytes 64 bytes from 192.168.1.1: icmp_seq=0 ttl=255 time=0.219 ms 64 bytes from 192.168.1.1: icmp_seq=1 ttl=255 time=0.200 ms 64 bytes from 192.168.1.1: icmp_seq=2 ttl=255 time=0.187 ms [...]
この二つの例で大事なのは, ホスト名 (loopback と curly) が正しく IP アドレス (127.0.0.1 と 192.168.1.1) に関連づけられているのを確認することです. これで /etc/hosts ファイルの内容が正しいかどうか確認できます.
もし "curly" の IP アドレスが 192.168.1.1 ではない, あるいは "localhost" のアドレスが 127.0.0.1 ではない場合, 項2.4 まで戻って /etc/hosts の内容を見直してください.
ping コマンドの出力でホスト名とアドレスは正しく対応づけられているが, 何か他のエラーが表示されるなら, インタフェイスの設定がうまく行っていないのでしょう. 第2章 まで戻って最初から確認し直してください.
チェックが全部終わったら, つぎの章に進んでください.
ppp ドライバには, 基本的には "Interactive" と "Automatic" という二つの動作モードがあります.
Interactive モードでは,
手動で ISP に接続を確立し,
ネットサーフィンを楽しんだり, ファイルやメールを転送したりのなにやかやの後で,
手動で ISP との接続を切断することになります.
Automatic モードでは, PPP プログラムは FreeBSD システムが内部的にどういう処理を行っているかじっと観察していて, 必要に応じて自動的に ISP と接続, 切断し, あたかもネットワークがインターネットに直接接続されているかのように振る舞います.
この章ではこの二つのモードのうち, `ppp` 環境を "Automatic" モードで動作させる設定に重点を置いて説明します.
注意: FreeBSD の最近のバージョンではサンプルファイルが /usr/share/examples/ppp にありますので この段階は不要です.
PPP 用のファイルに何か変更を加える前に, FreeBSD システムのインストール時につくられたデフォルトのファイルのコピーを取っておきましょう.
'root' でログインして, 次の手順を踏んでください.
'/etc' ディレクトリに移ります.
# cd /etc
'ppp' ディレクトリ内のオリジナルのファイルのバックアップをつくります.
# cp -R ppp ppp.ORIGINAL
これで '/etc' ディレクトリの下に 'ppp' と 'ppp.ORIGINAL' という二つのサブディレクトリができました.
FreeBSD のインストール中に, たくさんの設定ファイルのサンプルが /usr/share/examples/ppp ディレクトリの中につくられます. 少し時間を取ってファイルの内容を眺めてみてください. これらのサンプルは実際の稼働例に基づいたもので, PPP プログラムの機能や特長がよくあらわれています.
これらのサンプルファイルを参考にし, 必要に応じて実際の設定に生かすことを強くお勧めします.
`ppp` プログラムに関する詳細な情報がほしいなら, ppp の man を 読んでください.
PPP ダイアラで使われている `chat` スクリプト言語に関する詳細な情報がほしいなら, chat の man を読んでください.
この章の残りの部分は PPP 関連のファイルのお勧め設定です.
'/etc/ppp/ppp.conf' ファイルにはダイアルアウト PPP 接続に必要な設定と情報が含まれています. このファイルには複数の接続の設定が含まれていてもかまいません. FreeBSD ハンドブック (XXX URL? XXX) には, このファイルの内容と文法に関する詳しい記述があります.
この章では, ダイアルアウト接続を行うための必要最小限の設定についてのみ説明します.
下の /etc/ppp/ppp.conf ファイルは, ガイド中の LAN において, ダイアルアウトインターネットゲートウェイの機能を提供するのに十分なものです.
注意: ppp.confの文法の完全なものはppp(8)に記述されています. 特に, コロンで終了しない行 (例えばdefault:やinteractive:), “!”で始まるコマンド (例えば!include) はラベルではないことに注意してください. また, コメントはインデントされなければいけないにも注意してください!
################################################################ # PPP 設定ファイル ('/etc/ppp/ppp.conf') # # デフォルト設定; PPP が発動した時常に実行され, 全ての # システム設定に適用される. ################################################################ default: set device /dev/cuaa0 set speed 57600 disable pred1 deny pred1 disable lqr deny lqr set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 5 \"\" ATE1Q0M0 OK-AT-OK\\dATDT\\T TIMEOUT 40 CONNECT" set redial 3 10 # # ################################################################ # # interactive モード用の設定: # # `ppp -alias interactive` で発動せよ. # ################################################################ interactive: set authname _リモートシステムでのユーザ ID_ set authkey _リモートシステムでのパスワード_ set phone 1-800-123-4567 set timeout 300 set openmode active accept chap # ################################################################ # # demand-dial (automatic) モードではこの設定が使われる: # # 'ppp -auto -alias demand' で発動せよ. # ################################################################ demand: set authname _リモートシステムでのユーザ ID_ set authkey _リモートシステムでのパスワード_ set phone 1-800-123-4567 set timeout 300 set openmode active accept chap set ifaddr 127.1.1.1/0 127.2.2.2/0 255.255.255.0 add 0 0 127.2.2.2 ################################################################# /etc/ppp/ppp.conf はこれでおしまい このファイル - 実際のシステムから持ってきたものですが - には, 設定に関連する三つのセクションがあります.
'default:' セクションには, このファイルの他のどのセクションからも参照される値と設定がおさめられています. このセクションの内容が, 暗黙の内に他のセクションの設定に書き加えられるものと考えておけば良いでしょう.
ここは全てのダイアルアップセッションにおいて共通な 「グローバルなデフォルト設定」を置いておくのに丁度良い場所です. 例えばモデムの設定やダイアルの前準備等の, 通常接続先のシステムに応じて変更する必要のない設定を置くのに特に適しています.
サンプルとして挙げた '/etc/ppp/ppp.conf' ファイルの "default" セクションを一行づつ見ていきましょう.
この文は PPP プログラムに一番目のシリアルポートを使用するよう通知しています. FreeBSD 下における '/dev/cuaa0' デバイスとは, DOS, Windows, Windows 95 なんかで言うところの "COM1:" と同じポートのことです.モデムが COM2: につながれている場合は, '/dev/cuaa1' を指定してください. COM3: の場合は '/dev/cuaa2' です.
この文はシリアルポートとモデム間での送信 / 受信速度を設定しています. この例で使用されているのは 28.8k のモデムですが, 値を 57600 に設定しておけば, 最近のモデムに組み込みのデータ圧縮機能のおかげでスループットが上がり, シリアルリンク間でより高い転送速度を得ることができます.
モデムとの通信に問題がある場合, この設定を 38400, あるいは 19200 まで下げてみてください.
この二行は PPP プログラムの "CCP/Predictor type 1" 圧縮機能を無効にしています. 現在のバージョンの `ppp` は draft Internet standards に従ったデータ圧縮法をサポートしていますが, 残念なことに, 多くの ISP では, この機能をサポートしていない機器が使用されています. どちらにせよ多くのモデムは実行時に圧縮を行っていますから, FreeBSD 側でこの機能を無効にし, リモート側がこの機能を要求してきた場合に拒否しても, 大してパフォーマンスは落ちないでしょう.
この二行は Point-to-Point protocol (PPP) の完全な仕様の一部である "Line Quality Reporting" (回線品質報告) 機能を制御しています. (詳細は RFC-1989 を参照してください.)
一行目 "disable lqr" は回線の品質状態をリモートエンドのデバイスへ報告しないよう, PPP プログラムに命じています.
二行目, "deny lqr" はリモートエンドからの回線品質報告要求を拒否するよう, PPP プログラムに命じています.
最近のダイアルアップ用のモデムには大抵自動エラー検出 / 訂正機能がついていますし, LQR 報告機能は多くのベンダの製品で完全には実装されていませんから, 通常はこの二行をデフォルト設定に加えておいても大丈夫でしょう.
set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 5 \"\" ATE1Q0M0 OK-AT-OK\\dATDT\\T TIMEOUT 40 CONNECT"
注意: (このドキュメントでは改行が入っているように見えるかもしれませんが, 実際にはこの文の途中で改行を入れないでください.)
この行は PPP プログラムにモデムのダイアル法と, 以下のようなダイアル時の基本的なガイドラインを指定しています.
モデムが "BUSY" リザルトコードを返した場合, ダイアル試行は失敗したものとし,
モデムが "NO CARRIER" リザルトコードを返した場合もダイアル試行は失敗したものとし,
PPP プログラムは以下のイベント各々が 5 秒間のタイムアウト期間内に終了するものと想定する.
初期状態では, PPP プログラムはモデムに対して何も想定していない (上の例の \"\" の部分で指定されている)
プログラムはモデムにモデム初期化文字列 "ATE1Q0M0" を送り, "OK" という返事が返ってくるのを待つ. レスポンスが帰ってこない場合, プログラムはモデムに attention コマンド ("AT") を送り, 再び "OK" という返事が返ってくるのを待つ.
プログラムは一秒間待ち時間を入れ ("\\d" の部分で指定されている), モデムにダイアリング文字列を送る. "ATDT" はトーンダイアリングを用いてダイアルを行う場合の標準モデムコマンドであり, 回線がトーンダイアルではない場合, "ATDT" を "ATDP" と置換する必要がある. "\\T" 文字列は実際の電話番号が入る場所である ("set dial 123-4567" で指定された値が自動的に挿入される).
最後に, (最大) 40 秒のタイムアウトの前に, PPP プログラムはモデムが "CONNECT" リザルトコードを返すと想定している.
この対話におけるいかなる時点での失敗もダイアリングの失敗と解釈され, PPP プログラムは接続に失敗します.
(PPP ダイアラで使用されているミニスクリプト言語の詳細については "chat" の man を参照してください.)
この行はダイアル接続を直ちに確立することができなかった場合, リダイアルまで 10 秒の間隔を挟んで (必要な場合は 3 回まで) 再試行するよう, PPP プログラムに指定しています.
'interactive:' セクションには, 特定のリモートシステムと「対話的 (interactive)」に PPP セッションを確立するときに使用される値と設定がおさめられています. このセクションの設定には, "default" セクションの内容が自動的に追加されます.
このガイド中の "interactive" セクションの例では, 接続先のリモートシステムは, 何らかの風変わりなスクリプト言語を使用しないでもユーザ認証を行うことができるものと想定しています. つまり, このサンプルでは接続を確立するために CHAP プロトコルを使用します.
おおざっぱに言うと, もし Windows95 のダイアラの「接続」ボタンを押しただけで接続が確立できる環境なら, このサンプルはうまく働きます.
一方, もし Microsoft Windows95 のダイアルアップネットワーク機能を利用して ISP に接続するとき, Microsoft Plus! の「ダイアルアップスクリプトツール」に頼るか, Windows 95 の接続オプションで「ダイアル後にターミナルウィンドウを表示する」を選択しなければならない場合, ISP と接続を行うためには, PPP 設定ファイルのサンプルや ppp の man で "expect / response" スクリプトの例を参考にする必要があるでしょう. "set login" コマンドはそのような目的に使用できます.
まあ、それよりも PAP / CHAP 認証を提供している ISP を探した方が良いかもしれませんけどね!
この設定例は, 以下のプロパイダと接続するために使えることが分かっています.
Various Shiva LanRovers
The IBM Network (http://www.ibm.net/)
AT&T WorldNet (http://att.com/worldnet/)
Erol's (http://www.erols.com/)
サンプルとして挙げた '/etc/ppp/ppp.conf' ファイルの "interactive" セクションを一行づつ見ていきましょう.
リモートシステムでログイン時に使用する名前を指定します.
リモートシステムで使用するパスワードです.
リモートシステムの電話番号です. PBX (Private Branch eXchange, 構内交換機) の内部にいる場合は, 9, を番号の前に加えることができます.
300 秒 (5 分) 間データが流れなかった場合, 自動的に回線を切断するよう PPP プログラムに命じています. この値は必要に応じて変更することができます.
モデムが接続したらすぐに交渉を試みるよう PPP プログラムに命じています. 自動的にこれを行うリモートサイトもありますが, 自分からは行わないサイトもあります. このオプションを使えば, リンクのこちら側でイニシアチブを取って接続確立を試みることができます.
accept chap
ユーザ認証に "Challenge-Handshake Authentication Protocol" を用いるよう PPP プログラムに命じています. ローカル側とリモート側でユーザ ID とパスワードとしてやり取りされる値は, 上の 'authname' と 'authkey' のエントリからとられます.
特定のリモートサイトと「ダイアル・オン・デマンド」な PPP セッションを確立するときに使用される値と設定がおさめられています. このセクションの設定にも, "default" セクションの内容が自動的に追加されます.
最後の二行を除いて, このセクションの設定は "interactive" モードの設定で用いられているのと全く同じものです.
前の方でも述べているように, このガイド中にあらわれる "demand" セクションの例では, 接続先のリモートシステムは CHAP プロトコルを利用した接続確立法を理解できるものと想定しています.
サンプルとして挙げた '/etc/ppp/ppp.conf' ファイルの "demand" セクションを一行づつ見ていきましょう.
リモートシステムでログイン時に使用する名前を指定します.
リモートシステムで使用するパスワードです.
リモートシステムの電話番号です.
300 秒 (5 分) 間データが流れなかった場合, 自動的に回線を切断するよう PPP プログラムに命じています. この値は必要に応じて変更することができます.
モデムが接続したらすぐにネゴジェーションを試みるよう PPP プログラムに命じています. 自動的にこれを行うリモートサイトもありますが, 自分からは行わないサイトもあります. このオプションを使えば, リンクのこちら側でイニシアチブを取って接続確立を試みることができます.
ユーザ認証に "Challenge-Handshake Authentication Protocol" を用いるよう PPP プログラムに命じています. ローカル側とリモート側でユーザ ID とパスワードとしてやり取りされる値は, 上の 'authname' と 'authkey' のエントリからとられます.
PPP リンクのローカル側とリモート側の「偽の」 IP アドレスのペアを設定し, ローカル側の 'tun0' (トンネル) デバイス に 127.1.1.1 の, リモート側には 127.2.2.2 の IP アドレスを生成するように PPP プログラムに命じています. 両方のアドレスに '/0' をつけておけば, それらのアドレスの先頭から 0 ビットまでが重要な部分で, 残りの部分はリンクが確立されたときに, ローカル側とリモート側のシステムの交渉によって変更してもよい (というか, この場合は必ず変更されなければならない) と PPP プログラムに教えることができます. 255.255.255.0 という文字列は, それらの仮想デバイス間に適用されるサブネットマスク値を PPP プログラムに教えています.
注意. この例では ISP がリンクの両端に対して IP アドレスを動的に提供するものと想定しています! もし ISP からローカル側で使用すべき具体的な IP アドレスの割り当てを受けている場合, 127.1.1.1 の代わりにその IP アドレスを入力してください.
逆に, ISP がリモート側で使用する具体的な IP アドレスを指定している場合, 127.2.2.2 の代わりにその IP アドレスを入力してください.
これらの場合においても, 各アドレスの後ろの '/0' を残しておくのが良い考えでしょう. もしそれらのアドレスが実際に変更された場合でも, PPP プログラムはその変更に対応することができるからです.
最後の行では, ISP システムの (偽の) IP アドレスを指す IP トラフィックのデフォルトルートを追加するよう, PPP プログラムに命じています.
注意: 前の行で 127.2.2.2 の代わりに ISP に指定されたアドレスを用いている場合, ここでも 127.2.2.2 の代わりにその番号を使用してください.
この「偽」の IP トラフィックルートを追加しておけば, アイドル中の PPP プログラムは以下の動作を自動的に行うことができます.
ISP と「自動的に」 接続を確立し,
リンクのローカル側とリモート側の IP アドレスを再設定し,
ローカルのマシンと ISP 間でパケットを転送する.
"default" セクションの timeout の値に指定された秒間 TCP/IP のトラフィックが流れなかった場合, PPP プログラムは自動的にダイアルアップ接続を切断し, 始めの状態に戻ります.
PPP の設定を完全にするために必要なもう一つのファイルが '/etc/ppp/ppp.linkup' です. このファイルにはダイアルアップリンクが確立した後に, PPP プログラムが実行すべき命令が含まれています.
ダイアルアップ接続の場合, PPP プログラムはリモート側の偽の IP アドレス (前の章の例では 127.2.2.2) に対して生成されたデフォルトルートを削除し, (ダイアルアップ接続の確立中にわかる) 実際のリモートエンドの IP アドレスを指す新しいデフォルトルートをインストールする必要があります.
典型的な '/etc/ppp/ppp.linkup' ファイル:
#########################################################################= # PPP Link Up File ('/etc/ppp/ppp.linkup') # # このファイルは PPP がネットワーク接続を確立した後でチェックされます. # # このファイルは以下の順序で検索されます. # # 1) まず, ローカル側に割り当てられた IP アドレスが検索され, # 関連するコマンドが実行されます. # # 2) IP アドレスが見つからない場合, PPP の起動時に指定されたラベル名が # 検索され, 関連するコマンドが実行されます. # # 3) いずれの場合にも当てはまらない場合, 'MYADDR:' ラベルの下の # コマンドが実行されます. # #########################################################################= # # このセクションは /etc/ppp/ppp.conf 内の "demand" の設定で # 使用される. demand: delete ALL add 0 0 HISADDR # # /etc/ppp/ppp.conf 中の他の全ての設定ではこちらを用いる # MYADDR: add 0 0 HISADDR ######################################################################## # End of /etc/ppp/ppp.linkup
PPP プログラムが生成した全ての IP ルーティング情報を削除し,
リモートエンドの実際のアドレスをデフォルトルートに追加する
'/etc/ppp/ppp.conf' 内で 'set ifaddr' や 'add 0 0' を使用している設定 (つまり, ダイアルオンデマンドの設定) においては, /etc/ppp/ppp.linkup 内で "delete ALL" や "add 0 0 HISADDR" コマンドを実行することが重要になります.
これこそがリンクのオンデマンド設定を制御するメカニズムだからです.
/etc/ppp/ppp.linkup 内で明示的に名前を指定されていない設定は, "MYADDR:" セクションにあるコマンドを (それが何であれ) 実行します. 非デマンドダイアルの設定 (例えばサンプルの "interactive:") はこれに該当します. このセクションでは, ISP (リモートエンド) の IP アドレスをデフォルトルートに追加しているだけです.
今までのステップは, ISP にダイアルアップで接続しようとしているどのような FreeBSD システムにとっても共通のものです.
もしこのガイドを読む目的が FreeBSD とインターネットをダイアルアウト ppp で接続することだけである場合, 第5章 まで進んでください.
PPP プログラムをオンデマンドモードで動かす非常に大きな利点の一つは, プログラムがローカルエリアネットワーク (LAN) 上の他のシステム間の IP トラフィックを自動的にルーティングできる点にあります. この機能は "IP Aliasing", "Network Address Translation", "Address Masquerading" または "Transparent Proxying" などの様々な名前で知られています.
しかしながら, どのような呼び名が使用されるにせよ, このモードは自動的に得られるものではありません. PPP プログラムをごく普通に起動した場合, プログラムは LAN のインタフェイスとダイアルアウト接続間でパケットを転送しません. 要するに, FreeBSD システムだけが ISP に接続され, 他のワークステーションはその接続を「共用」することができないのです.
プログラムが以下のコマンドのいずれかで起動されたとしましょう.
# ppp interactive (Interactive mode)
または
# ppp -auto demand (Dial-on-Demand mode)
すると, システムは FreeBSD マシンに対してのみ, インターネットに接続されたワークステーションとしての機能を提供するでしょう.
PPP プログラムを LAN の資源とインターネット間のゲートウェイとして起動するには, 代わりに以下のコマンドのいずれかを使用してください.
# ppp -alias interactive (Interactive mode)
または
# ppp -auto -alias demand (Dial-on-Demand mode)
また, ``alias enable yes'' というコマンドを ppp の設定ファイルにいれておく方法をとることもできます (詳細については man をご覧ください).
第4章 に進んでも, このことは忘れないでおいてください.
第 1 章で説明したように, ガイド中のネットワークはローカルエリアネットワーク (LAN) 間のゲートウェイ (ルータ) として FreeBSD システム ("Curly") を使用しています. LAN 自体は二系統の Windows ワークステーションで構成されていますが, LAN のノードが Curly をルータとして使用するには, 各ノードが適切に設定される必要があります. このセクションは Windows ワークステーションのダイアルアップネットワークの 設定法を説明するものではありません. そちらの説明をお捜しなら, http://www.aladdin.co.uk/techweb/ をお勧めします.
Windows 95 を LAN に接続された資源として設定するのは比較的簡単です. Windows 95 のネットワークの設定で ISP に対するデフォルトのゲートウェイとして FreeBSD システムを使用するよう変更するだけで済むからです. 以下の手順を踏んでください.
Windows 95 用の "hosts" ファイルをつくる
LAN 上の他の TCP/IP システムに接続するためには, 項2.4 で FreeBSD システムにインストールした "hosts" ファイルとまったく同じものを作成してやる必要があります.
「スタート」ボタンを押し,「ファイル名を指定して実行」を選択して "notepad \WINDOWS\HOSTS" (引用符は除いてください) と入力し, 「OK」ボタンを押してください.
エディタが開いたら, 項2.4 の hosts ファイルに書いてあるアドレスとシステム名を入力してください.
編集が終わったらノートパッドを閉じてください (ファイルをセーブするのをお忘れ無く!).
Windows 95 の TCP/IP ネットワークの設定
タスクバーの「スタート」ボタンを押し, 「設定」「コントロールパネル」を選択してください.
「ネットワーク」アイコンをダブルクリックして開いてください.
ネットワークのすべての構成要素に対する設定が表示されます.
「ネットワークの設定」 タブを選択し, 現在のネットワーク構成の中から "TCP/IP->インタフェイスのタイプ" を選択してください ("インタフェイスのタイプ" の部分には, あなたのシステムのイーサネットの名称かタイプが入ります).
TCP/IP がネットワーク構成に入っていない場合は, 次の作業に進む前に「追加」ボタンを押し, TCP/IP をインストールしてください.
(ヒント: 「追加」「プロトコル」「Microsoft」「TCP/IP」「OK」)
「プロパティ」ボタンを押し, TCP コンポーネント関連の設定を表示させて下さい.
IP アドレス情報の設定
「IP アドレス」のタブをクリックし
「IP アドレスを指定」ラジオボタンをクリックしてください.
(ガイド中の LAN では Windows 95 システムは "Larry" という名前です.)
「IP アドレス」のフィールドに "192.168.1.2" を入力してください.
「サブネット マスク」フィールドに 255.255.255.0 を入力してください.
ゲートウェイの情報の設定
「ゲートウェイ」タブをクリックしてください.
ガイド中のネットワークでは, FreeBSD マシンがインターネットへのゲートウェイとして働き, イーサネットで結ばれた LAN と PPP ダイアルアップ接続間でパケットをルーティングします. FreeBSD のイーサネットインタフェイスの IP アドレス, 192.168.1.1 を「新しいゲートウェイ」フィールドに入力し, 「追加」ボタンを押してください. 他のゲートウェイが「インストール済のゲートウェイ」リスト内に定義されているなら, 削除しておいたほうが良いかもしれません.
DNS 情報の設定
このガイドでは, インターネットサービスプロバイダ (ISP) が利用可能なドメインネームサーバ (または「DNS サーバ」) のリストを提供しているものと想定しています. ローカル側の FreeBSD システム上で DNS サーバを走らせたいなら, 第 6 章「熱心な学習者への練習問題」に DNS を FreeBSD システム上でセットアップする時の tips がありますので参照してみてください.
「DNS 設定」のタブをクリックしてください
「DNS を使用する」のラジオボタンが選択されているかどうか確認してください.
(このボタンが選択されていない場合, アクセスできるのは hosts ファイルに書かれたエントリだけなので, ネットサーフィンをしようとしてもうまく行きません!)
「ホスト名」フィールドに Windows 95マシンの名前を入力してください. このガイドでは "Larry" です.
「ドメイン名」フィールドにローカルネットワーク名を入力してください. このガイドでは "my.domain" です.
「DNS サーバの検索順」セクションに ISP の DNS サーバの IP アドレスを入力してください. 一つ入力するごとに "Add" ボタンを押して, この作業を ISP の提供するアドレスをすべて入力するまで続けてください.
その他の Windows 95 の TCP/IP オプション
このガイドでは, 「詳細設定」「WINS 設定」「バインド」のタブの下にある設定は重要ではありません.
Windows Internet Naming Service ("WINS") を使用したいなら, http://www.localnet.org/ へ行ってみましょう. WINS の設定, 特にインターネット透過でのファイル共有に関する詳細な情報が得られます.
後始末
「OK」ボタンを押して TCP/IP プロパティのウィンドウを閉じてください.
「OK」ボタンを押してネットワークコントロールパネルを閉じてください.
要求された場合, コンピュータをリブートしてください.
これでおしまいです!
Windows NT を LAN の資源として設定するのも比較的簡単です. Windows NT を設定する手順は, ユーザインタフェイスの些細な差異を除けば Windows 95 と似ています.
ここでの手順は Windows NT 4.0 ワークステーション用のものですが, 原則的には NT 3.5x でも同じです. Windows NT 3.5x を使用している場合, 「Windows for Workgroups の設定」を参照するのも良いかもしれません. NT 3.5 と WfW はユーザインタフェイスが同じだからです.
次の手順を踏んでください.
Windows NT 用の "hosts" ファイルをつくる
LAN 上の他の TCP/IP システムに接続するためには, 3.4 章で FreeBSD システムにインストールした "hosts" ファイルとまったく同じものを作成してやる必要があります.
「スタート」ボタンを押し, 「ファイル名を指定して実行」を選択して "notepad \WINNT\SYSTEM32\DRIVERS\ETC\HOSTS" (引用符は除いてください) と入力し, 「OK」ボタンを押してください.
エディタが開いたら, 3.4 章の hosts ファイルに書いてあるアドレスとシステム名を入力してください.
編集が終わったらノートパッドを閉じてください (ファイルをセーブするのをお忘れ無く!).
Windows NT の TCP/IP ネットワークの設定
タスクバーの「スタート」ボタンを押し, 「設定」「コントロールパネル」を選択してください.
「ネットワーク」アイコンをダブルクリックして開いてください.
"Identification" タブを選択し, "Computer Name" と "Workgroup" フィールドの内容を確かめてください. このガイドでは "Shemp" を名前に, "Stooges" をワークグループに使用します. 必要に応じて "Change" ボタンを押し, 内容を修正してください。
"Protocols" タブを選択してください.
インストール済のネットワークプロトコルが表示されます. プロトコルが幾つも表示されるかもしれませんが, このガイドで大事なのは 「TCP/IP プロトコル」だけです. 「TCP/IP プロトコル」が表示されていない場合, 「追加」ボタンを押してこのプロトコルを読み込んでください.
(ヒント:「追加」「TCP/IP プロトコル」「OK」)
「TCP/IP プロトコル」を選択し, 「プロパティ」ボタンを押してください.
TCP/IP の様々な設定を行うためのタブが表示されるはずです.
IP アドレスの設定
イーサネットインタフェイスが「アダプタ」ボックスの中に表示されているかどうか確かめてください. 表示されていない場合, アダプタの一覧表をスクロールさせて正しいインタフェイスを探してください.
「IP アドレスを指定する」ラジオボタンを押して, 三つのテキストボックスを有効にしてください.
ガイド中の LAN では, Windows NT システムは "Shemp" という名前です
「IP アドレス」フィールドに "192.168.1.4" を入力してください.
「サブネットマスク」フィールドに 255.255.255.0 を入力してください.
ゲートウェイの情報の設定
ガイド中のネットワークでは, FreeBSD マシンがインターネットへのゲートウェイとして働き, イーサネットで結ばれた LAN と PPP ダイアルアップ接続間でパケットをルーティングします.
FreeBSD のイーサネットインタフェイスの IP アドレス, 192.168.1.1 を「新しいゲートウェイ」フィールドに入力し, 「追加」ボタンを押してください.
他のゲートウェイが「インストール済のゲートウェイ」リスト内に定義されているなら, 削除しておいたほうが良いかもしれません.
DNS の設定
繰り返しますが, このガイドでは, インターネットサービスプロバイダ (ISP) が利用可能なドメインネームサーバ (または「 DNS サーバ」) のリストを提供しているものと想定しています.
ローカル側の FreeBSD システム上で DNS サーバを走らせたいなら, 第 6 章「熱心な学習者への練習問題」に DNS を FreeBSD システム上でセットアップする時の tips がありますので参照してみてください.
「DNS」タブをクリックしてください.
「ホスト名」フィールドに Windows NT マシンの名前を入力してください. このガイドでは "Shemp" です.
「ドメイン名」フィールドにローカルネットワーク名を入力してください. このガイドでは "my.domain" です.
「DNS サーバの検索順」セクションに ISP の DNS サーバの IP アドレスを入力してください. 一つ入力するごとに "Add" ボタンを押して, この作業を ISP の提供するアドレスをすべて入力するまで続けてください.
その他の Windows NT の TCP/IP オプション
このガイドでは, "WINS Address" と "Routing" タブの下にある設定は使用しません.
Windows Internet Naming Service ("WINS") を使用したいなら, http://www.localnet.org/ へ行ってみましょう. WINS の設定, 特にインターネット透過でのファイル共有に関する詳細な情報が得られます.
後始末
「OK」ボタンを押して TCP/IP プロパティセクションを閉じてください.
「閉じる」ボタンを押してネットワークコントロールパネルを閉じてください.
要求された場合, コンピュータをリブートしてください.
これでおしまいです!
Windows for Workgroups をネットワーククライアントとして作動させるには, Microsoft TCP/IP-32 ドライバディスクがワークステーションにインストールされている必要があります. TCP/IP ドライバは WfW の CD / ディスクには付属していません. コピーは ftp://ftp.microsoft.com:/peropsys/windows/public/tcpip/ から手に入ります.
TCP/IP ドライバを読み込んだら、次の手続きを踏んでください.
Windows for Workgroups 用の "hosts" ファイルをつくる
LAN 上の他の TCP/IP システムに接続するためには, 3.4 章で FreeBSD システムにインストールした "hosts" ファイルとまったく同じものを作成してやる必要があります.
プログラムマネージャで "File" ボタンを押し, "Run" を選択して "notepad \WINDOWS\HOSTS" (引用符は除いてください) と入力し, "OK" ボタンを押してください.
エディタが開いたら, 3.4 章の hosts ファイルに書いてあるアドレスとシステム名を入力してください.
編集が終わったらノートパッドを閉じてください (ファイルをセーブするのをお忘れ無く!).
Windows for Workgroups の TCP/IP ネットワークの設定
プログラムマネージャのメインウィンドウで, "Network" グループのアイコンをダブルクリックして開いてください.
"Network Setup" アイコンをダブルクリックしてください.
"Network Drivers Box" で "Microsoft TCP/IP-32" のエントリをダブルクリックしてください.
Windows for Workgroups の IP アドレスの設定
正しいイーサネットインタフェイスが "Adapter" リストで選択されているかどうか確認してください. 選択されていない場合, インタフェイスが表示されるまでリストをスクロールさせ, クリックして選択してください.
"Enable Automatic DHCP Configuration" チェックボックスが選択されていないことを確かめてください. 選択されている場合, クリックして "X" 印を取り除いてください.
ガイド中の LAN では, Windows for Workgroups システムは "Moe" という名前です. "IP Address" フィールドには "192.168.1.3" を入力してください.
"Subnet Mask" フィールドに 255.255.255.0 を入力してください.
ゲートウェイの情報の設定
ガイド中のネットワークでは, FreeBSD マシンがインターネットへのゲートウェイとして働き, イーサネットで結ばれた LAN と PPP ダイアルアップ接続間でパケットをルーティングします.
FreeBSD システムの IP アドレス, 192.168.1.1 を "Default Gateway" フィールドに入力してください.
DNS の設定
繰り返しますが, このガイドでは, インターネットサービスプロバイダ (ISP) が利用可能なドメインネームサーバ (または「DNS サーバ」) のリストを提供しているものと想定しています. ローカル側の FreeBSD システム上で DNS サーバを走らせたいなら, 第 6 章「インターネット初心者への課題」に DNS を FreeBSD システム上でセットアップする時の tips がありますので参照してみてください.
"DNS" ボタンを押してください.
"Host Name" フィールドに Windows for Workgroups マシンの名前を入力してください. このガイドでは "Moe" です.
"Domain" フィールドにローカルネットワーク名を入力してください. このガイドでは "my.domain" です.
"Domain Name Service (DNS) Search Order" セクションに ISP の DNS サーバの IP アドレスを入力してください. 一つ入力するごとに "Add" ボタンを押して, この作業を ISP の提供するアドレスをすべて入力するまで続けてください.
後始末
"OK" ボタンを押して TCP/IP 設定ウィンドウを閉じてください.
"OK" ボタンを押してネットワークセットアップウィンドウを閉じてください.
要求された場合, コンピュータを再起動してください.
これでおしまいです!
確かにドメインネームサービス (DNS) ヒエラルキーの管理は黒魔術にも似た作業ではありますが, FreeBSD システムを ISP へのゲートウェイとして作動させながら, 同時に小さな DNS サーバとしても働かせることも可能なのです.
FreeBSD システムのインストール時に /etc/namedb ディレクトリに作成されるファイルを元にすれば, ガイド中のネットワークに権威を持ちながら, インターネットの DNS アーキテクチャに対する正面玄関としての役割も果たすネームサーバをつくることができるのです.
最小限の DNS の設定を行うには, 以下の三つのファイルが必要になります.
/etc/namedb/named.root ファイルは FreeBSD のベースインストールの一部として自動的にインストールされますが, 他の二つのファイルは手で書いてやる必要があります.
/etc/namedb/named.boot ファイルは DNS サーバのスタートアップ時の設定をコントロールします. 基本的には, ネームサーバに以下の情報を伝えます.
どこに設定ファイルが存在し,
どの「ドメイン名」を管理するのか. そして
どこへ行けば他の DNS サーバを見つけられるのか.
'ee' エディタを使って, 以下の内容の /etc/namedb/named.boot ファイルをつくってください.
; boot file for mini-name server directory /etc/namedb ; type domain source host/file backup file cache . named.root primary my.domain. mydomain.db
セミコロンで始まる行はコメントです. このファイル内で重要な行は
directory /etc/namedb
ネームサーバに '/etc/namedb/named.boot' の残りのセクションで参照される設定ファイルの存在するディレクトリを伝えています.
cache . named.root
ネームサーバにインターネットの "Top-Level" の DNS サーバの一覧が 'named.root' ファイルに書いてあることを伝えています. (このファイルはベースインストールの一部に含まれているので, このドキュメントでは内容については説明しません.)
ネームサーバに対して, "my.domain" という DNS ドメインを 「管理する (authoritative)」こと, "my.domain" (このローカルネットワーク) 上のシステムのホスト名と IP アドレスのリストは 'mydomain.db' ファイル内にあることを伝えています.
/etc/namedb/named.boot ファイルをつくってセーブしたら, つぎの章に進んで /etc/namedb/mydomain.db ファイルをつくってください.
/etc/namedb/mydomain.db ファイルはローカルエリアネットワーク (LAN) のすべてのシステムのホスト名と IP アドレスを一覧にしたものです.
このファイルで使用されている文の詳細な説明については, named の man を参照してください.
このガイド中のネットワークで DNS サーバの設定を最低限行う /etc/namedb/mydomain.db ファイルは, 次のような内容になるでしょう.
@ IN SOA my.domain. root.my.domain. ( 961230 ; 通し番号 3600 ; 問い合わせ 300 ; 再試行 3600000 ; 無効化 3600 ) ; 有効期間 IN NS curly.my.domain. curly.my.domain. IN A 192.168.1.1 # FreeBSD マシン larry.my.domain. IN A 192.168.1.2 # Win'95 マシン moe.my.domain. IN A 192.168.1.3 # WfW マシン shemp.my.domain. IN A 192.168.1.4 # Windows NT マシン $ORIGIN 1.168.192.IN-ADDR.ARPA IN NS curly.my.domain. 1 IN PTR curly.my.domain. 2 IN PTR larry.my.domain. 3 IN PTR moe.my.domain. 4 IN PTR shemp.my.domain. $ORIGIN 0.0.127.IN-ADDR.ARPA IN NS curly.my.domain. 1 IN PTR localhost.my.domain.
簡単に説明すると, このファイルでは, ローカルの DNS サーバは以下のようであると宣言しています.
'my.domain' というドメインに対する管理情報の始点 (Start of Authority, "SOA") であり,
'my.domain' に対するネームサーバ ("NS") であり,
'192.168.1.' と '127.0.0.' で始まる全ての IP アドレスに対する逆引き情報に責任があること ("$ORIGIN ...")
このファイルにワークステーションのエントリを加えるとき, 一つのシステムにつき二つの行を加える必要があります. 一つは頭のセクション, ホスト名がインターネットアドレス ("IN A") に対応づけられる部分で, もう一つは $ORIGIN 1.168.192.IN-ADDR.ARPA セクションの, アドレスをホスト名に逆付けする部分です.
デフォルトではシステムのブート時に DNS サーバ ('/usr/sbin/named') は起動しません. この振る舞いは, 以下のように '/etc/rc.conf' を一行変えるだけで変更することができます.
'ee' エディタを使って /etc/rc.conf を読み込み, このようなセクションに当たるまで 40 行ほど下ってください.
--- named_enable="NO" # Run named, the DNS server (or NO). named_flags="-b /etc/namedb/named.boot" # Flags to named (if enabled). ---
--- named_enable="YES" # Run named, the DNS server (or NO). named_flags="-b /etc/namedb/named.boot" # Flags to named (if enabled). ---
または, 次のコマンドを打ち込んでネームサーバデーモンを起動してください.
/etc/namedb 以下のファイルを変更した場合はいつも, 変更に対応させるために, ネームサーバのプロセスにキックスタートをかけてやる必要があります. これは以下のシステムコマンドで実行できます.
PPP プログラムには, PPP 経由のトラフィックに対して, 選択的にフィルタをかける能力があります. これが正式のファイアウォールほどセキュアーだとはとても言えませんが, リンクの使用についてある種のアクセス制御を提供することはできるのです.
(FreeBSD システムをよりセキュアーにする方法を知りたい方は 'man ipfw' してください)
PPP 下で使用できる様々なフィルタとその制御法についての完全な説明は PPP の man にあります.
PPP プログラムに適用できる制御法には四つのクラスがあります.
afilter - アクセスカウンタ (または "Keep Alive") のフィルタ
設定ファイル中の set timeout= 文に無視されるイベントの種類を制御します.
dial - ダイアリングフィルタ
デマンドダイアルモードの PPP に無視されるイベントの種類を制御します.
in - インプットフィルタ
システムに入ってくるパケットを, 破棄すべきものと通過してよいものに仕分けるやり方を制御します.
out - アウトプットフィルタ
システムから出てゆくパケットを, 破棄すべきものと通過してよいものに仕分けるやり方を制御します.
以下は実際に稼働しているオペレーティングシステムから一部拝借して来たものです. このシステムは「通常の」インターネットオペレーションに十分な素地を提供しつつ, PPP がすべてのデータをダイアルアップ接続越しにやり取りすることのないようにしています. 各ルールセットのロジックを解説する簡単なコメントをつけてあります.
# # KeepAlive フィルタ # ICMP,DNS と RIP パケットが流れても「通信中」とはみなさない # set filter alive 0 deny icmp set filter alive 1 deny udp src eq 53 set filter alive 2 deny udp dst eq 53 set filter alive 3 deny udp src eq 520 set filter alive 4 deny udp dst eq 520 set filter alive 5 permit 0/0 0/0 # # ダイアルフィルタ # 注意: この設定では ICMP もダイアルアウトのトリガになる # set filter dial 0 permit 0/0 0/0 # # ident パケットの通過を許可する # set filter in 0 permit tcp dst eq 113 set filter out 0 permit tcp src eq 113 # # インターネットへの telnet 接続を許可する # set filter in 1 permit tcp src eq 23 estab set filter out 1 permit tcp dst eq 23 # # インターネットへの ftp アクセスを許可する # set filter in 2 permit tcp src eq 21 estab set filter out 2 permit tcp dst eq 21 set filter in 3 permit tcp src eq 20 dst gt 1023 set filter out 3 permit tcp dst eq 20 # # DNS への問い合わせを許可する # set filter in 4 permit udp src eq 53 set filter out 4 permit udp dst eq 53 # # DNS ゾーン転送を許可する # set filter in 5 permit tcp src eq 53 set filter out 5 permit tcp dst eq 53 # # ローカルネットワークから / へのアクセスを許可する # set filter in 6 permit 0/0 192.168.1.0/24 set filter out 6 permit 192.168.1.0/24 0/0 set ifilter 6 permit 0/0 192.168.1.0/24 set ofilter 6 permit 192.168.1.0/24 0/0 # # ping と traceroute への返答を許可する # set filter in 7 permit icmp set filter out 7 permit icmp set filter in 8 permit udp dst gt 33433 set filter out 9 permit udp dst gt 33433 # # cvsup を許可する # set filter in 9 permit tcp src eq 5998 set filter out 9 permit tcp dst eq 5998 set filter in 10 permit tcp src eq 5999 set filter out 10 permit tcp dst eq 5999 # # 時間の同期のために NTP を許可する # set filter in 11 permit tcp src eq 123 dst eq 123 set filter out 11 permit tcp src eq 123 dst eq 123 set filter in 12 permit udp src eq 123 dst eq 123 set filter out 12 permit udp src eq 123 dst eq 123 # # SMTP もいいかも! # set filter in 13 permit tcp src eq 25 set filter out 13 permit tcp dst eq 25 # # # `whois` を多用するので, これも通す # set filter in 14 permit tcp src eq 43 set filter out 14 permit tcp dst eq 43 set filter in 15 permit udp src eq 43 set filter out 15 permit udp dst eq 43 # # 上記のどのルールにもマッチしない場合, パケットはブロックされる. #-------
フィルタクラス一つにつき, 20 個までのフィルタリングルールを適用することができます. 各クラスのルールは 0 から 20 までの連続した数字である必要がありますが, あるフィルタクラスに対するルールは, ルールセット '0' が定義されるまでは有効になりません!
PPP の設定でフィルタリングルールを使用しない場合, ISP への接続中はすべてのトラフィックがシステムに出入りすることになります.
フィルタリングルールを使用したいなら, 上記の設定を /etc/ppp/ppp.conf ファイルの "default:", "demand:", または "interactive:" セクションのどれか (あるいはすべて - 選ぶのはあなたです) に追加してください.
本文書、および他の文書は ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/ からダウンロードできます。
FreeBSD に関する質問がある場合には、ドキュメント を読んだ上で <questions@FreeBSD.org> まで (英語で)
連絡してください。
本文書に関する質問については、<doc@FreeBSD.org> まで電子メールを (英語で)
送ってください。