Por que o bit U / L é invertido no EUI64?

13

Essa inversão é bijetiva, então não consigo descobrir qual é a utilidade dela.

Silviu
fonte
1
Alguma resposta o ajudou? Nesse caso, você deve aceitar a resposta para que a pergunta não apareça para sempre, procurando uma resposta. Como alternativa, você pode fornecer e aceitar sua própria resposta.
Ron Maupin

Respostas:

16

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 .

Eddie
fonte
Eu ainda não entendi. Se um administrador não quiser 0200, ele poderá configurar manualmente o endereço / 128 ipv6 como achar melhor, independentemente do que faça com a configuração de endereço mac. O único benefício possível que vejo aqui é em uma situação em que o endereço local do link não pode ser alterado manualmente, o que seria o único cenário em que um administrador veria um benefício. Em outras palavras, como um administrador se eu tiver um problema com meu eui-64 ipv6 endereço mostrando 0200, então eu vou apenas mudar manualmente o endereço, supondo que eu possa alterar manualmente a minha ligação local endereço
Lobi
e este link indica que a configuração manual de um endereço local de link é possível community.cisco.com/t5/ipv6/…
lobi
"Um valor 0 indica que o endereço é administrado universalmente". Não é o contrário?
Nakrule
6

Isso é feito para classificar endereços atribuídos à mão, como etc. prefix::1, prefix::2como 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.

jch
fonte
0

Em resumo, porque no MAC da ethernet, sétimo bit é definido como local / # global, enquanto no IPv6, sétimo bit na interface de 64 bits, ID é definido como global / # local.

Lobotomik
fonte
0

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.

Dorian Gaensslen
fonte