IPアドレスとホスト名

クライアントとサーバの概念 >> 次へ

IPアドレスとは?

123.124.125.126 などという数字の列を IP アドレスといいます。 インターネットには多くのコンピュータが接続されていますが、 その中から1台のコンピュータを特定するのに IP アドレスを使います。 例えば 133.8.3.11 というのはあなたが今アクセスしている群馬大学の WWW サーバの IP アドレスです。IP アドレスがわかれば、世界中でただ1台の コンピュータを特定できます。
本当は、コンピュータとIPアドレスが 1対1に対応しているのではなく、インタフェースと IP アドレスが 1対1に対応しているのですが、それは置いときましょう。さらに言うと インタフェースと IP アドレスも1対1に対応させないようにすることも できるんですが。

ホスト名とは?

一方、www.cs.gunma-u.ac.jp のようなホスト名の書き方を、 「ホスト名」や「FQDN」(FQDN = Fully Qualified Domain Name) と呼びます。 www.cs.gunma-u.ac.jp と 133.8.3.11 は同じマシンを指します。 群馬大学情報工学科のページは http://www.cs.gunma-u.ac.jp/ ですが、 http://133.8.3.11/ を見ても同じページが 表示されるはずです。

つまり同じホストを表すのに IP アドレス (133.8.3.11) と FQDN (www.cs.gunma-u.ac.jp) という2つの方法があるわけです。

DNSサーバ

では、IP アドレスを FQDN に、あるいは FQDN を IP アドレスを変換してみましょう。 このような変換をしてくれるのが DNS サーバです (DNS = Domain Name System)。

UNIX で IP アドレスと FQDN の相互変換をする場合は、 nslookup というコマンドを使います。www.cs.gunma-u.ac.jp に対応する IP アドレスを知りたいときは

% nslookup www.cs.gunma-u.ac.jp
Server:  ns.cs.gunma-u.ac.jp
Address:  133.8.2.3

Name:    www.cs.gunma-u.ac.jp
Address:  133.8.3.11
とします。2〜3行目の
Server: ns.cs.gunma-u.ac.jp
Address:  133.8.2.3
というのは、 ns.cs.gunma-u.ac.jp で動いている DNS サーバに問い合わせた、ということです (この部分は各環境の設定ごとに違います)。なお、ns.cs.gunma-u.ac.jp の IP アドレスは 133.8.2.3 であることもわかります。

また、5〜6行目の

Name:    www.cs.gunma-u.ac.jp
Address:  133.8.3.11
は、www.cs.gunma-u.ac.jp を IP アドレスに変換すると 133.8.3.11 である、ということです。

つまり「ns.cs.gunma-u.ac.jp (IP アドレスは 133.8.2.3) に問い合わせた結果、 www.cs.gunma-u.ac.jp と 133.8.3.11 は同じマシンを指していることがわかった」 ということを表しています。

同じマシンを特定するのに、IP アドレスと FQDN という 2つの方法があるのには理由があります。コンピュータの側からすれば IP アドレスだけでも全く問題はありません。むしろ4バイトという固定長の データなので、IP アドレスの方が扱いやすいと言えるでしょう。

しかし人間からすれば IP アドレスはただの数字の羅列にしか見えません。 www.cs.gunma-u.ac.jp は覚えようと思えば覚えられるでしょうが、 133.8.3.11 はどうでしょう。覚えられますか? つまり FQDN は人間様の都合によって存在しているのです。

「ならば、人間が我慢してIP アドレスを覚えれば、FQDN なしで インターネットは成り立つのではないか」
という疑問を持つかもしれません。それはそのとおりで、 IP アドレスは存在するが FQDN は付けられていない、 というマシンもたくさんあります。 例えば 133.8.20.174 というIP アドレスを持つマシンは存在しますが、 そのマシンには FQDN は付いていません。しかしその逆の、FQDN は あるが IP アドレスはない、というマシンは存在しません。
ネットワークに接続されている全てのマシンには IP アドレスが付けられています。
別の言い方をすると、
相手先の IP アドレスがわからないと、 絶対に相手先のマシンと通信することはできない
ということです。

まとめ

  • インターネットに接続されている全てのマシンには IP アドレスが付けられている。
  • インターネットに接続されている一部のマシンには ホスト名 (FQDN) が付けられている。
  • ホスト名 (FQDN) から IP アドレスへの変換は必ずできるが、 IP アドレスからホスト名 (FQDN) への変換は必ずできるとは限らない。
ただ、サーバやクライアントを作る際は、 「IP アドレスや FQDN は、インターネットの中から1台のマシンを特定するための識別子である」 と認識しておけば十分です。

補足

このページの
しかしその逆の、FQDN はあるが IP アドレスはない、というマシンは存在しません。 ネットワークに接続されている全てのマシンには IP アドレスが付けられています。
という記述について、掲示板で
FQDNはあってもIPアドレスがないマシンは存在します。UUCP接続の場合 にはネットワークに接続されていないのでIPアドレスを割当てる必要が ないからです。
というご指摘をいただきました。UUCP はよくわかっていないので、 とりあえずこのような指摘をいただいたことだけを追記しておきます。
クライアントとサーバの概念 >> 次へ

ご意見・ご指摘は Twitter: @68user までお願いします。