IPv6 Addresses
Interface Identifier

Before we discuss the individual addresses, it is necessary to explain how the Interface Identifier (Interface ID) is generated.

Each network interface generates its own Interface ID from IEEE EUI-64 standard. The Interface ID is subsequently taken to IPv6 address with a little modification. The penultimate bit (U/L) in the highest octet of identifier is inverted. This bit servers as a flag of globally unique address. The change is in order to facilitate the generation of Interface ID. We can consider a serial link whose Interface ID is 200:0:0:1 in the case of using the non-modified EUI-64 standard as an example. After modification, the Interface ID of serial link is 1.

In the case of Ethernet or wireless networks, the Interface ID is generated from globally unique MAC (Media Address Control) address. The procedure of generation is simple. 16 bits with the value FFFE (in hexadecimal system) are inserted between the third and fourth octet of MAC address and the flag of globally unique address is inverted according to the modified EUI-64 standard. Interface ID 0240:d0FF:FE58:F883 that is generated from the MAC address 00:40:d0:58:F8:83 is an example.

Generation of Interface ID from MAC Address

There is the unique interface identification and thus identification of the user's computer, due to generating the Interface ID according to the modified EUI-64 standard. The unambiguous identification of the interface can be undesirable because of safety communication. Therefore, the new mechanisms were defined that are based on a random generation of Interface ID. RFC 4941 defines these mechanisms.

The interface should have a fixed Interface ID that is used for establishing of the incoming connection, and random Interface ID that is used for establishing of the soutgoing connection to other computers. The lifetime of random Interface ID can be several hours or days. It depends on operating system. The incoming connection is always established using DNS (Domain Name Server), in which the entry with fixed Interface ID is stored. The random Interface ID must not be stored in the DNS.

Operating systems based on Linux kernel primarily use the modified EUI-64 standard to generate Interface ID. However, generating a random Interface ID can be enabled using the kernel parameter. For Microsoft operating systems, it is different. In the case of Microsoft Windows XP, Interface ID is generated according to the modified EUI-64 standard. In the case of Microsoft Windows 7, Interface ID is primarily generated according to RFC 4941. The random generation of Interface ID can be disabled using the command line.