当MAC地址中只有48位时,为什么ipv6指定128位地址?


37

因此,我正在阅读网络考试,我只是想知道我是否错过了一些基本知识。是否需要比MAC地址更多的IP地址,在这种情况下,如何为具有一个网络适配器的节点分配许多IP地址?


2
+1尽管很明显MAC仅对于一个本地网络(连接到同一总线)内的设备必须是唯一的,而Internet层将所有本地网络合并为一个全局网络,由此基本设计原理划分了征服对象,精确地规定了本地网络不知道其他本地网络中的本地地址,无法通过全局IP方案成功通信,此外,您可以将基于非以太网的本地网络连接到Internet。因此,我很想知道如果IP仅在底层要求仅以太网,那将是答案。
2013年

1
从IPv4到IPv6的过渡非常缓慢而且昂贵,以至于我们不想再面对另一个过渡。128位有足够的机会“永远”存储。 tools.ietf.org/html/rfc1606对此很有幽默感(“由于IP 版本9协议的使用寿命即将结束,再次是由于地址空间耗尽,……”)
Beni Cherniavsky- Paskin

@ BeniCherniavsky-Paskin,过渡很慢,因为NAT减轻了需求。同样,这向我们表明,我们不需要本地地址空间来覆盖全局地址空间。
2013年

Answers:


40

MAC地址仅需要在本地广播域中唯一,而不必在全球范围内唯一,因此在不同网络中重用MAC地址通常不是问题。

互联网不是一个全球广播域,因此需要分为许多分配给不同ISP的地址块,每个ISP将其块划分为较小的块以用于不同的客户/服务。为了允许这些较小的块中的每一个包含许多MAC地址,您需要拥有比MAC地址空间大得多的IP空间。


8
也因为聚集。48bits绰绰有余的IP地址(每人40k),但这意味着每个路由器都需要查看2PB以上的平面表,而该技术并不存在。
ytti 2013年

1
@ytti:至少直到我们所有人都有血液中启用了ip的纳米机器人
BlueRaja-Danny Pflughoeft

1
他们可能可以使用linklocal,因为只有很少一部分会在本地网络外部进行接口。
ytti 2013年

1
纸面上,它们应该是全球唯一的。但是,已知现实有所不同。
Ricky Beam

4
这将引起另一个问题。但是MAC地址是从您从IEEE购买的24b或36b OUI号码完成的,这应该是唯一的,但实际上为了节省1300USD,有些人使用了其他人的OUI,或者有些人使用非唯一的MAC生产NIC。MAC地址为48b,实际上仅为46b,因为1位确定它是单播/多播,还是1位确定它是全局/本地,如果本地作用域开,则所有赌注都是唯一的。
ytti 2013年

16

并非所有类型的网络接口都使用MAC地址。MAC地址主要与以太网相关联,尽管许多其他网络标准也使用它。但是,仍可以将IPv6地址分配给不使用第二层MAC地址的网络接口。

还要注意,通过在48位MAC地址的最左边和最右边的24位之间插入十六进制值FFFE,可以通过EUI-64转换(主要用于无状态自动配置)将MAC地址转换为IPv6主机部分,第七位反转。

因此,例如,可以将0c:3a:bb:2a:cd:23转换为无状态自动配置IPv6地址的主机部分。上述MAC地址中的0c(以二进制0000 1100表示​​)将以二进制0000 1110或以十六进制表示0e。因此,从MAC地址转换而来的IPv6地址的最终EUI-64主机部分将为0e:3a:bb:ff:fe:2a:cd:23。


1
您还需要翻转MAC地址“本
地位

我忘记了那部分-我编辑了答案以反映信息。感谢您发现问题:-)
WaxTrax 2013年

愚蠢的脚本可以自动执行此操作:ruby -e'EUI =(ARGV [1]); k = ARGV [0] .delete(“:。”)。scan(/。{6} /)。join(“ fffe” ).scan(/../); k [0] =“%02x”%(k [0] .hex ^ 0b10); p EUI +“:” + k.join.scan(/..../) .join(“:”)'74:66:30:42:42:42 2001:67c:17a0:0
ytti 2013年

将MAC地址转换为EUI-64以用于IP分配似乎是后来的事情,原始的基于以太网的IPv6标准(RFC 2464)指定了零前缀的MAC地址。
彼得·格林

6

此外,有些第2层协议的MAC中有超过48位,例如,光纤通道具有64位(根据Wikipedia显然为128位),而FireWire也有(因此,有点),因此它们可以放入/ 64没有重叠的潜力。


4

IPv6 SLAAC使用MAC生成合理唯一的地址,因此每个前缀只能生成一个地址。隐私扩展可以生成一个或多个伪随机地址,然后将其检查本地段上是否存在任何重叠。当然,本地管理员可以根据需要分配任意数量的静态地址,这是确保没有重叠的工作。

[通过合理唯一的意思是,发生碰撞的可能性为零。如果这样做的话,您首先会遇到第2层问题!(同一网段上的两台计算机具有相同的MAC)]


当人们意识到基于MAC的自动配置是一场隐私梦night时,Afaict隐私扩展才成为事后的想法。不是IPv6设计的推动力之一
彼得·格林

IPv6的大部分内容是事后的…… 那些从历史中学不到的人注定要重蹈覆辙。
瑞奇比姆(Ricky Beam),

2

我认为从根本上讲,它可以归结为两个关键点。

  1. 互联网地址不仅需要在全球范围内唯一,还需要在全球范围内可路由。单独路由每台机器的地址将导致路由表过大。IPv6设计者梦想着建立一个分层路由系统*,以保持较小的路由表。
  2. IPv6的设计者想要无状态自动配置。无状态自动配置要求地址的“主机”部分较大,以容纳现有的链接地址或容纳足够大的随机数,以至于冲突不太可能发生。

将这些点放在一起,您就需要地址的“主机”和“网络”部分都很大。当然每个超过32位。每个64位可能都是过大的,但是比用完要好。

*梦想并没有真正实现,因为互联网不是固定的层次结构,但这与自引入IPv6以来20年来的实际情况无关,而是推动设计的原因。

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.