3.2.1 MACアドレス

通信においてまず必要な事は相手を知ることです。例えば、電話では相手の 電話番号を知っていなければいけません。電話番号は電話帳で調べたり、相手から 直接教えて貰ったりします。データリンク層で、この電話番号に相当するものは MACアドレス (Ethernet アドレス)です。 MACアドレスは、48bit(6byte)の大きさを持ち、通常ハードウェアに番号が書き込まれ ています(例えばインターフェースカードに)。勿論、電話番号と同じように 同じ番号があっては困りますので、このMACアドレスは世界中で唯一な番号である ことが保証されています。では、どうやって唯一であるようにしているのかと 言うと、上位24bit(3byte)がベンダーに付与され、下位24bitはベンダーが個々に 製品を管理し、唯一な番号になるようにして出荷しています。 これらのベンダーアドレスは以下の場所で調べることが出来ます。

http://www.iana.org/assignments/ethernet-numbers
いくつのベンダーアドレスの例を下に挙げます。
00000C Cisco
00000E Fujitsu
000093 Proteon
00AA00 Intel
080002 3Com (Formerly Bridge)
080009 Hewlett-Packard
080020 Sun Sun machines
また、Intelなどいくつかのベンダーは複数のベンダーアドレスを取得 しています。

  1. 参考
    MACアドレスを元にしてある程度ベンダーが絞れるので、 障害時に参考になる場合があります。また、MACアドレスの上位3byteから ベンダーをサーチするようなページもあります。

    http://www.coffer.com/mac_find/
    

MAC アドレスは通常16進表記で、8bitづつに区切って表記します。

00:00:39:00:2f:04

Unixでは、ifconfig コマンドなどでインターフェース情報を取得でき、 そこにMACアドレスなども表示されるようになっています。

> ifconfig
fxp0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
      options=3<rxcsum,txcsum>
      inet 192.168.0.1 netmask 0xffffff00 broadcast 192.168.0.255
      ether 00:90:27:50:fa:1c
      media: Ethernet autoselect (100baseTX <full-duplex>)
      status: active

Windowsなどでもインターフェースの詳細表示か、ipconfig コマンドなど で表示されます。

ちなみに、MACアドレスを設定するのはあくまでもOSの役割です。インターフェース カードなどにその情報があっても、MACアドレスを故意に書き換えることが出来ま すので、MACアドレスを以って個体の識別に用いる場合過信は禁物です。

更に、ベンダーアドレスなどとは別に特別なアドレスを示すために、特別に 決められたMACアドレスもあります。

01:00:5E:00:00:00 Internet Multicast [RFC1112]
01:80:C2:00:00:00 Spanning tree (for bridges)
09:00:4E:00:00:02 Novell IPX
CF:00:00:00:00:00 Ethernet Configuration Test protocol
  (Loopback)
FF:FF:FF:FF:FF:FF IP (e.g. RWHOD via UDP) as needed
FF:FF:FF:FF:FF:FF ARP (for IP and CHAOS) as needed
FF:FF:FF:FF:FF:FF EtherTalk

なお、MACアドレスだけではなく、ヘッダの TYPE fieldという領域にも、 それぞれの役割の区別のためのコードが記されるようになっていますので、 最後の3つのように同じMACアドレスであっても区別がつくようになっています。

  1. 参考
    上の例のうち、4つはマルチキャストと呼ばれるもので、下の三つはブロード キャストと言うものです。通常、ブロードキャストはネットワーク全体に 対して送られるもので、 0 をここ、1 を全ての意味に使う習慣になっている ことから、MACアドレスの全てのbitを1にしたものが Etherブロードキャスト アドレスとして使われます。



Noriyo Kanayama