Modified EUI-64

読み:もでぃふぁいどいーゆーあいろくじゅうよん / 英語表記:Modified EUI-64

48ビットのMACアドレスから、IPv6アドレスの下位64ビットのインタフェース識別子を作る方式。MACアドレスの真ん中に FFFE を挟み、U/Lビットを反転させる。

イマシルちゃんの解説

IPv6のアドレスは、前半の「町の名前」(プレフィックス)と、後半の「番地」(インタフェース識別子)に分かれているんだったね。

番地を決めるいちばん簡単な方法は、パソコンがもともと持っている「製造番号」(MACアドレス)を使うことなんだ。
でも、MACアドレスは番地より短いから、そのままでは長さが足りないんだ。
そこで、真ん中に決まった値を差し込んで、番地の長さに伸ばすのがModified EUI-64なんだよ!

より深い解説

定義

Modified EUI-64は、RFC 4291で定められた、IEEEのEUI-64形式を一部修正した、インタフェース識別子の作り方である。48ビットのMACアドレス(EUI-48)から、64ビットのインタフェース識別子を作る。

作り方

  1. 48ビットのMACアドレスを、前半24ビット(OUI:製造者の番号)と後半24ビットに分ける
  2. 間に、16ビットのFFFEを挿入して、64ビットにする
  3. 先頭のオクテットの、下位から2ビット目(U/Lビット:グローバル/ローカルの区別)を反転させる

例:MACアドレス AA-BB-CC-11-22-33 の場合

手順値
MACアドレスAA-BB-CC-11-22-33
FFFEを挿入AA-BB-CC-FF-FE-11-22-33
先頭オクテットのU/Lビットを反転(AA=10101010 → 10101000=A8)A8-BB-CC-FF-FE-11-22-33
インタフェース識別子a8bb:ccff:fe11:2233

逆に、インタフェース識別子の真ん中に ff:fe があれば、Modified EUI-64形式で作られたものと推測でき、元のMACアドレスも復元できる。

IPv6アドレスの構造との関係

| サブネットプレフィックス(64ビット) | インタフェース識別子(64ビット) |

IPv6アドレスは128ビットで、16ビットずつ8つのブロックに区切り、「:」でつないで表す。SLAACで作るアドレスは、上位64ビットをRAで知らされたプレフィックス、下位64ビットをインタフェース識別子とする。

プライバシーの問題と、現在の作り方

MACアドレスは機器ごとに固定なので、Modified EUI-64で作ったインタフェース識別子は、どのネットワークにつないでも同じになる。そのため、アクセスしたWebサイトなどに、アドレスの下位64ビットから同じ端末だと追跡されるおそれがある。現在は、固定のMACアドレスからModified EUI-64でインタフェース識別子を作る方法は推奨されない。

作り方内容
Modified EUI-64MACアドレスから作る。追跡されやすい
安定したランダムな識別子(RFC 7217)ネットワークごとに異なるが、同じネットワークでは変わらない値を、疑似乱数関数で作る
一時アドレス(RFC 8981)ランダムに作り、一定時間ごとに作り直す。外部への通信に使う

ルータなどのネットワーク機器では、管理のしやすさから、インタフェース識別子を手動で(::1 のように)設定することが多い。

実際の試験ではここに出る!

この用語が出てくる記事

↑