IPアドレスの見方と割り当て方法
TCP/IPで構築されたネットワークでは、IPアドレスを使ってホストを識別する。では、どのようにしてIPアドレスは割り当てられているのだろうか。まずは、IPアドレスの見方と割り当て方法を解説しよう。
IPアドレスは、ネットワークにつながったホストを識別するための情報である。厳密にいえば、IPアドレスは各ホストが内蔵するネットワークカードごとに設定される。そのため、最近のノートPCのように有線と無線のLANインターフェイスを両方内蔵している場合は、1台のホストに2つのIPアドレスが割り当てられている(画面1)。
画面を見てわかるように、IPアドレスは「192.168.1.5」といった具合に、4つの数字を「.(ドット)」でつなげて表記されている。実はこれは「ドット10進表記」と呼ばれる表記方法で、少しでも覚えやすいようにという理由から、人間の都合で考えられたものである。しかしコンピュータの内部では、IPアドレスは32桁の2進数(0と1の組み合わせ。32ビット)で計算処理されている。この32桁を8桁ずつ4つのブロックに分けて、それぞれを10進数に変換して「.」でつないだものが、普段我々が目にするIPアドレスなのだ(図3)。
IPアドレスの2進数から10進数への変換方法は図4のようになる。8桁の2進数の左から順番に「128/64/32/16/8/4/2/1」と重みをつけて、それぞれの桁で「1」になっているところを足していく。たとえば2進数の「11001000」であれば、「128+64+8」で、10進数の「200」になる。これを4ブロック分計算すれば、画面のように「192.168.1.5」と変換できるのだ。
この2進数の考え方は以降のパートでも必要になるので、参考までに10進数の「200」を2進数に変換する計算方法も簡単に紹介しておこう(図5)。まず、200を2で割ると、答えは100で余りは「0」。次に答えの100を2で割ると、50で余りは「0」。以下、答えが0になるまで求めた「余り」を順番に並べると「00010011」となり、これを左右反転させると「11001000」になる。
IPアドレスの割り当て方法
このIPアドレスの設定は、ユーザーが手入力してもよいし、自動的に割り当てを受けることもできる。
IPアドレスの自動割り当てを管理するのがDHCP(Dynamic Host Configuration Protocol)サーバである。IPアドレスは重複してはならないが、手入力だとミスが起こりえる。それを避けるための仕組みがDHCPだ。
DHCPを使ったIPアドレスの割り当ては、以下の手順で行なわれる。まず、DHCPが有効になっているホスト(仮にクライアントとする)のOSが起動する際に、周りのコンピュータに対して「DHCPサーバはどこにいますか?」という意味の「DHCPDISCOVER」のパケットを投げる。これは相手がどこにいるかわからないので、「ブロードキャスト」と呼ばれる「周囲の全員に届く方法」で送信される。
次に、このブロードキャストパケットを受け取ったDHCPサーバは、「このIPアドレスが使われていませんが、どうでしょうか?」という意味の「DHCPOFFER」を返信する(ほかのホストは無視して破棄する)。この時点ではクライアントにIPアドレスが割り当てられていないので、ブロードキャストで送られる。返信を受け取ったクライアントは「ではこのIPアドレスでお願いします」と「DHCPREQUEST」をブロードキャストで送信する。これを受け取ったDHCPサーバはOFFERしたIPアドレスを「貸し出し中」にして、「では、このIPアドレスをお使いください」と「DHCPACK」を送る。以上で、DHCPを使ったIPアドレスの割り当ては完了だ。
IPv6について
現状、一般的なTCP/IPネットワークで使われているIPアドレスは、「IPv4(Internet Protocol version 4)」と呼ばれるルールにしたがっている。本記事でも、特に明記しない限りIPといえばIPv4のことを指す。
しかし、このIPv4によるアドレッシングは、IPアドレスの枯渇という問題に直面している。本文でも触れたように、IPアドレスは32桁の2進数で表現されているが、実は約43億種類のユニークな識別子でしかない。数年前から「じきに足りなくなる」といわれていたが、いよいよ本腰を入れて対策を考えなければならなくなった。
その1つの回答が、「IPv6(Internet Protocol version 6)」への移行で、アドレスの桁数が32から128に増加する。
Windows VistaがIPv6に標準対応するなど、スムースに移行できる環境は整いつつあり、今後の動向に注目してもらいたい。
この連載の記事
-
第8回
ネットワーク
HTTP、FTP、SMTP、SIPはどう動くの? -
第7回
ネットワーク
帯域を効率的に利用するTCPの仕組みとは? -
第6回
ネットワーク
TCPのコネクションとはなんですか? -
第5回
ネットワーク
TCPのキモはコネクションとポート番号 -
第4回
ネットワーク
ルータの向こうに広がるネットワーク -
第3回
ネットワーク
特別なIPアドレスって知っていますか? -
第1回
ネットワーク
TCP/IPの基礎の基礎を理解していますか? -
ネットワーク
TCP/IPまるわかり - この連載の一覧へ