IPv6如何根据MAC地址自动生成接口地址?
发布网友
发布时间:2022-04-26 14:36
我来回答
共1个回答
热心网友
时间:2022-06-29 06:56
IPv6根据MAC地址自动生成接口地址是属于IEEE EUI-64标准
具体介绍:
EUI-64
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地址。
4、实例:
a,MAC地址为 00-AA-00-3F-2A-1C
b,转换EUI-64为 00-AA-00-FF-FE-3F-2A-1C
c,第一个字节为0000 0000,第7为反转为0000 0010转换16进制为0x02。
d,得到结果为02-AA-00-FF-FE-3F-2A-1C,转换为ip6表示格式为2AA:FF:FE3F:2A1C