zoukankan      html  css  js  c++  java
  • 内嵌Mac地址的IPv6地址

    EUI-64

    IPv6中有一种成为无状态自动配置的机制使用EUI-64地址来自动配置IPv6地址,EUI-64格式即扩展唯一标识符,相当于MAC-48地址。所谓无状态自动配置是指在网络中没有DHCP服务器的情况下,允许节点自行配置IPv6地址的机制。
    内嵌MAC地址又称为EUI-64地址,是通过设备MAC地址产生的,首先在48位的MAC地址的中间位置,插入十六进制数FFFE,并且要U/L(Universal/Local)位(从高位开始的第7位)取反,最后得到的就是64位EUI-64格式地址。这类地址的主要特征是地址中包含FFFE字符。
    具体的转换过程如下图所示:

    48位MAC地址转为IPv6地址

    转换方法

    先将MAC地址转成EUI-64地址,然后再加上网络前缀

    步骤

    自动将48位的以太网MAC地址扩展为64位,再挂在一个64位的前缀后面,组成一个IPv6地址,步骤共有三步。
    第一步,将48位的MAC地址从中间分开,插入一个固定的FFFE(16进制)
    第二步,将第7位比特位反转,如果原来是0就变为1,如果原来是1就变为0.
    第三步,加上64位的网络前缀这就是一个完整的IPv6地址。

    取反的原因

    在MAC地址中,第7比特位1表示本地管理,为0表示全球管理。
    在EUI-64中,第7位为1表示全球唯一,为0表示本地地址。

    示例

    1. 原MAC48地址为39-A7-94-07-CB-D0,从中间断开插入FF-FE,变为39-A7-94--FF-FE-07-CB-D0。
    2. 第7个比特反转(从左往右数),变为3B-A7-94-FF-FE-07-CB-D0
    3. 加入网络前缀,若前缀为链路本地地址则网络前缀为FE-80-00-00-00-00。IPV6地址最终为FE-80-00-00-00-00-00-00-3B-A7-94-FF-FE-07-CB-D0。可简写为FE80::3BA7:94FF:FE07:CBD0
  • 相关阅读:
    Android笔记
    Scala中apply的用法
    MySQL备忘
    Spring test
    Scala
    Dubbo
    Scala元组
    Scala中None, Nil, Nothing的区别
    java多态与异常处理——动手动脑
    《大道至简》第七八章读后感
  • 原文地址:https://www.cnblogs.com/cyx-b/p/14095126.html
Copyright © 2011-2022 走看看