IPv6 auto config 原理详解之-----前缀公告

简介:
Technorati 标签:  IPv6, IPv6 prefix, IPv6 auto config

人们常说,IPv6的一大特性就是移动性。

那么对于IP终端来说,如何去理解他的移动性呢?

其实就是IPv6的无状态自动配置。

前段时间有幸一个同事给我演示了一下这个功能,但是更多的疑问产生了。

IPv4中,比如说电脑,在网卡中设置自动获取IP地址和DNS.那么就可以自动从DHCP服务器上面获得IP地址和DNS还有网关了。

下面是IPv4的设置界面:

clip_image002

那么按照这个逻辑,IPv6就应该是没有这些选项,最终达到即插即用的目的嘛?答案是否,下面的截图IPv6也有:

clip_image004

那么为什么还需要自动配置?

意义在哪里?

如何实现呢?

带着这些问题,我们慢慢来看看IPv6这个自动配置auto config到底是个什么原理。

RFC2462上面写到,无状态自动配置是IPv6最有吸引力和最有用的新特性之一。他允许本地链路上得节点根据路由器在本地链路上公告信息自己配置单播IPv6地址。

PS:路由器可是不能用无状态自动配置来实现,无状态自动配置仅仅适用于IP终端.这点一定要记得。

所以换句话说,路由器上面是不能实现这个功能的,这个是RFC上面定义的。没有原因。可能主要的目的是统一规划,方便管理的目的。

clip_image006

这个就是从auto config延伸出来的几个子工作机制。

第一个知识点是前缀公告。

前缀公告是无状态自动配置中的初始机制。前缀公告机制使用路由器公告信息ICMPv6 type=134和所有节点的多播地址FF02::1,路由器公告机制在本地链路上周期性的发送到所有节点的多播地址。

clip_image008

在CISCO路由器上面公告IPv6前缀.

只要在接口上面配置了一个本地站点或者全球可聚合单播IPv6地址还有掩码,实际上就启用了cisco路由器上面的IPv6前缀公告。

IPv6前缀公告原理:

路由器周期性的发送ICMPv6 type=134的路由器前缀公告,用她得本地链路地址link-local FE80::250:3EFF:FEE4:4C00作为源,所有节点的多播地址FF02::1作为目的。

路由器公告消息公告的前缀是FEC0:0:0:1::/64,生存周期首选无穷大.

当本地链路多播地址FF02::1的节点A和B得到路由器公告消息,可以自己配置他们的IPv6地址.

clip_image010

这里我犯了一个错误,感觉这个是IPv6 前缀通告是配置了地址以后就自己有的一个机制。

实验结果并不是这样,我在R1和R2之间抓包,没有抓到ICMPv6 type = 134的报文,然后我又在网上查阅相关资。

为什么会这样,因为我忽略了一点很重要的,自动配置这个功能是仅仅限于路由器对PC终端之间的行为,路由器都不能支持这个auto config,所以为什么路由器要发前缀通告给邻居直连路由器呢?

后来我用路由器直连PC,得到了我想要的结果,PC自动获取到了IP地址,并且前缀和2012::/64是一样的.

:) 到这个时候我的心才稳下来。呵呵。下面是详细的实验结果:

clip_image012

在R1上面,用命令show ipv6 interface giga 1/0 prefix:

可以看到,R1有一个AD,是自己的前缀2012::/64:

clip_image014

呵呵,特意把giga 1/0的配置也show出来,2012::/64就是接口1/0的前缀。

在cisco上面,默认情况下有效生存期是30天.首选生存期是7天(604800s).

然后我做了一个实验,用迈普的路由器连接一个PC.

然后在PC机上面使能IPv6的功能(xp需要安装相关IPv6协议,默认是没有的,win7默认就加载了IPv6的协议栈了)

图谱图:

MAIPU router------------PC

后来在PC上面成功获取到了IP地址,前缀为2012::/64,可以ping通路由器接口FE0 : 2012::1

我在路由器上面FE0配置的地址是:2012::1/64.

最后在PC机上获得的地址是:

clip_image016

clip_image018

在PC机接电脑以前,我就一直用wireshark进行抓包。抓到了ICMPv6 type=134的报文,下面是报文的具体格式:

clip_image020

当然也可以用一个命令来修改前缀公告:

ipv6 nd prefix.

clip_image022

还有一个小功能就是在接口上面禁止路由器公告。

在cisco 2011年1月的IOS上面,这个命令有点不一样:

clip_image024

命令是: ipv6 nd ra suppress.

而以前老得IOS上面,命令却是:

clip_image026

其实无所谓,我们关注的是原理,命令行只是实现原理的一个手段罢了。

其实这里关于auto config还有几个参数,下面把几个参数都融合进行了一个接口中。

clip_image028

关于DAD和前缀重新编址,将在后续的文档中做实验进行验证。


本文转自 hny2000 51CTO博客,原文链接:http://blog.51cto.com/361531/637924


相关文章
|
网络协议 Java 测试技术
配置中心原理和选型:Disconf、Apollo、Spring Cloud Config 和 Nacos
学完注册中心,再看配置中心这块,感觉简单很多,因为很多知识原理是相辅相成的
4011 0
配置中心原理和选型:Disconf、Apollo、Spring Cloud Config 和 Nacos
|
消息中间件 前端开发 Java
Spring Cloud Config 原理简介和实现(四)
Spring Cloud Config 原理简介和实现
160 0
Spring Cloud Config 原理简介和实现(四)
|
前端开发 Java Maven
Spring Cloud Config 原理简介和实现(三)
Spring Cloud Config 原理简介和实现
152 0
Spring Cloud Config 原理简介和实现(三)
|
存储 安全 前端开发
Spring Cloud Config 原理简介和实现(二)
Spring Cloud Config 原理简介和实现
167 0
Spring Cloud Config 原理简介和实现(二)
|
存储 Java 开发工具
Spring Cloud Config 原理简介和实现(一)
Spring Cloud Config 原理简介和实现
455 0
Spring Cloud Config 原理简介和实现(一)
|
监控
SAP Spartacus cxFocus的config属性的赋值原理
SAP Spartacus cxFocus的config属性的赋值原理
107 0
SAP Spartacus cxFocus的config属性的赋值原理
|
存储 缓存 监控
分布式配置中心原理解析!SpringCloud Config 实现分布式配置的整体解决方案
本文重点讲解了分布式配置中心的设计原理,着重讲解了分布式配置中心框架SpringCloud Config框架的基本配置和使用方式。基本介绍了分布式配置中心的基础组件,包括Web管理系统,存放分布式配置文件的服务器,ConfigServer,ConfigClient组件。最后介绍了SpringCloud Config框架自动刷新的基本配置方式。
402 0
分布式配置中心原理解析!SpringCloud Config 实现分布式配置的整体解决方案
|
1月前
|
Java 数据库连接 开发工具
web后端-SpringCloud-Config分布配置
web后端-SpringCloud-Config分布配置
|
2月前
|
API
在vite.config.js 配置代理
在vite.config.js 配置代理
63 2
|
2天前
|
JavaScript
vue.config.ts配置环境变量
vue.config.ts配置环境变量
10 0

热门文章

最新文章