【转】通过EUI-64自动生成IPv6地址和IPv6链路本地地址(Link-Local Address)

IEEE EUI-64地址表示一个用于网络接口寻址的新标准。

在IPv6中,无状态自动配置机制使用EUI-64格式来自动配置IPv6地址。
无状态自动配置是指在网络中没有DHCP服务器的情况下,允许节点自动配置IPv6地址的机制。

EUI-64的构造规则:根据接口的MAC地址再加上固定的前缀来生成一个IPv6的地址。

工作原理:自动将48bit的以太网MAC地址扩展成64bit,再组合一个64位的IPv6地址前缀,组成一个IPv6地址。(Link-Local地址也是通过此方法生成)

注:对于以太网链路的接口即用自己的MAC地址,对于串口链路和loopback接口会借用设备的以太网口(接口号最小的比如有F0/0,F0/1,那么默认都借用F0/0接的MAC地址)的mac地址进行组合。

转换过程:

1、对于一个MAC地址,由两部分组成,24位的公司的ID(由IEEE唯一分配),24位公司的扩展ID(公司自己编制),联合产生全球唯一的48位MAC地址(也称IEEE 802地址),如下:

ccccccUG cccccccc cccccccc xxxxxxxx xxxxxxxx xxxxxxxx
|       24位IEEE分配      ||     24位厂商自己编制     |

(注:上面的图是拿字符画的,手机上一自动换行就乱了,如果出现了变形,请在电脑上观看,下同)

注:
第一字节的第7位称为U/L位,表示此地址是全球管理还是本地管理。值为0是全球管理,值为1是本地管理。
第一字节第8位称为I/G位,表示此地址是单播地址还是组播地址。值为0是单播地址,值1是组播地址。

2、先将此48位MAC地址公司ID和公司扩展ID之间插入特定16位值0xFFFE,形成64位的EUI-64地址,如下:

ccccccUG cccccccc cccccccc 11111111 11111110  xxxxxxxx xxxxxxxx xxxxxxxx
|       24位IEEE分配      |       FFFE      |      24位厂商自己编制      |

3、再将EUI-64地址的第一字节第7为反转,形成IPv6地址的接口ID,加之IPv6前缀形成完整的IPv6地址。

举个栗子(例子):

IPV6接口ID的生成之EUI-64自动转换-举例1
IPV6接口ID的生成之EUI-64自动转换-举例1

1、MAC地址为 00-21-2F-B5-6E-10
2、转换EUI-64为 00-21-2F-FF-FE-B5-6E-10

IPV6接口ID的生成之EUI-64自动转换-举例2
IPV6接口ID的生成之EUI-64自动转换-举例2

3、第一个字节为0000 0000,第7为反转为0000 0010转换16进制为0x02
4、得到结果为02-21-2F-FF-FE-B5-6E-10,转换为IPv6表示格式为221:2FFF:FEB5:6E10
5、从网关得到IPv6地址前缀,64bit的地址前缀加上通过EUI-64生成的地址后缀(即221:2FFF:FEB5:6E10)拼接起来即可得到IPv6地址。
6、若生成的是链路本地地址(Link-Local Address)则加上FE80的前缀即可:FE80::221:2FFF:FEB5:6E10

注,地址范围性质不变:
在MAC地址中,第7比特为1表示本地管理,为0表示全球管理;
在EUI-64的IPv6地址格式中,第7位为0表示本地管理,为1表示全球管理。

其他相关文章:

参考自:

打赏作者
这里是 “ CCIE 工程师社区 ” 官方的捐款通道,您是否可以考虑请我们喝杯咖啡呢?

您的支持将鼓励我们继续创作!

[微信] 扫描二维码打赏

[支付宝] 扫描二维码打赏

Was this article helpful?

Related Articles

Leave A Comment?

This site uses Akismet to reduce spam. Learn how your comment data is processed.