IP関連技術1
TCP/IP通信はIPを中核としてやり取りしますが、IPに付帯する技術が必要になります。IPの代わりに住所を文字で表現するドメイン名の構造やDNSサーバー、IPアドレスからMACアドレスを取得するためのARP要求とARP応答、等の概要を説明します。
質問などありましたら、お気軽にどうぞ。

目次

DNSの概要

  • 「www.yahoo.co.jp」のように「通信先を特定するもの」をドメイン名と言い、このドメイン名を探してくれるサーバはDNSサーバという。
  • DNSの役割
    コンピュータ上での住所であるIPアドレスを覚えておくのは大変なため、文字での名前(ドメイン名)を覚えるようにしている。
  • ネットワーク層のプロトコルとしてはドメイン名を備えていない。そこで、DNSサーバがIPアドレスとドメインの変換を請け負っている。
  • 上記を名前解決といい、名前解決は各アプリケーションやOSがドメインによるアクセスをしようとしたときにOS(DNSクライアント)がDNSサーバへ依頼する。

名前解決の情報共有

hostファイルの場合

  • DNSが出てくる前は、ホスト名とIPアドレスの対応を定義するhostsファイルが使われていた。現在でも、会社内や個人等で利用している。
  • Windowsでの配置場所
    C:\Windows\System32\drivers\etc\hosts
  • hostsファイルの場合は、1個のファイルを共有して使うため、組織間で情報共有したり情報を統合的に(一元)管理することは難しい。

DNSの場合

  • ホストを管理している組織毎に、ホスト名とIPアドレスの対応関係を管理する。
  • 組織内で変更すれば、インターネット全体に反映される仕組みになっている。
  • (初期登録時や上位レベルの変更を除き、)ほかの機関に報告や申請をする必要はない。

ドメイン名の構造

  • ドメイン名は、いくつかの部分に分割出来る。
    www.yahoo.co.jpの場合
    「www」はサーバ(ホスト)名、「yahoo」は組織名、「co」はセカンドレベルドメイン、「jp」はトップレベルドメイン、等と呼ぶ。
    (ドメインは4階層とは限らず、2階層や10階層等様々な場合がある。各階層が何なのかはその時々に応じて変化する。)
  • ドメイン名からIPアドレスに変換することを名前解決といい、名前解決の要求を出したクライアントのことをネームリゾルバと言う。
  • jpやnetやorg等のトップレベルドメインを管理しているのはルートネームサーバー。
  • 各ネームサーバが管理する階層(ドメイン)のことをゾーンという。
    上の例の場合、ヤフーが管理するゾーンはyahoo.co.jp配下、株式会社日本レジストリサービス(JPRS)が管理するゾーンはco.jp配下(jp配下もJPRSが管理)。
    (※[]内には同じものが入る。)
  • 管理組織のドメイン(ゾーン)そのもの(のIPアドレスとドメイン名)は、上位のDNSサーバに管理してもらう。
    上の例の場合、yahoo.co.jp自体は株式会社日本レジストリサービス(JPRS)が管理する。

DNSの問い合わせ順序

  1. リゾルバ(OS等)が設定したキャッシュDNSサーバへ問い合わせを行う。
  2. キャッシュDNSサーバは該当情報を持っていればそれを返す。
  3. 該当情報を持っていなければ、ルートサーバへ問い合わせる。
  4. そして、ドメインの木構造を上から順番にたどることで、目的の情報があるDNSサーバーを見つける。
  5. その目的のゾーン情報を持っているDNSサーバから必要な情報を得る。
  6. 得た情報をリゾルバへ返す。

代表的なゾーンファイルのレコード

レコード内容
SOAゾーンの開始・情報
Aホスト名に対するIPアドレス
NSDNSサーバー
CNAMEホストの別名に対する正式名
MXメールサーバー
PTR逆引き用

IPアドレスとMACアドレスの連携

ARPの概要

  • 宛先IPアドレスを手掛かりにして、MACアドレスを取得するプロトコル。
  • 同一ネットワーク内のホスト宛の場合は、宛先ホストのMACアドレスを得ることになる。
  • 異なる(別の)ネットワークのホスト宛の場合は、次ホップ(デフォルトゲートウェイ)のルーターのMACアドレスを得ることになる。
  • ARPはIPv4とセットになっており、IPv6では使われない。
  • 宛先IPアドレスに対するMACアドレスを知らない場合に、ARPによる情報交換が行われる。(知っている場合は行われない。)
  • ARPはホスト(WindowsやLinux等)やルーターのOS等に実装されている。

ARPの要求と応答

  1. 送信元ホストからARP要求がブロードキャスト送信される
  2. ブロードキャストなので、全てのノードのNICが受信する
  3. 宛先ホスト以外では、そのパケットを破棄する
  4. 宛先ホストでは、そのパケットを受け取り、送信元のMACアドレスを取得しておく。
  5. 宛先ホストはARP応答を送信元ホストへ返却する。
  6. 送信元でARP応答を受け取り、宛先ホストのMACアドレス得る。
  7. その(ARPで取得した)情報は数分間キャッシュする。

IPアドレスとMACアドレスの併用

  • 住所(宛先)を示すのはあくまでもIPアドレス。
  • データリンク層のアドレスはなくても、全てブロードキャスト送信してしまえば送ることは出来る。それでは混雑してしまうため、データリンク層レベルでもMACアドレスを用いることで、ユニキャストの送信が出来る様にしている。
  • MACアドレスは同じブロードキャストドメイン内で宛先を示すためのものであり、IPアドレスはブロードキャストドメインを跨いでも宛先を示せる。
  • IPアドレスは最終目的地を示し、MACアドレスは次の宛先を示す。

DHCP


DHCPはIPアドレスを一括管理したり自動的に設定するためのサービスである。DHCPを構築済みの環境であれば、PC等をLANに接続するだけで、IPアドレスが自動的に(割り振られて)設定される。

サーバーとクライアント

DHCPを利用するには、DHCPサーバーを立ち上げる必要がある。サーバーに予め使用するIPアドレスの範囲等を設定しておく。
1台1台のノードのOSにDHCPクライアントが備わており、クライアントとサーバーでやり取りをして自動割り当てが行われる。

DHCP割り当ての流れ

1.DHCP要求をするときはDHCPサーバのIPアドレスを知らなくても良いようにブロードキャストアドレスの255.255.255.255で送出する。

2.DHCPサーバはクライアントに、以下の4情報を割り当てる。(主要な4情報)
IPアドレス、サブネットマスク、デフォルトゲートウェイ、DNS。また、DHCPサーバはMACアドレスを利用して固定的に割り当てることもできる。

NATとPAT


ルータのNAT機能は2つIPアドレスを相互に変換する。グローバルIPアドレスであろうともプライベートIPアドレスであろうとも関係なく変換できる。
しかし、一般的にはグローバルIPアドレスとプライベートIPアドレスを変換する。(それ以外の用途でも使うが、まれである。)

名称内容
静的NATグローバルIPとプライベートIPを1対1で割り当てる。管理者が一度登録したら、管理者が変更するまで、対応が変わらない。
動的NATグローバルIPとプライベートIPを1対1で割り当てるが、管理者は固定の設定せず、あいているグローバルIPをそのつど割り当てる。
PAT(NAPT)グローバルIPとプライベートIPを1対多で割り当てる。1つのグローバルIPでLAN内の何台ものPCをインターネット接続するときに役立つ。

NATで通信するイメージ

NATのイメージ図

パソコンAがサーバAにアクセスする場合(NATの場合)

内部(パソコン側)外部(サーバー側)
内部ローカル内部グローバル外部ローカル外部グローバル
A10.10.1.1030.10.40.92A今回は無し180.100.100.1 :80
(送信元:パソコンA 宛先:サーバーA の通信の場合は、)IPヘッダー上のIPの変遷は以下の様になる。
行き1.パソコンAからルータAまであて先 180.100.100.1
送信元 10.10.1.10

2.ルータAからサーバAあて先 180.100.100.1
送信元 30.10.40.92

帰り3.サーバAからルータAあて先 30.10.40.92
送信元 180.100.100.1

4.ルータAからパソコンAあて先 10.10.1.10
送信元 180.100.100.1

パソコンAとパソコンBがサーバAにアクセスする場合(PAT(NAPT)の場合)

パソコンAはポート24000に割り当て、パソコンBはポート49900に割り当てと仮定する。
内部(パソコン側)外部(サーバー側)
内部ローカル内部グローバル外部ローカル外部グローバル
A10.10.1.10 :2400030.10.40.92 :26500A今回は無し180.100.100.1 :80
B10.10.1.77 :4990030.10.40.92 :50688今回は無し180.100.100.1 :80

その他のIP関連技術

ICMP とは
通信が届いているかどうかを確認するためのプロトコルである。

トンネリング とは
インターネット等のなんらかのネットワークで接続されている2点間を、仮想の回線(トンネル)によりあたかも同一点であるかのように扱えるようにすること。

VRRP( Virtual Router Redundancy Protocol ) とは
複数のルーターによるデフォルトゲートウェイの冗長化によって障害体制を高めるプロトコル。