1998 年の秋に開催された SOCKS Summit のプレゼ ンテーション資料・の多くが、以下の Web ページで公開さ れています。 ・ socks5-stat の出力例 連載 / 遠隔オフィスとの接続ー① ・ Next Generation SOCKS (about/pdf/nextgen ・ pdf) Tota1 Co Ⅱ . 4.8 Mb 260 . 2 Kb 0 . 0 8 . 1 10 . 7 0 . 0 : mI : (http://www.stardust.com/events/socks98/pres- ・ The SOCKS Summit 1998 -- - Conference entations ( あらい・みちこ ASTEC) Connection summary ー Sat NOV 21 04 : 05 : 03 1998 t0 Sun NOV 22 15 : 49 : 09 1998 Current time : Sun Nov 22 15 : 49 : 09 1998 lnput files : /var/adm/messages Date 0f first daemon 10g encountered in input : Sat NOV 21 04 : 05 : 03 1998 Date 0f last daemon 10g encountered in input: Sun NOV 22 14 : 00 : 02 1998 Number Number Number Number Number input lines processed : 2731 0f daemon lines processed: 2724 successful TCP connections: 90 requested UDP connections : 816 requested ICMP connections : 0 0f Of of 0f Tota1 combined connection time (da:hr:mi : (e) : 00 : 00 : 22 : 44 Data transferred from inside t0 out : 66 . 0 Kb Number of failed connections : 0 Fai1ed Connections Data transferred from outside tO in: 5 . 1 Mb Top 5 users by number 0f User@address unknown@leo . domain. CO ・」 p me@cat . domain. CO ・」 p you@tiger.domain ・ CO ・ JP he@tiger.domain ・ CO ・」 p root@cat . domain. CO ・」 p Top 5 users by amount 0f User@address me@cat . domain. CO ・」 p you@tiger.domain ・ CO ・ JP he@tiger.domain ・ CO ・ JP root@cat . domain ・ CO ・」 p connections : TCP Co ⅡⅡ . 0 47 39 3 1 UDP Conn . ICMP CO . 816 47 39 3 1 data transferred : 816 0 0 0 0 Tota1 Data 4 . 8 Mb 270.9 Kb 66 . 8 Kb 29 . 7 Kb 0 . 0 Source—>Dest Kb Kb 29 . 4 Kb 17 .7 Kb 0 0 0 0 0 Dest—>Source 49 . 1 Kb 223.0 unknown@leo . domain ・ CO ・ JP Top 5 users by time elapsed: User@address me@cat . domain. CO ・」 p he@tiger.domain ・ co ・ JP you@tiger . domain. co ・」 p root@cat. domain ・ CO ・ jp unknown@leo. domain. CO ・ JP da 00 : 00 : 00 : 00 00 : 00 : 01 : 20 00 : 00 : 01 : 21 00 : 00 : 03 : 56 00 : 00 : 16 : 07 : hr TOP 5 source addresses by number Of connections : UNIX MAGAZINE 1999.1 45
Top 5 destination addresses Destination Address unknown ftp.ftpdomain.ad. jp WWW. somewhere . org matatabi . forcat . com Top 5 destination addresses Destination Address ftp.ftpdomain.ad ・ jp WWW. somewhere. org matatabi . forcat . com unknown Top 5 destination addresses 連載 4 . 8 Mb 0 . 0 0 . 0 0 . 0 : m1 : S e 00 : 00 : 16 : 07 00 : 00 : 05 : 16 00 : 00 : 01 : 21 00 : 00 : 00 : 00 Src—>Dst 49. 1 00 : 00 : 03 : 56 00 : 00 : 01 : 20 00 : 00 : 01 : 21 8 . 1 00 : 00 : 10 : 12 00 : 00 : 05 : 55 0 . 0 4 . 6 Mb 00 : 00 : 00 : 00 0 . 0 遠隔オフィスとの接続ー① Source Address 1e0. domain. co ・」 p cat . domain. CO ・ JP tiger. domain. co ・ JP Top 5 source addresses Source Address cat . domain ・ CO ・」 p tiger. domain ・ CO ・ JP 1e0. domain. co ・ JP Top 5 source addresses Source Address cat . domain. CO ・」 p tiger. domain ・ CO ・」 p 1e0 . domain. CO ・」 p Tota1 Conn . 42 48 816 TCP Conn . 0 48 42 UDP Conn . ICMP Conn . 816 0 0 amo ・ un. t of data transferred: Tota1 Data 337.7 Kb Source—>Dest 28 . 4 Kb 37.5 Kb 0 0 0 0 . 0 b 309.3 Kb 4.8 Mb Dest—>Source time elapsed: 00 : 00 : 00 : 00 00 : 00 : 05 : 16 00 : 00 : 17 : 27 da : hr : mi ・ Tota1 Conn . TCP Co n. number Of : UDP Conn . ICMP Co Ⅱ取 . 816 47 39 4 0 47 39 4 816 0 0 0 by amount of data transferred : Tota1 Data Source—>Dest 4 . 8 Mb 270. 9 Kb 96 . 4 Kb elapsed: 0 0 0 0 Dest—>Source 0 . 0 b 49.3 Kb 260.2 Kb 4 . 8 Mb time UDP 0 0 0 0 0 816 8 . 1 0 . 0 Dst 223.0 Kb Destination Address ftp.ftpdomain.ad ・ jp matatabi . forcat . com WWW. somewhere. org unknown A11 ports/services: Port/service 6666 7777 8080 ftp ftp—data unknown Restarts da 10 . 7 Kb 47.2 Kb —>Src TCP 3 1 39 1 46 0 : hr 0 0 0 0 0 0 I CMP da 17 . 7 Kb 29.4 Kb 10 . 7 Kb b b Kb 260.2 Kb 219. 6 Kb 0 . 0 Kb b b Socks5 was (re)started 0 times: End 0f summary . 46 : hr : m1 : S e UNIX MAGAZINE 1999.1
連載 / 遠隔オフィスとの接続ー① リスト 1 user SOurce dest port detail failed restart mai 1 out socks5-stat. conf の例 me@cat . domain. CO. 」 p , t cat . domain ・ co ・ jp, t=5 WWW. somewhere . org , t=5 al 1 al 1 a11 me@cat . domain ・ co ・」 p = 5 # and aISO top 5 users "cat . domain. co ・ JP" and top 5 hosts # "www. somewhere . org" and top 5 destinations # a11 ports ShOW ShOW show send ・障書発生時に間題をくるために、必要に応じて Socks サーバーヘログインし、 Socks サーバー上の言算機から 手動で socks5-stat を実行する。 ・出力結果をメールで送信するか標準出力に出力するか ・ Socks サーバーの再起動回数を表示するかどうか か ・失敗した接続の情報を田に表示するか簡略に表示する ・順位表示する数 号 ( サービス ) の指定 表示するユーサー、ネットワーク ( ホスト ) 、ポート番 以下の項目を言当します。 socks5-stat の設定ファイノレ socks5-stat. conf には、 行する。 機にコピーし、必要に応して手動で socks5-stat を実 するために、ログファイルを定期的にローカルな計算 特定のユーサーや計算機、サービスの状況を頻繁に監視 リスト 1 は、 socks5-stat. conf の例です。 ルには、 ん e vo 司礰リ [ , 佖 [ , のリ [ , の形式で設定を言当します。 ん e 00 には、 このファイ リストに示 したものを使うことができます。 user" では、角財斤したいユーサーを、 社・れ佖 7 e@a07れ 02 れれ 07 e または、 t=n の形式で指定します。 す。 42 、 t = れ " は順位表示する数の指定で a detailed user report a11 failed connections (default) a11 daemon restarts the summary via email source" および、、 dest" の指定は、発信元アドレスおよ ひ宛先アドレスの順位表示に関するものであることを除け ば、 user の場合と同様です。 、 port" は使用状況を角斤するポート番号 ( サービス ) を 指定します。ーはすべてのポートを意味します。 、、 detail" はユーサー情報を詳細に表示するかどうかを指 定します。引数として指定できるのは a Ⅱまたは n 。 ne で、 デフォルトは none ( 言田を表示しない ) です。 、、 failed" は失敗した接続に関する情報の表示形式を指定 します。引数として指定できるのは all または mini- mum 、 none で、デフォルトは all ( 聞帯にを表小する ) restart" は Socks5 の起動や再起動の状況に関する表 示を指定します。引数として指定できるのは all または none で、デフォルトは none ( 再起動の状況を表示しな い ) です。 最後の、、 mailout" は、 socks5-stat の出力結果をメー ルで送るように指定します。引数の、、 me@cat.domain. co. jp" は送信先の電子メールアドレスです。 これで、 socks5-stat スクリプトを実行する準備か整い ました。 socks5-stat コマンドの実行 socks5-stat スクリプトと socks5-stat. conf ファイ ルを正しく設定したら、オフションなしで socks5-stat スクリプトを実行してみましよう。定の内容に従って、 Socks サーバーのログの角財斤結果か表示 ( またはメールで 送信 ) されます。 $ socks5—stat UNIX MAGAZINE 1999.1 ログを角斤する期間を設定することができます。以下に 4 オプションを指定すれは、設正ファイルを変更したり、
連載 / UN Ⅸの玉手箱ー① 以下に挙げる 3 不頁のキーワードがあります。 ・ nameserver UNIX MAGAZINE 1999.1 できます。 8 最大 6 つ ( 全体で 256 文字以のドメインをスペースて区切って指定 DNS サーバーに間い合わせます。 とができます。この場合、 /etc/resolv. conf に書かれた順番に従って 7 FreeBSD と Solaris では、最大 3 つの DNS サーバーを孑旨定するこ がいいでしよう。 場合は検索にがかかるため、通常は指定しないほう 索されます。当然、ドメインがローカルドメインでない リストを指定すると 8 、指定されたドメインか順番に検 これに対し、 search キーワードの値としてドメインの 対しておこなわれます。 キーワードで得られるドメイン ( ローカルドメイン ) に ホスト名のみで与・えた場合、ホストの検索は domain 通常、間合せの対象となるホストを FQDN ではなく 意が必要です。 メインの DNS サーバーに間合がおこなわれるので主 トはルートドメインに属するものとみなされ、ルートド メイン名が含まれない場合は、間合の対象となるホス ローカルドメインとして扱われます。このホスト名にド ドでケえたホスト名 (FQDN) に含まれるドメイン名が domain キーワードを省略すると、 hostname コマン ドメインのホストか検索の対象となります。 おくと、間合迂にホスト名のみを用いた場合、ローカル ドメイン ) を与・えます。 domain キーワードを言殳定して 値として、クライアントカ嘱するドメイン名 ( ローカル ・ d01na111 DNS サーバーとみなされます。 いうキーワードか書かれていないと、ローカルホストが します 7 。なお、 /etc/resolv. conf に nameserver と れぞれの DNS サーバーの IP アドレスを 1 っすっ指定 利用したい場合は、 nameserver キーワードを用いてそ 置いていることがあります。複数の DNS サーバーを きるよう、同しドメイン内に複数の DNS サーバーを バーがダウンしたときにも他のサーバーが処理を代行で DNS サーバーにかかる負荷を分散させたり、あるサー ドレスをドット表記で指定します。細織によっては、 値として、間・作をおこなう DNS サーバーの IP ア たとえは、 f00. co. jp の DNS サーバーの IP アドレス が 192.168.1.2 である場合、このドメインに属するクライ アントの /etc/resolv. conf は以下のようになります。 domain f00. co . 」 p nameserver 192.168.1.2 # ns . f00 . co ・」 p FreeBSD の場合、 OS のインストール時に DNS クラ イアントの設疋をしていなけれは、 /etc/resolv. conf ファ イルは作成されません。このような場合はエデイタなどを 使って新たに作成する必があります。 BSD/OS と So- laris の場合も同様に、 /etc/resolv. conf ファイルを新た に作成します。 /etc/hosts と NIS 、 DNS の併用 ホスト名と IP アドレスを管理する仕組みとして、ロー カルな /etc/hosts と NIS および DNS の 3 つを紹介し ましたが、これらを組み合わせれは、相互補完的に利用す ることができます。 去もの UNIX は、どの情報源をどの順番で検索するか を指定でき、 FreeBSD は /etc/host. conf. 、 BSD/OS は /etc/irs. conf 、 Solaris は /etc/nsswitch. conf と いうファイルを使って設正します。 FreeBSD の /etc/host. conf FreeBSD か利用する /etc/host. conf ファイルは単純 で、 /etc/hosts は、、 hosts" 、 NIS は、ⅲ s " 、 DNS は 、 bind " というキーワードに対応しています。これらのキ ーワードを使い、利用したい情報原を検索する順番に列挙 します 9 。 FreeBSD をインストールした直後の /etc/host. conf を図 3 に示します。 bind (DNS) と hosts (/etc/hosts) を使い、 nis (NIS) はコメントアウトされて使わない設定 になっています。 NIS を利用するときは、キーワード nis の地頁にある、、 # " を削除します。この場合、ホスト情報 を検索する手順は以下のようになります。 1. 最初に DNS サーバーに問合せをおこない、十館きに失敗 したらローカルな /etc/hosts ファイルを参照する。 2. /etc/hosts を検索して該当するエントリがみつからな けれは、 NIS サーバーに間い合わせる。 9 キーワードは 1 行に 1 っすつ定し、、 # " 以降はコメントとみなされま す。 115
連載 / コミュニケーション用サーパーのインストールと運用ー① 図 6 スプールホストの def ファイル ( ダイヤルアッフ竟 ) LOCAL_HOST_IPADDR=192.168 CHECK_RELAY_DEFAULT=deny CHECK_HOST_ALLOW=192.168 USERTABLE—LOCAL—REWR 工 TE=yes USERTABLE_MAPS= ) local=hash : /etc/ut .10Ca1 ' DEFAULT_RELAY= ' smtp : smtpserver. provider. ne DIRECT_DELIVER_DOMAINS= ' $m' BITNET=auto SMTP8_MAILER_FLAG_SUB= 'M ' ESMTP_MAILER_FLAG_SUB= 'M ' SMTP_MAILER_FLAG_SUB= 'M ) ALWAYS_APPEND_DOMAIN=yes L OWER_MATCH_ STYLE=any ACCEPT_LOWER=yes ACCEPT_ADDRS= ) $m ' REWRITE_GENERIC_TO=10wer REWRITE_GENERIC_FROM=10wer RECIPIENT_GENERIC=yes FROM_ADDRESS= ) $m ' OS_TYPE=bsd4.4 CF_TYPE=R8V8 UNIX MAGAZINE 1999.1 解説は省いて簡単に説明します。ューザーのホーム・ディ 現在も頻繁 ( ンヾージョンアップされているので、詳細の ミラーをおこなっているようです。 pub/network/mail/fetchmail/ でもアーカイプのみの / fetchmail / で公開されています。 ftp://ftp.win ・ or ・ jp/ このソフトウェアは、 http://www.tuxedo.org/-esr して、 fetchmail があります。 か簡単になります。このような動作をしてくれるツールと からはローカルスフ。ールのみを参照すれはいいので、成疋 ルをローカルのメールスプールに交ぜてしまえは、 N'IUA このような状況で、 POP サーバーから取ってきたメー バーから拾う必要があります。 す。これに対し、外部からのメールは ISP 上の POP サー それらのメールは LAN 内のスプールホストに蓄えられま LAN 内のホストどうしでメールのやりとりができます。 このように LAN 内でメールシステムを作った場合、 fetchmail の利用 LOCAL_HOST_IPADDR=192.168 CHECK_RELAY_DEFAULT=deny CHECK_HOST_ALLOW=192.168 RELAY_MAILER_FLAG_SUB= ' M ) SMTP8_MAILER_FLAG_SUB= ) M ) ESMTP_MAILER_FLAG_SUB= ' M ' SMTP_MAILER_FLAG_SUB= ) M ) SPOOL_HOST=sp001host . private—network. jp OS_TYPE=bsd4.4 CF_TYPE=R8V8—nu11 図 7 そ也のホストの def ファイル ( ダイヤルアッフ竟 ) 図 8 /etc/ut. local 列 図 9 . fetchmailrc 列 youichi : mailname koyama@provider.ne ・ JP defaults protocol pop3 Ⅱ 0 mimedecode # isp isp rules P011 popserver. provider. ne ・ JP user koya.ma pass honyarara レクトリに . fetchmailrc という名則で図 9 のようなファ イルを準備しておき、そのユーサーがメールを拾いたいと 思ったときにコマンドラインから fetchmail を起動する と、 POP サーバーから取ってきたメールをローカルにス プールしてくれます。 p 。 11 で POP サーバー名を指定し、 user と pass には、 ISP の POP サーノヾーでのユーザー 名とパスワードを指定します。 重川原理としては、 fetchmail は指定された POP サー バーからメールを取ってきたあと、エンべロープの受信人 として fetchmail を実行したユーサー名 (@以下がないも の ) を設定したうえでローカルの SMTP サーバーに接続 して引き渡すだけです。実際にスプールをおこなう作業は sendmail などに任されるので、 sendmail.cf などは適切 に設定する必要があります。 この際、エンべロープの受信人に設定されるユーサー名 としては、環境変数 USER があればその内容を利用し、 なけれは環境変数 LOGNAME を、それもなければ実効 UID からパスワード・ファイルを利用して決定する仕組 みになっているようです。 毎回 fetchmail コマンドを実行するのか面倒ならは、次 のような行を . fetchmailrc に追加すると、デーモンモー ドとして動作し、 300 秒ごとに POP サーバーをチェック してくれるようになります。 set daemon 300 今回の例は、私訟、丘なところで実際に使っている設定 を中心に解説してみました。これはあくまで設定の一例に すぎす、同じ目的を果たすのにもっと別のよい鮹夬法があ るかもしれません。 CF の日本語マニュアルには丁寧な解 説があります。それらを参考に、よりよい設定を目指して ☆ ください。 39 にやま・よういち京都大学 )
連載 / コミュニケーション用サーパーのインストールと運用ー① 本を 1 つのドメイン (daigaku ・ ac. (p) て漣用し 1 、メー ルスフ。ールも 1 台だけだったのが、ユーサーか増えたので 研究室ごとにサブドメインを準備し、メールスプールも各 研究室ごとに確保したいようなときは、どのように設定す れはよいのでしようか。 この場合、単純にメールスプールをサブドメインごと に準備すると、これまで user@daigaku.ac.jp といった 形式のアドレスを利用していたユーザーに対して、今後は れSe7迥工む1ab. daigaku. ac. jp という形式のアドレスの利 用を強いることになります。もちろん、ユーザー数か増え たのでユーサー名の衝突を避けるという目的で分割するの であればそれでもよいでしよう。しかし、たんにスプール の容量を自山に確保できるように分割する場合などは、従 来のメールアドレスをそのまま利用し続けたいこともあり ます ( もちろん、ユーサー名は従来どおり大学全体で一 となるような付け方をします ) 。 そのときは、次のようなホスト構成を用います。 ・従来の、、大学全体でのメールスフール " を担当していた ホスト ( ここでは、ホスト名を hubhost. daigaku ・ ac. jp とします ) をハプホストにし、従来どおり daigaku. ac. jp ドメインの MX (Mail eXchanger) とする。 ・各研究室ごとに設けられたサブドメイン ( ェ ab. daigaku ・ ac. (p) に対応する研究室内ューサー専用のメ ールスプール用ホストを 1 台すっ準備し ( ホスト名を spoolhost.m-lab. daigaku ・ ac. jp とする ) 、そのホス トを工む1ab. daigaku ・ ac. jp ドメインの MX とする。 ・ユーザーがどのホストから発信しても、従来どおり From : 以下に user@daigaku.ac.jp が付くようにする。 ・学の外から use@daigaku.ac.jp に出されたメール は hubhost. daigaku ・ ac. jp に届くので、このスト上 で /etc/aliases か . forward を用いて、各研究室のスプ ールホストに中幻医する。 このようにすると、メールスプールが分かれたこと以外 は、従来と変わらない使用感をユーサーに提供できます。 ただし、従来は学内のユーサーに対してはすべて社 set 、 のみの (@以下がない ) アドレスでメールを出せたのが、 各研究室ごとにスプールホストを置いたために、他の研 1 ここでは大 : 本を例にしましたが、適「学部本」や「学利全体」の ように読み替えてください。 UNIX MAGAZINE 1999.1 図 1 ハプホストの def ファイル CF_TYPE=R8V8 OS_TYPE=bsd4.4 FROM_ADDRESS= ' $m' ACCEPT_ADDRS= ' $m' BITNET=auto LOCAL_HOST_DOMAIN= ' daigaku ・ ac ・ jp ALLOW-RELAY_TO= ' daigaku ・ ac ・ jp 図 2 スプールホストの def ファイル ( ハプホストを用いる構成 ) CF_TYPE=R8V8 OS_TYPE=bsd4.4 FROM_ADDRESS= ' xx—lab. daigaku ・ ac ・ JP RECIPIENT_GENERIC=yes ACCEPT_ADDRS= ' $m' ACCEPT_LOWER=yes LOWER_MATCH_STYLE=any SPECIAL_FROM= ' daigaku. ac ・ jp ) SPECIAL_USERS= ) /etc/mail/users-in-daigaku' HUB_HOST= ' hubhost . daigaku ・ ac ・ jp REMOTE_USERS= ' /etc/mail/users—in—daigaku ) NON REMOTE_USERS= ) /etc/mail/users—in—lab ) RELAY_LOCAL_TO_HUBHOST=no LOCAL_STICKY=yes B I TNET=aut 0 PRIVACY_FLAGS= ' goaway' LOCAL_HOST_DOMAIN= ' xx—lab . daigaku ・ ac ・ JP ALLOW_RECIPIENT_DOMAIN= ) xx—lab. daigaku ・ ac ・ jp 究室のユーザー宛のメールについてはドメイン部分を省略 できなくなります。これは、宛先が他の研究室のユーサ ーのメールはいったんハプホストに転送し、そこで /etc/ aliases などの処理を施したのち各スプールホストに送る ことで対処できますにれが、ハプホストと呼ばれる理山 です ) 。ただし、この機能を用いた場合も、学外へのメー ルについてはハプホストを経由せす、茁妾スフ。ールホスト から酉当されます。 CF には、このような環境に対応するための設定変数と して HUB-HOST が、はかの関連する変数として RE- MOTE-USERS と NON-REMOTE-USERS があり ます 2 。これを使った def ファイルの記述例を、 ノ、フ ホスト " 、、 ( 各研究室の ) スプールホストその他のホス ト " の 3 不鶤頁に分けて、図 1 ~ 3 に示します。 この設定では、各研究室用のスプールホスト (spool- host.m-lab. daigaku. ac. (p) 上に、 /etc/mail/users-in -daigaku と /etc/mail/users-in-lab というファイルを 準備する必要があります。前者にはすべての学内ューサー 2 なぜか NON-REMOTE-USERS については MANUAL. jpn 中 に解第ありませんが、 Standards/sendmaiI-v8. def などには言当生 があリます。 35
DAEM 〇 NS & DRAG NS 0 サプネットの適刀な構成法 •William LeFebvre アドレス空間を有効利用するため、 IP ネットワーク を複数のサプネットに分割する手法がよく利用されてい る。しかし、サプネットの彳難リを誤解していると、設引、 を誤って混乱を招く可能性がある。また、クラスレスな 糸子路制御方式 (CIDR: CIassIess Inter-Domain Rout- ing) の出現もこの問題を複雑にしている。今回は、伝 統的なサプネットの構成法とその制約事項を紹介したあ と、クラスレスな辛各制御によってサプネットのルール がどのように変わるかを考察する。 IP アドレスに詳しい人であれは、クラス A 、 B 、 C と いう 3 つのアドレスクラスをご存しだろう。それぞれの クラスは、アドレスのネットワーク部とホスト部の境界 が異なる。各クラスの境界は図 1 のようになっている。 バケットが、ローカルではないネットワーク (nonlocal network) 1 に送られる場合は、経路に対するすべての判 断はアドレスのネットワーク部だけをもとにしておこな われる。 IANA (lnternet Assigned Numbers Authority) は、 IP ネットワークのネットワーク番号の発行権限を InterNIC に委譲している。ある組織がネットワーク ( ネットワーク番号 ) をケえられると、ネットワークの アドレスをさらに分割してサプネットを構成することが できる 2 。 内部ネットワークを設言 1 するときは、はしめにサプネ 1 、 distant network" と呼ぶこともある ( 訳注 : 本文では、リモート・ ネットワーク " と呼」 : ) 。 2 訳注 : 現状では、内部ネットワークにはプライベート・アドレ ス ( 10.0.0.0 ~ 10.255.255.255 / 8 、 172.16.0.0 ~ 172.31.255. 255 / 12 、 192.168.0.0 ~ 192.168.255.255 / 16 ) を使い、割り当て られたネットワーク番号 ( グローバル・アドレス ) はファイアウォー ルの外側のホストだけに使うのが一 -- 勺である。 UNIX MAGAZINE 1999.1 from UNIX REVI. EW 図 1 IP アドレスのクラス 31 クラス A クラス B クラス C 133 ネットワーク部 ネットワーク部 ネットワーク部 170 6 ( 例 ) ホスト部 ホスト部 ホスト部 ット番号とホスト番号の境界を決めなければならない。 この作業をすることで、 2 つの部分から構成されていた アドレスは、ネットワーク部とサプネット部、ホスト部 の 3 つに分割されることになる。選択した境界はサプ ネットマスクとして表現され、通常は 10 進数をドット で区切った表記が用いられる。値が 1 のビットは、アド レスのネットワーク部かサプネット部に対応する。たと えば、 255.255.255.0 は標準的なクラス C のネットマ スクに相当する。 255.255.255.224 の場合は、最後のオ クテットの 3 ピット目が境界で、残りの 5 ビットがア ドレスのホスト部になる。 サプネットの境界か決まったら、内部ネットワークの それぞれにサプネット番号を割り当てる。ホストのアド レスは各サプネット内で割り当てることができる。この 時点で、 2 つのホストアドレスが予約されていることに 注意してほしい。ホストアドレスが 0 の場合は物理ネッ トワーク物本を表し、ホストアドレスのピットがすべて 1 の場合はプロードキャスト・アドレスになる。 あるサイトが 133.170.0.0 というクラス B のネット ワーク番号を割り当てられているとしよう ( 図 2 ) 。ネッ トワークの設言としては、アドレスの 3 番目のオクテッ 105
CIDR によるネットワークの再構成 by Larry Bennett •f 「 0n1 Performance Computing ほんのすこし前まで、インターネットの世界はそれほど 広くなく、 1 つの IP 経路制徊俵さえあれは考えうる目的 地をすべて糸できた。インターネットが急に拡大する と、糸習各制御表のサイズもそれにともなって大きくなり、 管理か難しくなってきた。膨大な量の清幸ミ飛び交うなか で、ネットワーク・バケットをそれぞれの目的地に振り分 けるルータにかかる負担か増大した。 アドレスの間題は、 128 ビットのアドレッシング能力 をもつ IPv6 により長期的には角夬されるだろうが、 IPv6 の普及にはまた時間がかかる。去麒月的な対策として、 IPv4 を拡張する技法が開発、実装されるようになった。それ が CIDR (Classless Inter-Domain Routing) である。 CIDR には次のような特徴がある。 1. ネットワーク・クラスの放棄によりス→ヾーネット 1 化 が可能になる。 2. プロックアドレス割当てを実装する。 3. 階層型の糸各制御カ呵能になる。 こでは、 CIDR の機能について解説し、インターネッ トの IP アドレス構成と糸響各制御に関する問題点を考える。 ます、 IP アドレスの基本を簡単にみておこう。たとえ は、インターネットのようなシステム似ード、インターネ ットワーク ) は、ルータで接続された 2 つ以 E の論理ネッ トワークによって構成される。現在の IP (v4) では、イ ンターネットワーク上の各システムはインターフェイスご とに 32 ピットの IP アドレスをもっている。 IP アドレスは、扱いやすいようにドット付きの 10 進数表記で表現され、 8 ビットすつの 4 グループに分 1 連続するネットワーク・アドレスをもっ 2 つ以 E のネットワークを組み 合わせたもの ( 。 UNIX MAGAZINE 1999 ユ けて記述される。たとえば、 2 進数で表されたアドレス 10000010 00100011 10010110 00000011 は、 10 進 ~ 去 では 130.35.150.3 と表記される。 IP アドレスは 2 つの部分に分割される。ネットワーク ID ( ネットワーク・プレフィックスとも呼はれる ) が 1 つ の論理ネットワークを表し、ホスト ID はそのネットワー ク上の特定のホストを定義する。 2 つの部分の境界は 32 ビットのあいだのどこかに存在する。従来のアドレス構成 法は、、クラスフル・アドレッシング " とも呼はれ、ネット ワーク・クラスによって境界が異なっている。最初の 0 が 何ビット目にあるかによって、そのアドレスが ( A 、 B 、 C のうち ) どのクラスに属しているかが分かる。図 1 に、 3 つの従来型アドレスクラスを示す。 ロサプネットとネットワーク・マスク 残念ながら、従来の IP アドレスの使い方では、現代 のインターネットワークで必喫とされる能力を囎軍するこ とはできない。たとえは、最大 65 , 534 のホストを収容で きるクラス B アドレスをもつ Beech 社があるとしよう。 Beech 社はそれだけの数のシステムを 1 つのネットワー クて運用するのではない。 TokenRing や Ethernet など によるいくつかのネットワークを細系調内で使っている。そ こで、ネットワーク管理者はサプネットを用いて、管理が 容易になるようにクラス B のネットワーク・アドレスを いくっかの部分に分割する。 ホスト ID とネットワーク ID のあいだの境界線を動か してアドレスをサプネット化し、ネットワーク部分により 多くのピット数を・与える。ネットワーク上のホストとルー タには、 IP アドレスとともにサプネットマスクが与えら 81
スのデータベースを正しく管理することは、ネットワーク 環竟でホストを利用するためのもっとも基本的な設定であ るといえます。 ローカル管理とリモート管理 ホスト名と IP アドレスのデータベースを管理するには いくっかのガ去がありますが、いずれの去であ最終 的にはホストやネットワークの管理者が手作業で糸財寺する ことになります。データベースを誰 ( どのホスト ) がもつ かによって、管理ガ去は以下の 2 つに大きく分かれます。 連載 / IJN Ⅸの玉手箱ー① 前者を、、ローカル管理 " 、後者を ・特定のホスト ( サー。ー ) がデータベースをもち、残り すべてのホストがローカルにデータベースをもつガ去 、、リモート管理 " と呼ぶことにします。 こでは便宜的に のホストはサーバーに間い合わせる・去 UNIX MAGAZINE 1999 ユ hosts) というファイルか 1 司凵齬リをもっています。 トールされているディレクトリ *hosts" ( たとえ tiC:*Windows* 2 Windows 95 / 98 や Windows NT では、、、 Windows カゞインス NIS のサーバーにはマスターとスレープの 2 不頁があり NIS は、 1 つのサーバーでデータベースを管理します。 情報を得るため、データベースをもつ必がありません。 トは、必要なときにサーバーに間い合わせることによって データベースを特定のサーバーカ理します。クライアン テムでは、図 l-b のように、ホスト名と IP アドレスの (Domain Name System) が代表的です。これらのシス で、 NIS (Network lnformation Service) や DNS そこで考案されたのがリモート管理に分類される方法 NIS と DNS スか起こる可能生も高くなります。 新の手間も増え、更新を忘れたり登録を間違うといったミ はそれでもよかったのですが、ホストの台数に比例して更 した。ネットワークに接続されるホストの数が少ないうち ホストがもつデータベースを更新しなければなりませんで はこのガ去しかなく、ホスト情報に変更があった場合は全 UNIX マシンでネットワーク竟を構築し始めた当初 します 2 。 では、 /etc/hosts というファイルがデータベースに相当 れたホストすべてがデータベースをもつ去です。 UNIX ローカル管理は図 1 ー a のように、ネットワークに接続さ 図 1 ホスト情報データベースの里 ( a ) ローカル管理 ホスト情報 データベース ロ ホスト情報 データベース ( b ) リモート管理 サーバー ロ アータベース 問合せ 応答 クライアント ロ ホスト情報 データベース データベース ロ ロ クライアント クライアント ますが、スレープはマスターがもつオリジナルデータのコ ピーをもっているサーバーであり、マスターか利用できな いときの代替サー ーとして機能します。 NIS を階層的 な管理が - 可能なように拡張した NIS 十というシステムも あり、 SoIaris などてイ吏用されています。 これに対し、 DNS は管理範囲ごとにサーバーを置き、 その管理範川内の情報をデータベースて管理します。クラ イアントはつねに管理範囲内のサーバーに対して問合をを おこないますが、管理乖観月外のホストに関す引帯にを知り たい場合は、そのサーバーが別のサーバーに対して問い合 わせて結果をクライアントに返します。 いすれの場合も、サーバーのもっデータベースは管理 者が手竹喋て財寺しなけれはなりません。しかし、データ べースはサーバーて集中的に管理されているため、ローカ ル管理にくらべてイ 1 喋の負担はかなり軽減されます。さら に、 NIS や DNS ではホスト名と IP アドレス以外の情報 を管理してクライアントに提供できます。たとえば、 NIS は前々回に紹介したパスワード情報やグループ情報をはし めとするさまざまな情報を扱うことができ、 DNS はそれ ぞれの管理範囲にあるメールサーバーなどの情報を提供す 111
連載 / UN Ⅸの玉手箱ー① NIS UNIX MAGAZINE 1999 ユ 覧ください。 味のある方はオンライン・マニュアル gethostbyname(3) などをご 3 具ー勺には、 gethostbyname() などのライプラリ関数を指します。興 して /etc/hosts 、 NIS 、 DNS のどれを利用するかといっ これに対し、 FreeBSD や BSD/OS では、情報源と ありました 3 。 のライプラリ関数を NIS 対応のものに入れ替える必要が ドレスの変換に NIS を使うには、変換をおこなう c 言語 てやらなければなりません。旧い OS でホスト名と IP ア て NIS を利用するには、 NIS を使うことをマシンに教え IP アドレス ( あるいはその逆 ) を得るための情報源とし 実際に他のホストにアクセスする際に、ホスト名から はおこなわれません。 マンドを実行する際、ホスト名から IP アドレスへの変換 はできますが、 telnet や rlogin などのネットワーク・コ けの状態では、 NIS サーバーからの hosts マップの参照 ただし、 NIS クライアントとしてセットアップしただ bash$ ロ 192.168.1.11 Ⅱ ullpc. f00 ・ co. jp nullpc fs bash$ ypmatch 192.160.1.11 hosts. byaddr 192 .168.1.15 somepc. f00 . co. jp somepc bash$ ypmatch somepc hosts 192.168.1.15 somepc . f00. co ・ jp somepc 192.168.1.11 nullpc. f00. co ・ jp nullpc fs 192 .168 . 1 . 10 mypc. f00. co. jp mypc bash$ ypcat hosts て特定のホス日辭長を検索することができます。 hosts マッフの一覧を表示したり、 ypmatch コマンド ypbind が正常に動いていれは、 ypcat コマンドで う名前で指定できるようになっています。 のマッフです。 hosts. byname マッフは、、、 hosts" とい で、後者は IP アドレスをキーとしてホスト名を得るため スト名をキーとして IP アドレスを検索するためのマッフ hosts. byaddr というマッフ。で管理されます。前者はホ NIS サーバーでは、ホスト情報は hosts ・ byname と ば、 NIS サーバーからホスト情報を得ることができます。 NIS ドメイン名を設疋して ypbind デーモンを起動すれ た。あるホストを NIS クライアントとして利用する場合、 いては、連載の第 5 回 ( 1998 年 11 月号 ) で紹介しまし NIS の概要と NIS クライアントのセットアップにつ たことや、複数の情報源を併用する場合の優回立を設定 ファイルて指定できるようになっています。具ー勺な設定 ガ去については DNS のあとに紹介するので、 NIS のホス ト情報を利用する場合はそちらを参照し、適切に設定して ください。 なお、 FreeBSD マシンを NIS サーバーとして設定 する方法については、次回で詳しく紹介する予定です。 BSD/OS には、残念ながら NIS サーバーに必要なデー モン・プログラム (ypserv) などが付属していません。 DNS DNS は連載の第 3 回 ( 1998 年 8 月号 ) でも触れたよ うに、ホスト情報をインターネット全体で分散管理するこ とを目指し、米国のインターネットの前身である ARPA- NET で開発されたシステムです。 DNS 自体はサー ーの構成や間伶をなどのプロトコルを定めた、、仕様 " であ り、 RFC1034 や RFC1035 などで規定されています。 DNS の仕様にもとづき、カリフォルニア大学バーク レイ校が実装したサーバーなどのプログラム群が BIND (Berkeley lnternet Name Domain) と呼はれるノヾッ ケージで、 BSD 系の UNIX のみならす、多くの UNIX で使われています。 DNS の仕組みやプロトコルの詳細については本誌の 「 UNIX Communication Notes - ー BIND による名則 管理 ( 1 ) ~ ( 5 ) 」 [ 1 ] 、サーバーのセットアッブガ去につい ては「 UNIX 知恵袋ーネームサーバ などを参照していただくとして、ある DNS サーバーが 管理するネットワークの範囲はゾーン (zone) と呼はれ ます。ゾーンは DNS サーバーカ嘱するドメインに対応 する場合もありますし、そのドメインに加えて ( 複数の ) 下位ドメインも含む場合もあります。 こでいうドメイ ンとは、 FQDN のドメイン名が示すドメインと同しで、 UNIX のファイルシステムのようにツリー状の階層構造 をもちます。 ツリーの項点は、、ルートドメイン " と呼ばれ、ルートド メインの直ードは国などを表すドメインて構成されます。た とえば、日本であれば、、 jp " 、英国であれば、、 uk" などと なっています。 国を表すドメインの下は系の不鶤頁や地域を表すドメイ ンて構成され、 jp ドメイン ( 日本 ) の場合、企業を表す 113