82 ・ 5 章 TCP / 旧ネットワークの設定 vlager-ifl と vlager-if2 という特別な名前が含まれています。 れている 2 つのインタフェースのアドレスを示します。 # Hosts file for Virtual Brewery/VirtuaI Winery これは vlager で使わ # IP 127. O. O. 1 172.16.1 ユ 172.16.1.2 172.16.1.5 172.16.2 ユ 172.16.2.2 172.16.2.5 172.16.2.4 FQDN localhost vlager. vbrew. COIII vstout. vbrew. COIII vale. vbrew. COIII v1ager-if2 vbeaujolais.vbrew.com vbardolino. vbrew. COIII vchianti. vbrew. COIII aliases vbeaujolais vbardolino vchianti vlager vlager-ifl vstout vale ホストの IP アドレスと同様に、ネットワーク番号にも名前を付けたいことがあり # /etc/networks for the VirtuaI Brewery ーチャル・プルーワリーでは、次のような networks ファイルを作ることにします注 7 。 ます。これはネットワーク名をネットワーク番号に、またその逆に対応させます。バ ます。そのため、 hosts ファイルには /etc/networks という相棒のファイルがあり brew-net wine—net 172.16.1. O 172.16.2. O 5.8 旧のためのインタフェースの設定 前章で説明したようにハードウェアをセットアップしたあと、カーネルのネットワ ークソフトウェアが使用するためのデバイスを作らなければいけません。ネットワー クインタフェースを設定し、経路制御テープルを初期化する一組のコマンドがありま す。通常、これらのタスクはシステムが起動するたびに rc. inetl スクリプトから実 注 7 networks の中の名前は、 hosts ファイルの中のホスト名と同じものを使用してはいけません。 そうしないと、いくつかのプログラムが奇妙な結果を生むかもしれないことに注意してくださ
278 ・ 14 章 sma ⅱの設定と運用 smart_path = vstout smart transport = smtp これは、 UUCP だけのサイトで使用したものと非常によく似ています。主な違い は、メールをスマートホストに送るために使用する転送プロトコルが SMTP である ことです。 visible domain 属性によって、 smail はすべての発信メールにローカル ホスト名ではなくドメイン名を付けます。 UUCP メールゲートウェイ vstout の config ファイルは、上と少し異なります。 # Our hostnames : hostnames =vbrew.com : vstout.vbrew.com : vstout # What we name ourselves visible name=vbrew.com # in the uucp world, we're known as vbrew. COIII uucp_name = vbrew. COIII # Smart transport : via uucp tO moria smart_path = moria smart transport=uux # we're authoritative for our domain auth domains =vbrew. C0爪 この config ファイルでは、ローカルホストの名前を smail に告げる方法が異なり ます。ドメイン名の一覧を与え、システムコールでホスト名をみつけさせる代わりに こでは明示的に名前を記述します。上の一覧には、完全な正式ホスト名、不完全な ホスト名、ドメイン名が含まれています。これによって、 smail は janet@vbrew.com をローカルアドレスとして認識し、 janet へメッセージを配信します。 auth do 砠 ains 変数には、 vstout が統御するドメインを指定します。すなわち、 smail は host.vbrew.com ( ここで、 host は既存のローカルマシンにはない名前 ) 宛 のメールを受け取ると、そのメッセージを拒絶して、送信者に送り返します。この工 ントリーがない場合、そのようなメッセージはスマートホストに送られ、スマートホ ストはそれをまた vstout に返し、これがいつまでも続いてしまいます ( 幸い、最大 ホップカウントと呼ばれる機能があり、最終的にはそのメッセージは破棄されます ) 。
6.2 named の運用・ 123 1 2 5 ; 1 2 5 4 工 N PTR vlager.vbrew.com/ IN PTR vstout. vbrew. COIII. IN PTR vale. vbrew. COIII. IN PTR vlager-ifl.vbrew.com/ IN PTR vbardolino. vbrew. COIII. IN PTR vchianti. vbrew. COIII. IN PTR vbeaujolais. vbrew. COIII. 6.2.4 ネームサーパの動作の検証 セットアップしたネームサーバの動作をチェックするためのよいツールがありま す。それは nslookup と呼ばれ、対話モードでも、コマンドラインからでも使えます。 コマンドラインで使うには、次のように簡単に呼び出すことができます。 $ nslookup hostname W1nery nslookup は、 resolv. conf で指定したネームサーバに hostname を問い合わせま す ( もし、このファイルが 1 つ以上のサーバを指定しているならば、 nslookup はラ ンダムにそのうちの 1 つを選びます ) 。 しかし、対話モードのほうがずっとおもしろいのです。個々のホストを参照するだ けでなく、あらゆるタイプの DNS レコードについて問い合わせたり、ドメイン全体 のゾーン情報を転送したりできます。 nslookup を引数なしで起動すると、使用するネームサーバを表示し、対話モード に入ります。プロンプト「 > 」で、問い合わせたいドメイン名をタイプします。デフ ォルトでは、ドメイン名と関係がある IP アドレスを持っ A レコードを検索します。 次のようにすれば、検索するタイプを変えることができます。 > set type=type または ANY のいず こで、 type は、前に述べたリソースレコードのタイプ名、 れかです。 以下に nslookup セッションの例を挙げておきます。 $ nslookup DefauIt Name Server : rs10. hrz. th-darmstadt. de Address : 150.85.56.60
158 ・ 8 章ポイントトウ・ポイントプロトコル ( PPP ) フィールド、および CHAP チャレンジ文字列を送るリモートホスト名と同じ内容の サーパフィールドを持つ工ントリーを探します。相手に認証を要求するときは、役割 が逆になるだけです。すなわち、 pppd はリモートホスト名 ( クライアントの CHAP 応答の中で送られてくる ) と一致するクライアントフィールド、およびローカルホス # CHAP secrets for vlager.vbrew.com 以下は vlager の chap-secrets のサンプルファイルです注 10 。 ト名と一致するサーパフィールドを持っェントリーを検索します。 # クライアントサーバ 秘密キー vlager.vbrew.com c3po.lucas.com "Use The Source Luke" c3po.lucas. COIII vlager.vbrew.com "riverrun, pasteve" vlager.vbrew.com "VeryStupidPassword" addrs vlager.vbrew.com C3PO. lucas.com pub.vbrew.com c3po と PPP 接続を確立すると、 c3po は、 CHAP チャレンジを送ることで vlager に自分を立証するよう求めます。すると、 pppd は、 vlager.vbrew.com と一致する クライアントフィールドおよび c3po.lucas.com と一致するサーパフィールドをもつ 工ントリーを求めて secret をスキャンし、上記の最初の行をみつけます注 11 。次に チャレンジ文字列と秘密キー「 Use The Source Luke 」から CHAP 応答を作り、 それを c3po に送ります。 同時に、 pppd は、適当なチャレンジ文字列と正式ホスト名 vlager.vbrew.com が 含まれる、 c3po に対する CHAP 要求を作ります。 c3po は CHAP 応答を上と同じ 方法で構成し、それを vlager に返します。 pppd は応答からクライアントホスト名 (c3po.vbrew.com/ を抽出し、クライアント c3po およびサーバ vlager と一致する 行を chap ー secrets ファイルから検索します。上記の 2 行目がこれに該当します。 次に pppd は、 CHAP 要求と秘密キーの「 riverrun, pasteve 」を組み合わせて暗 号化し、その結果を c3po の CHAP 応答と比較します。 4 番目のフィールドはオプションで、先頭フィールドで指定されたクライアントが 使用できる IP アドレスをリストしたものです。アドレスは、ドット区切り記法かリ 注 10 注 11 引用符 ( " ) はパスワードの一部ではありません。それらは、単にパスワード中の余白を保護 する役目をしているだけです。 このホスト名は CHAP チャレンジから取られます。
122 ・ 6 章 vlager ネームサービスとリゾルバの設定 IN A 172.16.1.1 vlager-ifl IN CNAME vlager vlager iS alSO news server news vstout vale IN CNAME vlager IN A IN A winery Ethernet vlager-if2 vbardolino vchianti vbeaujolais IN A IN A 工Ⅳ A IN A 例 6 ー 5 named.local ファイル /var/named/named. 10Ca1 172 ユ 6 ュ .2 172.16.1.5 172.16.2.1 172.16.2.2 172.16.2.5 172.16.2.4 Reverse mapping Of 127. O. O Origin is O. O. 127. in-addr. arpa. vlager. vbrew. COIII. joe. vbrew. COIII. ( 1 IN NS IN PTR IN SOA 1 360000 3600 3600000 360000 serial refresh : retry : explre : IIIIIIIIIIIIIII : IOO hrs one hour 42 days IOO hrs 例 6 ー 6 named. rev ファイル /var/named/named. rev IN NS 工 N SOA brewery vlager.vbrew.com/ localhost. vlager. vbrew. COIII. joe. vbrew. COIII. ( Origin is 72.191. in-addr. arpa. Reverse mapping Of our IP addresses 16 86400 3600 3600000 604800 serial refresh : retry : explre : llllmmum : once per day one hour 42 days 1 week vlager. vbrew. COIII.
188 ・ 10 章 NIS : ネットワーク情報システム と同様に、 /usr/sbin の中にあるはずです。 # ypcat hosts. byname 172.16.2.2 172.16.2.5 172.16.1.1 172.16.2.1 172.16.1.2 172.16.1.5 172.16.2.4 vbeaujolais. vbrew. COITI vbardolino.vbrew.com vlager. vbrew. COIII vlager.vbrew.com vstout. vbrew. COIII vale. vbrew. COITI vchianti. vbrew. COIII vbeaujolais vbardolino vlager vlager vstout vale vchianti これと似た出力結果になっているはずです。これの代わりに「 Can't bind t0 server which serves domain 」というエラーメッセージが出たら、設定した NIS ドメイン名が yp. conf 中で定義されているサーバと一致しないか、そのサーバが何 らかの理由で接続できないかのどちらかです。接続できない場合には、そのホストへ の ping が成功するかどうか、 NIS サーバが本当に動いているかどうかを確認してく ださい。 NIS サーバが動いているかどうかは rpcinfo を使用して検査することがで きます。これを実行すると、次のような出力が得られるはずです。 # rpcinfo -u serverhost ypserv program 100004 version 2 ready and waiting 10.7 適切なマップを選ぶ NIS サーバに到達できることを確かめたら、 NIS マップで置き換えたり追加した りする設定ファイルを決めなければいけません。普通は、ホストとパスワードの参照 に NIS マップを使用するでしよう。 BIND ネームサービスを使っていないなら、ホ スト名参照はとくに便利です。パスワード参照ができれば、全ユーザがその NIS ド メイン中のどのシステムからでも自分のアカウントにログインできるようになりま す。それと同時に、通常は NFS を介してすべてのホスト間で、 / home ディレクトリ の共有が行われます。パスワードマップについては、次の節で詳しく説明します。 services. byname などほかのマップでは、そのような大きなメリットはありませ んが、編集作業がいくらか軽くなります。標準の services ファイルの中にないサー ビス名を使用するネットワークアプリケーションをインストールするときには、 services. byname マップが役立ちます。
90 ・ 5 章 TCP / 旧ネットワークの設定 な欠陥によるものではなく、中継を行っているホストが一時的に過負荷になり、バケ ットを遅延させたりデータグラムを落としてしまったりするために起きます。 5. 8.4 ゲートウェイの設定 2 つのイーサネット間でバケットをやりとりするようにマシンを設定するのは、決 して難しいことではありません。 2 枚のイーサネットボードを持つ vlager で考えて みましよう。各ィーサネットボードは、各々のネットワークに接続しています。それ 2 つのインタフェースの設定を行うコマンド列は、次のようになります。 172.16.2.1 vlager-if2 172 ユ 6.1.1 vlager.vbrew.com vlager vlager-ifl くと便利です。そうすれば、わかりやすい名前が使えるようになります。 以下のように、 hosts ファイルに 2 つのインタフェースに関する情報を追加してお ぞれに別個の IP アドレスを与えて、インタフェースを設定すればおしまいです。 2 つのホスト ( ポイント ) のみの接続であり、 point-to-point 接続 ( 二地点 ょっと違います。前者は、プロードキャストネットワーク間の接続ではなく、 2 台のマシンの接続に PLIP 接続を使う場合は、イーサネットの場合とち 5.8.5 P 凵 P インタフェース て 0 設 te add wine-net route add brew-net ifconfig ethl vlager-if2 ifconfig ethO vlager-ifl 名で登録されます。接続をアクテイプにするには、以下のコマンドで plipl インタ このポートは plipl という パラレルポートを 1 つだけ持っています。プート時に を PLIP で vlager に接続したいとしましよう。ラップトップは vlite という名で、 例として、バーチャル・プルーワリー社のある従業員がラップトップコンピュータ 間接続 ) です。 注 10 pointopoint はタイプミスではありません。本当にこういうつづりなのです。 フェースを設定します注 10 。
sendma ⅱをインストールする・ 317 rewrite : rewrite : rewrite : rewrite : rewrite : rewrite : rewrite : rewrite : rewrite : rewrite : rewrite : rewrite : rewrite : ruleset ruleset ruleset ruleset ruleset ruleset ruleset ruleset 20 ruleset ruleset ruleset 26 ruleset ruleset returns : returns : input : 8 returns : returns : input : input : input : returns : returns : returns : input : input : O 26 20 8 O 5 7 9 9 7 15.5 me me く me 〉 く く く く く , me , me , me , me , me く〉 , @ vstout . vbrew く〉 , @ vstout . vbrew く〉 , @ vstout . vbrew LOCAL $@ vstout LOCAL $@ vstout . com , me . com , me . com , me . vbrew . com $ : me . vbrew . com $ : me この出力を見ると、 sendmail が内部でアドレスをどう処理するかがわかります。 Enter く ruleset 〉く address 〉 ADDRESS TEST MODE # /usr/lib/sendmail -bt -Cvstout. cf にメールを送るテストを行ってください。 次に、インターネット構文の完全な正式ホスト名で、あなたのシステム上のユーザ rewrite : ruleset O returns : $ # LOCAL $@ vstout . vbrew . com $ : me rewrite : ruleset 5 input : vstout ! me 〉 3.0 vstout!me CNOte : NO initial ruleset 5 call] Enter く ruleset 〉く address> ADDRESS TEST MODE # /usr/lib/sendmail -bt -Cvstout. cf てください。 次に、 UUCP 構文で、あなたのシステム上のユーザにメールを送るテストを行っ されたホスト名とユーザ名が表示されています。 解析済みのアドレスです。そこには、メールを配信するメーラおよびそのメーラに渡 me の前に入力した 3 , 0 の意味です ) 。最後の行にあるのが、ルールセット 0 が返した 上の例では、アドレス me をルールセット 3 と 0 に渡しました ( これが、アドレス され、いくつかの構成要素に分解されます。 アドレスはそれを分析するルールセットに渡され、順番にほかのルールセットが起動
5.8 旧のためのインタフェースの設定・ 87 とではありません。カーネルは、これまでに設定されたすべてのインタフェースをチ ェックします。そして、目的地のアドレス ( この場合は 172.16.1. O ) とインタフェ ースアドレス ( すなわち、インタフェースアドレスとネットマスクのビットごとの AND をとったもの ) のネットワーク部分を比較します。一致する唯一のインタフェ ースが ethO となるわけです。 さて、 -net オプションは何のためにあるのでしようか。 route はネットワークへ の経路制御と単一のホストへの経路制御 ( 上で示した localhost の場合 ) の両方を 扱えます。ドット区切り記法でアドレスが与えられると、 route はそれがネットワー クなのかホスト名なのかをホスト部分のビットを調べて判断しようとします。アドレ スのホスト部分がゼロならば、 route はそれがネットワークを指定しているとみなし ます。それ以外なら、 route はそれをホストのアドレスとみなします。そのため、 route は 172.16.1. O がホストアドレスであり、ネットワーク番号ではないとみなしてしま います。 route はこちらがサプネットを使っているとは知らないからです。したがっ て、 -net フラグを付けて、それがネットワークを指定していることをはっきりさせ = 1. = 2. # route add brew-net あると知っているので、 -net フラグは省略できます。 ンドもはるかに読みやすくなります。今度は route は 172.16.1. O がネットワークで / networks に定義したネットワーク名を使用すれば、もっと簡単になります。 上記の route コマンドはタイプが面倒で、タイプミスもしやすいでしよう。 /etc るわけです。 コマ するかを確かめてみてください。たとえば、イーサネットからホスト vlager を選び、 基本的な設定が終りましたので、イーサネットインタフェースが本当に正常に動作 PING vlager : 64 byte packets # ping vlager 次のように入力してみてください。 64 bytes from 172.16 ユユ : 64 bytes from 172.16.1.1 : 64 bytes from 172.16.1.1 : 64 bytes from 172.16 ュ .1 : --vstout.vbrew.com PING Statistics- lcmp—seq lcmp—seq lcmp—seq lcmp—seq time time time ー time = 5. ms ー 12. ms = 7. ms = 11. ms
280 ・ 14 章 sma ⅱの設定と運用 デーモンモードと inetd モードは、どちらか一方しか使用できません。デーモン モードで smail を走らせる場合は、 inetd. conf 中の sm ゆサービスに関する行を必 ずコメントアウトしなければいけません。同様に、 inetd で smail を管理する場合は、 rc. inet2 が smail デーモンを開始しないようにしてください。 14.3 メールか届かないとき インストール時のトラブル対策に使用できる機能がたくさんあります。最初にチェ ックすべきものは、 smail のログファイルです。それらは /var/spool/smail/log の 中に保存されており、 logfile と paniclog という名前です。前者にはすべての処理が 己載され、後者には設定工ラーなどに関係するエラーメッセージだけが記載されます。 logfile の典型的なエントリーは、次のようになっています。 04 / 24 / 94 07 : 12 : 04 : CmOpuwU8-00023UB] received from: root sendmail program: 1468 byt es S 1 Z e : 04 / 24 / 94 07 : 12 : 04 : CmOpuwU8-00023UB] del ivered vstout . vbrew . COITI V 1 a : to: root@stout . vbrew . com root@stout . vbrew . com orig-to: smart host router: transport: smt p これは、 root から root@vstout.vbrew.com へのメッセージが SMTP を介して ホスト vstout に正常に配信されたということを示しています。 smail がメッセージを配信できなかったときにも、 logfile ファイルの中に似たよ うなエントリーが作られますが、その場合は delivered と書かれる代わりにエラー メッセージが書かれます。 04 / 24 / 94 07: 12 : 04 : CmOpuwU8-00023t 旧 ] received from: root program: sendma i 1 size: 1468 bytes 04 / 24 / 94 07: 12 : 04 : CmOpuwU8-00023UB] root@stout . vbrew. com . (ERR 148 ) transport smtp : connect : Connection refused 一三ロ deferred