1. IPv6特性

支持即插即用:

    • 路由器发现(Router Discovery):当一个节点连接到一个IPv6的链路上时,它能够发现本地的路由器,而不必借助动态主机配置协议(DHCP)。
    • 前缀发现(Prefix):当一个节点连接到一个IPv6的链路上时,它能够发现分配给该链路的前缀。
    • 参数发现(Parameter Discovery):节点能够发现它所相连的链路的参数,例如链路跳数限制等。

IPv6的无状态自动配置,即SLAAC

主机可以通过RA(Router-Advertisement)消息ICMP type134中携带的前缀得到地址的前缀部分,同时通过该接口自动生成接口ID部分,从而得到一个完整的128位的IPV6地址,该消息默认情况下每200S发送一次。当然主机(或路由器)也可以主动发送RS(Router Solicit)消息ICMP Type=133来主动请求该前缀。

2. IPv6的无状态自动配置,即SLAAC过程

首先,为配置接口,主机需要前缀信息(类似于IPV4地址的网络部分),因此它会发送一条路由器请求(RouterSolicitation,RS)消息。该消息以组播方式发送给所有路由器。这实际上是一种ICMP消息,并用编号进行标识。RS消息的ICMP类型为133。

路由器使用一条路由器通告(Router-Advertisement,RA)消息进行应答,其中包含请求的前级信息。RA消息也是组播分组,被发送到表示所有节点的组播地址,其ICMP类型为134。RA消息是定期发送的,但主机发送RS消息后,可立即得到响应,因此无需等待下一条定期发送的RA消息,就能获得所需的信息。

发现链路上使用的前缀:发送周期RA

产生一个接口ID:二层寻址(基于MAC的EUI-64ID)

验证所产生IPv6地址的唯一性:重复地址检测(DAD)

图15-2说明了这两个步骤。

  

要在路由器上启用IPV6,必须使用全局配置命令ipv6unicast-routing:

Corp ( config ) #ipv6 unicast-routing

默认情况下,转发IPv6数据流的功能被禁用,因此需要使用上述命令启用它。默认不会在任何接口上启用IPv6,因此必须进入每个接口并启用这项功能。

为此,可使用多种方式,但最简单的方式是,使用命令ipv6 address<ipv6prefix>/<prefix-length> [eui-64]给接口配置一个地址。

下面是一个例子:

Corp(config-if)#ipv6 address 2001:dbB:3c4d:1:0260:d6FF.FE73:1987/64

可指定一个完整的128位IPV6全局地址,也可使用eui-64选项。eui-64格式允许设备对其MAC地址进行转换,以生成接口ID,如下所示:

Corp(config-if)#ipv6 address 2001:db8:3c4d:1: :/64 eui-64

为在路由器接口上启用IPV6,也可不输入IPV6地址,而让其自动使用链路本地地址。

如果只有链路本地地址,则只能在本地子网中通信。

要配置路由器接口,使其只使用链路本地址,可使用按口配置命令ipv6enable:

Corp(config-if)#ipv6 enable

过程说明:
R3

R3#debug
ipv6  nd

R3(config)#ipv6 unicast-routing

R3(config)#int e0/1

R3(config-if)#ipv6  add 2034::3/64

R3(config-if)#no sh

地址解析使用邻居发现协议(NDP)。这个过程是使用被称为请求节点地址(solicited node
address)的组播地址完成的
,每台主机连接到网络时都会加入这个组播组。为生成请求节点地址,在FF02:0:0:0:0:1:FF/104末尾加上目标主机的IPV6地址的最后24位。查询请求节点地址时,相应的主机将返回其第2层地址。网络设备也以类似的方式发现和跟踪相邻设备。前面介绍RA和RS消息时说过,它们使用组播来请求和发送地址信息,这也是ICMPv6的邻居发现功能。

在IPV4中,主机使用IGMP协议来告诉本地路由器,它要加入特定的组播组并接收发送给该组播组的数据流。这种IGMP功能已被ICMPv6取代,并被重命名为组播侦听者发现

路由器使用NDP获得其自己的地址时,以组播(::)方式发送领居请求NS(将IPV6非指定地址(::)用做分组的SA请求的一个源地址),发送到被请求节点组播地址ff02::1:ff00:2010【具有链路本地范围如:下面报文所体现的目的地址ff02::16(所有支持MLDv2的路由器),ff02::1:ffXX:XXXX(被请求节点地址,FF02:0:0:0:0:1:FF/104末尾加上目标主机的IPV6地址的最后24位)】;

通过与二层寻址,产生的链路本地地址,再以组播(ff02::1)方式向节点发送一条领居公告NA;

以非指定地址(::)作源向被请求节点的组播地址fff02::1:ff00:3发送领居请求NS查找领居主机;

链路本地地址发送组播 (ff02::1),消息类型路由器公告RA;

全局单播地址2034::3发送组播 (ff02::1),消息类型领居公告NA;

  

 

IPv6特性,以及SLAAC过程的更多相关文章

  1. 《Python高性能编程》——列表、元组、集合、字典特性及创建过程

    这里的内容仅仅是本人阅读<Python高性能编程>后总结的一些知识,用于自己更好的了解Python机制.本人现在并不从事计算密集型工作:人工智能.数据分析等.仅仅只是出于好奇而去阅读这本书 ...

  2. 使用 Java 开发兼容 IPv6 的网络应用程序

    根据现有 IPv4 地址的部署速度,剩余的地址将在 10 到 20 年被使用殆尽.因此网络逐渐从 IPv4 向 IPv6 转换是不可避免的,相应的各种网络应用程序都将支持 IPv6.对于 Java,从 ...

  3. IPV6基础

    Pv6与IPv4的区别 Pv6报文与IPv4报文差别就两个地方: 一个是数据链路层(以太网协议)中协议类型,IPv4是0x0800,IPv6是0x86DD 另一个是IPv6 Header是40字节,I ...

  4. C#7.0中有哪些新特性?

    以下将是 C# 7.0 中所有计划的语言特性的描述.随着 Visual Studio “15” Preview 4 版本的发布,这些特性中的大部分将活跃起来.现在是时候来展示这些特性,你也告诉借此告诉 ...

  5. Web APi之过滤器执行过程原理解析【二】(十一)

    前言 上一节我们详细讲解了过滤器的创建过程以及粗略的介绍了五种过滤器,用此五种过滤器对实现对执行Action方法各个时期的拦截非常重要.这一节我们简单将讲述在Action方法上.控制器上.全局上以及授 ...

  6. C#7.0中有新特性

    以下将是 C# 7.0 中所有计划的语言特性的描述.随着 Visual Studio “15” Preview 4 版本的发布,这些特性中的大部分将活跃起来.现在是时候来展示这些特性,你也告诉借此告诉 ...

  7. OC语言-01-面向过程与面向对象思想

    一.面向过程 1> 思想 面向过程是一种以过程为中心的最基础编程思想,不支持面向对象的特性. 面向过程是一种模块化程序设计方法 2> 开发方法 面向过程的开发方法是以过程(也可以说是模块) ...

  8. OC - 1.面向过程和面向对象的思想对比

    一.面向过程 1> 思想 面向过程是一种以过程为中心的最基础编程思想,不支持面向对象的特性. 面向过程是一种模块化程序设计方法 2> 开发方法 面向过程的开发方法是以过程(也可以说是模块) ...

  9. 使用SSH代理上IPV6(使用SSH端口转发)

    这几个月在国外待着,一直担心我的六维账户怎么办,那可是个宝贝啊.我看网上说可以用六飞啊神马的在IPV6下上IPV6的网站,但是冒失现在六维封禁了非学校的IPV6地址,所以这些软件就不顶用了. 想到以前 ...

随机推荐

  1. 洛谷 P1328 生活大爆炸版石头剪刀布 模拟

    很简单 Code: #include<cstdio> #include<queue> using namespace std; queue<int>A; queue ...

  2. weex手机端安全键盘

    github地址:weexSafeKeyboard 效果图: 技术依赖:框架:weex+vue 弹出层:weex-ui 图标:iconfont 说明:1.如果不想用到weex-ui,可以把inputk ...

  3. 在本地生成ssh-key 免密码远程clone GitLab中的项目到本地

    每次项目push.pull都需要输入账号和密码,很烦,方便免密pull与push代码,在本地需要用git bash 创建一个公钥,然后在gitlab中把公钥保存下来. 步骤如下: 1.打开 git b ...

  4. win7下UDL文件不同

    win7 执行UDL文件看不全all驱动.所以没有办法配置数据库的连接.查度娘,方法如下: 在C:\建一个test.udl 文件,运行命令 C:\Windows\syswow64\rundll32.e ...

  5. 【Codeforces Round #507 (Div. 2, based on Olympiad of Metropolises) A】Palindrome Dance

    [链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] i从1..n/2循环一波. 保证a[i]和a[n-i+1]就好. 如果都是2的话填上min(a,b)*2就好 其他情况跟随非2的. ...

  6. 【Codeforces Round #505 (rated, Div. 1 + Div. 2, based on VK Cup 2018 Final) A】 Doggo Recoloring

    [链接] 我是链接,点我呀:) [题意] 你可以把出现次数大于1的颜色换成其他颜色. 问你最后能不能全都变成同一种颜色 [题解] 判断一下有没有出现次数大于1的就好. 有的话.显然可以一直用它变颜色. ...

  7. 【hiho一下 第四周】Trie图

    [题目链接]:http://hihocoder.com/problemset/problem/1036?sid=1092555 [题意] [题解] AC自动机的模板题; 在求有没有子串的时候; 注意要 ...

  8. Activiti 各个节点涉及的表

    ################################# 部署流程定义涉及到的表 # 流程部署表SELECT * FROM `act_re_deployment` # 流程定义表SELECT ...

  9. ioremap映射函数

    一.ioremap() 函数 Linux在io.h头文件中声明了函数ioremap(),用来将I/O内存资源的物理地址映射到核心虚地址空间(3GB-4GB)中(这里是内核空间),原型如下: 1.ior ...

  10. git-osc自己定义控件之:CircleImageView

    git-osc自己定义控件之:CircleImageView 一.CircleImageView的使用 在项目中能够发现,用户的头像都是圆形的.感觉非常好奇,昨天最终发现了,原来是自定了一个Image ...