UNIX MAGAZINE 2006年1月号

キーフレーズ

DNS UNIX http:// Linux MAGAZINE example フォワーダー サーバー www プロセス SPAM 2006 Web インストール CPU システム () ファイル LAN ネットワーク クライアント 場合 ドライバ .com デバイス 対応 sleep Windows org 機能 lntel Blogger データ メールサーバー 利用 ページ net 設定 表示 ETHERNET TYPE サービス 構造体 define プログラム DEVICE HTTP com 実行 ietf http struct Enterprise メール 処理 プリンタ ソフトウェア 2005 MAX HDD SUSE 情報 コマンド プロキシー Blog エントリ インターフェイス できる SMTP 必要 可能 Server 問合せ インターネット prio インターネット上 init victim proxy spammer トラックバック 000 USB カーネル Mac OS X X MAGAZINE daapd セクション 設疋 アクセス アドレス リスト PCI Greasemonkey 管理 BONUS mail time

目次

図 1 フォワーダーにインターネットへの問合せを送る LAN 上の DNS サーバーから転送されて きた問合せをもとに、インターネット上の インターネット DNS サーバーに問い合わせる DNS サーバー LAN フォワーダー DNS サーバー 問合せを転送 DNS サーバー LAN 上のホストは、インターネット上の DNS サーバーとは直接通信しない インターネットにはフォワーダーだけを公開する ( LAN 内のほかの DNS サーバーを公開する必要がな く、安全性が高い ) 図 2 フォワーダーに LAN 内のほかのゾーンへの問合せを送る LA N フォワーダー DNS サーバー DNS サーバー 問合せを転送 転送されてきた問合せをゾーン B の DNS サーバーに送る ソーン B のスレーブサー / ヾーをゾーン A に置く代わりに、フォワーダーで問合せを転送することができる は、フォワーダーから応答がなかったときに未を もちます。 ・ only が指定されていると、フォワーダーから応答がなか った場合に何もしない。 ・ first が指定されている場合は、フォワーダーから応答が なければ LAN 上の DNS サーノヾー自身が名前解決を試 みる。 転送専用の言殳定 フォワード機能では、受け取った問合せをすべて転送す ることもできますし、一部の問合せは自分で解決し、 forward [ 〃 e ] ; forwarders { address ; addt 、 ess ; zone ステートメントに言当する場合は、以下に示すゾー ンの種類の指定も必要です。 type forward; は転送方式を意味し、 "only" または、、 first" を指 定します。 address にはフォワーダー ( フォワード先の DNS サーバー ) の IP アドレスを指定します。 LAN 上の DNS サーバーは、 DNS の問合せを祠市℃ ss で指定されたフォワーダーに転送し、フォワーダーから得 た芯答を問合せ元に返します。 68 UNIX MAGAZINE 2006. 1

連載 ネットワーク・ミニ実験室 荒井美千子 UNIX MAGAZINE 2006 . 1 に分かれた LAN でのゾーン情報の転送があります。 フォワーダーのもう 1 つの利用例として、複数のゾーン フォワーダーの利用例 ( その 2 ) キャッシュされるので、名前解決を効率的におこなえます。 ます。インターネット上のホストの情報がフォワーダーに 特別な設定をしなくてもキャッシュ・サーバーとして働き また、フォワーダーとして利用する DNS サーバーは、 がないぶん安全に運用できます。 ーだけでよく、 LAN 上の DNS サーバーは公開する必要 インターネットに公開する DNS サーバーはフォワーダ き、問合せを転送させる手法がよく使われます ( 図 1 ) 。 ァイアウォール上に DNS サーバー ( フォワーダー ) を置 直接問い合わせるのは望ましくありません。そのため、フ DNS サーバーが、インターネット上の DNS サーバーに 同じから、 LAN 上の個々の DNS クライアントや ォールを設け、直接通信しないようにするのが一般的です。 ネットのあいだにはセキュリティを守るためのファイアウ たとえば、 LAN (LocaI Area Network) とインター フォワーダーの利用例 ( その 1 ) ーバーのことをフォワーダーと呼びます。 合せ元に返す機能です。また、問合せを転送する DNS サ の問合せをほかの DNS サーバーに転送し、その応答を問 が、 DNS の世界におけるフォワードは、受け取った DNS 一般には、メールやバケットを転送する機能を指します ます。 れら以外にフォワード (forward) という大きな機能があり た DNS のさまざまな機能をみてきました。 DNS には、 前回までに、名前解決やゾーン転送、キャッシュといっ ロ NS フォワーダー ント、または zone ステートメントに追加してください。 の 2 行を、 named. C011f ファイルの options ステートメ DNS サーバーの named. conf ファイルに言当します。次 フォワードの設定は、フォワーダーに問合せを転送する フォワードの設定 こなえます。 間がかかる ) ゾーンのあいだでも、効率よく名前解決をお シュに保存されるので、ネットワーク的に遠い ( 通信に時 働きます。ゾーン B 上のホストの名前解灣青報がキャッ こでも、フォワーダーはキャッシュ・サーバーとして なりません。 DNS サーバーの情報をあらかじめ設定しておかなければ 切な DNS サーバーに送る必要があるので、ゾーン B の 当然ながら、フォワーダーは転送されてきた問合せを適 結果をゾーン A の DNS サーバーに返します。 合せをもとに、ゾーン B の DNS サーバーに間い合わせ、 ーダーはゾーン A の DNS サーバーから転送されてきた問 たとえは図 2 のようなネットワーク構成の場合、フォワ 問い合わせます。 にフォワーダー経由でゾーン情報をもつ DNS サーバーに DNS サーバーにコピーしておくのではなく、必要なとき フォワードを利用した方法では、ゾーン情報を複数の となっています。 たゾーン情報のコピーをもとに、問合せに応答する仕組み ープサーバーに転送します。スレープサーバーは、入手し ターサーバーが管理しているゾーン情報を、まるごとスレ などでゾーン転送を紹介しました。ゾーン転送では、マス ほかのゾーンの情報を得る方法として、 2005 年 10 月号 67

図 6 時刻に関する処理のデバック用のコード if (dbg-timenow) { ptime—free (timenow) ; timenow = dbg—timenow ; fprintf (stderr, "Debug: Running as if TimeNow is %s" ptimeget—ctime(dbg—timenow) ) ; 次に、指定されたオプションの妥当性の検証をおこない のため、 timenow 変数が TN = の右辺に書かれた時刻とな るように、 dbg-timenow 変数の値で置き換えています。 ます。 -R オプションが指定された場合、引数として指定さ また、このときに設定した時刻をメッセージとして出力 れたファイルのローテーションを実施します。つまり、 -R しています。 オプションが指定された場合には、ファイルも指定されて いる必要があります。 if (rotatereq) { argc) { if (optind warnx ( "At least one filename ・ when —R 疇 - must be given is specified. usage() ; / * NOTREACHED * / この確認は、引数が指定されていれば、 getopt 関数を終 了した段階で optind の値が argc よりも小さくなる点を 利用しています。この 2 つの値が等しけれは引数カ鮨定さ れていないことになるので、メッセージを出力して終了し ます。 -R オプションが指定された場合には、オプションへの 引数として指定された文字列をログファイルに書き出すメ ッセージのなかで利用します。この文字列のなかに印字で きない文字が含まれているとログファイルの閲覧の際に文 字化けを起こしたりするため、この段階でよけいな文字を ドット (. ) に置き換えています。 for (p = requestor; *p ! = if (!isprintch(*p) & & - ☆ 今回は、 newsyslog コマンドのソースコードのなかか ら、 main 関数とコマンド行オプションを解析する parse- args 関数を紹介しました。 プログラムの動作という意味では、まだとりあげていな い get-worklist や do-entry などの関数も重要です。 れらについても順番に紹介していく予定です。 ( たじみ・ひさかず ) 好評発売中 ! 。 = - プログラミング テクニック アドバンス 00 しし EC す一 ON プログラミング テクニック アドバンス 第区第 X フ 0 グラミング ース 0 ートに画な玉の手第 多治見寿和著 B5 判、 224 ページ ISBN 4-756 ト 4566 ー 3 ] , 890 円 ( 税込み ) 本誌に好評連載中の「プログラミング・テクニック」単行本 化第 2 弾 ( 2000 年 4 月号 ~ 2002 年 3 月号 ) 。 IJN Ⅸ上で実際 に使われているプログラムのソースコードを読みながら、 その成り立ちや数々の技術的工夫を学ぶことで、先人たち の経験に裏打ちされたプロク、ラミング手法が自然と身につ きます。実用的プログラミングを目指す方にお薦めの 1 冊。 マ目次から g 「 ep 、 flex 、 ps 、情報の収集、「 whOd 、「 up/ 「 use 「 s 、旧 v6 対応の te et 、 t 引 net の全体構造、リンクバッフア、非同期 入出力、シク、ナルの処理 株式会社アスキー 〒 1 02-8584 東京都千代田区九段北ト ] 3-5 日本地所第一ビル 営業局電話 (03) 6888-5500 http: 〃 www.ascii ℃ 0. jp/ なお、プログラムにはデバッグ用のコードがまだ残って います。たとえば、 dbg-timenow の値に依存して実行さ れる部分は、時刻の処理に関するデバッグのためのコード です ( 図 6 ) 。具体的には、 -D オプションへの引数として " という文字列が指定されている場合、指定され た時刻を現在時刻とみなしてプログラムを実行します。そ 66 UNIX MAGAZINE 2006 . 1