《IPv6基础篇学习理解(共14页).doc》由会员分享,可在线阅读,更多相关《IPv6基础篇学习理解(共14页).doc(14页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上一为何由IPv4向IPv6升级v IPv4地址资源的紧张限制了Internet的进一步发展,移动和宽带技术的发展要求更多的IP地址v NAT、CIDR、VLSM等技术的使用仅仅暂时缓解IPv4地址紧张,但不是根本解决办法。v 路由表急剧膨胀v 网络安全v 随着因特网的发展,安全问题越来越突出。IPv4协议制定时并没有仔细针对安全性进行设计,因此固有的框架结构并不能支持端到端安全。因此,安全问题也是促使新的IP协议出现的一个动因。 与IPv4相比,IPv6具有以下特点:v 巨大的地址空间(地址长度由32位增加到128位),像NAT这样的技术不再需要了。v 其他(锦上添花
2、):v 简单是美简化固定的基本报头,提高处理效率v 即插即用地址配置简化,自动配置v 扩展为先引入灵活的扩展报头,协议易扩展v 贴身安全网络层的IPSec认证与加密,端到端安全v Qos考虑新增流标签,提供比IPv4更好的服务质量保证(QoS)v 可扩展性为了支持一些新特性可以通过在IPv6的头后面增加扩展头,而IPv4扩展头只支持40字节,而IPv6扩展头长度不受限制。二IPv6地址表示方法及分类(一) IPv6地址表示方法v6地址与v4地址表示方法有所不同a) 每16位2进制转化成16进制,并用“:”隔开b) 每断中的起始零可以省略,全零的组可用“:”表示,如:0001:0123:0000
3、:0000:0000:ABCD:0000:0001/96可以写成1:123:0:0:0:ABCD:0:1/96或者1:123:ABCD:0:1/96c) 地址前缀长度用“/xx”来表示,如:1:1/64一个地址只能有一次使用:,例如FE80:0:0:0:2AA:0:0:4CA2可以写成F E80:2AA:0:0:4CA2或者FE80:0:0:0:2AA:4CA2 (二)IPv6地址分类 IPv6地址存在以下三种类型: 单播(Uncast); 任意播(Anycast); 多播(Multicast)。和IPv4相比,IPv6地址有个重要的不同,IPv6地址协议中没有广播地址。但是,IPv6地址协议
4、提供了一个包含“全部节点”的多播地址,用来实现与IPv/0地址协议中广播地址同样的目的。 下面详细介绍这三种类型1)单播(Uncast)用来表示单台设备的地址。又细分为全球单播地址、链路本地地址、站点本地地址 。全球单播地址:一个全球单播地址是指这个单播地址是全球惟一的。相等于IPv4中的public地址。全球单播地址架构为下面的图示: 链路本地地址( Link-local address)类似于IPv4的169.254.0.0/16 链路本地地址架构为下面的图示 地址范围(scope)为单一链路link。仅用于该链路上相邻节点通信。相等于IPv4中APIPA(169.254.0.0/16)F
5、E80:/64 prefix作用:自动配置;对邻节点发现过程是必须的; 路由器不转发站点本地地址(Site-local address) 类似于IPv4私有地址站点本地地址结构为下面的图示:范围为单个站点(site:多个link或者subnet)相当于IPv4的私有地址范围(10.0.0.0/8、172.16.0.0/12、192.168.0.0/16)FEC0:/10 prefix作用:非自动配置,必须通过有状态或者无状态的地址自动分配进行指派 用于内网2)任意播(Anycast) 用来标识一组接口(通常这组接口属于不同的节点)。发送到任播地址的数据包被传输给此地址所标识的一组接口中距离源节
6、点最近的一个接口(最“近”的一个,是指根据路由协议的距离度量)。 为了更好的理解任意播用下面另一端话进行阐述一下个任意播地址(Anycast address,也可称为任播地址或泛播地址)表示的更像一种服务,而不是台设备,并且相同的地址可以驻留在提供相同服务的一台或多台设备中。如图2-3所示,某些服务是由3台服务器提供的,但却是通过IPv6地址3fe“110o15来进行该服务的所有通告的。 接收到包含该地址通告的路由器不会知遒足由3台不lrll的设备通告给它的。相反,路由器会假定有3条路由到达相同的目的地,并会选择一条代价最低的路由。如图3所示,这条路由是到达服务器C的,它的代价是20。 3)多
7、播(Multicast) 用来标识属于不同节点的一组接口,类似IPv4的组播地址。发送到组播地址的数据包被传输给此地址所标识的所有接口。 多播地址标识的不是一台设备,而是一组设备个多播组(muica哎grclup,或称为多播群)。发送给一个多播组的数据包可以由单台设备发起。因此,一个多播数据包通常包括一个单播地址作为它的源地址,一个多播地址作为它的目的地址。在一个数据包中,多播地址从来不会作为源地址出现。 一个多播组的成员可能只有一台单个的设备,也可能甚至是该网络上所有的设备。事实上,IPv6协议并不像IPv4协议那样有一个保留的广播地址,而是有一个保留的包含所有节点的多播组,实际上做相同的事
8、情:所有接收它的设备都是属于该多播组。 多播的架构在下面的图示FF00:/8 prefixv Flagsl 用来表示permanent或transient组播组v Scopel 表示组播组的范围v Group IDl 组播组ID4)其他几种类型 未指定 000 或者 :/128 环回地址001 或者 :1/128 三 IPv6包头格式及扩展头 1)IPv6包头格式version=6Traffic Class -IP V4 TOSFlow Label用于指示流Payload Length指示该IP报文负荷长度Next Header -IP V4 ProtocolHop Limit - IP V4
9、 TTLSource和Destination地址都是128位下面附IPv4的格式IPv4报头与IPv6报头的比较v 首先,取消了IPv4包头的6个字段:IP包头长度(Header Length)、标识(Identification)、标志(Flag)、标志偏移量(Fragment Offset)及头标校验和(Header Checksum); v 其次,在IPv6中有三个控制字段重新命名,并在一些条件下重新定义:总长度(Total Length)在IPV6叫负荷长度(Payload Length),和I P v 4 不同, I P v 6 中只包括包头之后Payload的长度,不会计算IPv6
10、包头本身长度(固定40Bytes);v 服务类型(Service Type)改叫(Traffic Class)、生存时间(Time to Live)改叫跳限制(Hop Limit); v 最后,增加了一个新的字段:流标识(Flow Label);2)IPv6扩展头格式 英文表达如下: 中文表达如下:逐跳可选项(Hop-By-Hop Options) 传送必须被转发路径中的每一个节点都检验处理的信息。例如,路由器告警和超大包有效载荷选项等。路由选择(Routing)通过列出在到达目的地的路径中数据包所要经过的节点列表来提供源路由选择的功能。分段(Fragment) 是指在一个数据包被分段时用来为
11、接收节点重组数据包提供必要的信息。封装安全有效载荷(ESP)- 用于有效载荷的加密封装。认证报头(AH)用于数据包必须在源与目的节点之间进行认证的情况。目的地可选项(Destination Options) 用于传送仅仅被目的节点,或者可能是路由选择报头中列出的节点捡验处理的信息。四 ICMPv6正像IPv4一样,IPv6也需要个控制协议来交换与处理错误和信息的消息。并且和IPv4一样,它也使用ICMP实现这一功能。但是在IPv6中使用ICbIIp和在IPv4中使用ICbfP并不一样。在IPv4协议中ICMP使用的协议号是l,而在IPv6协议中ICMPv6使用的下一报头的值为58。 ICMPv
12、6报文格式与IPv4相同1)ICMPv6报文格式ICMPv6像ICMP一样使用一组类型与代码值的组合来标识一般的类型和它们的子类型,但是类型和代码值与以前ICMP不相同,另外进行了定义。2)类型及代码值ICMPv6协议除了基本的错误和信息控制功能外,还包括一些使用ICbIPv6消息的机制例如ping,路径mtu;同时包含邻居发现功能(在下节详细介绍)。3)路径MTU下面阐述一下路径MTU发现有关的概念及原理ICNIPv6的邻居发现功能,这将在下面讲述。五 NDP 本部分介绍内容分别为1)ND简介2)NS简介3)NA简介4)地址解析ARP VS ND5)地址解析重复地址检测1)ND简介ND全称为
13、Neighbor Discovery邻居发现 IPv6的邻节点发现(ND)过程,是用一系列的报文和步骤来确定邻节点之间关系的过程。邻节点发现取代了IPv4中使用的ARP、ICMP路由器发现和ICMP重定向报文。此外,邻节点发现还提供了其它的功能。 节点使用邻节点发现来进行如下操作:v 解析IPv6数据包将被转发到的邻节点的链路层地址v 确定邻节点的链路层地址什么时候发生变化v 确定邻节点是否仍然可以到达 主机使用邻节点发现来进行如下操作:v 发现相邻的路由器v 自动地址配置、地址前缀、路由和其它配置参数。路由器使用邻节点发现来进行如下操作:v 公告自己的存在、主机的配置参数、路由和链路上的前缀
14、v 通知主机发往指定目标的数据包有一个更好的下一跳地址 ND的报文格式邻节点发现报文使用ICMPv6的报文格式,及ICMPv6的从133到137的报文类型。有5中不同的邻节点发现报文:路由器请求报文(ICMPv6类型133)Router Solicitation路由器公告报文(ICMPv6类型134)Router Advertisement邻节点请求报文(ICMPv6类型135)Neighbor Solicitation邻节点公告报文(ICMPv6类型136)Neighbor Advertisment重定向报文(ICMPv6类型137)Redirect 2)NS简介v 邻居请求用于请求对方的链
15、路层地址,同时提供自己的链路层地址。v 当需要解析一个地址的链路层地址时,邻居请求是多播的;当邻居请求用于验证邻居可达性时,它是单播。下面抓包展示一下NS用于请求对方的链路层地址的和NA回应链路层地址组网图为下面,在R0上执行ping 2000:2进行抓包NS包v Type:135v Code:0v Checksum:校验和v Reserved:保留,全部置为0v Target Address:目标地址,是邻居请求要求解析或验证可达性的地址。v Option:可能包含如下选项:v Source link-layer address:源链路层地址(the link-layer address o
16、f the sender)v 在链路层的帧封装中,帧头部也包含了链路层地址,两者可以不一致,链路层可以使用广播、多播、单播地址,只要能够到达目的节点即可,因为链路层封装帧的地址在上送到IP层时,就已经被剥离掉了,接收节点只能通过邻居请求的链路层地址选项去更新邻居缓存。但若源节点的Ipv6地址为未指定地址,选项中将不含源链路层地址(见下面的抓包)。 3)NA简介节点发送邻节点公告报文来对邻节点请求报文进行响应。IPv6节点也会自发地发送邻节点公告报文,以通知邻节点自己的链路层地址发生改变。NA包v Type:136v Code:0v Checksum:校验和v R:路由器标志,为1表示发送者为路
17、由器v S:被请求标志,为1表示邻居公告是回应一个邻居请求的v O:重载标志,为1表示需要更新接受者所缓存的链路层的地址,否则不会更新。v Reserved:保留,全部置为0v Target Address:目标地址,作为被请求的公告时,与邻居请求里的目标地址一直,作为主动公告时,时链路层地址发生改变的IP地址,其实也就是自己的地址。v Option:可能包含如下选项:v Target link-layer address:目标链路层地址就是自己的链路层地址。3)地址解析ARP VS NDv 除了基于IPv6协议之外,ND的地址解析和ARP从基本思想上没有什么明显的差别,具体实现中由于ND修改
18、和增加了一些字段,优化了一些流程,使得主机间能够获的信息更多,交互过程更加合理。v ND的先进主要表现在: 化广播为近似单播的精确多播,减少了邻居不必要的负担。 引入多种状态,对邻居细致区分。 引入多个标志位,携带更多可用信息。5)重复地址检测v ARP的重复地址检测IPv4主机的接口在启动时或者IP地址发生改变时都会发送免费ARP来侦测广播网络内是否存在重复IP地址。v ND的重复地址检测 ND在一个接口的单播IPv6地址生效前就开始进行重复地址检测工作。即将生效的单播地址被称为探测地址,ND通过向探测地址发送NS报文来检查网络上是否存在重复IP地址。NS的目标地址设置为被检测的地址;IPv
19、6报文头的源IP设置为未指定地址,目的地址设置为目标地址的被请求节点多播地址。 如果网络上已经有主机使用该IP地址,该主机会回复一个NA,由于NS的源IP地址是未指定地址,所以相应的NA应该回复给所有节点多播地址。此时NS发送者可以通过收到的NA判断网络上存在重复IP地址。如果存在重复地址,该探测地址将不能在本接口启用。v ARP和ND在重复地址检测上的涉及思想大体相同,都是向自己拥有的IP地址发送请求,如果有重复IP所就能收到应答。单就这个过程而言,我们能够看到ND与ARP相比的先进性在于: 使用多播代替广播,减少邻居负担 IP地址未被确认为网段内唯一前不被使用,这样可以避免通过人工干预的方式解决地址冲突。4)名次解释 被请求节点多播地址:是一种特殊的多播地址,主要用于ND中的地址解析和重复地址检测。IPv6节点对于任意一个单播或者任播地址都分配一个对应的被请求节点多播地址,被请求节点多播由指定前缀FF02:1:FF00:0000/104和该单播或任播地址的低24比特组成。 未指定地址:就是全零地址,表明该地址没有被指定给任何接口专心-专注-专业
限制150内