DNS・DHCPとIP電話

このページでは、DHCPでIPアドレスが配られる手順、DNSのレコードとキャッシュサーバ、SNMP・FTP・SSH・NTPなどのプロトコル、VoIPによるIP電話がわかります。

  • 一言で言うと:
    • メール、Web、住所の自動配布や名前の変換、機器の監視、ファイル転送、インターネット電話など、私たちが実際に使うサービスごとの約束ごと(プロトコル)の話
    • 試験では、プロトコル名と役割、ポート番号の組合せがよく問われる

メール(SMTP・POP3・IMAP4・S/MIME)→ Web(HTTP・HTTPS・WebSocket・Cookie)→ 住所と名前(DHCP・DNS)→ その他(SOAP・SNMP・FTP・SSH・NTP・LDAP)→ 電話(VoIP・SIP・RTP・RSVP)

覚え方の軸

  • 「住所を配る」のがDHCP、「名前を住所に変える」のがDNS
    • DHCPは、DISCOVER → OFFER → REQUEST → ACK(「ディ・オ・リ・ア」)。DISCOVERとREQUESTはブロードキャスト
    • DNSは、分散データベース。キャッシュサーバが、ルートから順にたずねて答えを持ってくる(再帰的な問合せ)
  • DNSレコードは「何を指すか」で覚える
    • A(IPv4)、AAAA(IPv6)、NS(DNSサーバ)、CNAME(別名)、MX(メールサーバ。値が小さいほど優先)、PTR(逆引き)
  • インターネット電話は「つなぐ係・声を運ぶ係・道を確保する係」
    • SIPがセッションの開始と終了、RTPが音声の伝送(UDP)、RSVPが帯域の予約(QoS)

このテーマに出てくるポート番号(★)

プロトコル ポート番号
FTP TCP 20(データ)、TCP 21(制御)
SMTP TCP 25
DNS UDP 53(大きい応答はTCP 53)
DHCP UDP 67(サーバ)、UDP 68(クライアント)
HTTP TCP 80
POP3 TCP 110
NTP UDP 123
SNMP UDP 161(TRAPは UDP 162)
HTTPS TCP 443
サブミッションポート(SMTP-AUTH) TCP 587

アドレス管理及び名前解決技術:住所を配る、名前を住所に変える(★)

① DHCP

  • DHCP(Dynamic Host Configuration Protocol):
    • TCP/IPでは、それぞれのノードがIPアドレスを持つことが、通信の絶対条件
    • でも、ノードが増えると、これを適切に設定するのは難しい
    • そこで、ノードへのIPアドレスの割当てを自動的に行うプロトコル
  • DHCPの仕組み:
    • DHCPサーバに、使えるIPアドレスを登録しておく
    • DHCPクライアントは、起動時にDHCPサーバに、ブロードキャストを使ったDHCPディスカバパケットを送って、アドレスの取得を要求する
    • DHCPサーバは、プールしているアドレスから、空いているものを自動的に割り当てる
    • 終了時には、IPアドレスの回収もできるので、IPアドレス資源の有効活用にもつながる
    • これで、ネットワークの管理負担がかなり減った
  • DHCPの弱点:
    • DHCPクライアントは、IPアドレスがない状態で起動するので、ブロードキャストが届く範囲にDHCPサーバがいないと、IPアドレスを取得できない
  • リレーエージェント:
    • ルータを使ったネットワークで、DHCPサーバとクライアントが同じLANにない(ブロードキャストが届かない)場合に必要
    • ディスカバパケットを、DHCPサーバまで中継する機能
  • DHCPの例え:
    • ホテルのフロント。チェックイン(起動)すると空いている部屋番号(IPアドレス)を渡し、チェックアウト(終了)したら回収して、次の客に使う

DHCPでやりとりされるメッセージの順序(★試験で問われる)

  1. DHCPディスカバ(DHCPDISCOVER):
    • クライアントが、ネットワーク上のDHCPサーバを探すために送る(ブロードキャスト)
  2. DHCPオファー(DHCPOFFER):
    • サーバが、提供できるIPアドレスなどのネットワーク設定情報を、クライアントに知らせる
  3. DHCPリクエスト(DHCPREQUEST):
    • クライアントが、ネットワーク設定情報の使用要求を、ネットワーク上のDHCPサーバに伝える(ブロードキャスト)
  4. DHCPアック(DHCPACK):
    • サーバが、使用要求が認められたことを、クライアントに知らせる
  • 試験での出方(試験):
    • ①DHCPディスカバと③DHCPリクエストの送信方法が問われる。答えは「ブロードキャスト」
  • DHCPリクエストをブロードキャストする理由:
    • 複数のDHCPサーバから提案(オファー)を受けたとき、どのDHCPサーバの提案を受け入れたかを、他のDHCPサーバにも知らせるため
    • 例えば、何社かから見積りをもらったとき、「A社にお願いします」と全社に聞こえるように言えば、B社やC社は確保していた部屋を放せる
  • 順番の覚え方:
    • 「ディ・オ・リ・ア」(Discover → Offer → Request → Ack)
  • 注意(ポート番号の向き):
    • クライアントとサーバのポート番号を逆に覚えやすいので注意
    • 正しくは、DHCPサーバがUDP 67番、DHCPクライアントがUDP 68番(RFC 2131)

② DNS

  • ドメイン名:
    • IPアドレスは覚えにくいので、IPアドレスに対応する別名として付けられたもの
  • ドメイン名の読み方:
    • 階層で表し、「www.example.co.jp」のように書く
    • 右側から、jp(日本の)→ co(営利組織の)→ example(という会社にある)→ www(というホスト)と読む
  • FQDN(完全修飾ドメイン名):
    • 「www.example.co.jp」のように、特定のホストまで指定したドメイン名
  • DNS(Domain Name System)サーバ:
    • ドメイン名とIPアドレスの対応を管理しているサーバ
  • 分散データベース:
    • DNSサーバは、原理的には、世界中のすべてのノードのドメイン名とIPアドレスの対応を知っている必要がある
    • でも、それは事実上不可能
    • そこで、DNSの規約では、対応表を作る負担を細分化し、DNSを分散データベースにしている
  • DNSサーバの構成:
    • ルートサーバは、直下のjpやukといった国別ドメインを管理するサーバのIPアドレスを記録している
    • jpサーバは、日本国内のco、acといった範囲を管理するサーバのIPアドレスを記録している
    • こうして、上から下へ、担当を分けて管理する
  • DNSの例え:
    • 電話帳を1冊にまとめるのは無理なので、「国 → 都道府県 → 市 → 町」と、担当ごとの電話帳に分けている
  • DNSのプロトコルとポート:
    • 基本的にUDPを使う
    • ただし、DNSのレコード長がUDPの512バイト制限を超える場合は、TCPを使う
    • ポート番号は53番
  • プライマリサーバとセカンダリサーバ:
    • 1つのドメインを管理するDNSサーバは、ふつう、可用性を考えて、プライマリサーバとセカンダリサーバの2台で作る

主なDNSレコード(★)

  • DNSレコード(リソースレコード):
    • DNSサーバに保存されている名前解決情報
レコード 中身 例
Aレコード IPv4ホストのIPアドレス情報 dns.example.com. IN A 192.0.2.1
AAAAレコード IPv6ホストのIPアドレス情報 dns.example.com. IN AAAA 2001:db8::1
NSレコード DNSサーバを指定 example.com. IN NS dns.example.com.
CNAMEレコード ホストの別名を指定 info.example.com. IN CNAME www.example.com.(info.example.comが別名)
MXレコード メールサーバを指定。プリファレンス値(優先度)は小さいほうを優先 example.com. IN MX 10 mail1.example.com.、example.com. IN MX 20 mail2.example.com.
PTRレコード IPアドレスに対応するホスト名を調べる逆引きに使う −
  • MXレコードの例の読み方:
    • mail1(10)とmail2(20)では、値の小さいmail1が優先。mail1が使えないときにmail2に届く
  • AAAAの覚え方:
    • IPv6はIPv4の4倍の長さ(128ビット)なので、Aを4つ並べる
  • 正引きと逆引き:
    • 正引きは、ドメイン名からIPアドレスを調べる(Aレコード、AAAAレコード)
    • 逆引きは、IPアドレスからドメイン名を調べる(PTRレコード)

DNSラウンドロビン

  • DNSラウンドロビン:
    • 負荷が集中するWebサーバやAPサーバなどを、複数のサーバで負荷分散するときに使う機能の1つ
    • 1つのドメイン名に、複数のIPアドレスを登録する
    • 名前解決のたびに、応答するIPアドレスを順番に変えることで、負荷を分散する
  • 例:
    • www.example.comに、192.0.2.1(Webサーバ1)と192.0.2.2(Webサーバ2)の2つのAレコードを登録する
    • 1回目の問合せには192.0.2.1、2回目の問合せには192.0.2.2を答える
  • DNSラウンドロビンの例え:
    • 人気ラーメン店の案内係が、来た客を「1号店へ」「2号店へ」と交互に案内する
  • チーミング:
    • サーバの負荷分散技術の1つ
    • 1台のサーバに積んだ複数のネットワークインタフェースカード(NIC)に、同じIPアドレスを割り当て、1つの仮想NICとして束ねる技術
    • 負荷分散のほか、帯域の有効活用や耐障害性の向上ができる

コンテンツサーバとキャッシュサーバ

  • ゾーン:
    • DNSサーバがドメインを管理する範囲
  • コンテンツサーバ(権威サーバ):
    • 自分のゾーンのDNSレコードを持っているDNSサーバ
  • リゾルバ:
    • DNSクライアントのこと
  • キャッシュサーバ:
    • リゾルバが名前解決を求めるたびに、コンテンツサーバへの問合せを繰り返すのは非効率
    • だから、ふつうは自組織の中にキャッシュサーバを置く
    • この場合、リゾルバはキャッシュサーバに問い合わせる
  • コンテンツサーバとキャッシュサーバの例え:
    • コンテンツサーバは、各店が持っている「自分の店の正式な住所録」
    • キャッシュサーバは、社内の物知りの総務係。知らなければ調べてきてくれて、一度調べたことはしばらく覚えている

再帰的な問合せ

  • キャッシュサーバの動き:
    • リゾルバからの問合せに、自分が持っている情報なら直接答える
    • 持っていなければ、ルートDNSサーバから順に問い合わせ、最終的に目的のドメイン名の情報を持つコンテンツサーバから結果を得る
    • この結果をリゾルバに答えるとともに、一定期間キャッシュとして持っておく
    • 同じ問合せを受けたときに、他のDNSサーバに問い合わせずにすばやく答えるため
  • 再帰的な問合せ:
    • リゾルバからキャッシュサーバに送られる問合せ
    • 「再帰的」は「再び帰ってくる」という意味で、再帰的な問合せには、最終的な結果を答える必要がある
  • DNSキャッシュポイズニング:
    • 問合せの回答を、本物のコンテンツサーバより先に送り込み、キャッシュサーバに偽の情報を覚え込ませる攻撃(セキュリティ分野で扱う)
  • 注意(新しい情報):
    • 「UDPは512バイトまで」という制限は、今はEDNS0という拡張で、もっと大きな応答もUDPで送れるようになっている
    • 試験では「基本はUDP、大きいときはTCP、ポートは53番」で覚えておけばよい

その他のアプリケーション層プロトコル

① SOAP

  • SOAP:
    • ソフトウェアどうしがメッセージを交換するためのプロトコル
    • データ構造の記述にXMLを使う
    • 伝送にはHTTPなど既存のプロトコルを使うので、汎用性が高い
  • SOAPの名前:
    • 最初は「Simple Object Access Protocol」の略とされていたが、今は「SOAP」自体が正式名称

② SNMP

  • SNMP(Simple Network Management Protocol):
    • ネットワーク上の機器を監視し管理するためのプロトコル
    • SNMPに準拠すれば、マルチベンダ環境(いろいろなメーカーの機器が混ざった環境)で、ネットワークの障害情報などを一元管理できる
  • SNMPの登場人物:
    • SNMPマネージャは、監視する側
    • SNMPエージェントは、監視される側
    • この2つの間で、PDU(Protocol Data Unit)という管理情報をやりとりする
  • MIB(Management Information Base):
    • エージェントにあるデータベース
    • 故障情報やトラフィックの情報などがたまる
  • SNMPのポート:
    • ふつうはUDPを使う
    • SNMPはUDP 161番、SNMP TRAPはUDP 162番

PDUの種類(★)

PDU 意味
Get-Request、Get-Next-Request マネージャが、エージェントから情報を引き出す
Set-Request 管理オブジェクトの設定値を変更する
Get-Response マネージャからの要求に返答する
Trap エージェントから情報をマネージャに通知する
  • TrapとGetの違い:
    • Get(Get-Request)は、マネージャから「調子はどう?」と聞きに行く(ポーリング)
    • Trapは、エージェントから「故障しました!」と自分から知らせる
  • SNMPの例え:
    • マネージャは病院のナースステーション、エージェントは各病室のモニター。看護師が見回る(Get)こともあれば、モニターがナースコール(Trap)を鳴らすこともある

③ その他のアプリケーション層プロトコル(★)

プロトコル 中身
FTP File Transfer Protocol。ファイルの送受信に使うファイル転送プロトコル。ファイルをダウンロードする機能(データコネクション)と、コマンドを送受信する機能(制御コネクション)で、違うポート(TCP 20番、TCP 21番)を使う
Telnet 遠隔地からログインして、マシンを操作するためのプロトコル
SSH Secure SHell。テキストベースの通信であるTelnetに対して、暗号化や認証技術を使って、安全に遠隔操作するためのプロトコル
NTP Network Time Protocol。ネットワーク上の各ノードの時刻を同期するためのプロトコル。ポートはUDP 123番。今はNTP3とNTP4が使われている。NTP4では、初めて公開鍵暗号を使った認証機能が入り、時刻改ざんなどのリスクに対応できるようになった
SNTP Simple NTP。NTPの簡易版(時刻同期だけに特化したもの)
LDAP Lightweight Directory Access Protocol。ディレクトリサービスにアクセスするためのプロトコル
  • FTPのポートの覚え方:
    • 20番がデータ、21番が制御(コマンド)
  • TelnetとSSHの例え:
    • Telnetは、はがきで遠くのPCに指示を出す(パスワードも丸見え)
    • SSHは、鍵付きの封筒で指示を出す
  • ディレクトリサービス:
    • いろいろな情報資源(PCやユーザなど)を、すばやく見つけて使うための仕組み
    • 例えば、会社の「社員名簿兼備品台帳」。誰がどこの部署で、どのPCを使えるかを調べられる
  • 注意(新しい情報):
    • NTP4の公開鍵による認証(Autokey)には弱点が見つかり、今はNTS(Network Time Security、2020年に標準化)という、TLSを使った新しい安全の仕組みが推奨されている
    • 試験では「NTP4で公開鍵暗号を使った認証機能が入った」と覚えておけばよい

インターネット上の電話サービス:声を運ぶ(★)

  • インターネット上で電話サービスをするのに必要なもの:
    • 音声を伝送するための技術
    • 呼制御(通信路を確保したり、転送、切断したりすること)

① VoIP

  • VoIP(Voice over Internet Protocol):
    • IPネットワークで音声をやりとりするための技術
    • データの伝送には、リアルタイム性に優れたUDPをベースにしたプロトコルRTP(Real-time Transport Protocol)を使う
  • IP電話アダプタ:
    • ふつうの電話機に付けると、VoIP対応機器にできる
  • VoIPゲートウェイ:
    • 作ったIP電話網を、従来の音声回線網とつなぐときに使う
    • アナログの音声信号をデジタル信号に符号化したり、復号したりする装置
    • 音声データとIPパケットの相互変換に使う

② SIP

  • SIPサーバ:
    • インターネット上で電話サービスをするには、電話回線網と同じサービスを提供できなければならない
    • このうち、電話番号とIPアドレスの対応管理、帯域管理、セッションの開始と終了を担当するサーバ
  • SIP(Session Initiation Protocol):
    • SIPサーバが、セッションの開始と終了を制御するために使うプロトコル
  • RSVP(Resource reSerVation Protocol):
    • SIPサーバが、帯域管理のために使うプロトコル
    • 通信をやりとりするノード間で、帯域を予約する
    • ベストエフォート(できるだけ頑張るが保証はしない)な環境であるIPネットワークで、QoSを確保するために使う
    • 主な用途は、リアルタイム性が求められる動画配信、音楽配信など
  • QoS(Quality of Service):
    • サービス品質
  • RSVPとRTP:
    • UDP上で動くプロトコル

VoIPで電話がつながる流れ

  1. 発呼をリクエスト:
    • VoIP端末は、SIPで、VoIPゲートウェイに発呼(電話をかけること)をリクエストする
  2. 準備:
    • VoIPゲートウェイは、アドレス解決、RSVPによる帯域確保などを行い、VoIP端末どうしにセッションを確立させる
  3. 通話:
    • セッション確立後は、RTPを使った通話(音声パケットの伝送)が行われる
  • SIP・RSVP・RTPの例え:
    • SIPは、電話の「呼び出し音を鳴らして、つなぐ、切る」係
    • RSVPは、通話中に道が混まないよう「専用レーンを予約する」係
    • RTPは、実際に「声を運ぶ」係
  • 注意(補足):
    • RTPはUDP上で動くが、RSVPは、ふつうはUDPを使わずIPの上で直接動く(IPのプロトコル番号46)
    • 試験では「RTPはUDPベース」を確実に押さえておけばよい

VoIPゲートウェイの設置位置(★試験で問われる)

  • 並び:
    • 電話機(企業内の内線網)→ PBX → VoIPゲートウェイ → ルータ → IPネットワーク
  • PBXの役割:
    • 内線電話機どうしの接続
    • 内線電話と公衆電話網との接続
  • VoIPゲートウェイの役割:
    • 音声信号の符号化/復号
  • 覚え方:
    • 電話機側から「PBX(内線の交換)→ VoIPゲートウェイ(声をパケットに変換)→ ルータ(IPネットワークへ)」
    • 例えば、社内の電話交換手(PBX)の後ろに、声を手紙(パケット)に書き直す係(VoIPゲートウェイ)がいて、郵便局(ルータ)に出す

混同しやすいペア

  • DHCPディスカバ / DHCPオファー
    • DHCPディスカバは、クライアントがサーバを探す(ブロードキャスト)
    • DHCPオファーは、サーバが提供できる設定情報を知らせる
  • DHCPリクエスト / DHCPアック
    • DHCPリクエストは、クライアントが使用要求を伝える(ブロードキャスト)
    • DHCPアックは、サーバが使用を認めたと知らせる
  • DHCP / リレーエージェント
    • DHCPは、IPアドレスを自動で割り当てる
    • リレーエージェントは、ブロードキャストが届かないDHCPサーバまで、ディスカバを中継する
  • DHCP / DNS
    • DHCPは、IPアドレスを配る
    • DNSは、ドメイン名とIPアドレスを対応させる
  • ドメイン名 / FQDN
    • ドメイン名は、IPアドレスの別名(example.co.jpなど)
    • FQDNは、特定のホストまで指定したドメイン名(www.example.co.jp)
  • Aレコード / AAAAレコード
    • Aレコードは、IPv4のIPアドレス
    • AAAAレコードは、IPv6のIPアドレス
  • NSレコード / MXレコード
    • NSレコードは、DNSサーバを指定する
    • MXレコードは、メールサーバを指定する(プリファレンス値が小さいほど優先)
  • CNAMEレコード / PTRレコード
    • CNAMEレコードは、ホストの別名を指定する
    • PTRレコードは、IPアドレスからホスト名を調べる(逆引き)
  • 正引き / 逆引き
    • 正引きは、ドメイン名からIPアドレスを調べる
    • 逆引きは、IPアドレスからドメイン名を調べる(PTR)
  • プライマリサーバ / セカンダリサーバ
    • プライマリサーバは、主に使うDNSサーバ
    • セカンダリサーバは、可用性のために置く2台目のDNSサーバ
  • DNSラウンドロビン / チーミング
    • DNSラウンドロビンは、1つのドメイン名に複数のIPアドレスを登録し、順番に答えて複数のサーバに負荷を分散する
    • チーミングは、1台のサーバの複数のNICに同じIPアドレスを割り当て、1つに束ねる
  • コンテンツサーバ(権威サーバ) / キャッシュサーバ
    • コンテンツサーバは、自分のゾーンのDNSレコードを持つ
    • キャッシュサーバは、リゾルバの代わりに問い合わせ、結果を一定期間覚えておく
  • リゾルバ / キャッシュサーバ
    • リゾルバは、DNSクライアント(問い合わせる側)
    • キャッシュサーバは、リゾルバからの再帰的な問合せに答える
  • 再帰的な問合せ / キャッシュサーバからの問合せ
    • 再帰的な問合せは、リゾルバからキャッシュサーバへの問合せ。最終的な結果を答える必要がある
    • キャッシュサーバは、ルートDNSサーバから順に、コンテンツサーバまでたどって問い合わせる
  • SOAP / HTTP
    • SOAPは、ソフトウェアどうしがXMLでメッセージを交換するプロトコル
    • HTTPは、SOAPのメッセージを運ぶのにも使われる
  • SNMPマネージャ / SNMPエージェント
    • SNMPマネージャは、監視する側
    • SNMPエージェントは、監視される側(MIBを持つ)
  • Get-Request / Trap
    • Get-Requestは、マネージャがエージェントから情報を引き出す
    • Trapは、エージェントからマネージャに自分から知らせる(UDP 162)
  • Set-Request / Get-Response
    • Set-Requestは、管理オブジェクトの設定値を変える
    • Get-Responseは、マネージャからの要求に答える
  • FTPの20番 / 21番
    • 20番は、データコネクション(ファイルの転送)
    • 21番は、制御コネクション(コマンドの送受信)
  • Telnet / SSH
    • Telnetは、遠隔操作のプロトコル。暗号化しない(TCP 23)
    • SSHは、暗号化と認証で安全に遠隔操作する(TCP 22)
  • NTP / SNTP
    • NTPは、時刻を同期するプロトコル(UDP 123)。NTP4で公開鍵による認証が入った
    • SNTPは、時刻同期だけに特化した簡易版
  • LDAP / DNS
    • LDAPは、ディレクトリサービス(ユーザやPCなどの情報資源)にアクセスする
    • DNSは、ドメイン名とIPアドレスを対応させる
  • VoIP / RTP
    • VoIPは、IPネットワークで音声をやりとりする技術の総称
    • RTPは、その音声データを運ぶ、UDPベースのプロトコル
  • SIP / RSVP
    • SIPは、セッションの開始と終了を制御する
    • RSVPは、帯域を予約してQoSを確保する
  • PBX / VoIPゲートウェイ
    • PBXは、内線電話機どうし、内線と公衆電話網をつなぐ
    • VoIPゲートウェイは、音声信号を符号化・復号し、IPパケットと変換する(PBXとルータの間に置く)
  • ベストエフォート / QoS
    • ベストエフォートは、できるだけ頑張るが品質は保証しない
    • QoSは、サービス品質を確保すること(RSVPで帯域を予約する)

← 07 ネットワークの目次に戻る

タイトルとURLをコピーしました