理解ICMPv6前缀请求与前缀公告消息

简介:

  IPv6的地址输入过于复杂,所以很多时候都选择使无状态的路由器前缀公告的方式或者使用有状态的DHCPv6为IPv6的主机分配IP地址。IPv6地址前缀公告是指路由器在本地链路上公告自己的地址前缀,然后让IPv6主机使用前缀公告的信息结合自己的MAC地址来自动配置本地的单播IPv6地址,这将从某种程度上减小了地址配置的复杂性,并且可以保证通过前缀公告的地址是唯一的,因为MAC地址本身就是唯一的。在IPv6前缀公告消息中,路由器所使用源地址为自己的本地链路地址(以FE80::/10开始),公告的目标地址是FF02::1(表示公告给整个链路上的IPv6节点),公告消息的为ICMPv6的134类型消息。而使用本地链路地址作为公告源地址是为了让IPv6在重新链路编址时,仍然可保持地址前缀公告的功能。公告目标地址FF02::1表示只要加入了这个组播组的节点都可以获取IPV6地址前缀公告的消息,默认情况下所有IPv6接点的主机都属于这个组播组。

然而对于IPV6地址前缀公告,要了解其相关的特性。首先是IPv6地址前缀公告是属于IPv6“无状态自动配置”的机制之一,那么在默认情况下,IPv6地址公告的前缀为64位,再结合EUI-64完成IPv6的128位地址的配置。其次对于在同一链路上的路由器网络接口上需配置一个全球单播地址(以2000::/3开始)或者本地站点地址(以FEC0::/10开始)用于公布地址前缀。其三是路由公告(router advertisement)消息是周期性进行发送给组播地址,申明其地址前缀。


注意:无状态自动配置:指没有通过手工的方式获取IPv6地址,也没有通过DHCPv6获取IPv6地址,其中通过DHCPv6获取IPv6地址是典型的“有状态自动配置”,而不管是有状态配置还是无状态配置IPv6地址,该地址应该属于全球单播地址或者本地站点地址。IPv6地址前缀公告,公告的不是以FE80::/10开头的本地链路地址,而是公布全球单播地址(以2000::/3开始)或者本地站点地址(以FEC0::/10开始)的地址前缀。而本地链路地址只是作为一个源地址来传递数据。


关于IPv6地址前缀公告的过程:

如图12.88所示,在路由器上的E1/0接口上配置了一个全球单播地址2001:1::1/64。那么接下来,路由器就会周期性的向同一本地链接上(linkA)发送地址前缀公告消息,即ICMPv6类型为134的消息,并以fe80::204:27ff:fef1:71a0为IPv6源地址,目标地址为组播地址FF02::1(指向linkA上的所有IPv6主机),公告前缀为2001:1::/64。此时,当节点(如:计算机)收到该地址前缀消息后,就通过该地址前缀结合EUI-64完成IPv6地址的自动配置。


073627689.png

关于主动请求IPv6地址前缀公告

   面对路由器周期性的在本地链路上发送IPv6地址前缀公告消息,那么就存在一个时间的间隔。如果一个节点(如计算机)启动时,需要花一段时间去等待路由器发送的地址前缀公告消息这显然不科学。那么在这种情况下,每一个节点可以通过向目标多播地址FF02::2发送路由请求消息(ICMPv6类型133消息)到本地链路上的所有路由器,当路由器收到该请求消息后,就通过目标多播地址FF02::1把地址前缀公告消息(ICMPv6类型134消息)发送给所有节点,完成对节点IPv6地址的自动配置。

   如图12.89所示,节点(计算机)通过将本地链路地址FE80::C800:11FF:FECC:1C作为源地址向目标多播地址FF02::2的所有路由器发送路由请求消息(ICMP类型133消息)。其中,源MAC为CA:00:11:CC:00:1C(请求主机的源MAC地址),目标MAC为3333:0000:0002(目标组播地址FF02::2映射而来的组播MAC地址;关于这个的映射关系请参看IPv6的组播地址与MAC地址的映射关系部分的描述。当路由器收到该请求消息后,立即通过本地链路地址FE80::C800:3FF:FE98:1C作为源地址,向目标多播地址FF02::1(指示LinkA上的所有IPv6节点)发送地址前缀公告消息(ICMP类型134消息),其中,源MAC为CA:00:03:98:00:1C(路由器E1/0的MAC地址),目标MAC为3333.0000.0001(由IPv6组播地址FF02::1映射而来)。此时节点就可以完成自动配置IPv6地址。


073821181.png



本文转自 kingsir827 51CTO博客,原文链接:http://blog.51cto.com/7658423/1340751,如需转载请自行联系原作者

相关文章
|
Java 数据库 Maven
根据请求中接收到的主动协商头字段,目标资源没有用户代理可以接受的当前表示
今天使用ssm框架搭建了一个项目,测试一个插入的接口结果返回406,但是数据库插入成功了,报错406是因为返回的结果接口无法解析。
856 0
|
3月前
|
网络协议 网络虚拟化
如何对接收和发布的路由进行过滤?
如何对接收和发布的路由进行过滤?
|
3月前
|
存储 缓存 监控
|
5月前
|
缓存
HTTP响应首部字段释义
【6月更文挑战第23天】响应首部字段是由服务器端向客户端返回响应报文中所使用的字段。
|
应用服务中间件
在请求目标中找到无效字符。有效字符在RFC 7230和RFC 3986中定义
在请求目标中找到无效字符。有效字符在RFC 7230和RFC 3986中定义
608 0
|
网络协议
ACK的累加规则-wireshark抓包分析-不包含tcp头部、ip头部、数据链路层头部等。
ACK的累加规则-wireshark抓包分析-不包含tcp头部、ip头部、数据链路层头部等。
ACK的累加规则-wireshark抓包分析-不包含tcp头部、ip头部、数据链路层头部等。
|
安全 网络架构
在BGP-4中携带标签信息
本文档规定了在用于分发路由本身的同一边界网关协议 (Border Gateway Protocol,BGP) 更新消息中搭载特定路由的标签映射信息的方式。当 BGP 用于分发特定路由时,它也可用于分发映射到该路由的多协议标签交换 (Multiprotocol Label Switching,MPLS) 标签。
265 0
在BGP-4中携带标签信息
|
存储 安全 网络协议
多协议标签交换 (MPLS) 标签堆栈条目:“EXP”字段重命名为“TC”字段
MPLS 标签堆栈条目的格式由 RFC 3032 [RFC3032] 定义,包括一个称为“EXP field”的三位字段。RFC 3032 没有定义该字段的确切用途,只是声明它“保留用于实验用途”。
572 0
多协议标签交换 (MPLS) 标签堆栈条目:“EXP”字段重命名为“TC”字段
|
数据安全/隐私保护
SIP响应消息和头字段
SIP响应消息和头字段