マルチキャストアドレスのマッピング
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アドレスは同一なので、両方の配信を受信することになる。
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アドレスと送信元アドレスはまったく変わらず、新たに送信元と宛先を示すヘッダ情報が付けられる。
ここでは送信MACアドレスがルータの到着ノード側、宛先が到着ノードのMACアドレスになる。
このように通信において、IPアドレスとMACアドレスの意味するところが別であり、IPアドレスは発信ノードと着信ノードを示し、MACアドレスは伝送路上の次の宛先を示しているのである。
ところで、発信ノードに設定されているのはデフォルトゲートウェイのIPアドレスなのに、どうしてルータのMACアドレスがわかったのだろう。それはIP通信においてMACアドレスを調べるARP(Address Resolution Protocol)というプロトコルを用いたためだ。
(次ページ、「ARPの仕組み」に続く)
この連載の記事
-
第5回
ネットワーク
Windowsネットワークの名前と番号 -
第4回
ネットワーク
インターネットで使うドメイン名と名前解決 -
第2回
ネットワーク
IPアドレスの柔軟な割り当てを実現するサブネットマスク -
第1回
ネットワーク
TCP/IPで使われるIPアドレスとポート番号 -
ネットワーク
完全解剖「名前とアドレス」<目次> - この連載の一覧へ