第4章

インターネットアプリケーション

更新日:06/01/18 17:45:06


1.DNS  

2.FTP  

3.NFS  

4.SMTP 

5.HTTP 

6.SNMP 

7.TELNET 

8.NNTP

9.DHCP 


 インターネットの普及とともにインターネットアプリケーションは,量的にも質的にも日進月歩で発展しています.ユーザから見た時,コンピュータやコンピュータネットワークはインターネット(又はイントラネット)アプリケーションそのもののようにさえ見えます.
 このように,インターネットアプリケーションはすでに無数にあり,かつ今後も無限に進化を遂げていくことでしょうが,ここでは典型的なアプリケーションについてだけ見ておきましょう.
 典型的といわれるインターネットアプリケーションは,UNIX文化の上に誕生したものです.その意味で,UNIXというオープンシステムの果たした役割は計り知れないものがあります.ファイルやプリンタなどコンピュータ周辺資源を共有するためのNFS,電子メール交換のためのSMTP,WWW(World Wide Web)のためのHTTP,ファイルを送受信するためのFTP,等々はインターネットユーザにとって日常的に必須のアプリケーションプロトコルです.
 なお,この章の位置づけは微妙です.とりあえずここに挙げたアプリケーション等は本章以降で勉強するプロトコルTCP/IPを使うという意味で紹介してありますが,この章の中身がしっかり理解できるためには,TCP/IPを理解しなくてはなりません.インターネットアプリケーションとTCP/IPの間の関係は,その意味で「鶏と卵の関係」になっています.最初は,どういうインターネットアプリケーションが,何をするために存在するかだけを理解しておいて,あとでTCP/IPが十分分かったところでもう一度この章を見直すとよいでしょう.

第1節 DNS(Domain Name System)

 TCP/IPでは,DTE(データ通信端末)はすべて世界に一つしかない32bitのユニークなIPアドレスによって識別されます.しかし,133.23.202.123などというIPアドレスは記憶するにもメモするにも大変です.まして,IPアドレスは,ネットワークIDホストIDが入れ込まれていますので,接続するネットワークが変われば,それに応じてIPアドレスを変えなくてはなりません.そこで,IPアドレスとは別にネットワークにドメイン名をふることにします.そして,ドメイン名とIPアドレスの対応表を用意します.この対応表がDNSです.人は,ドメイン名をアドレスのように使い,ネットワーク機器はIPを使う,その対応関係はDNSが教えることでシステムが運用できるようになっています.いま,pine.ese.yamanashi.ac.jp」という名のドメイン名の「pine」というネームスペースが 133.23.202.x というIPアドレスであるとすれば,これを一対のものとしてDNSのデータベースは保持します.一つのDNSが直接的にサービスする範囲をゾーンと言います.


 図4.1.1 DNSサーバーとリゾルバ 

 上の図ではDNSサーバを一台だけ描いてありますが,一つのゾーンには二台のDNSサーバーが対応します.そして一次サーバーはゾーン内の情報を,二次サーバは他のゾーンとの関連情報を保持し,両者は情報の共有を図っています.
 DNSサーバーにはタイムアウト機構があります.これによって一定時間毎に古いデータを破棄し,最新のデータと入れ替えます.
 上の図で右側のDNSは「ドメイン名」と「IPアドレス」の対応表を所持しています.これに対してホストは必要があって尋ねます.たとえばメールを出すのに「pine.ese.yamanashi.ac.jp
」というホストのIPアドレスを必要とするからです.尋ねることを強調するためにここではリゾルバ(resolver)と呼ぶことにします.DNSは自分が所有している対応表からそのIPアドレス133.23.202.123と答えてあげます.リゾルバであるホストはこれを使ってメールのアドレスフィールドにIPアドレスを入れることができます.したがって,ネットワークに接続されたホストには必ず最低一つのDNSを登録することが必要になります.
 こうしておくと,かりにホストを更新してIPアドレスが変更されてもDNSにそれを登録しておけば他者から見たときに変更は見えなくなり,システムの更新に対して強くなります.しかるに,IPアドレスを使っているとそれを変更するたびにみんなに知らせないと周知されません.DNSを使う利点はこういうところにも現れてきます.

ドメイン名

 ところで,ドメイン名には一定のルールがあります.構造は,下から順次,第1階層,第2階層,第3階層・・・になっています.第1階層は,国名を表し,日本では<jp>というニーモニックが指定されています.国別ニーモニックは下の表を参照して下さい.(インターネットの発祥の地米国だけは例外的に第1階層の国名が省略されます.バスの初乗り乗車券みたいですね)
 第2階層は組織属性や地域属性を表していて<ac>はacademicの略で大学等の学術組織を意味します.この組織属性・地域属性のニーモニックの付け方は各国の国別Network Information Center(NIC,日本ではJPNIC)に委ねられています.日本における属性ニーモニックについても下表を参照して下さい.(特に自治体およびそれに関係する組織についてはそれ以外と異なる階層構造やニーモニックが付されています.)
 第3階層はこの場合では組織名で,<yamanashi>は山梨大学を表しますが,<日本>の<大学等>で<yamanashi>というニーモニックは他に使うことは許されません.この許可も各国のNICが一括して管理しています.
 第4階層の<ese>は,サブドメイン名で工学部A3号館に「関係するホスト」に付されていますが,この名前は山梨大学総合情報処理センターが一括管理する形で重複を避けます.
 第5階層(最終階層)<pine>は,<ese>サブドメインの更に小さなサブサブドメインで,<ese>のネットワーク管理者が一括管理し,重複を回避します.<pine>の下はホスト名です.筆者のホスト名は<rose>です.(「ese」の管理者の言によれば,人間に「棘」があるからだそうです????.) このように,下の階層にいけばいくほど小さな組織が自主的に決定し,自主管理することになります.
 上記各階層はDNSの「ゾーンサーバー」の役割を課せられています.したがって,各階層ドメインでは最低1台のプライマリーDNSサーバーを用意します.そして,必要ならそれより1階層高いところにセカンダリーDNSサーバを依頼して設定します.第1階層はアメリカのNICが世界のDNSを管理し,第2階層は国別NIC(日本ではJPNIC)が,第3階層は各組織が,・・というようになっています.DNSサーバは,他のゾーンサーバに問い合わせをした場合,その結果をキャッシュメモリーに記憶し,知識を増やし続けます.
 いま,IPアドレス133.23.164.123のDTE<rose>が<pine>とは異なるドメイン133.23.202.xxxに移動したとしますと,IPアドレスが変化しますから,133.23.164.123宛のパケットは最早到着しません.しかし,DNSシステムのおかげで<rose>は,133.23.202.123に替わったことをシステム管理者が登録してくれるので,移転した当初からパケットを転送してもらえます.これがDNSシステムのもう一つのメリットです.

国別ニーモニック       日本国内ニーモニック

 DNSサーバは「named」デーモンが常に作動しているコンピュータです.UNIXでは通常etc/named/のディレクトリーに格納されています.


 図4.1.2 IPドメインの構造 

DNSシステムの役割

ネームサーバーの管理範囲の設定
メールの配信先の指示
ホスト名からIPアドレスを引くこと(正引き)
IPアドレスからホスト名を引くこと(逆引き)

DNSプロトコル

 DNSはポート番号53番のUDPに挿入されて転送されます.その基本的なDNSメッセージフォーマットを下の図に示します.
Identification:問い合わせを行うもの(リゾルバなど)が割り当てる固有の番号
Header:この中身は図中の拡大図に示すものです.ここで,QRはメッセージが応答なら1,問合せなら0. OPcodeは,正引き問合せでは「0」,逆引きでは「1」など,DNSの使い方を表します.AAはこのメッセージが権威のあるもの「1」か,そうでない「0」か.TCはメッセージが分割されていない「1」か,分割されている「0」か.RDとRAは再帰性をあらわし,RDが「1」の場合,再帰問合せを希望している場合,RAが「1」であればDNSが再帰問合せ可能を意味します.再帰とは,リゾルバが一次DNSに問い合わせた時に一次サーバだけで回答が得られない場合には自動的に二次サーバーにも問合せすることを意味しています.RCodeは応答時に不都合があったときにその理由を16種類にわたって説明できるように用意されています.
QDCount:質問の数
ANCount:答えの数
NSCount:権威ある回答(下のnslookupの説明参照)の数
ARCount:追加情報の数


 図4.1.3 DNSメッセージフォーマット 

nslookup

 DNSの動作を確認するには「nslookup」というソフトウェアを使います.下はその例です.
 ここでは,第4行目で,デフォルトDNSサーバーである「 pine.ese.yamanashi.ac.jp」が管理しているホスト「rose.ese.yamanashi.ac.jp」のIPアドレスをたずねています.すると「133.23.202.11」と答えてくれました.つぎに第9行目で「www.mext.go.jp」という文部科学省のWWW サーバーのIPアドレスをたずねていますが,このDNSサーバーは自分のゾーンではないので上位のサーバーに聞きに行っています.そしてその回答「210.174.162.214」を答えていますが,これはあくまでも自分の情報ではないので,「Non-authoritative answer:」として権威のある回答ではないことを注記しています.

%>nslookup
Default Server: pine.ese.yamanashi.ac.jp
Address: 133.23.202.100

> rose.ese.yamanashi.ac.jp
Server: pine.ese.yamanashi.ac.jp
Address: 133.23.202.100

Name: rose.ese.yamanashi.ac.jp
Address: 133.23.202.11

> www.mext.go.jp
Server: pine.ese.yamanashi.ac.jp
Address: 133.23.202.100

Non-authoritative answer:
Name: www.mext.go.jp
Address: 210.174.162.214


>quit
%>


第2節 FTP(File Transfer Protocol)

 空間的に離れているコンピュータのファイルを引き出したり(GET),自分のファイルをそのコンピュータに格納したり(PUT)することができます.こういうサービスをFTPといいます.RFC959で定義されています.これももちろん相手のコンピュータにログインできる権利を有さなくてはならないのはTELNETなどの場合と同様です.ただ,最近は多くのサイトで匿名FTP(Anonymous File Transfer Protocol)サービスを行っていますから,そういう公開のファイルについてだけは無許可で「GET」が可能です.この場合でも,自分のファイルを「PUT」することはできません.インターネットプロバイダなどに接続契約をして,WWWを公開している場合などは,自分の端末で制作したホームページのHTMLで書いたファイルをサーバーに転送する場面などが出てきますが,こういう時にはFTPで「PUT」することになります.FTPのユーティリティソフトは,市販のよくできたものがありますが,パブリックドメインソフトウェアとして匿名FTPに置いてありますから,ブラウザなどを使って「GET」して使うとよいでしょう.

 図4.2.1 FTPサーバーとホスト 

FTPのコマンド

open (FTP server address): 接続したいFTPサーバーへの接続要求
ls: サーバーのカレントディレクトリー内のファイルの表示要求
cd: ディレクトリーの変更要求
get(ファイル名): ファイルの取得
put(ファイル名): ファイルの登録
mget(複数ファイル名): 複数のファイルの取得
mput(複数ファイル名): 複数ファイルの登録
close: FTPサーバーを閉じる
quit: コマンド終了


第3節 NFS(Network File System)

 NFSは,アメリカのUNIX-WSメーカーSun Microsystems社の開発したパブリックドメインアプリケーションソフトウェアです.
 下の図のように,NFSサーバープロセスが,自分自身のファイルシステムを共有ファイルとして管理します.クライアント側ではこのサーバーにマウントすることによってヴァーチャルファイルシステムが作成され,これによって以後バーチャルファイルを操作することであたかも自分のファイルを管理するようにサーバーファイルを共有することが可能になります.


 図4.3.1 NFSの概念図 

 NFSは,OSI参照プロトコルでは文字どおりアプリケーション層に属します.それを支えるのがプレゼンテーション層のXDR(External Data Presentation)とセッション層のRPC(Remote Procedure Call)です.XDRは,サーバ/クライアント間のデータの表現形式を変換し合い,RPCは,TCP/IPを介して,相手のファイル作業へのオペレーションを指示します.


 図4.3.2 NFSによるファイル転送 


第4節 SMTP(Simple Mail Transfer Protocol)

 SMTPはRFC821で定義されたインターネットメール(e-mail)の転送プロトコルです.インターネットアプリケーションの中でも最も実用性の高いサービスの一つといっていいでしょう.
 メールの送信ホストと受信ホストが同一のネットワークに接続され,両者とも送受信が可能な状態にあるような場合には,送信ホストのSMTPクライアントは受信ホストのTCPのポート番号25番のSMTPに向けて直接メールを送信します.しかし,実際にはこのようなケースはまれです.まして,インターネットを介した遠方のネットワーク間では尚更です.インターネットに接続されているコンピュータはその殆どがPC等で,これを使わないときには電源が落とされていて動作していない場合があります.それでもメールは送信され,受信側が動作状態になったときにメールをスプールから取り出して読むことができるようになっていなくてはなりません.そこで常に電源が投入されて動作しているメールサーバーを使うことになります.このように,他者になり代わって代理をつとめるシステムのことをエージェントと言います.メールサーバーは典型的なエージェントです.

  メールサーバーでは常にsendmailデーモン(sendmaild)が立ち上がっていて,TCPコネクションを通して送られてきたメールの宛先を見て,自分宛のものであればmail spool(私書箱)に格納し,mailXなどのメールリーダーソフトを用いて画面に表示します.他所宛のものであればDNS(Domain Name System)に問い合わせてその指示にしたがって転送します.この場合,sendmailを実行できないPCなどへのメールの場合にはサーバー側にPOP3(Post Office Protocol),IMAP(Internet Message Access Protocol)などのpopperによって,PC上のメールソフトで受信できるようにします.

 
 下の図は,LAN内に接続されたPCからインターネットを通じて,ダイアルアップ接続クライアントにメールを送る例を示します.図中の番号に合わせて説明します.
@ PCクライアント上でエディタ(メーラーなどという)を使ってメールを書きます.それをPCクライアント上のSMTPクライアントはLAN内の
デフォルトのローカルメールサーバーのsendmailに送信します.
A ローカルメールサーバー上のsendmailは,DNSに宛先IPアドレスを問い合わせます.
B DNSは電子メール交換レコード(MX record)を保存していますので,それによって宛先メールアドレスのドメイン名から,ローカルメールサーバーのIPアドレスを調べて返します.
C ローカルメールサーバーは,その宛先IPアドレスに向かってインターネットを介して送信します.宛先ローカルメールサーバーはメールを受信し,
メールボックスのスプールにこれを保存します.
D ダイアルアップクライアントがメールを受け取るためにダイアルアップルータ経由でPOPによってメールサーバーに問い合わせます.メールサーバ上のPOPは受信者のIDやパスワードを確認した上で,スプールに格納してあるメールを転送します.


 図4.4.1 E‐mailの伝送概念 

 SMTPに関するプロトコルは,RFC822(SMTPフォーマット),RFC821(SMTP転送プロトコル)に記述されています.

SMTPフォーマット

 SMTPのフォーマットはRFC822に規定され,次表のようになっています.

 表4.1 Emailのフォーマット 
Image165.gif (4216 バイト)

SMTPメイル転送プロトコル

 上記メールヘッダによって,DNSを介して,送受信DTE間でTCPコネクションが完了すると,両者でメイル転送プロトコルを用いてメール本文の送受信が行われます.メール本文に,「」(ピリオド)だけの行が送られてくると,本文の終わりと判定してコネクションを解除します.

SMTPの例

 SMTPの例として,abc株式会社山梨支店の山田太郎さん「taro@yamanashi.abc.co.jp」から,私宛に送られてきたメールのSMTPヘッダを転載しておきます.太字の部分を下からみていくと,次々とメールサーバー間をメールが転送されて行く様子が分かります.
 まず,このメールは
Wed, 25 Jul 2001 16:39:29 太郎さんの支店ドメインのメールサーバー「yamanashi.abc.co.jp」に送られました.ついでこれを「e-mrelay1.ipc.abc.co.jp」が受け取って,さらにそれを「 mail1.noc.abc.co.jp」が受け取って,最終的にWed, 25 Jul 2001 16:41:08pine.ese.yamanashi.ac.jp」 に転送してきました.私は,これをダイアルアップで受信したのです.   
 

Return-Path: <taro@yamanashi.abc.co.jp>
Delivered-To: itoyo@pine.ese.yamanashi.ac.jp
Received: from mail1.noc.abc.co.jp (mail1.noc.abc.co.jp [210.163.32.53])
              by pine.ese.yamanashi.ac.jp (Postfix) with ESMTP id 00E6A86
              for <itoyo@pine.ese.yamanashi.ac.jp>; Wed, 25 Jul 2001 16:41:08 +0900 (JST)
Received: from mail1.ipc.abc.co.jp (mail1.ipc.abc.co.jp) by mail1.noc.abc.co.jp (8.9.3/NOC-MAIL1) id QAA27655 for <itoyo@pine.ese.yamanashi.ac.jp>; Wed, 25 Jul 2001 16:41:07 +0900 (JST)
Received: from e-mrelay1.ipc.east.abc.co.jp by mail1.ipc.abc.co.jp (3.7W/mail1_v01) id QAA29823; Wed, 25 Jul 2001 16:41:04 +0900 (JST)
Received: from yamanashi.abc.co.jp by e-mrelay1.ipc.abc.co.jp (8.9.3/3.7W/mrelay1_v01)
              id QAA03728; Wed, 25 Jul 2001 16:41:04 +0900 (JST)
Received: from taro ([10.29.321.19])
          by yamanashi.abc.co.jp (2.0 Build 2144 (Berkeley 8.8.4)/8.8.4) with ESMTP
                id QAA00362 for <itoyo@pine.ese.yamanashi.ac.jp>; Wed, 25 Jul 2001 16:39:29 +0900
Message-Id: <4.2.0.58.J.20010725160847.00ac64b0@10.5.123.67>
X-Sender: taro@10.5.123.67
X-Mailer: QUALCOMM Windows Eudora Pro Version 4.2.0.58.J
Date: Wed, 25 Jul 2001 16:28:28 +0900
To: itoyo@pine.ese.yamanashi.ac.jp
From: taro <taro@yamanashi.abc.co.jp>
Subject: thank you very much
Mime-Version: 1.0
Content-Type: text/plain; charset="ISO-2022-JP"; format=flowed
Content-Transfer-Encoding: 7bit
X-UIDL: 3[j"!D53"!67d"!_f4!!
Status: RO

第5節 HTTP(Hyper Text Transfer Protocol)

 何といっても,インターネットのサービスアプリケーションで有名なのがWWW(World Wide Web)です.<Mr. Internet>と呼びたくなるほど,インターネットを有名にしたのがWWWです.WWWを支えるプロトコルがHTTPです.これがなかったら,インターネットは誕生時のように学者や専門技術者だけがニュースやメールを使うだけの静かなネットワークで終わったことでしょう.

 ヨーロッパ生まれ(CERN)でアメリカ(イリノイ州立大学NCSA-National Center for Supercomputing Applications)育ちのこのサービスは,マンマシンインターフェースのよいNetscape Communications社の「Netscape Navigator」,Micro Soft社の「Internet Explorer」などのブラウザによって急激に成長しました.これからは,ブラウザがOS的な位置を占めて,PUSH技術やJAVA技術を取り込んだりしながら,マルチメディアの中心的媒体に進化することと思います.電子新聞・TV・VOD(Video On Demand)・Email(ワープロ)・予定表・住所録・電話帳・Internet電話・音楽配信・TV電話・Group Wear等々個別のメディアが統合されたMedia Mixと呼ばれる中核的メディアが,近い将来WWWの上に出現することと思います.
 ブラウザは,HTML(Hyper Text Markup Language)言語で書かれたテキストをサーバから呼んできて,それを画面に表示するものです.サーバでは,httpdと呼ばれるHTTPデーモンが立ち上がっていて,クライアントからの要求に応えてファイルを転送します.中でも,

<A HREF="http://www.yamanashi.ac.jp></A>

のようなアンカータグをクリックすると,このURL(Uniform Resource Locator)にジャンプして,このページを表示しますので,あたかも世界中が蜘蛛の巣のように結び合わされたように見えるところからこのサービスをWWWといいます.
 WWWのおおよそのイメージは下の図のようになります.
@ クライアントホストはブラウザを用いて,ターゲットWWWサーバーのURLを記入して,DNSにIPアドレスを問い合わせます.
A DNSからIPアドレスを受理したクライアントは,ルータを介してインターネット経由でターゲットWWWサーバーにコネクションを形成します.
B TCPのポート番号80番を介して要求ファイルを「get」します.
C WWWサーバーは,要求されたファイルをインターネット経由で「put」します.


 図4.5.1 WWWのダウンロード 


第6節 SNMP(Simple Network Management Protocol)

 SNMPは,1990年にRFC1213として制定された水平分散型ネットワーク管理用のプロトコルです.日々,規模を拡大するイントラネットの管理を行うための仕組です.下の図のようにネットワーク情報を管理するSNMPマネージャとそれに管理されるエージェント(ネットワークに接続された機器=ルータ・ハブ等)からなります.エージェントは自らが所属するネットワークに異常が発生した場合,予め設定されているMIB(Management Information Base)と呼ばれる情報をマネージャに送ります.また,マネージャも一定時間おきにエージェントに問い合わせてMIBをTrap(収集)し,異常があればネットワーク管理者に管理情報を通知します.


 図4.6.1 SNMPの概念図 

主要なMIB

 MIBには膨大なオブジェクトグループが定義されていますが,その主要なものだけ紹介しておきましょう.
system:エージェントに搭載されているソフトウェアのヴァージョン情報,機器の動作時間など7個のオブジェクト.
interface:MACアドレス,データリンク層の入出力パケット数,同じくエラーパケット数,インターフェースの速度など23個のオブジェクト.
atTable:MACアドレスとIPアドレスの対応表など3個のオブジェクト.
ip:IPパケット入出力数,ルーティングテーブルなど42個のオブジェクト.
tcp:TCPパケット入出力数など19個のオブジェクト.
udp:UDPの入出力パケット数など6個のオブジェクト.


第7節 TELNET

 RFC854で定義されているサービスです.TCPの23番ポートを介して行われます.遠隔ログインサービスといいます.ネットワークに接続されているものの空間的に離れているDTEをあたかも直に接続されているように利用する仕組みがTELNETです.この場合,接続先のDTEが使用許可を与えなくてはならないことはいうまでもありません.TELNETサービスによって,私たちは,原理的には,世界中のコンピュータを使うことができます.TELNETユーティリティソフトウェアは,UNIXやWindows,MACなどではOSに標準でインプリメントされていますのでこれを利用するとよいでしょう.

第8節 NNTP(Network News Transfer Protocol)

 NNTPは,インターネットのニュースグループが運営するグループ専門のインターネットニュースを配信するプロトコルです.学会活動のようなごくごく専門的なものから,オタッキーな趣味のグループの「長屋談義」,「売った買った」のフリーマーケットまで多種多様です.機能は,読み取りはもちろんのこと,投稿や返信機能まであります.新聞のような既存のメディアとの本質的な違いは,その双方向性という性格です.
 NNTPは,基本的にはEmailのSMTPと同様の技術を使いますが,SMTPと根本的に違うのはEmailが「個人対個人」を基本としているのに対して,ネットニュースは「一対多」であることで,NNTPはそれに向くプロトコルになっています.
 NNTPとパソコン通信のBBSとの違いは,BBSではプロバイダのサーバに蓄えられているニュース記事をユーザが読みに行く,まさしく掲示板形式になっているのに対し,NNTPは分散して配置してあるニュースサーバ間をバケツリレー式にニュースが転送されていくこと,読者はそのうちの指定されたニューススプールサーバを個別に読みに行くことです.


 図4.8.1 ネットニュースの配信 


 

第9節 DHCP( Dynamic Host Configuration Protocol )

 LANに接続されているホストコンピュータは,その管理者からホストIやIPアドレス,サブネットマスク,ゲートウェイ(ルータ)のアドレスなどを知らされてTCPなどのネットワーク接続のための設定を手作業で行います.この作業は初心者には難しく,しばしば間違います.それだけに接続に成功したときの達成感ときたら大変なものです.据置型のデスクトップコンピュータでは,一度この悪戦苦闘を行えば余程のことが無い限り再度この作業を強いられることはありませんが,近年のように携帯型のノートブックコンピュータを使うことが増えてきますと,接続場所が常に変更されます.したがって,このネットワーク接続作業を毎回しなくてはならなくなります.それでもユーザは,自分の役割でもあるわけですから仕方ないとしても,管理者にとっては大変です.その都度接続のためのデータをユーザに設定してあげて,かつそのデータを伝えてやらなくてはなりません.その煩わしい作業から開放され,ユーザも管理者も快適にインターネット接続が行えるようにネットワークの設定を自動化するためのプロトコルがDHCP( Dynamic Host Configuration Protocol )です.これは,RFC1541によって規定されているUDP上のインターネットアプリケーションプロトコルです.

 このサービスには次の3種類があります.
@ 永久的なIPアドレスの割り当てを行う「自動割当」( Automatic Allocation )
A 使用期限付きのIPアドレス割り当てを行う「動的割当」( Dynamic Allocation )
B ネットワーク管理者がIPアドレスを割り当ててその整合性だけをチェックする「手動割当」( Manual Allocation )
 DHCPにおけるホストコンピュータとDHCPサーバとのメッセージのやり取りはUDPのポート番号67番BOOTP( Bootstrap Protocol=ブートPと発音)によります.その詳細は省略します.興味のある方はRFC951をご覧下さい.
 (なお,RFC1541のDHCPには,DNSの設定は含まれていませんが,Microsoft社などベンダーの提案するアプリケーションではこれが可能になっています.)

 DHCPによってAの「動的割当」によって,クライアントがネットワーク接続に至る過程を下の図に示します.ただし,この場合クライアント側に設定ソフトがインストールされていることが条件です.(Windowsなどでは標準で装備されています.)
@ まずクライアントホストは,DHCPDISCOVERメッセージをブロードキャストします.この図では二つのDHCPサーバーがあるとしてその両方に発信します.
A 該当するサーバのすべてがDHCPOFFERというネットワーク接続に必要な構成情報を送信してきます.
B クライアントは気に入った?構成情報を選択してDHCPREQUESTメッセージに載せてブロードキャストします.この場合の選択は,過去に使用したデータがあればそれを優先して選択します.なければ気まぐれに選ぶことになります.
C 提案した情報を選ばれた方のサーバは,クライアントの情報が正しいことを確認し,DHCPACKを返します.不可であればDHCPNACKメッセージを返します.NACKを受信したクライアントは最初からやり直します.
D ACKを受け取ったクライアントは,これでネットワーク設定が完了して使用状態となります.この使用期限は4byteの秒単位での設定によりますが,デフォルトでは最低時間の1時間です.期限がきてもまだ継続を望むのであれば再度このやり取りをして延長します.また,期限前に離脱するときには,DHCPRELEASEメッセージを送信します.

 DHCPは大変便利ですが,暗号化などが不可能ではないが原理的になじみません.そのためセキュリティに問題が生じます.つまりこのサービスを実行しているポートにはNICカード付のコンピュータさえ持参すれば誰でも接続できてしまいます.悪意の接続者にログインされてしまいますと大変危険です.運用にはくれぐれも注意が必要です.

  
 図4.9.1 DHCPアドレスの決定方法 


 back to the Index page