1. IPv6第二层寻址

IPV6地址以两种方式与第2层地址相关。第一种方式是IPV6独有的,提供了从第2层地址构建接口ID的机制。第二种方式对IPv4和IPV6都是一样的,提供了将一个IP组播地址映射为一个第2层组播地址的机制。

  • EU1-64接口标识符

IEEE规定了EUI-64标识符的格式。为了使IPv6接口ID成为这样的一个标识符,即以Internet标准顺序(全局/本地位)将第6位反位。

IEEE规范也给出从一个48位第2层地址产生一个64位EU1-64标识符的机制。因为有这样的一种机制,在接口的MAC地址和IPV6地址的接口lD部分之间能够建立一种关联。例如,这种类型的ID在Cisco路由器上由链路本地地址使用。

下图展示了从一个MAC地址产生一个IPV6接口ID的两步骤过程。第一步是产生一个EU1-64标识符;第二步是修改它使之成为一个IPV6接口ID。

在MAC地址的组织唯一标识符(高24位)和节点ID(低24位)中间插入FFFE。

将MAC地址的U/L位(高7位)反转。(0<—>1)

  

  

如何计算?

一个EUI-64地址可以由EUI-48地址形成,将EU1-48地址的24位OUI值复制到EU1-64地址,并将EUI-64地址的第4和第5个字节的16位替换为1111 1111 1111 1110 (十六进制FFFE),然后复制由组织分配的剩余位。例如,EUI-48地址00-11-22-33-44-55在EUI-64地址中将会变成00-11-22-FF-FE-33-44-55这个映射的第一步是当可以用基本EUI-48地址时由IPv6构造接口标识符。修改的EUI-64用于形成IPv6地址的IID,但是需要对u位取反。

MAC地址:00-04-6d-7f-7c-1a——>00-04-6D-FF-FE-7F-7C-1A——>

u位(高7位)取反,02-04-6D-FF-FE-7F-7C-1A——>使用保留的链路本地前缀 fe80::/10 ——>

链路本地地址:FE80 : : 204 : 6DFF : FE7F : 7C1A

  

  MAC地址:00 : 30 : 48 : 2A : 19 : 89——>00 : 30 : 48 : ff : fe  2a : 19 : 89——>

  u位取反,02 : 30 : 48 : ff : fe : 2a : 19 : 89——>使用保留的链路本地前缀 fe80::/10 ——>

  链路本地地址:FE80 : : 230 : 48ff : fe2a : 1989

  • 第2层组播地址

类似于IPV4,IPV6目前将第3层组播地址映射到第2层地址。对于组播IPv6流量,MAC地址的第一个16高位位标识第2层组播地址:3333.xxxxxxxx。IPv6组播地址的低位31位接贝到MAC地址的剩余部分。图2-14展示了这种映射机制的示例,是以被请求节点组播IPV6地址来说明的。

  

说明:

在IEEE标准中, EUI表示扩展唯一标识符。EU1-64标识符开始于一个24位的组织唯一标识符(OUI),接着是一个由组织分配的40位扩展标识符,它由前面24位识别。ouI由IEEE注册权威机构[IEEERA]来维护和分配。在Intemet环境下,这种地址通常是统一管理的。

OUI的长度是24位,并占据EU1-48和EU1-64地址的前3个字节。这些地址的第一个字节的低两位分别是u位和g位。

多年来,很多IEEE标准兼容的网络接口(例如以太网)在使用短格式的地址(48位的EUI)。EU1-48和EU1-64格式之间的显著区别是它们的长度。

  

第7位(u位)设置为1时,就定义了一个全局单播地址(全局唯一);

第8位(g位)被设置为1时, 表示该地址是一组或组播类型的地址。

基于单播前缀产生全局惟一IPV6组播地址机制,如图2-10所示。

  

2. IPv6对于接口的要求

  • 为了确保IPV6协议的正确运行,每台支持IPv6的主机必须支持下列类型的地址:
    • 回环地址:
    • 链路本地地址:
    • 如果配置了的话,需支持单播或任意播地址:
    • 注册到所有节点组播地址:
    • 主机注册了的所有组的组播地址:
    • 注册到其自身的被请求节点组播地址。

依赖于节点类型、配置和支持的协议,也许存在其他地址或者加入组播组。―台路由器必须支持为主机列出的地址,以及下列地址:

    • 子网路由器任意播地址:
    • 所有配置的组播地址:
    • 所有路由器组播地址。

这些地址用于控制和数据平面相关的流量。

IPv6第二层寻址,IPv6接口要求的更多相关文章

  1. Android系统进程间通信Binder机制在应用程序框架层的Java接口源代码分析

    文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/6642463 在前面几篇文章中,我们详细介绍了A ...

  2. 光猫和路由器都支持ipv6,却无法使用ipv6?

    这些年很多地方的光猫都能获得ipv6地址了,而且新出的路由基本都支持ipv6,但是还是有很多人在http://test-ipv6.com看不到自己的ipv6地址,也上不了ipv6网站. 我也遇到这个问 ...

  3. 23、ASP.NET MVC入门到精通——业务层和数据层父类及接口-T4模板

    本系列目录:ASP.NET MVC4入门到精通系列目录汇总 在上一篇中,我们已经把项目的基本框架搭起来了,这一篇我们就来实现业务层和数据层的父接口及父类. 1.我们先来定义一个业务层父接口IBaseB ...

  4. 第二部分 MediaPlayer的接口与架构

    第二部分 MediaPlayer的接口与架构 2.1 整体框架图         MediaPlayer的各个库之间的结构比较复杂,可以用下图的表示     在各个库中,libmedia.so位于核心 ...

  5. .net通用权限框架B/S (四)--DAL数据层以及数据接口

    数据层以及数据接口设计如下图(以g_orga组织机构和g_role角色)为例,这几个类可以通过.tt模版生成 设计参考学习http://www.cnblogs.com/hanyinglong/arch ...

  6. iOS 上线因iPv6被拒,查询服务器是否支持iPv6,mac设置iPv6网络,手机测试iPv6

    一. iOS----如何检查域名是否支持ipv6 iOS----------如何检查域名是否支持ipv6 1.检查你所用到的库,像af 3.0以上什么的(不用改),其他的库自己去搜下是否支持ipv6吧 ...

  7. [MyBatis]DAO层只写接口,不用写实现类

    团队开发一个项目,由老大架了一个框架,遇到了DAO层不用写接口了,我也是用了2次才记住这个事的,因为自己一直都是习惯于写DAO层的实现类,所以,习惯性的还是写了个实现类.于是遇到错误了. 找不到那个方 ...

  8. iview框架 两侧弹框 出现第二层弹框 一闪而过的问题

    分析原因:寡人怀疑可能是,两层弹出框 采用的是一个开关值,发生了覆盖 解决方式 是在第二层弹框外套层计时器 源代码如下: 修改后为:

  9. Ajax -异步请求 -jquery中ajax分类 -第一层 $.ajax -第二层($.get /$.post) -第三层($.getJson/$.getScript) -相应演示

    Ajax 1.标准请求响应时浏览器的动作(同步操作) 1.1浏览器请求什么资源,跟随显示什么资源2.ajax:异步请求. 2.1局部刷新,通过异步请求,请求到服务器资源数据后,通过脚本修改页面中部分内 ...

随机推荐

  1. js正则获取html字符串指定的dom元素和内容

    var str = "<div>111<p id='abc'>3333</p></div><div>222<div id=' ...

  2. poj 2828 Buy Tickets【线段树 单点更新】

    倒着插,先不理解意思,后来看一篇题解说模拟一下 手动模拟一下就好理解了----- 不过话说一直写挫---一直改啊----- 好心塞------ #include <cstdio> #inc ...

  3. XMind双十一会放什么大招?

    XMind一直是一款备受欢迎的思维导图软件,同时也是一款开源思维导图软件,以强大的免费功能为支持,向用户提供极致的使用体验.XMind现在分别有XMind免费版(XMind Free),XMind专业 ...

  4. bzoj 3028: 食物 生成函数_麦克劳林展开

    不管怎么求似乎都不太好求,我们试试生成函数.这个东西好神奇.生成函数的精华是两个生成函数相乘,对应 $x^{i}$ 前的系数表示取 $i$ 个时的方案数. 有时候,我们会将函数按等比数列求和公式进行压 ...

  5. 【洛谷4941】War2 状压Dp

    简单的状压DP,和NOIP2017 Day2 找宝藏 代码几乎一样.(比那个稍微简单一点) f[i][j] ,i代表点的状态,j是当前选择的点,枚举上一个选到的点k 然后从f[i-(1<< ...

  6. Linux下安装Solr7.5.0,并部署到Tomcat

    收藏地址:https://blog.csdn.net/qq_39135287/article/details/84260724

  7. Eigen下载安装

    首先提供Eigen的两个重要网站 官方网站 下载地址 1.下载 wget http://bitbucket.org/eigen/eigen/get/3.3.5.tar.gz 2.解压缩 tar -zx ...

  8. C语言使用memcpy函数实现两个数间任意位置的复制操作

    c和c++使用的内存拷贝函数,memcpy函数的功能是从源src所指的内存地址的起始位置开始拷贝n个字节到目标dest所指的内存地址的起始位置中. 用法:void *memcpy(void *dest ...

  9. php $_SERVER['PHP_SELF']安全漏洞

    REQUEST_URI 返回的是包括后面数据串的地址,如 index.php?str=1234 PHP_SELF 是 index.php ------------------------------- ...

  10. 玩转iOS开发 - Runloop 具体解释

    Runloop 具体解释