找回密码
 注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 9629|回复: 0

IPv6技术白皮书(四):IPv6基本功能

[复制链接]
满天星 发表于 2010-9-18 16:45:54 | 显示全部楼层 |阅读模式
一、IPv6基本功能
IPv6基本功能包括IPv6邻居发现协议(邻居发现、路由器发现、无状态地址自动配置、重定向)、IPv6路径MTU发现以及IPv6域名解析。其中路由器发现和无状态地址自动配置是IPv6的新增功能,邻居发现功能类似于IPv4 ARP,但做了改进和增强。

1、IPv6邻居发现协议
IPv6 邻居发现协议使用IPv6 ICMP消息和被请求节点的组播地址来得到同一网络(本地链路)上某个邻居的链路层地址,验证邻居的可达性,找到邻居路由器。每个IPv6节点都必须加入和其单播和泛播地址对应的多播组。
IPv6邻居发现协议主要包括邻居发现、路由器发现、IPv6无状态地址自动配置、重定向功能。
1.1、邻居发现
邻居发现功能和IPv4中的ARP功能类似。
邻居发现功能由邻居请求和邻居通告机制实现:
  • 邻居请求
    当一个节点需要得到同一本地链路上另外一个节点的链路本地地址时,就会发送邻居请求报文。此报文类似于IPv4中的ARP请求报文,不过使用多播地址而不使用广播,只有被请求节点的最后24比特和此组播相同的节点才会收到此报文,减少了广播风暴的可能。
    源节点使用目的节点的IPv6地址的最右24比特形成相应的多播地址,然后在相应链路上发送ICMPv6类型为135的报文。目的节点在响应报文中填充其链路地址。为了发送邻居请求报文,源节点必须首先知道目的节点的IPv6地址。
    邻居请求报文也用来在邻居的链路层地址已知时验证邻居的可达性。
  • 邻居通告
    IPv6邻居通告报文是对IPv6邻居请求报文的响应。收到邻居请求报文后,目的节点通过在本地链路上发送ICMPv6类型为136的邻居通告报文进行响应。收到邻居通告后,源节点和目的节点可以进行通信。
    当一个节点的本地链路上的链路层地址改变时也会主动发送邻居通告报文。



图1 IPv6邻居发现示意图

IPv6邻居发现只要一次报文交互就可以互相学习到对方的链路层地址,而IPv4的ARP实现此功能需要两次报文交互,因此IPv6邻居发现的效率比较高。
另外,IPv6邻居发现是在IP层实现的,理论上可以支持各种传输媒介,这也是针对IPv4中ARP的改进点。

1.2、 路由器发现
路由器发现用来定位邻居路由器,同时学习和地址自动配置有关的前缀和配置参数。
IPv6路由器发现由下面两种机制实现:
  • 路由器请求
    当主机没有配置单播地址(例如系统刚启动)时,就会发送路由器请求报文。路由器请求报文有助于主机迅速进行自动配置而不必等待IPv6路由器的周期性IPv6路由器通告报文。
    IPv6路由请求也是ICMP报文,类型为133。
    IPv6路由器请求报文中的源地址通常为未指定的IPv6地址(0::0)。如果主机已经配置了一个单播地址,则此接口的单播地址可在发送路由器请求报文时作为源地址填充。
    IPv6路由器请求报文中的目的地址是所有路由器多播地址(FF02::2),作用域为本地链路。如果路由器通告是针对路由器请求发出的,则其目的地址为相应路由器请求报文的源地址。
    注:路由器请求在启动期间发送并只发送三次以避免网络上没有路由器时拥塞网络。
  • 路由器通告
    每个IPv6路由器的配置接口会周期发送路由器通告报文。在本地链路上收到IPv6节点的路由器请求报文后,路由器也会发送路由器通告报文。IPv6路由器通告报文发送到所有节点的链路本地多播地址(FF02 ::1)或发送路由器请求报文节点的IPv6单播地址。
    路由器通告为ICMP报文,类型为134,包含以下内容:
    • 是否使用地址自动配置
    • 标记支持的自动配置类型(无状态或有状态自动配置)
    • 一个或多个本地链路前缀―――本地链路上的节点可以使用这些前缀完成地址自动配置
    • 通告的本地链路前缀的生存期
    • 是否发送路由器通告的路由器可作为缺省路由器,如果可以还包括此路由器可作为缺省路由器的时间(用秒表示)
    • 和主机相关的其它信息,如跳数限制,主机发起的报文可以使用的最大MTU。

    本地链路上的IPv6节点接收路由器通告报文,并用其中的信息得到更新的缺省路由器、前缀列表以及其它配置。



图2 IPv6路由器通告示意图

1.3 、IPv6无状态地址自动配置
通过使用路由器通告报文(和针对每一前缀的标记)路由器可以通知主机如何进行地址自动配置。例如,路由器可以指定主机是使用有状态(DHCPv6)地址配置还是无状态地址自动配置进行地址配置。
主机收到路由器通告报文后,使用其中的前缀信息和本地接口ID自动形成IPv6地址,同时还可以根据其中的默认路由器信息设置默认路由器。
使用无状态地址配置可以使IPv6节点很容易完成地址重新编址,降低了网络重新部署的复杂性。进行重新编址时,路由器通告报文中既包括旧的前缀也包括新的前缀。旧前缀的生存期减少,促使节点使用新的前缀,同时保证现有连接可以继续使用旧的前缀。在此期间,节点同时具有新旧两个单播地址。当旧的前缀不再使用时,路由器只通告新的前缀。

1.4 、重定向
和IPv4类似,IPv6路由器发送重定向报文的目的仅限于把报文重新路由到更合适的路由器。收到重定向报文的节点随后会把后续报文发送到更合适的路由器。路由器只针对单播流发送重定向报文,重定向报文只发给引起重定向的报文的发起节点(主机),并被处理。

2、IPv6路径MTU发现协议
IPv4中也定义了路径MTU发现协议,不过是可选支持的。在IPv6中为了简化报文处理流程、提高处理效率,限定IPv6路由器不处理分片,分片只在源节点在需要的时候进行。因此IPv6的路径MTU发现协议是必须实现的。IPv6使用路径MTU发现得到源和目的节点之间路径的最大MUT。源节点在发现报文前进行路径MTU发现处理。如果路径上的MTU不足以传输整个报文,则源节点分片后重新发送。
路径MTU发现协议使IPv6节点能够动态发现并调整以适合给定数据路径上的MTU变化。在IPv4中最小链路MTU值是68字节(推荐最小值为576字节),而在IPv6中最小MTU值为1280字节(推荐最小值为1500)。IPv6基本头支持的最大报文长度是64000字节。更大的报文(jumbograms)通过逐跳扩展头选项处理。


图3  IPv6 Path MTU流程示意图

3、IPv6域名解析
原有的IPv4 DNS由于应用假定地址查询只返回32比特的IPv4地址,因此不能直接支持IPv6,必须做部分扩展。
IIPv6引入了新的DNS记录类型用于IPv6地址解析,同时支持正向解析(域名->地址)和反向解析(地址->域名)。主要新增内容如下:
  • AAAA record
    和IPv4中的A记录类似。此记录把主机名映射为IPv6地址。
  • PTR记录
    和IPv4中的指针记录类似,此记录把主机名映射为IPv6地址。
    IPv6顶级域的地址是ip6.arpa。

当节点需要得到另外一个节点的地址时,就会发送AAAA记录请求到DNS服务器,请求以另外一个节点的主机名对应的地址。AAAA记录只保留一个IPv6地址。如果一个节点有多个地址,则要和多条记录对应。


图4  IPv6 DNS解析示意图

为了在IPv6地址聚合和重新编址时能够很容易修改相应的DNS记录,新引入了以下两种记录类型:
  • A6 record(RFC2874)
    IETF使用的实验记录,A6记录不在运营网络中使用。此记录与AAAA记录类似,但支持IPv6地址的层次存储以简化网络重新编址。
  • DNAME记录(RFC2672)
  • 二进制标签记录(RFC2673)
    这些记录使重新编址对于反向映射(地址到主机名对应)更易进行。
    重新编址时,则所有节点必须改变他们的IPv6地址前缀部分。如果重新编址网络使用了DNS,则DNS记录中保存的地址信息也要随之更新。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|IPv6BBS ( 京ICP备13024693号 | 京公网安备11010802012238 )

GMT+8, 2024-4-20 18:10 , Processed in 0.021304 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表