IT-RS-IPV6-EUI-64

IPv6地址中基于EUI-64生成接口ID的规则

IPv6 接口标识
IPv6 地址的最后 64 位是对于 IPv6 地址的 64 位前缀而言唯一的接口标识。确定接口标识的方法如下:
RFC 2373 声明,所有使用前缀 001 到 111 的单播地址,必须使用由“扩展唯一标识 (EUI) - 64”地址派生的 64 位接口标识。
RFC 3041 描述了随时间变化而随机生成的接口标识,以提供某种程度的匿名。
将在有状态的地址自动配置(例如,通过 DHCPv6)过程中指派接口标识。DHCPv6 标准目前正在定义中。用于 Windows Server 2003 家族产品和 Windows XP 的 IPv6 协议不支持有状态地址配置或 DHCPv6。
手动配置的接口标识。

基于 EUI-64 的IPv6 接口标识(Interface ID)

64 位 EUI 64 地址是由电气和电子工程师协会 (IEEE) 定义的。将 EUI-64 地址指派给网络适配器,或从 IEEE802 地址派生得到该地址。
在IPv6无状态地址自动配置过程以及接口下生成的Link-local链路本地地址的过程中,一般是根据EUI-64规则来生成接口ID部分:也就是IPv6地址128位长度中的后64位部分。

IEEE 802 地址

用于网络适配器的传统接口标识可使用称为 IEEE 802 地址的 48 位地址。此地址由 24 位公司 ID(也称为制造商 ID)和 24 位扩展 ID(也称为底板 ID)组成。公司 ID(唯一指派给每个网络适配器的制造商)和底板 ID(在装配时唯一指派给每个网络适配器)的组合,即可生成全局唯一的 48 位地址。这个 48 位地址也称为物理地址、硬件地址或媒体访问控制 (MAC) 地址。

IEEE 802 地址中的已定义位如下:

全局/本地 (U/L)U/L 位是第一个字节的第七位,用于确定该地址是全局管理的还是本地管理的。如果将 U/L 位设置为 0,那么通过分配唯一的公司 ID,IEEE 已对地址进行了管理。如果 U/L 位被设置为 1,则地址是本地管理的。网络管理员已覆盖制造地址,并指定其他地址。
个人/组 (I/G)I/G 位是第一个字节的最低位,用来确定地址是个人地址(单播)还是组地址(多播)。设置为 0 时,地址是单播地址。设置为 1 时,地址是多播地址。对于典型的 802.x 网络适配器地址,U/L 和 I/G 位均设置为 0,对应于全局管理的单播 MAC 地址。

IEEE EUI-64 地址

IEEE EUI-64 地址代表网络接口寻址的新标准。公司 ID 仍然是 24 位长度,但扩展 ID 是 40 位,从而为网络适配器制造商创建了更大的地址空间。EUI-64 地址使用 U/L 和 I/G 位的方式与 IEEE 802 地址相同。

将 IEEE 802 的MAC地址映射到 EUI-64 地址

要从 IEEE 802 的MAC地址创建 EUI-64 地址,则 16 位的 11111111 11111110 (0xFFFE) 将被插入到公司 ID 和扩展 ID 之间的 IEEE 802 地址中。
如下图中所示:

将 EUI-64 地址映射到 IPv6 接口标识

**要获取用于 IPv6 单播地址的 64 位接口标识,EUI-64 地址中的 U/L 位将进行求反(如果是 1,则被设置为 0;如果是 0,则被设置为 1)。**如下图中所示:

IEEE 802 地址转换示例

主机 A 的以太网 MAC 地址是 00-AA-00-3F-2A-1C。首先,通过在第三个和第四个字节之间插入 FF-FE 将其转换为 EUI-64 格式,其结果是 00-AA-00-FF-FE-3F-2A-1C。然后,对 U/L 位(第一个字节中的第七位)求反。第一个字节的二进制形式为 00000000。将第七位求反后,变为 00000010 (0x02)。最后的结果是 02-AA-00-FF-FE-3F-2A-1C,当转换为冒号十六进制符号时,成为接口标识 2AA:FF:FE3F:2A1C。结果是,对应于 MAC 地址 00-AA-00-3F-2A-1C 的网络适配器的链接本地地址是 FE80::2AA:FF:FE3F:2A1C。
注意:

**对 U/L 位求反时,如果 EUI-64 地址是全局管理的,则第一个字节将加 0x2,而如果 EUI-64 地址是本地管理的,则从第一个字节减去 0x2。**

在路由器设备上查看该接口的网卡MAC地址:

Router# show interface f0/0
FastEthernet0/0 is up, line protocol is downHardware is Gt96k FE, address is 0012.7feb.6b40 (bia 0012.7feb.6b40)

复制代码
我们再查看根据该地址与EUI-64生成的链路本地地址与全球单播地址:

Router(config)# interface f0/0
Router(config-if)# ipv6 address 2001:db8::/64 eui-64
Router(config-if)# do show ipv6 interface f0/0
FastEthernet0/0 is up, line protocol is downIPv6 is enabled, link-local address is FE80::212:7FFF:FEEB:6B40 [TEN]No Virtual link-local address(es):Global unicast address(es):2001:DB8::212:7FFF:FEEB:6B40, subnet is 2001:DB8::/64 [EUI/TEN]

复制代码
/***********************************************************/

IPv6无状态地址自动配置
以太网接口的接口标识(Interface Identifier)是基于EUI-64(64-bit extended unique identifier)标识的。而该网卡的EUI-64标识是由网卡内建的48位IEEE802地址扩展的。下面先介绍EUI-64的构造方法。
以太网地址的OUI(Organizationally Unique Identifier)部分(即前3个字节)构成EUI-64的company_id部分(即前3字节),EUI的第四、第五个字节是固定的16进制值FFFE。以太网地址的最后3个字节构成EUI-64的最后3个字节。
接口标识是通过将EUI-64的“全球/本地”(‘Universal/Local’)位取反得到的。该位是EUI-64的第一个字节的次低位。由于网卡的内建地址是全球统一管理分配的,因此得到的标识也是全球唯一的。IEEE802或者EUI-64地址的该位为0,而全球唯一的IPv6接口标识的该位为1。
例如一块网卡的MAC地址为:34-56-78-9A-BC-DE,那么其对应的接口标识应该为:36-56-78-FF-FE-9A-BC-DE。
对于手工设置的或者软件设置的网卡地址,不应该用来构造接口标识。如果一定要使用这类地址来构造接口标识,那么应该在“U/L”位上反映出该地址是否全球唯一。
用来对一块以太网卡进行无状态自动配置的IPv6地址前缀(IPv6 address prefix)的长度必须是64位。

Link-Local Address
以太网卡的IPv6 Link-Local Address是通过该接口的接口标识来构造的。构造方法是:最高的10位为“1111111010”,之后的54位为全0,最后64位为该接口的接口标识。
例如接口标识为:36-56-78-FF-FE-9A-BC-DE,那么对应的IPv6 Link-Local Address为:FE80::3656:78FF:FE9A:BCDE。

临时地址接口标识
在当今基于 IPv4 的 Internet 中,通常 Internet 用户连接到 Internet 服务提供商 (ISP),并通过使用点对点协议 (PPP) 和 Internet 协议控制协议 (IPCP) 获取 IPv4 地址。用户每次连接时,可能获得不同的 IPv4 地址。因此,根据 IP 地址很难跟踪用户在 Internet 上的通信。

对于基于 IPv6 的拨号连接,通过路由器发现和无状态地址自动配置建立连接之后,将给用户指派一个 64 位前缀。如果接口标识总是基于 EUI-64 地址(从静态 IEEE 802 地址派生得到),就可以标识指定节点的通信,而不用考虑其前缀,从而轻松跟踪指定用户及其使用 Internet 的情况。为了解决这个问题并提供某种程度的匿名,在 RFC 3041 中描述了一种备用的 IPv6 接口标识,它是随机生成的,并且随时间变化而变化。

初始接口标识通过使用随机数字来生成。对于不能存储历史信息以便生成将来的接口标识的 IPv6 系统,每次初始化 IPv6 协议时都将随机地生成一个新的接口标识。对于有存储能力的 IPv6 系统,将存储历史值,在初始化 IPv6 协议时,通过以下进程创建新的接口标识:

从存储区中检索历史值,并根据适配器的 EUI-64 地址附加接口标识。
对步骤 1 中的数量计算“消息摘要 5 (MD5)”单向加密哈希。
将步骤 2 中计算的 MD5 哈希的最后 64 位另存为用于下次接口标识计算的历史值。
提取步骤 2 中计算的 MD5 哈希的前 64 位,并将第七位设置为 0。第七位对应于 U/L 位,当设置为 0 时,表示本地管理接口标识。其结果即为该接口标识。

根据此随机接口标识得到的 IPv6 地址就称为临时地址。临时地址是为使用无状态地址自动配置的公用地址前缀生成的。临时地址用于降低下列有效生存期和首选生存期的值:

生存期包括在收到的“路由器公告”消息中的“前缀信息”选项中。
有效生存期的本地默认值是 1 周,首选生存期的本地默认值是 1 天。

临时地址的有效生存期过期之后,将生成新的接口标识和临时地址。

默认情况下, Windows Server 2003 的 IPv6 协议不会为全局地址前缀创建临时地址。可以使用 netsh interface ipv6 set privacy state=enabled 命令修改此默认设置。
而Windows XP既有公共(public)全局地址,又有临时(temporary)全局地址,因为公共全局地址的接口标识部分是根据用户网卡的硬件地址演化生成,可能会暴露用户隐私,而临时全局地址的接口标识部分是随机生成的,且有时效限制,可以避免用户隐私泄漏。所以,实际进行IPv6网络连接时用到的是临时全局地址。

IEEE相关标准与RFC文档
也许大家会觉得我们为什么要插入0xFFFE,而且是插入IEEE 802的MAC地址中间?而地址还要进行U/L位的计算等?或者您是IPv6的协议栈开发人员、科研人员,可能对相关标准比较感兴趣,那么大家可直接参考IEEE 上的文档:
GUIDELINES FOR 64-BIT GLOBAL IDENTIFIER (EUI-64) REGISTRATION AUTHORITY:
http://standards.ieee.org/regauth/oui/tutorials/EUI64.html
同时最初是在RFC 2373中进行相关定义,但后续RFC 2373又被RFC 3513所废除,而IPv6的逐步发展中,RFC 3513又再次被RFC 4291所废除。
因此目前最新的规范大家可查阅RFC4291,可适当了解各个RFC之间的继承关系,可能部分书籍与资料也有所介绍相关的RFC编号,但随着IETF对相关协议的更新与完善,协议标准相关最新的文档编号也是有所变化的,也是IPv6相关开发或研究人员需要注意的。
http://www.rfc-editor.org/rfc/rfc4291.txt
同时在RFC 5952中也对RFC4291进行了部分更新:
http://www.rfc-editor.org/rfc/rfc5952.txt

IT-RS-IPV6-EUI-64相关推荐

  1. IPv6篇之即插即用

    什么是即插即用?设备开始启用,自动配置IP地址,天然就可以进行网络通信,为上层协议作铺垫.IPv4即插即用功能--DHCP(勉强算是,自动配置地址),但是IPv4地址长度有限,始终是一个瓶颈(勉强可以 ...

  2. html调取主机ipv6地址,IPv6地址格式及地址配置方式

    IPv6地址格式及地址配置方式 一个典型的IPv6主机单播地址由3部分组成:全局路由前缀.子网ID和接口ID(64位).全局 路由前缀用来识别分配给一个站点的一个地址范围.子网ID也称为子网前缀,一个 ...

  3. 网卡MAC地址(物理地址)映射为IPv6接口标识符

    EUI-64:64 位 EUI 64 地址是由电气和电子工程师协会 (IEEE) 定义的.将 EUI-64 地址指派给网络适配器,或从 IEEE802 地址派生得到该地址.IEEE EUI-64 地址 ...

  4. IPv6地址基础理论讲解

    目录 IPv4地址回顾 IPv4地址分类 IPv4地址书写格式 IPv6地址讲解 IPv6地址书写格式 IPv6单播地址 EUI-64 IPv6组播地址 IPv6任播地址 IPv6地址和IPv4地址的 ...

  5. 第五章IPv6和VOIP

    一.IPv4概念 IP是TCP/IP协议族中的网络层协议,也是TCP/IP协议族的核心协议.IP协议版本号为4,因此称为Ipv4. 1.IPv4的缺点 (1).地址空间使用率比较低 (2).移动性没有 ...

  6. 第五十讲:神州路由器IPv6隧道的配置

    目前IPv6隧道技术有ISATAP隧道.6to4隧道.IPv6 over MPL隧道等. 任务一:配置ISATAP隧道 实验拓扑图如下所示 配置要求:两台路由器ROUTERA和ROUTERB通过IPv ...

  7. IPv6篇之简单为美

    IPv6前言 IP以其简单.方便操作,迅速占领了网络通信的领域,最终实现了网络通信的统一,可惜设计者并未预料到IP膨胀速度如此之快,因此设计了IPv6,作为第二代IP协议横空出世.虽然IPv6技术理念 ...

  8. 服务器V6型号什么意思,ipv6接口是什么意思

    其中最为重要的是IPv6单播地址,任何IPv6单播地址(特殊地址.保留地址以及嵌有IPv4地址的IPv6地址除外)均由地址前缀和接口标识符组成. IPV6 接口标识:从接口的数据链路层地址直接派生出接 ...

  9. 网络知识-04 网络层-IPv6

    文章目录 6 IPv6 6.1 IPv6地址表示方法 6.2 IPv6地址分类 6.2.1 全球单播地址 6.2.2 本地链路地址 6.2.3 本地站点地址 6.2.4 唯一本地地址 6.2.5 未指 ...

  10. IPV6地址格式解析

    一.IPV6地址格式 1.1概述 格式:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX 冒号分16进制,每4个16进制数为一组,每一组可以表示16个二进数 所以一共有1 ...

最新文章

  1. linux制作共享服务器,Linux如何制作一个简单的共享服务器
  2. 通俗讲解Pytorch梯度的相关问题:计算图、torch.no_grad、zero_grad、detach和backward;Variable、Parameter和torch.tensor
  3. eBay的Turmeric和VJet的源程序移到了GitHub上
  4. 半导体制冷片中的N,P半导体测试
  5. 怎么调整字段长短_【芝士蛋糕怎么总烤不熟呢?】
  6. iframe跨域调用js_郑州Web前端基础学习之JS跨域知识梳理
  7. redux 思考以及源码解析
  8. bzoj 1057: 棋盘制作(悬线法)
  9. 关于Java Web工程中web.xml文件
  10. [分组背包]Luogu1064 金明的预算方案
  11. plsql developer怎么使用 plsql developer使用教程
  12. linux基础:快速搭建平台
  13. PreparedStatement解读
  14. excel转置怎么操作_EXCEL/WPS如何快速将一行转置成一列,一列转置成一行?
  15. 美赛常用数据库网站大全
  16. 小小故事--大大道理
  17. ES slop问题纪录
  18. 微信小程序引用外部文件找不到文件报错问题
  19. 英语听说计算机查分,提醒:今日英语听说考成绩查询,你准备好了吗?
  20. 步进电机基础(2.6)-直线步进电机

热门文章

  1. vb.net LPT端口 开钱箱和小票纸打印超时问题解决办法
  2. php 输出七芒星,SongNet:硬格式控制下的文本生成
  3. vue.js中created方法作用
  4. 第7章页面布局-布局综合示例
  5. 系统短信验证码实现案例
  6. 如何做一个2D 横版过关类游戏
  7. 一文看懂摄像头测距技术
  8. can总线程序讲解_详解CAN总线
  9. 三 机器人仿真软件Gazebo介绍
  10. 不伤虫蚁,使虫蚁远离的方法