为什么EUI64中的U / L位相反?


13

这种反转是双射的,因此我不知道它的用途。


1
有什么答案对您有帮助吗?如果是这样,您应该接受答案,这样问题就不会永远弹出来寻找答案。或者,您可以提供并接受自己的答案。
罗恩·莫潘

Answers:


16

RFC 4291提供有关如何创建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|
+----------------+----------------+----------------+----------------+

RFC 2373提供了“为什么”背后翻转的第7位的:

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.

但这有点令人mouth舌。因此,用更简单的术语来说…… 在MAC地址体系结构中,第7位表示MAC地址是通用的还是本地分配的。值为0表示该地址已被普遍管理。例如,当IANA向NIC卡供应商分配组织唯一标识符(OUI)时,第7位将为0,表示已普遍分配OUI。如果用户手动更改其MAC地址,则该第7位将设置为1,表示以太网地址是本地管理的

PacketLife还提供了有关此内容的更多信息。


我还是不明白。如果管理员不希望0200,那么他/她就可以按照自己的意愿手动配置/ 128 ipv6地址,而不管他们使用mac地址配置如何。我在这里看到的唯一可能的好处是在无法手动更改链接本地地址的情况下,这是管理员看到的唯一情况。换句话说,作为管理员,如果我的eui-64 ipv6地址显示0200有问题,那么我将手动更改该地址,假设我可以手动更改我的本地链接地址
lobi

并且此链接表明可以手动配置本地链接地址community.cisco.com/t5/ipv6/…–
lobi

“值为0表示地址已被普遍管理”。是不是相反?
Nakrule19年

7

它是做分类手工分配的地址,例如prefix::1prefix::2等地方。

假设您要在prefix中设置一个网络2001:db8:dead:beef::/64。您可能会为大多数节点使用基于MAC的IP。但是,对于某些节点,例如DNS服务器,目录服务器等,您将希望使用比基于MAC的地址更易于键入且易于记忆的地址。对于DNS服务器,您可能需要使用

2001:db8:dead:beef::53

请注意,U / L位设置为0-由于该位的反转,会将主机ID分类为本地。


0

简而言之,因为在以太网MAC中,第七位定义为本地/#global,而在IPv6中,将64位接口ID中的第七位定义为全局/#local。


0

EUI 64表示仅MAC地址(48Bit)具有

..:FF:FE:.. 

在中间填充所有64位。因此,名称为EUI-64。确切地说,您的意思是修改后的EUI-64,这意味着EUI-64与第7位的bitflip相结合。

更改第七位,因为在MAC地址中,该第七位指示本地1(0)和全局1(1)之间的差异。在这种情况下,本地是例如串行接口。

由于所有这些都是为了自动创建一个公共地址,该地址将全部位于全局接口(以MAC术语表示)中,因此在第7个位置将产生1。他们更改了该位,因此您不必写下孔地址,您可以使用“ ::”的简写形式

示例(来自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.

简短答案 即使每个MAC地址都将以一个IPv6地址结尾,该IPv6地址在该IPv6地址中的某些位置的HEX数将大于0。这样便可以在其中使用零,因此您可以使用简写表示法。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.