IPv6アドレスにおける「インターフェース識別子」という名称の謎とModified EUI-64によるIPv6アドレス生成

2020/7/21-1

ユニキャストおよびエニーキャストのIPv6アドレスの下位ビットには「インターフェース識別子」という名称がついています。さて、このインターフェース識別子ですが、なんで、インターフェース識別子という名前なのでしょうか? インターフェースを識別するという名前です。 問題は、どの範囲で、どう識別するのか、です。

これ、実はインターネット全体です。

インターフェース識別子は、本来はサブネット内で一意であれば良いはずのものですが、IPv6の仕様として、インターフェース識別子をインターネット全体で一意にするといった要素も含まれていました。 このことから、インターフェース識別子という名前は、インターネット全体を範囲としてインターフェースを識別することも視野に入っていた名称であることが推測されます。

かつてのIPv6の基本的な仕様では、IPv6アドレス自動生成で、MACアドレスなどをもとにインターフェース識別子を生成する方法が必須とされていました。 MACアドレスは、原則として一意性があるので、それから自動生成すればインターフェース識別子も一意性があるものになるという設計でした。

しかし、MACアドレスなどを元にしたIPv6アドレスの自動生成は、セキュリティとプライバシの問題があるため、いまでは非推奨となっています。

IPv6アドレスを単なるインターネットプロトコルでの通信のための識別子としてだけではなく、下位ビットを使ってインターフェースまでグローバルに識別できるような仕組みにしたら、識別できることそのものが問題でした、みたいな、そんな感じなのかも知れません。

ということで、この記事では、IPv6アドレスの自動生成で、下位64ビットの生成方法として、かつて必須だったModified EUI-64形式と、それが非推奨になった理由を紹介します。 いまでは非推奨ですが、IPv6に関して知るという視点では、その仕組みと、何がどう問題だったのかは、非常に大事なポイントです。 また、非推奨は禁止ではなく、いまでも使われることがあるという意味でも知っておいて損はない内容だと思います。

この記事は、次の流れで解説します。

  • インターフェース識別子(IID)
  • IEEE EUI-64、EUI-48
  • IPv6アドレスで利用されるModified EUI-64
  • インターフェース識別子という名称の謎
  • Modified EUI-64が必須ではなくなる(RFC 7136)
  • Modified EUI-64が非推奨に(RFC 8064)

こんな感じで、多少マニアックな内容になっているかも知れません。

インターフェース識別子(Interface Identifier / IID)

まず最初に、インターフェース識別子そのものに関して紹介します。

IPv6アドレスは、ネットワークを示す部分とインターフェースを示す部分とに分けられます。 この区分は、IPv4とIPv6とで異なります。

IPv4では、IPアドレスはネットワーク部とホスト部によって構成されます。

一方、IPv6では、IPアドレスはサブネットプレフィックスとインターフェース識別子(IID、Interface Identifier)によって構成されます。 この違いは、名称の問題だけのようにも思えますが、IPv4とIPv6の大きな違いを示しています。

1989年に発行されたRFC 1122では、IPv4アドレスの構成要素を「Network-number」と「Host-number」としています。 つまり、IPv4アドレスは、機器である「ホスト」そのものを示しているのです。 ルータ以外の末端ノードは基本的に1つのネットワークインターフェースだけを持ち、そこで必要なIPv4アドレスも1つだけ、という前提が垣間見えます。

一方、IPv6では、IPv6アドレスのインターフェース識別子は、ホストではなくインターフェースを識別するという名前になっています。

一部例外があるものの、一般的に、ユニキャストおよびエニーキャストのIPv6アドレスの上位64ビットがサブネットプレフィックスで、下位64ビットがインターフェース識別子です。 インターフェース識別子は、略してIIDと表現されることもあります。

さて、このインターフェース識別子ですが、かつて、IPv6アドレスの自動生成を行うとき、ネットワークインターフェースのMACアドレスを利用して生成するという仕様が必須とされていました。

初期のIPv6の仕様では、IPv6アドレスの自動生成を行うときに、上位64ビットはルータからのRAを利用して取得し、下位64ビットは原則として一意性があるMACアドレスを使えば自動生成できるよね、というものです。

さて、ここでもう一度、IPv6アドレスの下位64ビット部分の名前を思い出してみましょう。 インターフェース識別子です。

ここで大きなポイントとなるのが、識別子が、どのレベルで何を識別するものなのか、という点です。 IPv6アドレスという観点で見たとき、サブネットプレフィックスが同じサブネット内で、インターフェース識別子が被らなければOKという識別、なのか、それとも、インターネット全体で見て識別できる一意性が想定されているのかという話です。

昔のRFCを追っていくと、インターフェース識別子をインターネット全体で一意にすることが想定されていることがわかります。 まさに、インターフェースをインターネット全体で一意に識別してしまうような仕様だったわけです。

IEEE EUI-64、EUI-48

Modified EUI-64フォーマットの前に、まずは、IEEEによるEUI-48とEUI-64について少し紹介します。

EUIは、Extended Unique Identifierという名前です。 拡張された一意性のある識別子、と直訳することもできる名前です。

IEEEが公開しているガイドラインでは、EUIは、原則として一意性がある識別子であると書かれています。

EUI is intended to be globally unique and bound to a hardware device instance or other object that requires unique identification.

(訳)EUIは世界で一意となることが意図されており、一意な識別が要求されるハードウェアデバイスインスタンスもしくはその他オブジェクトと結び付けられている。

このように、EUIは、世界で一意となる、すなわち、グローバルにユニークとなる識別子であることが意図されています。

IEEEのガイドラインでは、EUIがMACアドレスとして使われることもある、と書かれています。 この記事でも、ネットワークインターフェースに設定されているEUIをMACアドレスと表現しています。

イーサネットで使われているMACアドレスは48ビットで、IPv6アドレスの自動生成で使われることが多いのも、この48ビットのEUI-48です。

EUI-48のユニバーサルなMACアドレスでは、上位24ビットがOUI(Organizationally Unique Identifier)と呼ばれる製造者識別子を表します。 OUIは、製造者がIEEEにお金を支払って登録するものであり、一意性が確保されています。

EUI-48アドレスの下位24ビットは、各製造者が独自に割り当てられる機器識別子です。 この記事では、OUIに含まれるuビットと、gビットが重要なポイントになります。

EUI-48では先頭オクテットのうち0x02のビットをuniversal/localビットと定義されています。 このuniversal/localビットは、uビットとも呼ばれていますが、このビットが0の場合はIEEEによって管理されたユニバーサルなアドレスであることを意味します。 逆に、そのビットが1である場合はローカルな管理者によって独自に付けられたアドレスであることを意味します。

また、EUI-48では先頭オクテットのうち0x01のビットをindividual/groupと定義されています。 このindividual/groupビットは、gビットとも呼ばれていますが、 このビットが1であれば、それはリンク層におけるマルチキャストアドレスになります。

EUIでは、48ビットのEUI-48をもとに、64ビットのEUI-64を生成する方法も定義されています。 EUI-48の先頭24ビットであるOUI部分と、後半24ビットの機器識別子部分の間に0xfffeという16ビットを挿入することで、EUI-48からEUI-64が生成できます。

たとえば、この図のように、0xacde48112233 というEUI-48のMACアドレスから、EUI-64を生成する場合、 OUIとなる上位24ビットである 0xacde48 と、下位24ビットの0x112233の間に、0xfffe を挿入し、 0xacde48 fffe 112233 というEUI-64になります。

この方法は、IPv6アドレスの自動生成でも利用されています。

以上が、EUIの大まかな紹介です。

EUIは原則として一意性がある識別子という定義ですが、実態としては一意であるとは限らないという話があります。 この前、作った動画で解説している、MACアドレスが一意であるとは限らないという話は、ここら辺と関係してきます。

そして、MACアドレスが一意となるとは限らないという話は、IPv6アドレス自動生成でMACアドレスを利用する仕組みに関する議論と関係してきます。

ただ、この動画の論点は、インターフェース識別子という名称と、Modified EUI-64なので、 EUI-64は、原則として一意性があることが意図された識別子であり、IPv6の仕様が作られた当初も、一意性がある識別子であることを前提に仕様が作られていると思われるという点がポイントになります。

IPv6アドレスで利用されるModified EUI-64

では、次は、IPv6で使われるModified EUI-64フォーマットについて説明します。 Modified EUI-64フォーマットは、IPv6アドレスのインターフェース識別子で使うために作られたフォーマットです。

このModified EUI-64というフォーマットは、IEEEによるEUI-64のuniversal/local部分のビットを反転させたものです。 要は、IEEEのEUI-64フォーマットのうち、1ビットを反転させたものが、Modified EUI-64です。

IPv6アドレス体系を規定しているRFC 4291では、次のように書かれています。

For all unicast addresses, except those that start with the binary value 000, Interface IDs are required to be 64 bits long and to be constructed in Modified EUI-64 format [RFC4291].

(訳) IPv6アドレスの先頭3ビットが000でないすべてのユニキャストIPv6アドレスのインターフェース識別子は64ビット長であり、その部分はModified EUI-64フォーマットによって構成される必要がある。

通常のユニキャストアドレスは、Modified EUI-64フォーマットであることが必須とされていたわけです。 そして、一般的には、Modified EUI-64フォーマットによるインターフェース識別子は、48ビットのMACアドレスから自動生成します。

EUI-48のアドレスから、IPv6アドレスで利用するModified EUI-64フォーマットのインターフェース識別子を生成するには、この図のようにOUI部分のuniversal/localビットを反転させたうえで、OUI部分と機器識別子部分の間に0xfffeという16ビットを挿入します。 OUI部分と機器識別子部分の間に0xfffeという16ビットを挿入する部分は、EUI-48からEUI-64を生成する方法と同じです。 違うのは、OUIのuniversal/localビットを反転させているという部分です。

IEEEによるOUIのuniversal/localビットは、0がセットされた場合にグローバルに一意な値であることを示し、1がセットされた場合にはローカルな値であることを示しています。

EUI-64では、グローバルに一意な値である場合にはuniversal/localビットが0なので、64ビットのうち、最下位ビットのみが1となるような値は、グローバルに一意という意味があることになってしまいます。

たとえば、2001:db8::1というユニキャストIPv6アドレスを手動で設定したとき、Modified EUI-64ではなく、通常のEUI-64を採用していた場合、インターフェース識別子に含まれるuビットが0となるので、64ビットのうち最下位ビットのみが1というインターフェース識別子がグローバルに一意であるものを示すことになってしまうわけです。

しかし、手動設定での2001:db8::1というユニキャストIPv6アドレスの下位64ビットは世界で一意となるようなユニークな値ではありません。 こういう設定を行いたい人が多そうなので、Modified EUI-64では、uビットが0の場合はlocalで、1の場合がuniversalという風に、意味を反転させたのです。

EUI-64をそのままIPv6アドレスのインターフェース識別子として使う場合、 IPv6アドレスとして、グローバルに一意ではないものを示すために、64ビットのインターフェース識別子の先頭オクテットのうち0x02のビット部分を1としつつ、2001:db8::200:0:0:1 のようなIPv6アドレスを求めるより、IPv6ではuniversal/local ビットの示す値の内容を反転させることで、2001:db8::1というIPv6アドレスでのインターフェース識別子におけるuビットの整合性を実現したわけです。

このように、EUI-64ではなく、Modified EUI-64とすることで、2001:db8::1のようなIPv6アドレスであっても、インターフェース識別子部分は、Modified EUI-64フォーマットに準じているという体裁が保たれるわけです。

ただ、この体裁が保たれるという側面は、2014年に発行されたRFC 7136によって、現在は割とどうでも良い話になっています。 そもそも、もともと、あまり意味がある仕様ではなかったという考え方もあるわけです。

とはいえ、Modified EUI-64という仕組みそのものは、昔はIPv6アドレスの要素として、必須とされる仕様だったわけです。

インターフェース識別子という名称の謎

さて、ここまで、IEEE EUI、Modified EUI-64、それを利用したインターフェース識別子の生成が非推奨になったことなどを紹介しました。

ここで、もう一度、インターフェース識別子という名称について、いくつかのRFCに書かれている内容をもとに考察してみましょう。

まず、IPv6アドレス体系のRFCである、RFC 4291を見てみましょう。 IPv6アドレス体系のRFCは、これまで3回更新されていますが、現在の最新版が2006年に発行されたRFC 4291です。

そこでは、

Interface identifiers in IPv6 unicast addresses are used to identify interfaces on a link.

(訳) ユニキャストIPv6アドレスにおけるインターフェース識別子は、リンクにおけるインターフェースを識別するために利用される。

と書かれています。

さらに、それに続けて、さらに次のように書かれています。

They may also be unique over a broader scope.

(訳) それらは、もっと広いスコープで一意となる場合もある。

これ、直接は表現していませんが、インターフェース識別子がグローバルにユニークとなる場合もあると解釈することもできる文章です。

インターフェース識別子が、インターネット全体においてインターフェースを識別することを意識していると推測できる文章は、他のRFCにもあります。

RFC 5453では、non-uniqueなインターフェース識別子について言及しています。 インターネット全体でuniqueとならないインターフェース識別子と表現されているということは、Modified EUI-64によるインターフェース識別子は、インターネット全体でuniqueであることが期待されている場合もあると読めるわけです。

Examples of mechanisms that generate interface identifiers without a unique token include Cryptographically Generated Addresses [RFC3972], Privacy Addresses [RFC4941], Hash-Based Addresses [HBA], etc. Non-unique interface identifiers can also be allocated using managed address assignment mechanisms like DHCPv6 (Dynamic Host Configuration Protocol for IPv6) [RFC3315].

(訳) ユニークなトークンを利用しないインターフェース識別子生成手法の例としては、Cryptographically Generated Address、Privacy Address、Hash-Based Address、などがあげられる。 Non-uniqueなインターフェース識別子は、DHCPv6のような管理されたアドレス割り当て機構によって、割り振られることもある。

このように、RFC 5453では、 Non-unique interface identifiersという表現とともに、unique tokenを伴わないインターフェース識別子という表現もあります。 これは、unique tokenによって生成されたインターフェース識別子が、インーターネット全体というスコープで一意となることが意識されていると解釈できます。

Privacy Addressを定義しているRFC 4941には、次のようにあります。

The IPv6 addressing architecture goes to some lengths to ensure that interface identifiers are likely to be globally unique where easy to do so.

(訳) IPv6アドレス体系は、それが容易に実現できる場合には、インターフェース識別子がグローバルに一意となることを保証しようとする

「インターフェース識別子がグローバルに一意となることを保証」と書いてあるわけです。 要は、ユニキャストIPv6アドレス全体である128ビットがインターネット全体で一意となるだけではなく、下位64ビットのインターフェース識別子の部分もインターネット全体で一意となることを意図した仕様であったことがわかります。

そして、その文章に続いて、次のような文章が書かれています。

The widespread use of temporary addresses may result in a significant fraction of Internet traffic not using addresses in which the interface identifier portion is globally unique. Consequently, usage of the algorithms in this document may complicate providing such a future flexibility, if global uniqueness is necessary.

(訳) temporaryアドレスの利用が広く普及することにより、インターネットトラフィックのかなりの割合が、アドレスのインターフェース識別子部分が、グローバルに一意ではないものになる可能性がある。 その結果として、このドキュメントが示すアルゴリズムを利用することが、将来インターフェース識別子部分のグローバルな一意性が求められるときに、問題になる可能性がある。

このように、「インターフェース識別子が、おそらくグローバルに一意となるように保証する」という表現があります。 そして、その用途としては、グローバルな一意性を必要とする将来の仕組みを想定して、そのようになっていることもわかります。

後ほど紹介するRFC 7136では、「universally unique IID」という表現があり、やはり、インターネット全体をスコープとしてインターフェース識別子が一意となることが想定されていてことがわかります。

以上のことから、インターフェース識別子がインターネット全体のなかで一意性があるように識別できることを意図した設計であったことがわかります。 IPv6アドレスの下位ビットから、インターフェースを識別できることが意識された設計だったわけです。

そして、「インターフェース識別子」という名称は、インターネット全体のなかで一意性があるように識別できるようにすることを想定した名称だったのではないかと、私は推測しています。 ただ、インターフェース識別子をグローバルに一意とする設計であったことと、一意性を意識して「インターフェース識別子」という名称にしのかということは別の話です。

そういった意図で「インターフェース識別子」という名称になったということが明確に記述された文書を、いまのところは発見できていないので、現段階では、あくまで私の個人的な推測です。 ということで、名前の由来が謎なので、この動画では「インターフェース識別子という名称の謎」と表現しています。

Modified EUI-64が必須ではなくなる(RFC 7136)

次は、2014年に発行されたRFC 7136で、Modified EUI-64によるインターフェース識別子が必須ではなくなったという話です。

RFC 7136では、新しいインターフェース識別子のフォーマットが議論されるたびに、uビットとgビットに意味があるのかという疑問が浮かんでくると書いてあります。 RFC 7136を、ざっくりと要約すると、インターフェース識別子のuビットとgビットに意味があるのだろうか?いやない。 という感じです。

先ほども紹介しましたが、RFC 4291では、このように規定されているので、通常のユニキャストIPv6 アドレスはすべてModified EUI-64形式になっている必要がありました。

For all unicast addresses, except those that start with the binary value 000, Interface IDs are required to be 64 bits long and to be constructed in Modified EUI-64 format.

(訳) IPv6アドレスの先頭3 ビットが000でないすべてのユニキャストIPv6アドレスのインターフェース識別子は64ビット長であり、その部分はModified EUI-64フォーマットによって構成される必要がある。

しかし、2014年に発行されたRFC 7136では、この部分が次のように修正されています。

For all unicast addresses, except those that start with the binary value 000, Interface IDs are required to be 64 bits long. If derived from an IEEE MAC-layer address, they must be constructed in Modified EUI-64 format.

(訳) IPv6アドレスの先頭3ビットが000ではないすべてのユニキャストIPv6アドレスのインターフェース識別子は64ビット長である必要がある。 もしインターフェース識別子がIEEE MAC層のアドレスから生成されているのであれば、その部分はModified EUI-64フォーマットによって構成されなければならない。

RFC 7136が発行される前は、先頭3ビットが000でないすべてのユニキャストIPv6アドレスのインターフェース識別子はModified EUI-64によるものであることが必須でしたが、RFC 7136によって、MACアドレスを使ってインターフェース識別子を生成する場合にはModified EUI-64フォーマットを利用するという仕様に変更されました。 Modified EUI-64フォーマットが必須なのは、インターフェース識別子がIEEE MAC層のアドレスから生成される場合のみに変わったわけです。

さらに、RFC 7136では、インターフェース識別子に含まれるビット列には包括的なセマンティクスはない、としています。

In all cases, the bits in an IID have no generic semantics; in other words, they have opaque values.

(訳) インターフェース識別子に含まれるビット列には包括的なセマンティクスはない。 言い換えると、インターフェース識別子の値は不明瞭である。

要は、インターフェース識別子において、Modified EUI-64でのuビットとgビットを気にしなくても良いということです。

RFC 7136では、RFC 4291に含まれる次の文言を廃止しています。

The use of the universal/local bit in the Modified EUI-64 format identifier is to allow development of future technology that can take advantage of interface identifiers with universal scope.

(訳) Modified EUI-64フォーマット識別子におけるuniversal/localビットの利用は、ユニバーサルスコープを持つインターフェース識別子を有効利用できる未来のテクノロジーを開発可能にすることを目的としている。

未来のために作ってある仕様であったけど、RFC 7136で、それを説明しているRFC 4291の文章を廃止したわけです。

この変更に関して、RFC 7136では、

As far as is known, no existing implementation will be affected by these changes.

(訳) 現時点では、この変化によって影響を受ける実装は存在していない。

としています。

さらに、RFC 7136では、何でそんな設計が行われたのかに関する言及もあります。

There was a presumption when IPv6 was designed and the IID format was first specified that a universally unique IID might prove to be very useful, for example to contribute to solving the multihoming problem.

(訳) IPv6設計段階およびインターフェース識別子フォーマットが最初に策定された段階では、ユニバーサルにユニークなインターフェース識別子は、たとえば、マルチホーム問題を解決することに貢献するなど、非常に有用となるのではないかという仮定がありました。

このように、もしかしたら将来、役に立つかも知れないという発想で、IPv6アドレスからインターフェースを識別できるような仕様にしたようです。

そして、RFC 7136では、この文章の後に、そもそもMACアドレスが再利用されることがあり、MACアドレスが示すuビットが1であることがuniversalなuniquenessに関する信頼できる指標ではない、と書いています。

以前、MACアドレスの再利用がみんなが思っているよりも一般的であるという動画を作りましたが、あの話は、このような形で、IPv6アドレス自動生成でModified EUI-64が必須ではなくなる話と繋がってくるのです。

プライバシおよびセキュリティの問題のためModified EUI-64が非推奨に(RFC 8064)

2017年に発行されたRFC 8064によって、SLAAC以外の仕様においても、固定されたインターフェース識別子の扱いがSHOULD NOT(非推奨)とされました。

ただし、RFC 8064はModified EUI-64 形式そのものを非推奨としているわけではなく、固定されたインターフェース識別子を生成する方法としてRFC 2464で定義されている方法を利用しないことを推奨しているため、たとえばMACアドレス自体が定期的にランダムに変化するような固定ではなくなる場合においてModified EUI-64フォーマットを利用することが非推奨とされているわけではありません。

RFC 8064では、Modified EUI-64が非推奨となった理由として、RFC 7721で解説されている次の4点をあげています。

  • 活動の関連づけ
  • 位置トラッキング
  • デバイスの持つ脆弱性への攻撃
  • アドレススキャン攻撃

以上4点です。

では、それぞれ、概要を紹介します。

活動の関連付け

まず、活動の関連づけですが、MACアドレスなどのIEEE識別子を利用したインターフェース識別子を利用している場合、そのネットワークインターフェースが利用され続ける限り、インターフェース識別子はずっと同一のままです。 インターフェース識別子が、ネットワークインターフェースをグローバルに識別してしまうわけです。

そのため、IPv6アドレスを利用して、ホストの活動を長期間にわたって関連づけることができます。 こうした活動の関連づけでは、IPアドレスだけでなく、DNSにおける名前、HTTPクッキー、ブラウザのフィンガープリントなどの情報もあわせて利用されることがあります。

NATとDHCPv4が同じホストに対して異なるIPv4アドレスを割り当てるIPv4に比べて、IPv6では、この攻撃の効果が大きくなる可能性が指摘されています。

位置トラッキング

次は、位置トラッキングです。

固定的なインターフェース識別子が利用されている場合、そのホストがネットワークを移動したことをインターフェース識別子から判別できます。 それにより、そのホストがどのように物理的に移動したかを、ネットワークプレフィックスの位置を追跡することで検知できるようになります。

RFC 7721では、この特性を利用した能動的な攻撃手法も紹介されています。 同じIPv6リンクに接続したサーバ、もしくは途中経路上にある機器がインターフェース識別子を学習することで、遠隔地にあるネットワークからその機器の存在を確認できるようになります。

IPv4では、新しいネットワークに接続したときにまったく新しいIPv4アドレスが割り当てられるので、このような攻撃は可能ではないとされています。

デバイスの持つ脆弱性への攻撃

では、次は、デバイスの持つ脆弱性への攻撃です。

IEEE識別子は製造者を示す情報を含むので、IEEE識別子が、IPv6アドレスのインターフェース識別子として利用される場合には、そのネットワークインターフェースに関するデバイス情報が漏洩しています。 IPv6アドレスを見るだけで、どのようなハードウェアを利用しているのかが、わかってしまう場合があるわけです。

機器固有の脆弱性が存在する場合など、デバイス情報が漏れることで攻撃者に有利な状況になる可能性が考えられます。

アドレススキャン攻撃

4つ目のアドレススキャン攻撃に関しては、RFC 7707で論じられています。 RFC 7707で解説されているアドレススキャン攻撃に関しては、以前作った動画をご覧ください。

これらの理由から、RFC 8064は、MACアドレスなどを使って、IPv6アドレスのインターフェース識別子を生成することを非推奨としました。 RFC 7136は、MACアドレスなどを使ったインターフェース識別子の生成を必須ではないとしましたが、RFC 8064は、それよりもさらに一歩踏み込んで非推奨としています。

最後に

インターフェース識別子は、本来はサブネット内で一意であれば良いはずのものですが、IPv6の仕様として、インターフェース識別子をインターネット全体で一意にするといった要素も含まれていました。 このことから、インターフェース識別子という名前は、インターネット全体を範囲としてインターフェースを識別することも視野に入っていた名前であることが推測されます。

IPv6アドレスを単なるインターネットプロトコルでの通信のための識別子としてだけではなく、下位ビットを使ってインターフェースまで識別できるような仕組みにしたら、識別できることそのものが問題でした、みたいな、そんな感じなのかも知れません。

いまは非推奨となっているModified EUI-64ですが、その仕組みがインターフェース識別子という名前の由来になっているのかも知れないと思うわけです。 ただ、実際に、そういった思想で、インターフェース識別子という名前にしたのかどうか、いまのこところ確実な文言をRFCなどから発見できているわけではなく、多分そうじゃないかという私の推測だけです。

インターフェース識別子という名称が、私の推測している通りの理由でインターフェース識別子となったのであれば、MACアドレスなどからインターフェース識別子を自動生成することが非推奨となった現在は、インターフェース識別子は、インターフェースを識別するものではなくなっている可能性があります。 インターフェース識別子という名前だけが残り、その名前の由来となった設計は、既に推奨されないものとなっているとも考えられるわけです。 そう考えると、インターフェース識別子は、いまや、魂が抜けてしまった名前なのかも知れません。

まあ、でも、実際はどうなんでしょうか。 多分、そうなんじゃないかという話で、いまのところ、よくわからないというのが正直なところです。

ということで、インターフェース識別子という名前の謎と、Modified EUI-64の解説でした。 多少マニアックな内容になってしまいましたが、楽しんでいただければ幸いです。



この記事の内容を動画でも公開中です!→

最近のエントリ

過去記事

過去記事一覧

YouTubeで技術解説やってます!