IPv6学习笔记Word格式.doc
《IPv6学习笔记Word格式.doc》由会员分享,可在线阅读,更多相关《IPv6学习笔记Word格式.doc(15页珍藏版)》请在冰点文库上搜索。
l融合多项技术:
流标签选项,提供流qos;
提供省份验证和保密,IPsec功能;
l支持IP地址的自动配置
IPv6支持在不使用地址配置协议(如DHCPv6)的情况下能够对自己进行地址配置。
l移动IP
移动IPv6的主要目标就是使得移动节点总是通过家乡地址寻址,不管是连接在家乡链路还是移动到外地网络。
移动IPv6对于IP层以上的协议层是完全透明的,这使得移动节点在不同子网间移动时,运行在该节点上的应用程序不需修改或配置仍然可用。
三、IPv6Internet协议(RFC2460)
1、IPv6首部格式
关键字说明:
关键字
占用bit数
值/说明
Version
4
6,Internet协议版本号
TrafficClass
8
传输类别字段
FlowLabel
20
数据流标签
PayloadLength
16
无符号整数,IPv6有效载荷长度,也就是以八位组为单位,在这个包中IPv6首部后面的其余部分的长度
NextHeader
标识紧接在IPv6首部后面的下一个首部的类型
HopLimit
无符号整数,在每个传输此包的节点处递减1。
如果跳数限制减为零,就抛弃此包
SourceAddress
128
源地址
DestinationAddress
目的地址
IPv6首部实例
2、IPv6扩展首部(RFC1883)
在IPv6里,可选的网络层信息在一个独立的首部编码,放在包中IPv6首部与上层协议首部之间。
有这样几个为数不多的扩展首部,每个首部由不同的"
下一个首部"
的值来标识。
一个IPv6首部可以携带零个,一个或者更多的扩展首部,每个扩展首部由前一个首部中的"
字段标识。
(1)扩展首部介绍及其顺序
当在同一个包中使用多于一个扩展首部时,建议以如下顺序排列这些首部:
A.IPv6首部
B.逐跳选项首部(Hop-by-HopOptionsheader)
此扩展头必须紧随在IPv6头之后,它包含包所经路径上的每个节点都必须检查的可选数据。
到目前为止,只定义了一个选项:
巨型净荷选项。
该选项指明,此包的净荷长度超出了IPv6的16位净荷长度字段。
只要包的净荷(包括逐跳选项头)超出65535字节,就必须包含该选项。
如果节点不能转发此包,则必须返回一个ICMPv6出错报文。
C.目的地址选项首部(DestinationOptionsheader)
此扩展头包含只能由最终目的地节点所处理的选项。
目前,只定义了填充选项,将该头填充为64位边界,以备将来所用。
D.路由首部(Routingheader)
此扩展头指明包在到达目的地途中将经过的特殊的节点。
它包含包沿途经过的各节点的地址列表。
IPv6头的最初目的地址不是包的最终目的地址,而是选路头中所列的第一个地址。
此地址对应的节点接收到该包后,对IPv6头和选路头进行处理,然后将
包发送到选路头列表中的第二个地址。
如此继续,直至该包到达最终目的地。
E.分片首部(Fragmentheader)
此扩展头包含一个分段偏移值、一个“更多段”标志和一个标识字段,用于源节点对长度超出源端和目的端间路径MTU的包进行分段。
F.认证首部(Authenticationheader)
此扩展头提供了一种机制,对IPv6头、扩展头和净荷的某些部分进行加密的较验和计算。
G.封装安全有效载荷首部(EncapsulatingSecurityPayloadheader)
这是最后一个扩展头,不进行加密,它指明剩余的净荷已经加密,并为已获得授权的目的节点提供足够的解密信息。
H.目的地址选项首部
I.上层协议首部(upper-layerheader)
(2)扩展首部字段值及在报文中的存放
(3)IPv6选项说明
IPv6选项包含如下三个字段:
A.选项类型:
该字段为8位标识符,指明选项的类型。
字段的前2位表示目的节点在不能识别特定的选项时应该采取的动作,共有如下四种选项类型:
00:
忽略此选项,完成对扩展头其余部分的处理。
01:
丢弃整个包。
10:
丢弃包,不论该包的目的地址是否是组播地址,都向该包的源地址发送一个ICMP报文。
11:
丢弃包,如果该包的目的地址是单播地址或任意点播地址(即非组播地址),则向该包的源地址发送一个ICMP报文。
第3位指明在包从源地址到目的地址的传送过程中,选项数据的值是否可以改变。
若为0,则不允许改变;
若为1,则选项数据是可变的。
B.选项数据长度:
该字段为8位整数,表示选项数据字段的长度。
该字段最大值为255。
C.选项数据:
该字段包含选项特定的数据,最大长度为255字节。
四、IPv6地址的表示方法(RFC2373)
1、IPv6地址的文本表示
用文本串表示的IPv6地址有三种规范形式:
(1)优先选用的形式为x:
x:
x,其中x是8个16位地址段的十六进制值。
例如:
FEDC:
BA98:
7654:
3210:
FEDC:
3210
1080:
0:
8:
800:
200C:
417A
个别字段中前面的0可以不写,但是每段必须至少有一位数字。
(2)在分配某种形式的IPv6地址时,会发生包含长串0位的地址。
为了简化包含0位地址的书写,指定了一个特殊的语法来压缩0。
使用“:
:
”符号指示有多个0值的16位组。
“:
”符号在一个地址中只能出现一次。
该符号也能用来压缩地址中前部和尾部的0。
用下面的例子来说明:
417A单播地址
FF01:
101组播地址
1回返地址
0未指定地址
可用下面的压缩格式表示:
:
101组播地址
未指定地址
(3)当谈到IPv4和IPv6节点这样一个混合环境时,有时更适合于采用另一种表示形式:
d.d.d.d,其中x是地址中6个高阶16位段的十六进制值,d是地址中4个低价8位段的十进制值(标准IPv4表示)。
举例说明:
13.1.68.3
FFFF:
129.144.52.38
写成压缩形式为:
FFFF.129.144.52.38
2、IPv6地址前缀的文本表示
IPv6地址前缀的表示方式和IPv4地址前缀在CIDR中的表示方式很相似。
一个IPv6地址前缀可以表示为如下的形式:
IPv6地址/前缀长度
其中,IPv6地址是前面三种形式的任何形式的IPv6地址。
而前缀长度是组成前缀的十进制值,说明地址最左边的连续的地址位的长度。
例如,60位长的前缀12AB00000000CD3(十六进制)可用下面的合法格式来表示:
12AB:
0000:
CD30:
0000/60
CD30:
0/60
/60
但是,下面的表示方式是不合法的。
CD3/60在任何一个16位段的地址块中,可以省略前部的0。
但不能省略尾部的0。
CD30/60/左边的地址会展开成
000:
CD30
CD3/60/左边的地址会展开成
0CD3
当书写节点地址和它的子网前缀两者时,可以组合成如下表示:
节点地址:
123:
4567:
89AB:
CDEF
和它的子网号:
可以缩写成为:
CDEF/60
五、IPv6地址的划分(RFC2373、2374)
IPv6地址整体划分为三种:
单播地址(UnicastAddresses)、任意点播地址(AnycastAddresses)和组播地址(MulticastAddresses)。
不再有广播地址。
一个IPv6地址的具体类型是由地址的前面几位来指定的。
包含这前面几位的可变长度字段称为格式前缀(FP)。
这些前缀的初始分配如下:
分配前缀(二进制)占地址空间的百分率
————————————————————————————
保留000000001/256
未分配000000011/256
为NSAP地址保留00000011/128
为IPX地址保留00000101/128
未分配00000111/128
未分配000011/32
未分配00011/16
可集聚全球单播地址0011/8
未分配0101/8
未分配0111/8
未分配1001/8
未分配1011/8
未分配1101/8
未分配11101/16
未分配111101/32
未分配1111101/64
未分配11111101/128
未分配1111111001/512
链路本地单播地址11111110101/1024
站点本地单播地址11111110111/1024
组播地址111111111/256
注:
(1)未指定地址、回返地址,和嵌入IPv4地址的IPv6地址的分配在格式前缀空间0000-0000以外。
(2)除了组播地址(11111111)外,格式前缀空间001到111,在EUI-64格式中都要求必须有64位接口标识符。
这样的分配方案支持可集聚地址、本地用地址和组播地址的直接分配,并有保留给NSAP地址和IPX地址的空间。
其余的地址空间留给将来用。
可用于已有使用的扩展(如附加可集聚地址等)或者新的用途(如将定位符和标识符分开)。
地址空间的15%是初始分配的,其余85%的地址空间留作将来使用。
单播地址和组播地址是由地址的高阶字节值来区分的:
值为FF(11111111)标识一个地址为组播地址,其他值则标识一个地址为单播地址。
任意点播地址取自单播地址空间,和单播地址在语法上是无法区分的
1、任意点播地址(AnycastAddresses)
IPv6任意点播地址是分配给一组接口,将数据发送给该组唯一的一个接口,主要给路由器使用。
其具有以下特点:
(1)任意点播地址从单播地址空间分配而来,可用任何一种规定的单播地址格式,在地址语法上和单播地址无法区分;
(2)标识一组接口;
(3)数据包最终发一大批到该组内唯一一个接口;
(4)该接口是路由协议认为距离发送方最近的一个;
(5)不同路由协议对距离的衡量标准不同;
(5)一般子网路由器任意点播地址表示形式为,除子网前缀(n位)外,其他128-n均为0,即:
|n位|128-n位|
+------------------------------------------------+----------------+
|子网前缀|00000000000000|
2、组播地址(MulticastAddresses)
组播地址格式:
|8|4|4|112位|
+-------+----+----+---------------------------------------------+
|11111111|flgs|scop|组号|
+--------+----+----+---------------------------------------------+
Flags(4位):
前面3位为保留位,初始设置为0。
第四位为0指示一个永久分配的(熟知的)组播地址,由全球Internet编号机构进行分配;
第四位为1指示一个非永久分配(临时)的组播地址。
Scop(4位):
组播范围值,用来限制组播组的范围。
该字段的可能值如下表:
0保留8组织本地范围
1节点本地范围9(未分配)
2链路本地范围A(未分配)
3(未分配)B(未分配)
4(未分配)C(未分配)
5站点本地范围D(未分配)
6(未分配)E全球范围
7(未分配)F保留
已经预定的组播地址如下:
1节点本地范围所有的节点组播地址一个节点上的所有接口
FF02:
1链路本地范围所有的节点组播地址IPv4中的广播Link上的所有节点
2节点本地范围所有路由器组播地址
2链路本地范围所有路由器组播地址
FF05:
2站点本地范围所有路由器组播地址
1取代了IPv4中各类广播地址
组播地址有以下特点:
(1)地址以11111111开始;
(2)标识一组(0-多个)接口;
(3)数据包发送到该组内所有的接口;
(4)一个数据包发送出去,对方可能是一组,这一组可能是0-多个接口,只要是这个组里的,都可以收到。
3、单播地址(UnicastAddresses)
(1)单播地址特点:
(a)标识单个接口(Interface);
(b)负载均衡场景下多个接口可以使用同一个单播地址;
(c)数据包发送给单个接口;
(d)一个数据包发出去,给一个单独的目标接口。
(2)链路本地地址:
Link-LocalAddress,不跨路由器的,以FE80开头,设计链路本地地址的目的是为了用于诸如自动地址配置、邻居发现或无路由器存在的单链路的寻址。
(3)站点本地地址Site-LocalAddress,相当于IPv4的私有地址,可跨路由器,但不可在公网使用。
范围:
FEC0-FEFF,开头为FEC,FED,FEE,FEF的地址都是站点本地地址。
站点本地地址的设计目的是为了用于无需全球前缀的站点内部寻址。
路由器不应转发站点外具有站点本地源或目的地址的任何包。
(4)可集聚全球单播地址
可集聚全球单播地址格式表示如下:
|3|13|8|24|16|64bits|
+--+-----+---+--------+--------+--------------------------------+
|FP|TLA|RES|NLA|SLA|InterfaceID|
||ID||ID|ID||--+-----+---+--------+--------+--------------------------------+
<
--PublicTopology--->
Site
<
-------->
Topology
<
------InterfaceIdentifier---->
其中:
FP为格式前缀(001);
TLAID为顶级集聚标识符,由国际组织分配;
RES保留为将来用;
NLAID为下一级集聚标识符,由申请机构自己分配;
SLAID为站点级集聚标识符,相当于子网ID;
INTERFCEID为接口标识符;
可集聚全球单播地址,相当于:
以001开头然后是45位的globalroutingprefix全球方位路由,后面是16位的子网ID,最后是64位的接口ID。
六、IPV6无状态地址自动配置(RFC2462)
IPv6同时定义了无状态与状态自动配置机制。
无状态自动配置不需要对主机进行任何手动的配置,对路由器的配置也是最少的(如果有的话),也不需要任何额外的服务器。
无状态机制可以使主机把本地信息同路由器发出的通告消息结合来产生一个地址。
路由器通告一个前缀,这个前缀用以标识关联到链路的子网,而主机则产生一个“接口标识符”,这个“接口标识符”在本子网上唯一地标识了该接口。
主机地址就是这两部分的结合。
如果没有路由器,主机只能产生本地链路地址。
但是本地链路地址已经足以让主机与本地链路上的其它节点通信了。
1、接口标识符的生成(从MAC地址到IPv6地址)
要从MAC地址获取IPv6地址,必须首先将IEEE802地址映射到EUI-64地址,然后对U/L位求反。
本机MAC为8C-89-A5-25-16-53,首先,通过在第三个和第四个字节之间插入FF-FE将其转换为EUI-64格式,结果是8C-89-A5-FF-FE-25-16-53,对U/L位(首字节中的第七位)求反。
首字节的二进制形式为10001100。
对第七位求反后,变为10001110(0x8E)。
最后的结果是8E-89-A5-FF-FE-25-16-53,当转换为冒号十六进制符号时,成为接口标识符8E89:
A5FF:
FE25:
1653。
结果是,对应于MAC地址8C-89-A5-25-16-53的网络适配器的链接本地地址是FE80:
8E89:
七、IPV6有状态地址自动配置(DHCP等相关协议RFC)
八、IPv4/IPv6双栈方法
IPv4/IPv6双栈节点与其他类型的多栈节点的工作方式相同。
链路层接收到数据段,拆开并检查包头。
如果IPv4/IPv6头中的第一个字段,即IP包的版本号是4,该包就由IPv4栈来处理;
如果版本号是6,则由IPv6栈处理。
节点可以与任何IPv4节点或IPv6节点互操作,但只限于与其有连接能力的网络。
与双栈节点D互操作的节点包括:
网络A和网络B中的IPv4节点或IPv6节点、网络M中的所有IPv4节点,但D不能和网络C中的节点互操作。
网络C是严格的IPv6网络,从网络A到网络C没有IPv6路径。
链接网络A和网络M的路由器只支持IPv4,因此无法通过网络M向网络C转发IPv6包。
九、附录:
附1:
IPv6相关RFC:
附2:
WindowsXP下配置IPv6常用命令:
1.ipv6install/uninstall:
安装/卸载IPv6协议栈
2.ipv6if[ifindex]:
查看所有的支持IPv6的接口及其相关信息
3.ipv6aduifindex/address[lifevalidlifetime]:
给端口ifindex配置IPv6的地址。
4.ipv6rt:
查看路由表
5.ipv6rtuprefixifindex[/address][lifevalidlifetime]
这条命令是用来处理IPv6路由表的。
注意,这里的prefix是采用的"
address/prefixlen"
的形式。
例如,如果要添加缺省路由,网关为3ff