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. SQL数据查询2

    USE h CREATE TABLE zy1( empno INT, ename ), job ), mgr INT, hiredate DATE, sal DOUBLE, COOM DOUBLE, ...

  2. MySQL数据库具体一些操作

    创建数据库:CREATE DATABASE 数据库名;删除数据库:drop database <数据库名>;选择使用(需要操作的数据库):use 数据库名称;mysql数据库数据类型:类型 ...

  3. 路飞学城Python-Day142

    第2节:UA身份伪装 反爬机制 User-Agent:请求载体的身份标识 通过不同的手段的当前的请求载体是不一样的,请求信息也是不一样的,常见的请求信息都是以键和值的形式存在 浏览器的开发者工具 Ne ...

  4. 路飞学城Python-Day53

    01-jquery的介绍 JS在做项目或者是实现功能的时候,用JS去操作DOM元素非常复杂,代码量大,重复性代码也多 多个元素使用for循环遍历也是非常麻烦的,对于JS使用来说加大了难度 jQuery ...

  5. Nginx配置udp/tcp代理

    #编译 ./configure --prefix=/servyouapp/nginx --with-stream --with-http_stub_status_module #nginx.conf部 ...

  6. IOS - 绘制文字 drawInRect: withFont: not working

    在图形绘制中,我们经常会需要绘制文本,但我在给PDF上绘制Text时,始终绘制不上, 使用过: [str drawInRect:cubeRect withAttributes:attrs]; CGCo ...

  7. nyoj124-中位数

    中位数 时间限制:3000 ms  |  内存限制:65535 KB 难度:2 描述 一组数据按从小到大的顺序依次排列,处在中间位置的一个数叫做中位数. 比如 1 5 10 11 9  其中位数就是9 ...

  8. [LUOGU2730] 魔板

    搜索水题.因为只有8个数,排列一共有40320种,直接bfs,判重就行了. 但是判重的时候直接用8进制表示的话要88的bool数组.这种操作太low了,于是我们可以用康托展开,降成8!. 康托展开其实 ...

  9. Mysql学习总结(37)——Mysql Limit 分页查询优化

    select * from table LIMIT 5,10; #返回第6-15行数据 select * from table LIMIT 5; #返回前5行 select * from table ...

  10. RobotFrameWork+APPIUM实现对安卓APK的自动化测试----第六篇【AppiumLibrary等待函数介绍】

    http://blog.csdn.net/deadgrape/article/details/50622441 废话不多说,少年们请看下面. Wait Until Page Contains text ...