このページの本文へ

完全解剖「名前とアドレス」 第3回

IPアドレスとの違いを理解しよう

EthernetでのID「MACアドレス」を理解する

2009年05月18日 09時00分更新

文● 遠藤哲

  • この記事をはてなブックマークに追加
  • 本文印刷

マルチキャストアドレスのマッピング

 IPアドレスを管理しているIANAも実は“00-00-5E”というOUIを所有している。これはIPv4のマルチキャストアドレスを、MACアドレスにマッピングする際に用いられる。

 IANAの規定では、所有するIDをマルチキャストMACアドレスとして用いるので、I/Gビットには“1”が設定され、上位3バイトは“01-00-5E”となる。この上位3バイト(24ビット)に続く1ビットに0を設定した25ビットをプレフィックスとして規定している。MACアドレスの残る23ビットにIPv4のマルチキャストアドレスをマッピングするのである。

 しかし、IPアドレスは32ビット長なのに対し、マッピングするMACアドレス側は23ビットである。マルチキャストIPアドレスの上位4ビットはクラス識別用で固定なので、その部分は無視したとしても、マッピングできない部分が5ビット出てくる。

 そのため、図2に示すように228.10.0.1と239.138.0.1という2つのマルチキャストアドレスをMACアドレスにマッピングすると同一のマルチキャストMACアドレスが得られる。つまりIPでは異なるマルチキャストアドレスだが、配信先のMACアドレスは同一なので、両方の配信を受信することになる。

図2 マルチキャストアドレスのマッピング

IPアドレスとMACアドレスの違い

 TCP/IPの通信の中で、IPアドレスとMACアドレスという2つのアドレスが登場する。TCP/IPを学ぶうえで、2つのアドレスを使う意味に頭を悩ませることがある。そこでIPアドレスとMACアドレスの違いを説明しておこう。

 IPアドレスは、ハードウェアに依存しない論理的なアドレスであり、ネットワークアドレスとホストアドレスによってノード(ネットワークインターフェイスを備えたコンピュータ)を識別する。TCP/IPの通信では、宛先IPアドレスはIPパケットが宛先のノードに届くまでいくつものルータを経由しても変わらない。

 一方MACアドレスは、物理的なネットワークインターフェイスを識別するアドレスである。ネットワークインターフェイス層の代表的なプロトコルであるEthernetでは、ハブによって複数のコンピュータやルータが接続され、物理的に通信できるのは「隣接ノード」となる。Ethernetではこの複数の隣接ノードの中から通信する1つのノードを示すためにMACアドレスが使われるのである。

 IP通信において宛先IPアドレスはつねに到着ノードを示し、パケットを中継するルータは、これを見て転送先を決定する。

 しかし、これだけではIPパケットをルータに届けることはできない。ルータへIPパケットを送るためには、IPアドレスに変わる宛先が必要となる。ここでMACアドレスが登場する。

 ルータにもネットワークに接続しているインターフェイスがある。つまり送信ノードはルータのMACアドレスを指定すれば送信できるのである。

 ルータに送信されたIPパケットをルータが受信すると、IPパケットの宛先を見る。そして到着ノード側へパケットを転送する。転送を行なう際、IPパケット中の宛先IPアドレスと送信元アドレスはまったく変わらず、新たに送信元と宛先を示すヘッダ情報が付けられる。

図3 IP通信時の宛先アドレス

 ここでは送信MACアドレスがルータの到着ノード側、宛先が到着ノードのMACアドレスになる。

 このように通信において、IPアドレスとMACアドレスの意味するところが別であり、IPアドレスは発信ノードと着信ノードを示し、MACアドレスは伝送路上の次の宛先を示しているのである。

 ところで、発信ノードに設定されているのはデフォルトゲートウェイのIPアドレスなのに、どうしてルータのMACアドレスがわかったのだろう。それはIP通信においてMACアドレスを調べるARP(Address Resolution Protocol)というプロトコルを用いたためだ。

(次ページ、「ARPの仕組み」に続く)


 

カテゴリートップへ

この連載の記事