高级计算机网络5_第1页
高级计算机网络5_第2页
高级计算机网络5_第3页
高级计算机网络5_第4页
高级计算机网络5_第5页
已阅读5页,还剩87页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

下一代互联网协议IPv6

郑州大学信息工程学院

李向丽

2010年10月20日星期三6时38分5秒郑州大学信息工程学院李向丽

第一部分

IPv6技术

•第2章IPv6概述

•第3章IPv6编址技术

•第4章IPv6分组及协议机制

•第6章IPv6过渡机制

2010年10月20日星期三6时38分6秒郑州大学信息工程学院李向丽2

•5.1ICMPv6概述

•5.2ICMPv6报文基本格式

•5.3ICMPv6差错报告报文

•5.4ICMPv6信息报文

•5.5邻节点探测协议(NDP)

•5.6ICMPv6多播组成员报文

年月日星期三时分秒

201010206386郑州大学信息工程学院李向丽3

5.1ICMPv6概述

在RFC2463中定义工nternetControlMessage

ProtocolVersion6(工CMPv6协议)。

在工Pv6中,工CMPv6实现工Pv4中工CMP、ARP和工GMP的

功能。

工CMPv6协议功能:向源节点报告关于目的地址传输

工Pv6包的错误和信息,具有差错报告、网络诊断、邻节

点发现和多播实现等功能。

2010年10月20日星期三6时38分7秒郑州大学信息工程学院李向丽4

ICMPv6报文的封装

•ICMPv6报文封装在IPv6中

IPv6数据包

IPv6报头IPv6负载

ICMPv6报文

[CMPuS报头报文

•具有扩展首部的IPv6,封装ICMPv6报文

IPv6ICMPv6ICMPv6

扩展首部........扩展首部N

基本首部报文首部报文体

2010年10月20日星期三6时38分8秒郑州大学信息工程学院李向丽5

封装在IPv6分组中的ICMPv6报文

2010年10月20日星期三6时38分8秒郑州大学信息工程学院李向丽6

•ICMP:是在TCP/工P网络中传递网络控制信息

的主要手段,同时,工CMP还提供了差错报告

的功能。

•工Pv6的定义中,对工Pv4的工CMP进行了修订。

删除了一些极少使用的工CMP报文,更完整地

加入了工CMP的多播控制功能,对其他原有的

工CMP报文做了针对工Pv6的修改。经过修改,

工CMPv6与原有的工CMP已经不再兼容。

2010年10月20日星期三6时38分9秒郑州大学信息工程学院李向丽7

已定义的ICMPv6报文类型

差错报文(0-127)信息报文(128-255)

类型消息含义类型消息含义

1目的不可达128回声请求

2数据包报文过大129回声应答

3超时130组成员查询

4参数错误131组成员报告

132组成员退出

133路由器请求

134路由器通告

135邻节点请求

136邻节点通告

137重定向

138路由器重编号

139节点信息查询

140节点信息应答

口十1口厂]乙U|—|王/力一DO刀邛7K,刀1人千1百圮、-L任千凯子WJI州8

5.2ICMPv6报文的基本格式

•5.2.lICMPv6报文校验和的计算

•522封装ICMPv6报文的IPv6分组的源地址

•5.2.3ICMPv6报文的处理规则

年月日星期三时分秒

2010102063813郑州大学信息工程学院李向丽9

5.2工CMPv6报文的基本格式

类型(1字节)代码(1字节)校验和(2字节)

工CMP报文体(可变长)

A类型:标识工CMPv6报文类型,它的值根据报文的

内容来确定。

A代码:用于确定工CMPv6进一步的信息,对同一类

型的报文进行了更详细的分类。

A校验和:用于检测工CMPv6的报文是否正确传送。

A报文体:用于返回出错的参数和记录出错报文的片

段,帮助源节点判断错误的原因。或是其它参数。

年月日星期三时分秒

2010102063813郑州大学信息工程学院李向丽10

5.2.1ICMPv6报文校验和的计算

•校验和16bit,计算范围包括两部分。

-ICMPv6报文

-IPv6伪首部(伪首部中下一首部字段的值为58)。

•计算方法:

-校验和字段被设置为0

-ICMPv6对校验范围内的数据以16比特为单位,做

1的补码的加法运算。

-在ICMPv6首部校验和字段中,置入此16比特的和。

2010年10月20日星期三6时38分14秒郑州大学信息工程学院李向丽11

工CMPv6校验和的校验范围

源地址(16字节)

工Pv6的

目的地址(16字节)

伪首部

有效载荷长度(4字节)

下一首部

0(3字节)(=58,1字节)

校验和

ICMPv6类型(1字节)代码(1字节)

(2字节)

报文

工CMPv6报文体(可变长)

2010年10月20日星期三6时38分14秒郑州大学信息工程学院李向丽12

5.2.2封装ICMPv6报文的IPv6分组的源地址

•源地址帮助IPv6分组的源节点判断分组在何处出

错。一个发送ICMPv6报文的节点在计算校验和

以前,要在IPv6首部中谨慎填写源地址和目的

IPv6地址。选择ICMPv6报文源地址的主要原则

有四个:

•前二个规则是针对ICMPv6信息报文制定的。

-第一个规则:若原IPv6分组是单播分组,ICMPv6应答

报文的源地址应该设置为原IPv6分组中的目的地址。

-第二个规则:若是多播Multicastgroup或任播any-cast

group报文,则ICMPv6应答报文必须将收到该IPv6分

组的接口的IP地址作为源地址。

2010年10月20日星期三6时38分15秒郑州大学信息工程学院李向丽13

•第三个规则:适用于ICMP差错报告报文O

-在许多情况下,生成差错报文的并非是目的节

点。因此差错报文不能将原报文中的目的地址

作为ICMP差错报文的源地址使用,而应将报

告IPv6分组出错信息的节点地址作为源地址。

-例如,若是分组过大ICMPv6差错报文时,该

源地址应该是不能接纳原IPv6分组的路由器的

某个接口的IPv6地址。

•第四个规则:主动发送的ICMPv6报文及不适用上

述规则的ICMP报文,发送ICMPv6报文的节点必

须查看自己的路由表,判断哪一个网络接口将被

用于发送ICMPv6报文,则将该接口的一个单播地

址作为源地址。

2010年10月20日星期三6时38分15秒郑州大学信息工程学院李向丽14

523ICMPv6报文的处理规贝U

当接收到ICMPv6^^S告报题时,如果无法识

别具体的类型,必须将它给协议模块进

行处理。

2.当接收到ICMPv6时,如果无法识别具

体的类型,必须将它。

3.所有的ICMPv6差错报告报文,都应该在IPv6所

要求的最小MTU允许范围内,尽可能多地包括

引发该ICMPv6差错报文的IPv6分组片段,以便

给IPv6分组的源节点提供尽可能多的诊断信息。

年月日星期三时分秒

2010102063816郑州大学信息工程学院李向丽15

ICMPv6报文的处理规则(续1)

4.在需要将ICMPv6报文上传给其上层协议模块处

理的情况下,上层协议的具体类型,应该从封装

该ICMPv6报文的IPv6分组的下一首部字段中获

取。但是,如果该IPv6分组携带有很多扩展首

部,则可能会导致有关

o这时,只能将该差错

报告报文在IP层处理完后丢弃掉。

5.不能产生ICMPv6差错报告报文的发送情况:

①一个ICMPv6o这主要是为了避免无休止

地产生ICMPv6报文而引起网络拥塞。

年月日星期三时分秒

2010102063816郑州大学信息工程学院李向丽16

ICMPv6报文的处理规则(续2)

②一个发往塞题噩的IPv6分组。但有两个例外:

•当使用IPv6多播地址进行场「径MTU探)时,可以

发送“报文过长”差错报告报文;

•允许使用报告:存在不可识别的

TLV可选项。

o对这类报文也具有与上面第二类

情况相同的例外。

报文。对这类报文也具有与上面第二类

情况相同的例外。

⑤IPv6分组的时,这

种情况也不能够引起ICMPv6差错报告报文的发送。

例如,IPv6不明确地址等。

年月日星期三时分秒

2010102063816郑州大学信息工程学院李向丽17

ICMPv6报文的处理规则(续3)

6.最后,为了限制在发送ICMPv6差错报告报文

时对网络带宽和转发处理的消耗,一个IPv6

■节点必须的需噩n^^遇翻

o但是,这样可能会导致一个差错报告

报文的源节点因为没有及时收到报文出错的

报告而不断地重发该错误报文。目前有几种

提供限制ICMPv6速率的方法,例如:

①基于计时器的方法。例如,将发往某个源节点或

所有源节点的ICMPv6差错报告报文的速率,限制

在每T时间段内只发送一个差错报告报文之内。

②基于带宽的方法。例如,将某个网络接口发送的

ICMPv6差错报告报文所占用的带宽限制在这个接

口所在链路带宽的某个比例F上。

年月日星期三时分秒

2010102063817郑州大学信息工程学院李向丽18

5.3ICMPv6差错报告报文

•5.3.1目的不可达ICMPv6报文

•532分组过大ICMPv6报文

•533超时ICMPv6报文

•534参数错误ICMPv6报文

2010年10月20日星期三6时38分17秒

郑州大学信息工程学院李向丽19

工CMPv6报文分成两大类:

.工CMPV65一个工Pv6节点在处理一个

接收到的报文时,如果有错误出现,则需要向源节

点发送工CMPv6差错报告报文。目前工CMPv6共定义

了四种类型的差错报告报文:目的不可到达、报文

过长、超时、参数差错报告报文。

:传递用于控制的请求和应答信

息。比如用于实现Ping功能的回声请求报文和回声

应答报文,以及对多播组控制的工CMPv6信息报文。

年月日星期三时分秒

2010102063817郑州大学信息工程学院李向丽20

5.3工CMPv6差错报告报文

工CMPv6差错报文基本格式

071531

类型(IB)I代码(IB)I校验和(1B)

___________________参数

引发本报文的原工Pv6分组片段

(在不超过最小工Pv6MTU的情况下,尽可能多

地包括引起出错的分组的信息)

2010年10月20日星期三6时38分18秒郑州大学信息工程学院李向丽21

ICMPv6差错报文基本格式

•ICMPv6差错报告报文中的类型字段、代码字

段及校验和字段的内容,根据差错报告报文类

型的不同而不同。

•ICMPv6报文体分为两个部分,前4字节是参数

字段,剩余部分是引起该ICMPv6报文产生的

出错IPv6分组片段。

•在整个ICMPv6报文的长度不超过IPv6对路径

传输单元的最低限制(1280字节)的条件下,

应该包含尽可能多的出错IPv6分组信息。这样

可以使出错IPv6分组的源节点获得尽可能多的

信息来诊断出错原因。

2010年10月20日星期三6时38分18秒郑州大学信息工程学院李向丽22

5.3.1目的不可达报文

工CMPv6字段:类型值为1

代码

^^^0-没有到目的的路由

1-与目的的通信由于管理被禁止,e.g.防火墙

2-(没有定义)

3-目的地址不可达,e.g.不能转换为MAC地址

4-端口不可达,e.g.端口没有开放

参数字段:未用,发送者设置为0,接收者忽略。

描述:该报文应该由路由器或节点的工Pv6层产生,作为对除

拥塞以外的原因使得包不能传送到目的地址的回应。

一个节点在收到该报文后,必须通知上层协议进行相应处理。

2010年10月20日星期三6时38分18秒郑州大学信息工程学院李向丽23

5.3.2分组过大报文

工CMPv6字段:

类型值为2

代码:未用,发送者设置为0,接收者忽略。

:记录在出现包过大错误时链路的MTU。

描述:包过大报文必须由路由器发出,当路由器发现

r包太大,超过了出口链路的MTU而不能转发时,丢弃该

包,并向源节点发送工CMPv6报文。

可以用于工Pv6路径MTU发现(PMTUD)。

在RFC1981中定义,IPv6的PMTU使用工CMPv6类

型2报文,即分组过大工CMPv6报文。

一个节点在收到该报文后,必须通知上层协议进行相应处理。

2010年10月20日星期三6时38分19秒郑州大学信息工程学院李向丽24

使用工CMPv6路径MTU发现(PMTUD)

探测路径MTU的过程。

叫路由器路由器目的

匚〜MTU=1500MTU=1400MTU=1300

①报文(MTU=1500)A

②ICMPv6(类型=2),使用MTU=1400

③报文(MTU=1400)*

④ICMPv6(类型=2);使用MTU=1300

⑤报文(MTU=1300)_____

⑥收到报文

•一'一.................."='十

用IPv6PMTUD发现的MTU值被源节点缓存

2010年10月20日星期三6时38分19秒郑州大学信息工程学院李向丽25

5.3.3超时工CMPv6报文

工CMPv6字段:类型值为3

代码:

0-跳数限制为0

1-分片重组超时

参数字段:未用,发送者初始化为0,接收者忽略。

描述:

如果路由器收到跳数限制为0的包,或是它将跳数限制减

去1后变为0,该路由器必须丢弃这个包,并发一个代码为0

的超时报文给源站点。

若在收到第1个分片后60秒内,还没有收到全部分片,则

丢弃所有分片,并发送代码为1的超时报文给源站点。

一个节点在收到该报文后,必须通知上层协议处理。

2010年10月20日星期三6时38分20秒郑州大学信息工程学院李向丽26

超过跳数限制

年月日星期三时分秒

2010102063821郑州大学信息工程学院李向丽27

回送ICMPv6差错报文

年月日星期三时分秒

2010102063821郑州大学信息工程学院李向丽28

5.3.4参数错误工CMPv6报文

工CMPv6字段:

类型值为4

代码:

0-错误的首部字段

1-不可识别的下一首部类型

2-不可识别的工Pv6的TLV可选项

参数字段:称为指针,指出了在引起出错的包中错误

出现地方的偏移量。

一个节点在收到该报文后,必须通知上层协议进行相应处理。

2010年10月20日星期三6时38分22秒郑州大学信息工程学院李向丽29

参数错误报告报文描述:如果节点发现了工Pv6首部或扩

展首部中某个字段有问题,它必须丢弃这个包,并发送一个

工CMPv6参数错误报文,指出出错的地方和出错的类型。

指针字段指出检测出错误的地方相对于原工Pv6分组首部的

偏移量,以字节为单位。

比如,一个类型为4、代码为1、指针字段值为40的

工CMPv6报文,说明原分组中紧跟在工Pv6基本首部后的扩展

首部中的下一首部字段有一个不被识别的值。

指针字段=40

扩展首部1

工Pv6基本首部……(报文的其余部分)

下一首部••♦•••

2010年10月20日星期三6时38分22秒郑州大学信息工程学院李向丽30

5.4工CMPv6信息报文

•先介绍工CMPv6回声请求和回声应答报文格式。

其它报文将在相关机制中介绍。

071531

类型(IB)I代码(IB)I校验和(2B)

标识符i序列号

数据

2010年10月20日星期三6时38分22秒郑州大学信息工程学院李向丽31

ICMPv6回声请求和回声应答报文

]:CMPv6字段:

类型值为128(回声请求)、129(回声应答)

,代码:Oo

标识符:用于请求和应答的匹配,也可能是0。

序列号:用于请求和应答的匹配,也可能是0。

数据:为0或任意字节的数据。

描述:每一个节点必须能够完成工CMPv6回声应答

功能,即在收到工CMPv6回声请求时发出相应的

工CMPv6回声应答报文。

2010年10月20日星期三6时38分23秒郑州大学信息工程学院李向丽32

5.5邻节点探测协议NDP

•551邻节点探测协议NDP概述

•552邻节点探测协议定义的ICMPv6报文

•553替代ARP

•5.5.4无状态地址自动配置

•5.5.5重复地址探测DAD

•556前缀重新编址

•557路由器重定向

•5.5.8NDP总结

2010年10月20日星期三6时38分23秒郑州大学信息工程学院李向丽33

5.5邻节点探测协议NDP

(NeighborDiscoveryProtocol,NDP)

•IPv4的缺点之一:主机换网必须换地址,配置

麻烦。

•IPv4的解决办法:

-启动协议(BOOTP)

-动态主机配置协议(DHCP)

•允许节点从BOOTP服务器或DHCP服务器获

取配置信息。但是这些协议支持所谓的“状态

自动配置”,即服务器必须保持每个节点的状

态信息,并管理这些保存的信息。

2010年10月20日星期三6时38分24秒郑州大学信息工程学院李向丽34

工Pv6的最重要目标之一是支持“即插即用”一

不需要任何人工干预,就能将一个节点插入工Pv6

网络,并在网络中启动。

工Pv6使用两种不同机制来支持即插即用。

1、有状态地址自动配置:BOOTP和DHCP;

2、无状态地址自动配置。在这种方式下,需要

配置地址的节点,使用邻节点探测机制获得一个

工Pv6地址。

2010年10月20日星期三6时38分24秒郑州大学信息工程学院李向丽35

5.5.1NDP概述

•NDP是IPv6的一个重要组成部分,它不是一个全

新的协议,而是由IPv4中的地址解析协议ARP、

ICMP路由探测协议RDISC、ICMP报文重定向

等协议综合而成的。

2010年10月20日星期三6时38分24秒郑州大学信息工程学院李向丽36

1、邻节点探测协议的应用

邻节点探测协议NDP

的无状态地址

ARP路由器重定向

替代协议自动配置

前缀通告重复地址检测前缀重新编址

年月日星期三时分秒

2010102063825郑州大学信息工程学院李向丽37

2、为NDP定义的工CMPv6报文

ICMPv6类型报文类型

133路由器请求(RS)

134路由器通告(RA)

135邻节点请求(NS)

136邻节点通告(NA)

137重定向

年月日星期三时分秒

2010102063826郑州大学信息工程学院李向丽38

3、NDP机制使用的工CMPv6报文

替代前缀重新重复地址路由器重

类型前缀通告

ARP编址探测定向

路由器请求1334

路由器通告134VV

邻节点请求1354

邻节点通告136

重定向1374

年月日星期三时分秒

2010102063826郑州大学信息工程学院李向丽39

5.5.2邻节点探测协议定义的ICMPv6报文

•在本节中,我们介绍一下为NDP定义的

五个ICMPv6报文:

-邻节点请求

-邻节点通告

-路由器请求

-路由器通告

-重定向报文

年月日星期三时分秒

2010102063827郑州大学信息工程学院李向丽40

L邻节点请求报文和邻节点通告报文

•邻节点请求/通告报文可以完成ARP功能,还可以

用来测试目的主机的连通性。

•用于时,邻节点请求报文一般以的

形式发送,主机一旦收到邻节点请求报文,它们

将检查ICMP报文中的IPv6地址。如果这个地址

恰好是自己的主机地址,主机将把自己的数据链

路层地址封装在一条邻节点通告报文中,以应答

邻节点请求报文的发送者。

•用于时,邻节点请求报文以

单播IPv6分组的形式发送。如果发送者收到了应

答的邻节点通告报文,它认为目的地址是可达

的;否则它认为目的主机是不可达的。

2010年10月20日星期三6时38分27秒郑州大学信息工程学院李向丽41

邻节点请求报文的报文格式

类型(1字节)代码(1字节)校验和(2字节)

保留(4字节)

目的IPv6地址

选项代码=1选项数据长度=1

可选项(源链路层地址)

2010年10月20日星期三6时38分27秒郑州大学信息工程学院李向丽42

邻节点请求报文字段意义

•类型字段,其值为135,表示该ICMPv6报文是邻

节点请求报文。

•代码字段,必须置为0。

•校验和字段,保存整个ICMPv6报文的校验和。

•保留字段,保留不用,其值必须等于0。

•目的IPv6地址字段,存放目的主机的IPv6地址。

例如,当使用该报文解析地址时,则该字段存放

将要解析的IPv6地址。

•可选项字段,包含:

-选项代码字段,说明选项类型

-选项数据长度字段,8字节单位,说明选项数据的长度。

-选项数据,一些可选参数,例如源主机的链路层地址

2010年10月20日星期三6时38分28秒郑州大学信息工程学院李向丽43

用于ICMPv6信息报文的可选项格式

o71531

类型(Type)长度(Length)

值(Value)

•类型=1,源链路层地址(SourceLink_layerAddress)

=2,目的链路层地址(TargetLink_layerAddress)

=3,前缀信息(PrefixInformation)

=4,重定向首部(RedirectedHead)

=5,最大传输单元(MTU)

•长度,以8字节为单位说明可选项长度,包括类型和长度

2010年10月20日星期三6时38分28秒郑州大学信息工程学院李向丽44

邻节点请求报文字段意义(续)

•邻节点请求报文必定包含源节点的源链路层地址选

-源链路层地址选项的选项代码值为1

-选项长度因网络类型而异。

-当此源节点得不到应答报文时,只能重复发送9次邻节点

请求报文。在各请求之间至少间隔1秒。

•封装邻节点请求报文的IPv6分组

-优先级字段=15

-跳数极限字段=255

-源IPv6地址二发送该报文的网络接口的IPv6地址。

-用于ARP时,目的地址二多播IPv6地址。

-探测目的主机连通性,目的地址二目的主机的IPv6地址。

年月日星期三时分秒

2010102063829郑州大学信息工程学院李向丽45

邻节点通告报文

邻节点通告报文并不只是在邻节点请求报

文时才发送,有时也主动使用邻节点通告

报文,来通告自己的链路层地址更新等信息。

年月日星期三时分秒

2010102063829郑州大学信息工程学院李向丽46

邻节点通告报文格式

类型(1字节)代码(1字节)校验和(2字节)

RSO保留

目的IPv6地址

选项代码=2选项数据长度=1

可选项(目的链路层地址)

年月日星期三时分秒

2010102063829郑州大学信息工程学院李向丽47

邻节点通告报文字段意义

•类型字段,其值为136。

•代码字段,必须置为0。

•校验和字段,保存整个ICMPv6报文的检验和。

•保留字段,保留不用,其值必须等于0。

•路由R比特字段,R=1表示是一台路由器发送该报文。

•请求S比特字段,S=1表示是对邻节点请求报文的响应。

•覆盖O比特字段,0=1表明收到该报文的主机,应该用可选项

字段中包含的目的数据链路层地址,更新自己的缓存。

•目的IPv6地址字段,存放目的主机的IPv6地址。若是为了响应

邻节点请求而发送的邻节点通告报文,该字段的值将与请求报

文中的目的地址字段相同。该字段通常是发送邻节点请求报文

的IPv6地址。但是并非所有情况都是如此。

•可选项字段,包含选项代码字段、选项长度字段和可选参数,

例如该ICMPv6报文的源主机的链路层地址。

年月日星期三时分秒

2010102063830郑州大学信息工程学院李向丽48

例子,节点A在本地链路上发送

邻节点请求报文

节点A节点B节点C节点D

1^0

节点A发送邻节点请求报文

FE80::l:C033:6382是哪一个?

携带A的链路层地址:08-00-20-01-C7-82

节点A的IPv6地址:FE80::0800:2001:C782

节点A的链路层地址:08-00-20-01-C7-82

节点D的IPv6地址:FE80::0000:C033:6382

节点D的链路层地址:02-07-01-33-D6-92

2010年10月20日星期三6时38分30秒郑州大学信息工程学院李向丽

封装在IPv6分组中的ICMPv6邻节点请求报文

版本号=6优先级=15流标识=0

有效载荷长度=32下一首部二58跳数极限=255

源(A节点)IPv6地址:FE80::0800:2001:C782

目的(D节点的被请求节点多播地址)IPv6地址:FF02::l:FF33:6382

类型=136代码=0校验和

保留=0

目的IPv6地址:FE80::0000:C033:6382,目的节点D的IPv6地址

选项代码=1选项数据长度=1

可选项(源节点A的链路后1地址:08-00-20-01-C7-82)

2010年10月20日星期三6时38分31秒郑州大学信息工程学院李向丽50

节点D使用邻节点通告报文

对邻节点请求报文进行应答

节点A节点B节点C节点D

■/_uQaM8iMgs二^[/■**廿ttefa■

节点D发送邻节点通告报文

我是FE80::l:C033:6382

2010年10月20日星期三6时38分32秒郑州大学信息工程学院李向丽51

封装在IPv6分组中的

ICMPv6邻节点通告报文

版本号=6优先级=15流标识=0

有效载荷长度=32下一首部二58跳数极限=255

源(D节点)IPv6地址:FE80::l:C033:6382

目的(A节点)IPv6地址:FE80::0800:2001:C782

类型二135代码=0校验和

RSO保留二0

目的IPv6地址(节点D的地址FE80::0000:C033:6382)

选项代码=2选项数据长度二1

可选项(目的节点D的链路层地址:02-07-01-33-D6-92)

2010年10月20日星期三6时38分33秒郑州大学信息工程学院李向丽52

2.路由器请求报文和路由器通告报文

•主机与远程系统进行通信时,必须找到路由器。

•当多接口主机需要发送IPv6分组时,需要了解

每个网络接口所连接的链路上的路由器的有关

信息。

•路由器每5分钟就发送一个路由器通告报文。

•节点根据路由器通告报文更新路由器的信息。

•主机可以主动向路由器发送路由器请求报文,

路由器一旦收到路由器请求报文,将立即发送

路由器通告报文。

2010年10月20日星期三6时38分34秒郑州大学信息工程学院李向丽53

ICMPv6路由器请求报文格式

类型(1字节)代码(1字节)校验和(2字节)

保留(4字节)

选项代码=1选项数据长度

=1

可选项(源链路层地址)

2010年10月20日星期三6时38分34秒郑州大学信息工程学院李向丽54

各个字段的内容和含义

类型字段,其值为133。

代码字段,必须置为0。

校验和字段,保存整个ICMPv6报文的检验和。

保留字段,保留不用,其值必须等于0。

可选项字段,包含了一些可选参数。

-例如发送报文的源主机链路层地址。路由器从报文中可

以得到主机的链路层地址。当路由器应答请求报文时,

不需要使用多播地址,直接向提出请求的节点发送路由

器通告报文。

2010年10月20日星期三6时38分35秒郑州大学信息工程学院李向丽55

ICMPv6路由器通告报文格式

类型(1字节)代码(1字节)校验和(2字节)

最大跳数MO保留路由器生存时间

可到达时间已过

可到达的重发间隔

选项代码=1选项数据长度=1

可选项(源链路层地址)

选项代码=5

选项数据长度=1可选项(MTU大小)

选项代码=3选项数据长度二4前缀长度1L1AJ

保留

有效生存时间

推荐生存时间

保留

网络前缀

2010年10月20日星期三6时38分36杪郑州大学信息工程学院李向丽

路由器通告报文字段含义

•类型字段,其值为134。

•代码字段,必须置为0。

•校验和字段,保存整个ICMPv6报文的检验和。

•最大跳数(maxhop)字段,路由器用来推荐本地网

络主机填入Pv6分组首部中“跳数极限”字段的默认值o

•M/O比特字段,决定主机的地址自动配置方法。

M如被置“1”,不准主机使用无状态地址自动

配置,而应采用DHCP配置IP地址。

O如被置“产,主机可使用无状态地址自动配

置,但对其他配置信息必须使用DHCP。

•保留字段,保留不用,其值必须等于0。

2010年10月20日星期三6时38分36秒郑州大学信息工程学院李向丽57

路由器通告报文字段含义(续)

•路由器生存时间(routerlifetime)字段,以秒为单

位说明主机能够使用路由器的时间范围。只要超过

了该字段所指定的值,主机就认为此路由器不能再

使用。如果值为OxFFFF,则生存时间无限。

•可到达时间已过(reachabilitytimeout)字段,是

指在可到达的时间(ReachableTime)内,如果邻

节点什么也没有发送,就认为该邻节点是不能到达

的。这个时间参数以毫秒为单位。

•可到达的重发间隔(reachabilityretransmission

interval)o设置邻节点请求报文的时间间隔,限

制邻节点请求报文的发送频率。以毫秒为单位。

2010年10月20日星期三6时38分37秒郑州大学信息工程学院李向丽58

可选项字段,包含可选参数

・在第一个选项(代码为1)中包含有源链路层地址。

•第二个选项(代码5)指出该链路的MTU的大小。

•最后一个选项定义了该链路的网络前缀。链路可拥

有多个前缀,所以可以包含多个这种类型的选项。

路由器通告网络前缀有两个作用。

-指示一个IP地址是否在接收方的本地链路上;

-用于地址的自动配置。

•链路网络前缀选项中包含一些子字段。

年月日星期三时分秒

2010102063837郑州大学信息工程学院李向丽59

链路网络前缀选项中包含的子字段

-L比特,在链路(On・Link)标志位。L=1时,表示此前

缀用于确定一个地址是否在接收方的链路上;L=0

时,表示发送方没有就前缀是否可用于在链路确定发

表意见。

-A比特,自治地址(Autonomous)配置标志。A=1

时,说明该前缀可以用于IPv6地址自动配置

-有效生存时间(ValidLifetime),前缀的有效时间。

等于OxFFFFFFFF时,有效生存时间是无限的。

-推荐生存时间(PreferredLifetime),仅用于地址自

动配置。表示前缀过时之前的剩余秒数。过时的前缀

虽然在有效生存时间的剩余时间里还可以使用,但主

机应该逐渐不再使用它。等于OxFFFFFFFF时,推荐

生存时间是无限的

2010年10月20日星期三6时38分38秒郑州大学信息工程学院李向丽60

节点X发送路由器请求报文发现路由器

•新连接了主机x,x立即发送路由器请求报文,主

机就能够主动获取路由器通告报文。

节点A节点X节点B路由器RA节点C节点D

你是能够使用的路由器?

•X的IPv6地址为FE80::0260:8C14:9252

•X的链路层地址为02・60・8C14・92・52

2010年10月20日星期三6时38分38秒郑州大学信息工程学院李向丽61

封装在IPv6分组中的

ICMPv6路由器请求报文

版本号=6传输类别流标识=0

有效载荷长度=16下一首部=58跳数极限=255

源IPv6地址:FE80::0260:8C14:9252

目的IPv6地址:FF02::2(多播指定地址-本地链路所有路由器多播地址)

类型=133代码=0校验和

保留(4字节)

选项代码=1选项数据长度=1

可选项(源节点X链路层地址:02-60-8C-14-92-52)

2010年10月20日星期三6时38分39秒郑州大学信息工程学院李向丽62

路由器RA发送路由器通告报文

通告自己的存在

我是路由器

2010年10月20日星期三6时38分40秒郑州大学信息工程学院李向丽63

封装在IPv6分组中的ICMPv6路由器通告报文

版本号=6传输类型1流标识=0

有效载荷长度下一首部二58跳数极限=255

源IPv6地址:4C00::0001:0000:0C09:4876

目的IPv6地址:FF02::l(本地链路所有节点多播地址)

类型二134代码=0校验和(2字节)

最大跳数MO保留路由器生存时间

可到达时间已过

口」到达的重发间隔

选项代码=1选项数据长度=1可选项(源链路层地址,路由器的

一个榜口的钵路层地址)

选项代码=5选项数据长度=1可选项(MTU大小)

选项代码=3选项数据长度=4_前缀长度|L|A

有效生存时间

推荐生存时间

保留

本地链路网络前缀:4C00::l:0:0:0

3.重定向报文

•对希望发送报文的主机来说,第一跳的选取是

非常重要的。

•为了正确选择第一跳,主机可以发送路由器请

求报文,并接收路由器通告报文,然后根据获

取的路由器信息来选取第一跳。

•这种方式,主机用来发现下一跳的过程简单,

主机虽然能够找到路由器,但不能保证这个路

由器就是到达特定目的主机的最佳第一跳路由

器。

2010年10月20日星期三6时38分42秒郑州大学信息工程学院李向丽65

IPv6分组选中的路由器RA

并非是最佳第一跳路由器

2010年10月20日星期三6时38分42秒郑州大学信息工程学院李向丽66

路由器RA向主机A发送重定向报文

主机A

■■

「「------

r以后发往主机B的分组

主机B

'应该发送给路由器RB

6

路由器RA路由器RB

网络

年月日星期三时分秒

2010102063844郑州大学信息工程学院李向丽67

封装在IPv6分组中的

ICMPv6路由器重定向报文

版本号=6传输类型流标识二0

有效载荷长度下一首部二58跳数极限=255

源IPv6地址:路由器RA的IPv6地址

目的IPv6地址:主机A的IPv6地址

类型二137代码=0校验和(2字节)

保留=0

目的地址:路由器RB的IPv6地址

被重定向的目的地址:目的主机B的IPv6地址

选项代码=2选项数据长度=1一国选项(目的链路层城址:.、

路由器RB的接口链路层地址)

选项代码=4

选项数据长度保留二0

在重定向报文的总长度不超过576字节的情况下,

把重定向的原IPv6分组的一部分复制在这里

2010年10月20日星期三6时38分44秒郑州大学信息工程学院李向丽

各个字段的含义

•类型字段,其值为137。

•代码字段,必须置为0。

•校验和字段,保存整个ICMPv6报文的检验和。

•保留字段,保留不用,其值必须等于0。

•目的地址字段,到达目的主机的最佳第一跳路由器的IPv6地

址。

­被重定向的目的地址字段,表示被重定向的原IPv6分组的目

的地址。本例中,是目的主机B的IPv6地址。

•可选项字段,包含了一些可选参数。

-第一个选项是目的链路层地址,在本例中是路由器RB的地址。由路

由器RA向源主机A提供这个信息。

-另一个选项代码为4,把重定向的原IPv6分组的一部份字段内容设置

在这里,以便源主机A利用这些信息

年月日星期三时分秒

2010102063846郑州大学信息工程学院李向丽69

5.5.3替代ARP

□替代ARP使用邻节点请求、邻节点通告报文和被请

求节点多播地址(ffO2::1:ffxx:xxxx)的组合。

2010年10月20日星期三6时38分46秒郑州大学信息工程学院李向丽70

1、使用邻节点请求、邻节点通告报文和被请求节点

多播地址,发现本地链路节点的链路层地址

节点AMAC链路层地址节点B

00:50:3e:e4:4c:0000:50:3e:e4:4b:01

ICMPv6(类型=135)邻节点请求报文

「源地址:FECO::1:O:O:1:A

节目的地址:FF02::l:FF01:欧被请求节点多播地址)

点激据:00:50:3e:e4:4c:00(节点A的链路屋地埴

,源链路层地址:00:50:3e:e4:4c:00源链路层J址选项

目的链路层地址:33:33:ff:01:00:0b^^^

<(IPv6多播映射地址)

I小弋6(类型=136)邻节点通告报文

目的地址:▲FECO::I:O:O:I:A

数据:00:50:3e:e4:4b:01(节点B的链路层地址)

源链路层地址:00:50:3e:e4:4b:01目的链路层土台址选项

2010年10月2a日目的链路层地址:00:50:3e:e4:4c:0071

由单播/任播地址形成被请求节点多播地址

2001:410:0:l::l:A

64位

单播/任播地址

地址前缀接口标识符

被请求节点多播地址

FF02:0000:0000:0000:0000:0001:FFXX:XXXX

FF02::l:FF01II:00

104位

2010年10月20日星期三6时38分48秒郑州大学信息工程学院李向丽72

以太网上的多播映射

128位

32位

IPv6被请求节点多播地址

FF02:0000:0000:0000:0000:0001:;FF01:000B

多播以太网前缀

33:33:FF:01:00:0B

II

-----------V-----------

以太网MAC地址

(48位)

2010年10月20日星期三6时38分49秒郑州大学信息工程学院李向丽73

、邻节点请求和邻节点通告报文的其它应用

口验证邻节点可达性:邻节点请求报文使用单播地

址,而不使用被请求节点多播地址。

□如果请求报文的发送者收到了目的主机回送的通告报

文,它认为目的主机是可达的。

口否则它认为目的主机不能到达。

口更新邻节点缓存:当一个节点改变链路层地址

后,使用所有节点多播地址FFO2::1,主动发送

“邻节点通告”报文,通告自己的链路层地址信息。

本地链路上节点的邻节点缓存用新的链路层地址

更o

2010年10月20日星期三6时38分50秒郑州大学信息工程学院李向丽74

5.5.4无状态地址自动配置

•根据路由器在本地链路上通告的前缀信息,本

地链路上的节点配置单播IPv6地址。

•无状态自动配置原理:

-根据物理地址,节点计算出自己的InterfaceID;

-确定IPv6网络前缀地址:向最近的路由器询问(路

由器请求报文)网络前缀。

2010年10月20日星期三6时38分50秒郑州大学信息工程学院李向丽75

1>IPv6的无状态地址自动配置步骤

•RFC2462定义了无状态自动配置的实现过程。

I链路地址o主机根据本地链路的

64比特网络前缀(FE80::/64),与EUL64本地接口

地址标识生成临时本地链路地址。

送邻节点请求报文和被请求节点多播地址进行重

复地址探测。

-如果接收到邻节点通告报文,表明已经有节点在使用该

临时本地链路地址,则地址自动配置停止;

-如果没有收到邻节点通告报文,表明临时本地链路地址

是唯一的,可以使用该本地链路地址。

2010年10月20日星期三6时38分51秒郑州大学信息工程学院李向丽76

•(3)5Si需要配置的信主机节点发送路由器

请求报文,请求路由器送路由器通告报文。

路由器通告报文包括主机节点配置需要的一些

信息,例如链路前缀、链路MTU、默认路由、

是否使用地址自动配置,以及由地址字段配置

协议所创建地址的有效期与优先级等。

•默认情况下,最多能发送3个路由器请求报文。

2010年10月20日星期三6时38分51秒郑州大学信息工程学院李向丽77

•⑷配置。当主机接收到路由器通告报文时,主

机根据报文内容来设置跳数限制字段、可到达时

间、重传定时器和MTU。

•如果存在前缀可选项,则进行下列处理:

-若“在链路"L标志为1,将报文中的前缀添加到前缀列

表中;

-若“自治地址”A标志为1,则用前缀和修改的EUL64

接口标识生成一个临时地址,通过重复地址检测来确

定地址的唯一性。

-如果路由器通告报文的“受管理的地址配置”M标志置

1,则用有状态地址字段配置协议获取其它地址。

-如果路由器通告报文的“其它有状态配置”O标志置1,

则用有状态地址自动配置协议获取其它的配置参数。

2010年10月20日星期三6时38分51秒郑州大学信息工程学院李向丽78

2、前缀通告

•前缀通告是无状态自动配置中的初始机制。

•前缀通告机制中,IPv6路由器使用所有节点多

播地址ff02::l/128,在本地链路上周期性(5分

钟)地发送路由器通告报文(134)。

•只有IPv6路由器能在本地链路上通告前缀,禁

止主机通告前缀。

年月日星期三时分秒

2010102063852郑州大学信息工程学院李向丽79

前缀通告工作机制

路由器A

节点A节点B

前缀为2001:410:0:1::/64

WW

FE80::250:3EFF:FEE4:4C0II本地链路II

ICMPv6(类型=134

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论