Essa inversão é bijetiva, então não consigo descobrir qual é a utilidade dela.
Essa inversão é bijetiva, então não consigo descobrir qual é a utilidade dela.
Respostas:
O RFC 4291 fornece instruções sobre como criar o endereço EUI64:
Links or Nodes with IEEE 802 48-bit MACs
[EUI64] defines a method to create an IEEE EUI-64 identifier from an
IEEE 48-bit MAC identifier. This is to insert two octets, with
hexadecimal values of 0xFF and 0xFE (see the Note at the end of
appendix), in the middle of the 48-bit MAC (between the company_id
and vendor-supplied id). An example is the 48-bit IEEE MAC with
Global scope:
|0 1|1 3|3 4|
|0 5|6 1|2 7|
+----------------+----------------+----------------+
|cccccc0gcccccccc|ccccccccmmmmmmmm|mmmmmmmmmmmmmmmm|
+----------------+----------------+----------------+
where "c" is the bits of the assigned company_id, "0" is the value of
the universal/local bit to indicate Global scope, "g" is
individual/group bit, and "m" is the bits of the manufacturer-
selected extension identifier. The interface identifier would be of
the form:
|0 1|1 3|3 4|4 6|
|0 5|6 1|2 7|8 3|
+----------------+----------------+----------------+----------------+
|cccccc1gcccccccc|cccccccc11111111|11111110mmmmmmmm|mmmmmmmmmmmmmmmm|
+----------------+----------------+----------------+----------------+
E o RFC 2373 fornece o 'porquê' por trás do lançamento do 7º bit:
The motivation for inverting the "u" bit when forming the interface
identifier is to make it easy for system administrators to hand
configure local scope identifiers when hardware tokens are not
available. This is expected to be case for serial links, tunnel end-
points, etc. The alternative would have been for these to be of the
form 0200:0:0:1, 0200:0:0:2, etc., instead of the much simpler ::1,
::2, etc.
Mas isso é um pouco de boca cheia. Então, em termos mais simples ... Na arquitetura de endereço MAC, o sétimo bit significa se o endereço MAC foi atribuído universal ou localmente. Um valor 0 indica que o endereço é universalmente administrado. Por exemplo, quando a IANA atribui um OUI (Organizationally Unique Identifier) a um fornecedor de placa de rede, o sétimo bit será 0, indicando que a OUI foi atribuída universalmente. Se um usuário alterar manualmente seu endereço MAC, esse sétimo bit será definido como 1, indicando que o endereço Ethernet foi administrado localmente .
Há também mais informações sobre isso no PacketLife .
Isso é feito para classificar endereços atribuídos à mão, como etc. prefix::1
, prefix::2
como local.
Suponha que você esteja configurando uma rede no prefixo 2001:db8:dead:beef::/64
. Você provavelmente usará IPs baseados em MAC para a maioria dos seus nós. No entanto, para alguns nós, como o servidor DNS, o servidor de diretórios etc., convém usar endereços que sejam mais fáceis de digitar e mais fáceis de memorizar do que os endereços baseados em MAC. Para o servidor DNS, você provavelmente desejará usar
2001:db8:dead:beef::53
Observe que o bit U / L está definido como 0 - o que, devido à inversão do bit, classifica o ID do host como local.
EUI 64 significa apenas um endereço MAC (48Bit) que tenha
..:FF:FE:..
no meio para encher todos os 64 bits. Daí o nome EUI-64. Para ser exatamente, você quer dizer EUI-64 modificado, o que significa que o EUI-64 combinado com um bitflip do sétimo bit.
O sétimo bit foi alterado porque, nos endereços MAC, esse sétimo bit indicava a diferença entre um local (0) e global (1). Local nesse sentido é, por exemplo, uma interface serial.
Como tudo isso é para criar automaticamente um endereço público, que estará em uma interface global (em termos de MAC), isso resultaria em um 1 na 7ª posição. Eles mudaram um pouco, para que você não precise anotar o endereço do furo e você pode a notação abreviada de "::"
Exemplo (da RFC 2373):
...
The alternative would have been for these to be of the
form 0200:0:0:1, 0200:0:0:2, etc., instead of the much simpler ::1,
::2, etc.
Resposta curta Mesmo que todo endereço MAC acabe em um endereço IPv6 que tenha um número HEX maior que 0 em alguma posição no endereço IPv6. Isso torna possível ter Zeros lá para que você possa usar a notação abreviada.