Tech Sketch Bucket of Technical Chips by TIS Inc.

Ethernetアドレスの枯渇が心配? 〜 IEEE 802.3小ネタ(6)

Pocket



今回はMACアドレス(イーサネットアドレス)にまつわる, 常識化しちゃってるかもしれないけど実は常識じゃなかったという話です。

【質問】 次の4つはみんな常識ですよね? あやしいものはありますか?

・MACアドレスは, イーサネット以外にも使われている

・MACアドレスは, 機器の出荷時に必ず割り当てられている

・MACアドレスは, 48ビット固定長である

・MACアドレスは, 先頭24ビットがベンダ番号である




MACアドレス, または, イーサネットアドレスって知っていますか? このサイトの記事にアクセスされる方はきっと知っておられるでしょうから, 「MACアドレスとは?」なんて話は書きません。もしあまりよくご存じなくても, よろしければトリビア的な話ネタのつもりで読んでみてください。

かなり雑な解説

【解説】MACアドレスは, イーサネット以外にも使われている

このアドレスはイーサネット専用ではなく, 無線LANやBluetoothでも使われています。→【正しい】

無線LANの IEEE 802.11 やBluetooth (IEEE 802.15.1) でも使われているのは, 皆さんも目にされているでしょう。スマホやPCの端末情報を表示させると, これらのデバイスにもMACアドレスが付いているのがわかります。他にもトークンバス (IEEE 802.4), トークンリング (IEEE 802.5), FDDI (IEEE 802.6) でも使われていたようです。“トークンリング”とかまったく意味不明な方もいるかもしれませんね。たしかJIS規格は廃番になんたんじゃないでしょうか(未確認ですが)。

【解説】MACアドレスは, 機器の出荷時に必ず割り当てられている

MACアドレスは, ハードウェアについては出荷時に割り当てられていると言っていいでしょうね。→【いちおう正しい】

「ハードウェアについては」と限定している理由についても, ほとんどの方はおわかりとは思います。ひとつは仮想サーバ(仮想マシン)だってMACアドレスは持ちますが、当たり前ですが出荷時に割り当てられているわけではありません。また, VRRPでネットワーク機器を冗長化するときの“仮想MACアドレス”も機器の出荷時に割り当てられたものではない例です。他にもIPv4マルチキャストのときに使うMACアドレスが特殊な例です。これらの反例はあるものの, ハードウェアのイーサネット機器の出荷時にはたしかに割り当てられていますから, この選択肢「MACアドレスは機器の出荷時に必ず割り当てられている」は「正しい」でいいですよね。このコラム的にはどっちでもいいのですけど。

【解説】MACアドレスは, 48ビット固定長である

MACアドレスは48ビット固定長です。→【いちおう正しい】

“いちおう”と書いている理由は2つ。

1つ目は, かつて16bitのMACアドレス(というより“イーサネットアドレス”?)というのもあったらしいのです。この16ビットアドレスは, 1BASE5という鳴かず飛ばずで終わった規格用だったようです。この点を確認しようと思ったのですが裏付ける情報が見つからなかったので, もしかしたら間違えているかもしれません。いずれにせよ, 16ビットのMACアドレスは現在のIEEE 802.3規格には登場していないようなので, 忘れて良さそうです。

ちょっと脱線しますが, アドレス長を決めるというのはいつの場合でも論争があって, どう決めてもメリットもデメリットもある様ですね。イーサネットのアドレスを48ビットに決めた経緯について次の文献に記述があります。

2つ目は, IEEEでは, MACアドレスの表記として, 48ビットと64ビットの表記を示しています。64ビット表記の方は“EUI-64”と言います。「ん?」と思った方はいますか? IPv6アドレスで, 末尾64ビットをインタフェースアドレス(MACアドレス)を元に割り当てるときに使うEUI-64です。ただ, この64ビット表記のMACアドレスも, 48ビットのものを単純変換したものになっています。

【解説】MACアドレスは, 先頭24ビットがベンダ番号である… か?

「先頭24ビットがベンダ番号である」を常識的知識のひとつとして覚えている方が多いと思いますが, 実はそうとは限りません。 →【正しくない】

最後の4つ目にネタを仕込みました。もしかしたらご想像どおりかもしれませんが。

たぶん教科書に書いてあるMACアドレスの基本

このシリーズは単なるコラムで, まじめにイーサネットの勉強をしていただくためのものではありませんが, 後の節に関係するので簡単に整理をしておきます。
このコラムみたいにひねくれていない, つまり, 素直でわかりやすいMACアドレスの解説として, 次の様なものがあります。

簡単に図示すると下図の様になっています。

MACアドレス構造の基本

OUIとは, Organizationally Unique Identifier の略で, 機器の製造業者ごとに割り当てられたIDが使われます。下位の24ビット (約1600万台分) を使い切る様な大メーカにはたくさんのOUIが割り当てられています。

I/GとG/Lの部分ですが, 「この部分はホントはOUIの一部とは違うんじゃないか?」とも思うのですが, この点を書き出すと面倒なので端折ろうかと思ったのですが, ちょっとだけ触れておきます。

I/Gビットとか, G/Lビットとか, MACアドレスの基本的な属性, つまり, イーサネットでフレームを転送するときの基本的な挙動に関係するビットが, “1オクテット目の後ろの方”という中途半端なところに挟まっている様に見えます。16進数表記で図に書くとこうなってしまいますが, 実はI/GやG/Lは途中に挟まっているんじゃないんです。

イーサネットの物理層は, 普通はシリアル伝送ですね (なんやかんやの符号化はされるものの)。つまり, 1ビットずつ順番に流れるんですが, 各オクテットの下位ビットから送信されます。つまり, イーサネットフレーム(第1回:「「パケット」と「フレーム」 〜 IEEE 802.3小ネタ(1)」参照)で, プリアンブルの直後に送信されるビットが, 宛先MACアドレスのI/Gビットになります。この1ビット目で, 個別宛先かそうでない(例えばブロードキャスト)かがわかる様になっています。なるほど, よくできています。

I/GとG/Lについてはひとまずここまでにして、要は「先頭24ビットがOUIである」ということになっています。この記事では「この定義は正しくはない」的なことを書くのですが, 念のためですが, 上記で示した記事が正しくないなどと言うつもりで挙げているのではありません。このコラムのネタにしている重箱の隅の様な特殊な点には, 記事では触れていませんが, 規格そのものとは違い, 技術解説の明快さのためには必要なことです。

24ビットでないOUI

上記の様に, MACアドレスの基本構造は「24ビットのOUI」+「24ビットのベンダ毎の個体番号」です。けれど, この24ビット+24ビットの構造がすべてというわけではありません。ここにも重箱の隅があるんです。

JPRS(日本レジストリサービス)が, IETF Meetingでの発表内容を日本語で報告してくれていますので, そちらを参照してみます。

要約すると次の様な内容です:

・IEEEでは, 24ビットのOUIとは別に, 小規模ベンダ用のOUI-36と, 試作などためのIAB (Individual Address Block; こちらも36ビット)も管理している。
・今回(2013年), ネットワーク機器や仮想マシン環境の急増を受けて, 今後100年間MACアドレスが在庫枯渇しないように, レジストリの再構成を計画している旨が発表された。その内容は下記の通り。
- 24ビットのOUIは維持
- 36ビットのOUI-36とIABも維持
- 26ビットのOUI-26と28ビットのOUI-28新設
- 企業が仮想環境構築用のローカル空間用として, 企業に対して割り当てる24ビットのCompanyIDレジストリを新設

この新構成案ですが, 次のIETFのインターネットドラフトとして公開されています。

IEEEが主管組織であるOUIの再構成検討が, なんでIETFのドラフト文書として出されているのかという事情はよくわかりません。単なる広報活動の一環なんでしょうか。

上記の第86回IETF Meetingで「2013年の中期までパブリックコメントを募集しています」と報告されたこのOUI再構成ですが, IEEEでは既に登録が始まっています。2015年8月現在の状況では,

OUI-24(従来のもの) → MA-L
OUI-28 → MA-M
OUI-36 → MA-S
Company ID → そのままCID

として登録受け付けされているようで, OUI-26 は登録受け付けされていません。無くなったのか, まだ検討中なのかのどちらかでしょうか。

上記のインターネットドラフトの動機は, MACアドレスの枯渇対策の様です。アドレス空間の枯渇といえば32ビットのIPv4アドレスですが, 48ビットのMACアドレスですら枯渇を心配している様です。たしかに身の回りにMACアドレスを持ったモノが大量に増えています。1台のPCで3つくらい付いていますし, スマホも1台に2つ付いています。Bluetooth対応のiPodにすら付いてます。家族4人に我が家のIT機器をざっと数えたら, 個人生活の領域ですら, 30個から40個のMACアドレスを使っていそうです。これからの『IoT』時代を考えると更に増えるでしょう。

「24ビットOUIではないパターンがあるよ」というのが今回の小ネタなのですが, 実はここ最近になって急に登場したわけではないんですね。OUI-36(とIAB)は実は以前からあったんですね。ただ, 36ビットの残り12ビットでは, 4096個のアドレスしか割当ができませんから, 一般に流通する商品に使うようなものではないことは明らかです。最近になって, MACアドレスの効率的な割当のために, 従来のOUI-24とOUI-36の中間のパターンが登場したということになります。

24ビット以外のOUIにお目にかかれるか?

24ビットじゃないOUIがあるんだったら, 見てみたくなるのが人情です。どの程度, 世の中に出回っているんでしょうか。IEEEが割り当てたOUIは, IEEEのWebサイトで公開されています。

OUI-24 (従来からのもの) の公開画面がこちら( http://standards.ieee.org/develop/regauth/oui/public.html )。普通は3オクテットの16進数を入力して検索しますが, 全件の一覧も載っています。

IEEE-RA画面

実は従来からあったOUI-36はこちら( http://standards.ieee.org/develop/regauth/oui36/public.html )。現在登録されているのは1000件程度。ただ, 上にも書いたようにOUI-36ひとつで割り当てられる機器の数を考えると, 一般に流通している製品に使っているとはとても思えません。

一番新しいOUI-28で, IEEEのカテゴリではMA-M( http://standards.ieee.org/develop/regauth/oui28/public.html )。全件一覧を見てみると登録件数は700件弱。世界中でこれだけだとすると, 身の回りで目にするのは難しそうですね。

…ということで, 24ビットじゃないOUIを探すのは, あっさりあきらめました。

今回の小ネタ:


48ビットのMACアドレスは, 前半24ビットがベンダコード(OUI)に固定されているわけでは無くて, 実は複数の区切り方があった。けど, 一般に目にすることはまだ無さそう。

おまけ(余談): 1BASE5 は 1BASE-T ?

前述の16ビットのMACアドレス(イーサネットアドレス)のところで触れた「1BASE5」ですが, StarLANとも呼ばれ, ツイストペアケーブルを使う規格でした。1BASE5という規格名称は, この記事を書くにあたって私も初めて知りました。StarLANっていうのは聞いたことがあったと思いますが, これが1BASE5だとは知りませんでした。

このコラムの前回の記事“第5回 10BASE-T/100BASE-T/1000BASE-T/10000BASE-T ?” で, ツイストペアケーブルを使ういろんな規格を示しましたが, そこに入れるべきでした。そうすれば1Mビット/秒から10Gビット秒まで, ツイストペアケーブルを使って1万倍もの伝送速度差のものを並べることができました。残念です。

ちなみに, 1BASE5の末尾が「-T」じゃないのは, 末尾を延伸距離じゃなくて媒体の種類にしちゃうなんてことは, 当時は考えもしなかったんでしょう。たしかに反則技ですよね。

おわりに

シリーズを始めるときに3つくらいのネタを思いついていたので, 3回分くらいは書くつもりで初めていました。その後にいくつかネタが見つかったので調子に乗って続けていたわけですが, さすがにそろそろネタ切れですので, 今回で最終回にします。お付き合いいただきありがとうございました。

この連載の第1回目 の冒頭で, こんなことを書きました。

    生粋のネットワークエンジニアは別として, ITエンジニアの多くは, ネットワーク技術の低レイヤの話はちょっと苦手な方が多い気がします。こんなコラムを書いていますが, 私も同様です。

このTech-Sketchの他の記事のようにガッツリと検証したり調査をした結果をまとめたレポートにはせずに, 私が知っている範囲だけで手抜きでまとめちゃおうと, 最初は不埒なことを考えていました。けど, そうはいっても意外といろいろと調べ直す羽目になり, この機会に新しい情報に気づかされることもありました。今回のネタはその典型でした。

次は『IEEE 802.11 (無線LAN) 小ネタ』とか…, いや, やめておきます。

シリーズ一覧

--

エンジニア採用中!私たちと一緒に働いてみませんか?