I was reading Forouzan's book. It says following:
In IPv4 addressing, there is not a specific relation between the hostid (at the IP level) and link-layer address (at the data-link layer) because the link-layer address is normally much longer than the hostid. The IPv6 addressing allows this relationship. A link-layer address whose length is less than 64 bits can be embedded as the whole or part of the interface identifier, eliminating the mapping process. Two common linklayer addressing schemes can be considered for this purpose: the 64-bit extended unique identifier (EUI-64) defined by IEEE and the 48-bit link-layer address defined by Ethernet.
Mapping EUI-64
To map a 64-bit physical address, the global/local bit of this format needs to be changed
from 0 to 1 (local to global) to define an interface address, as shown in figure below:
Mapping Ethernet MAC Address
We need to change the local/global bit to 1 and insert an additional 16 bits. The additional
16 bits are defined as 15 ones followed by one zero, or FFFE16.
I have some doubts:
-
MAC addresses are assigned by manufacturers. Do manufacturers also assign EUI-64 addresses nowadays? (I have this doubt because I never came across 64 bit physical address when I run
ipconfig -all
on PC. Did I miss it?) -
If answer to 1 is no, then is EUI-64 just logical and always produced from 48 bit MAC address?
-
However answer to first doubt shouldnt be no, because otherwise it would have made no sense to give first mapping as given by first diagram.
Best Answer
The IEEE protocols use MAC addressing. Some of the IEEE protocols use 48-bit MAC addresses (MAC-48 or EUI-48), and some use 64-bit MAC addresses (EUI-64).
The answer to 1 is actually, yes, for some protocols.
You are confusing some things, and that book is out of date. The original IPv6 SLAAC used MAC addressing, or another unique host identifier, to create a 64-bit IPv6 IID, known as a Modified EUI-64 Format Interface Identifier. Most OSes do not do this anymore, but use random addressing with privacy extensions. Most IPv6 networks will be
/64
, meaning the IID will be 64 bits, and most IEEE protocols use 48-bit MAC addresses, so a standard method to convert a 48-bit MAC address to a 64-bit IID was needed for the original SLAAC.The specification for creating Modified EUI-64 Format Interface Identifiers is detailed in RFC 4291, IP Version 6 Addressing Architecture, Appendix A: Creating Modified EUI-64 Format Interface Identifiers. Notice that it covers both 48-bit and 64-bit MAC addresses, as well as other protocols that may not use MAC addressing: