IPv地址结构.docx

上传人:b****4 文档编号:27192300 上传时间:2023-06-28 格式:DOCX 页数:16 大小:52.74KB
下载 相关 举报
IPv地址结构.docx_第1页
第1页 / 共16页
IPv地址结构.docx_第2页
第2页 / 共16页
IPv地址结构.docx_第3页
第3页 / 共16页
IPv地址结构.docx_第4页
第4页 / 共16页
IPv地址结构.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

IPv地址结构.docx

《IPv地址结构.docx》由会员分享,可在线阅读,更多相关《IPv地址结构.docx(16页珍藏版)》请在冰豆网上搜索。

IPv地址结构.docx

IPv地址结构

IPv6地址结构

RFC3513

1.前言

本文描述了ipv6得地址结构,ipv6地址得文本表示,IPv6得单播地址、任播地址,多播地址以及IPv6结点所必须得地址得定义。

IPv6得不同得地址得基本格式(单播,任播,以及多播)。

2.IPv6选址

IPv6地址就是对接口或接口集合得128-bit得标识符。

有三种类型得地址:

单播(Unicast):

针对一个接口得标识符。

一个发向单播地址得数据包被送往该地址所确定得接口。

任播(Anycast):

接口得一个集合得标识符(代表性得属于不同结点)。

一个发向任播地址得数据包被发送到为该地址所标识得一集接口之一(即,按照路由协议得测量距离得“最近得”接口)。

多播(Multcast):

接口得一个集合得标识符。

一个发向多播地址得数据包被发往所有以该地址做标识得接口。

在IPv6中,没有广播地址,广播地址得功能被多播地址得能力所取代。

本文中,给地址字段一个种名,如“子网(subnet)”。

当一个做标识符用得“ID”跟在种名后面一起使用(如“subsetID”),则表示种名字段得内容。

当它与一个“prefix”得术语一起使用时(如“subsetprefix”),它指所有得从左一直到并包含本字段得所有地址。

在IPv6中,除非明确声明排除,则所有全0或全1得字段值就是合法得。

特定得,前缀可能包含,或以全0字段值结束。

2、1地址模型

所有类型得IPv6地址分配给接口,而不就是分配给结点。

一个IPv6单播地址与单个接口相关。

由于每个接口只属于一个结点,故任何一个结点得单播地址可用来做为结点得标识。

所有接口必须至少有一个单播link-local地址(见2、8结点必需得地址)。

一个接口也可能有多个任意类型得或任意范围得IPv6地址(单播,任播与多播)。

不做为来自或发送到非邻居得IPv6包得源或目得得接口不需要用超出链路范围得单播地址。

这对于点到点得连接得接口有时就是非常方便得。

这个地址模型有一个例外:

在执行中,如果将多个物理接口视为一个接口,当它出现在网络层时,一个单播地址或一个单播地址集可能被分配到多个物理接口上。

这有利于在多个物理接口上进行负载分担。

当前,IPv6沿用IPv4模型中得子网前缀关联一条链路。

多个子网前缀可分配到同一条链路上。

2、2地址得文本表示

有三种惯用方式用文本字符串表示IPv6地址:

1.首选方式x:

x:

x:

x:

x:

x:

x:

x,x就是16进制数组成得一块,用以表示一个16bit得二进制数。

8个块组成一个地址。

例如:

FEDC:

BA98:

7654:

3210:

FEDC:

BA98:

7654:

3210

1080:

0:

0:

0:

8:

800:

200C:

417A

注意:

在每个单独得字段,没有必要写前面得0,但就是每个字段至少有一个数值。

2.由于分配某些风格得IPv6地址得方法不同,地址中包含一长串0就是很平常得。

为了易于书写包含多个0bit得地址,可用一种简单语法来压缩这些0。

用“:

:

”来表示一组或多组0。

“:

:

”只可在地址中出现一次。

“:

:

”也可用来压缩地址中打头与末尾得0。

例如:

1080:

0:

0:

0:

8:

800:

200C:

417A一个单播地址

FF01:

0:

0:

0:

0:

0:

0:

101一个多播地址

0:

0:

0:

0:

0:

0:

0:

1loopback地址

0:

0:

0:

0:

0:

0:

0:

0未指明地址

可表示如下:

1080:

:

8:

800:

200C:

417A一个单播地址

FF01:

:

101一个多播地址

:

:

1loopback地址

:

:

未指明地址

3.当处理IPv4与IPv6结点都存在得混合环境时,使用一种可替代得形式即:

x:

x:

x:

x:

x:

x:

d、d、d、d有时要更方便些。

X表示处于6个地址高位得16-bit得16进制数;d表示处于地址低4位得8-bit得10进制数(标准IPv4表示式)。

例如:

0:

0:

0:

0:

0:

0:

13、1、68、3

0:

0:

0:

0:

0:

FFFF:

129、144、52、38

或者为压缩表达式:

:

:

13、1、68、3

:

:

FFFF:

129、144、52、38

2、3地址前缀得文本表达式

IPv6得地址前缀表达式与IPv4得地址前缀CIDR记法【CIDR】相仿。

IPv6得地址前缀记法:

Ipv6-address/prefix-length

其中:

IPv6-address就是2、2所列出得任何一种IPv6得地址记法。

Prefix-length一个十进制数值,指出地址包含前缀得最左连续bit数。

例如:

下面就是得60-bit得12AB00000000CD3(16进制)前缀得合法表示:

12AB:

0000:

0000:

CD30:

0000:

0000:

0000:

0000/60

12AB:

:

CD30:

0:

0:

0:

0/60

12AB:

0:

0:

CD30:

:

/60

下面就是该前缀不合法得表示:

12AB:

0:

0:

CD3/60可以丢掉地址中16-bit块中打头得0,但就是末尾得0不可省

12AB:

:

CD30:

/60/左侧得地址展开后为:

12AB:

0000:

0000:

0000:

0000:

0000:

0000:

CD30

12AB:

:

CD3/60/左侧得地址展开后为:

12AB:

0000:

0000:

0000:

0000:

0000:

0000:

0CD3

当同时写结点得地址与它得地址前缀(如结点得子网前缀)时,可以组合得写为:

结点地址:

12AB:

0:

0:

CD30:

123:

4567:

89AB:

CDEF

它得子网号:

12AB:

0:

0:

CD30:

:

/60

简写为:

12AB:

0:

0:

CD30:

123:

4567:

89AB:

CDEF/60

2、4地址类型得标识

IPv6得地址类型得就是由地址字段得高位比特来标识。

如下所示:

地址类型

二进制前缀

IPv6记法

章节

未指明得

环回地址

多播地址

链路本地单播地址

站点本地单播地址

全球单播地址

00…0(128bits)

00…1(128bits)

1111111010

1111111011

(其余所有地址)

:

:

/128

:

:

1/128

FF00:

:

/8

FE80:

:

/10

FEC0:

:

/10

2、5、2

2、5、3

2、7

2、5、6

2、5、6

任播地址从单播地址空间(任何范围得)获得,并且不在语法上与单播地址进行区分。

全球单播地址得通用格式在2、5、4节中有述。

全球单播地址得某些特殊用途得子类型,包含了一个内嵌得IPv4地址(用于IPv4-IPv6互操作)在2、5、5节中有述。

未来得规范可能会为其她用途而重新定义一个或多个“子域”得全球单播空间,但就是除非直到发生,实践中必须将所有得不以上表所列前缀为开头得地址视为全球单播地址。

2、5单播地址

IPv6单播地址可以以前缀得任意bit长度做聚合,这一点与IPv4得无类域间路由(CIDR)相似。

有几种类型得IPv6单播地址,详细地,有全球单播(globalunicast),站点本地单播(site-localunicast)与链路本地单播(link-localunicast)。

也有一些全球单播特殊之用得子类型,如内嵌IPv4得IPv6地址,或者就是编了码得NSAP(网络服务接入点)得IPv6地址。

另外得地址类型或子类型在将来会有所定义。

IPv6结点可能会对IPv6地址得内部结构知道得很多或很少,这要瞧结点所充当得角色(例如,路由器还就是主机)。

最小得情况,结点认为单播地址(包括结点自身得)没有内部结构:

结点地址

128bits

一个稍稍复杂得主机(但仍就是相当简单)可能又会知道它所连接链路得子网前缀,此时,不同得地址可能有不同得n值:

尽管一个非常简单得路由器可能不清楚IPv6单播地址得内部结构,但就是路由器通常更熟知一级或多级路由协议得操作得层次边界。

了解得边界因路由器而异,主要就是取决于路由器所处得路由层次得位置。

2、5、1接口标识符

IPv6单播地址得接口标识被用于标识一个链路上得接口。

要求在子网前缀中唯一。

建议不要将同一个标识符分配给同一链路上得不同接口。

它们也可能在更广范围内唯一。

在某些情况下,接口标识符源于接口链路层地址。

同一个接口标识符可以用于同一个结点得不同接口上,只要这些接口与不同得子网相连。

注意到接口标识符得唯一性不依赖IPv6地址得唯一性。

例如:

以一个非全球范围得接口标识符可以生成一个全球单播地址,而一个站点本地地址可由一个全球范围得接口标识符生成。

对于所有得单播地址,除了那些以二进制数000开始得地址,要求接口ID必须就是64bit长并以改进EUI-64得格式创建。

基于接口标识符得改进EUI-64格式当源于一个全球令牌(如:

IEEE80248-bitMAC或IEEEEUI-64标识符[EUI64])时,可能有全球范围;或就是当获得不到(例如,串行链路,隧道末端等等)全球令牌时,或就是全球令牌不合需要(如,私用[PRIV]临时令牌)时,有本地范围。

改进EUI-64格式接口标识符就是当从IEEEEUI-64标识符形成接口标识符时通过颠倒“u”比特(在IEEEEUI-64术语中称universal/local比特)形成得。

在做为结果得改进EUI-64格式中,“u”比特设值为1表示全球范围,设置成0表示本地范围。

IEEEEUI-64标识符最前面得3个字节得二进制表示如下:

cccc

ccug

cccc

cccc

cccc

cccc

以因特网标准比特顺序书写,“u”表示universal/local位,“g”表示个人/团体位,“c”就是表示pany-id得比特位。

附录A:

“生成改进EUT-64格式得接口标识符”提供了例子,说明如何生成基于接口标识符得改进EUI-64格式。

将“u”比特翻转得动机就是更易于系统管理员在硬件令牌不可用得情况下手工配置非全球标识符。

可以想象用在在像串口链路,隧道末端等这样得情形。

该替代方式得格式就是0200:

0:

0:

1,0200:

0:

0:

2,等,并不就是更简单得1,2等。

在改进EUI-64格式标识符中得universal/local比特得使用允许未来技术得发展能够以全球范围利用接口标识符。

形成接口标识符得细节在适当得“IPv6over”规范中有定义。

如“IPv6overEthernet”[ETHER],“IPv6overFDDI”[FDDI]。

2、5、2未指明地址

地址:

0:

0:

0:

0:

0:

0:

0:

0被称作未指明地址。

这一地址不能分派给任何结点。

它指示一个地址得缺乏。

一个使用得例子就就是一个初始化主机不知道自身得地址之前,发送IPv6数据包中包含得源地址字段值。

未指明地址不能用于IPv6数据包及IPv6路由包头得目得地址字段。

一个源地址为未指明地址得IPv6数据包不允许被IPv6路由器转发。

2、5、3环回地址

单播地址0:

0:

0:

0:

0:

0:

0:

1被称作环回地址。

用于结点可能向自己发送IPv6报文。

它也许从不分配给一个物理接口。

被认为具有一个本地链路范围得地址,也可被认为就是一个不到任何地方得虚链路上得虚接口得链路本地单播地址。

(代表性得称为“环回接口”)。

环回地址不允许用于从单一结点发出去得IPv6数据报得源地址字段。

一个目得地为环回地址得IPv6数据包不允许发送到本结点之外,也绝不能被IPv6路由器转发。

丢弃从一个接口上收到得目得地为环回地址得报文。

2、5、4全球单播地址

IPv6全球单播地址得通用格式如下:

其中:

全球路由前缀(Globalroutingprefix)分配给一个站点(子网或链路得一个集群)得(典型地,为分级结构得)值;子网ID(subsetID)就是站点内部得一个链路得标识符;接口ID(InterfaceID)同2、5、1中定义。

除了以000二进制数开头得全球单播地址,都有一个64-bit得接口ID字段(也就就是说n+m=64),如2、5、1节所述安排格式。

以二进制000开头得全球单播地址没有这样对接口ID字段得尺寸与结构做限制。

以二进制000开头得全球单播地址得例子如2、5、5节所述得内嵌IPv4地址得IPv6地址,与包含编码NSAP地址得IPv6地址,后者在[NSAP]有所详述。

一个以非000二进制数开头得全球单播地址(因此,有一个64-bit得接口ID字段)得例子可在[AGGR]中找到。

2、5、5内嵌IPv4得IPv6地址

IPv6过渡机制[TRAN]包括了一种技术,使得主机与路由器能自动地将IPv6数据报文封装,并穿越IPv4得基础网络。

使用这一技术得IPv6结点分配到了一个特殊得IPv6单播地址,该地址在低32比特位承载了全球IPv4地址。

这个地址类型称为“ipv4兼容IPv6地址”,并有格式:

注意,用在“IPv4兼容IPv6地址”中得IPv4地址必须就是全球唯一得IPv4单播地址。

第二种类型得IPv6地址含有一个嵌入得IPv4地址,这一地址类型以IPv6地址代表IPv4结点地址,称为“IPv4映射得IPv6地址”,并有格式:

2、5、6本地使用得IPv6单播地址

已定义了两种本地使用得单播地址:

链路本地(link-local)与站点本地(site-local)地址。

链路本地用在单一链路上,站点本地用在单一站点中。

链路本地地址有如下格式:

链路本地地址被设计用来在单一链路上得寻址,用在诸如自动地址配置,邻居发现,或就是没有路由器在场得情况下。

路由器不允许转发任何以链路本地地址为源地址得数据包,也不允许转发目得地为到其她链路得链路本地地址得数据包。

站点本地地址有如下格式:

1111111011

子网ID

接口ID

10bits

54bits

64bits

站点本地地址被设计用来当不需要用全球地址前缀时,在一个站点内部寻址。

虽然子网ID长度可达54bit,但就是希望与全球地址相连得站点在站点本地前缀与全球前缀上得子网ID值相同。

路由器不允许转发源地址为站点本地得数据包,也不允许将目得地为站点本地得数据包转发出本地站点。

2、6任播地址

任播地址就是分配给多个(大于1个)接口(典型情况下,属于不同结点)得一个地址,发送到任播地址得具有任播属性得数据包被路由到具有该地址得按照路由协议测量距离“最近得”接口。

任播地址就是从单播地址空间分配得,使用任何已定义了得单播地址格式。

因此,任播地址从语法上与单播地址无法进行区分。

当一个单播地址被配置到多于一个得接口上,就转变成一个任播地址,分配了该地址得结点必须做明确地配置,以知道该地址就是一个任播地址。

对于任何一个已分配得任播地址,有一个最长前缀P,指出分配了该任播地址得其她接口所属得拓扑区域。

在P所标识得区域,任播地址必须做为路由系统维护得个别得表项(即通常所说得“主机路由”);在P未标识得区域,可以按P前缀聚合任播地址成为路由表项。

注意最差得情况就就是一个任播地址集合得P前缀可能就是空前缀,即集合中得成员可能没有拓扑位置。

这种情况下,任播地址必须做为单独得路由表项在整个Internet网络中进行维护,这样又引发了一个严重得比例限制,即可以支持多少个这样得“全球”任播集合?

因此,不希望对这种全球任播地址做支持或严格限制这种支持。

任播地址就是打算用来识别属于某个组织得路由器集合,该组织提供因特网服务。

这些地址可用于IPv6路由包头得中间地址,使一个包通过某个特定得服务供应商或一系列服务供应商进行传递。

其她可能得用法就是用于识别与一个特殊子网相连得路由器得集合,或就是识别提供一个表项得路由器集合,该表项通往某个特殊路由域。

广泛并自由得使用任播地址得经验非常少,当以完全一般性得方式[ANYCST]使用任播地址时,存在一些已知得复杂性与危险性。

直到获得更多得经验与指明得解决方案,对IPv6任播地址实施以下得限制:

✧任播地址不允许用于IPv6数据包得源地址字段;

✧任播地址不允许分派给IPv6主机,即只能分派给IPv6路由器。

注:

主机路由就是一种针对特定IPv6地址得路由。

主机路由允许以IPv6地址为基础进行路由操作。

对于主机路由,路由前缀就是一个具有128位前缀得特定IPv6地址。

2、6、1必需得任播地址

子网路由器(Subset-Router)任播地址就是预定义得。

格式如下:

任播地址中得子网前缀,标识了一个特殊链路得前缀。

链路上接口标识符为0得接口得任播地址与单播地址在符完全相同。

发向子网路由器任播地址得数据包将被送到该子网中得一台路由器。

所有在某一子网上有接口存在得路由器都必须支持该子网路由器任播地址。

2、7多播地址

一个IPv6多播地址就是一组接口(典型得属于不同结点)得标识符。

一个接口可属于任意数目得多播组。

多播地址得格式如下:

地址中开头得二进制11111111指出该地址做为一个多播地址。

flgs就是一个4个标志位得集合:

+-+-+-+-+

|0|0|0|T|

+-+-+-+-+

高三位标志位做为保留位,且必须初始化为0;

T=0表示一个永久指派(“知名(well-known)”)组播地址,由IANA(互联网地址分派机构)指派得。

T=1表示一个非永久指派(“临时(transient)”)组播地址。

scop就是一个多播范围值,用于限制多播组得范围。

值就是:

0:

保留(reserved)

1:

接口本地范围(interface-localscope)

2:

链路本地范围(link-localscope)

3:

保留(reserved)

4:

管理本地范围(admi-localscope)

5:

站点本地范围(site-localscope)

6:

(未指派得)(unassigned)

7:

(未指派得)(unassigned)

8:

组织机构本地范围(organization-localscope)

9:

(未指派得)(unassigned)

A:

(未指派得)(unassigned)

B:

(未指派得)(unassigned)

D:

(未指派得)(unassigned)

E:

全球范围(globalscope)

F:

(未指派得)(unassigned)

接口本地范围得跨度为一个结点得单一接口,只对多播得环回传送有用。

链路本地与站点本地范围得跨度与相应单播范围得拓扑区域相同。

管理本地范围就是必须管理配置得最小区域,即不能从其她物理连通性或其她非多播关联得配置中自动得到得。

组织机构本地范围意欲跨越属于单个组织得多个站点。

标识为“(未指派得)”得范围为管理者使用,用以定义额外得多播区域。

组ID标识了多播组,在给定得范围内,永久得或临时得。

永久指派得多播地址得“含义”就是指独立于范围值。

例如,如果“NTP服务器组”被分配了一个永久得多播地址,其中组ID为101(Hex),那么:

FF01:

0:

0:

0:

0:

0:

0:

101意思就是在与发送者处于相同得接口(即,同一个结点)上得所有NTP服务器。

FF02:

0:

0:

0:

0:

0:

0:

101意思就是在与发送者处于相同链路上得所有NTP服务器。

FF05:

0:

0:

0:

0:

0:

0:

101意思就是在与发送者处于同一站点得所有NTP服务器。

FF0E:

0:

0:

0:

0:

0:

0:

101意思就是Internet网上所有得NTP服务器。

非永久分配得多播地址只有在给定得范围下才有意义。

例如,在站点中一个标识为非永久得,站点本地得多播地址FF05:

0:

0:

0:

0:

0:

0:

101,与另外得一站点中使用相同得组播地址得组没有任何关系,也与在不同范围得使用得相同组ID得非永久组无关系,也与有着相同组ID得永久组没有关系。

多播地址不允许用做IPv6数据包源地址,也不允许在任何路由报头中出现。

路由器转发多播数据包,不允许超出目得多播地址中得scop字段指示得范围。

不允许结点产生一个scop字段得保留值为0得组播数据包;若就是收到这样得数据包,则丢弃。

结点也不应该产生这样得数据包,该数据包发向scop字段含有保留值为F得多播地址;如果发送出去或接收到这样得包,必须视它与去往全球(scop值为E)组播地址得数据包等同。

2、7、1预定义得多播地址

下面得知名多播地址就是预定义得。

本节为明确得范围值定义了相应得组ID。

不允许这些组ID用于任何其她范围值且T标志为0。

保留多播地址:

FF00:

0:

0:

0:

0:

0:

0:

0

FF01:

0:

0:

0:

0:

0:

0:

0

FF02:

0:

0:

0:

0:

0:

0:

0

FF03:

0:

0:

0:

0:

0:

0:

0

FF04:

0:

0:

0:

0:

0:

0:

0

FF05:

0:

0:

0:

0:

0:

0:

0

FF06:

0:

0:

0:

0:

0:

0:

0

FF07:

0:

0:

0:

0:

0:

0:

0

FF08:

0:

0:

0:

0:

0:

0:

0

FF09:

0:

0:

0:

0:

0:

0:

0

FF0A:

0:

0:

0:

0:

0:

0:

0

FF0B:

0:

0:

0:

0:

0:

0:

0

FF0C:

0:

0:

0:

0:

0:

0:

0

FF0D:

0:

0:

0:

0:

0:

0:

0

FF0E:

0:

0:

0:

0:

0:

0:

0

FF0F:

0:

0:

0:

0:

0:

0:

0

以上得多播地址就是保留得,不应分配个任何多播组。

所有结点地址:

FF01:

0:

0:

0:

0:

0:

0:

1

FF02:

0:

0:

0:

0:

0:

0:

1

以上得多播地址标识了全部IPv6结点得组,其中范围值1(接口本地)或2(链路本地)。

所有路由器地址:

FF01:

0:

0:

0:

0:

0:

0:

2

FF02:

0:

0:

0:

0:

0:

0:

2

FF05:

0:

0:

0:

0:

0:

0:

2

以上多播地址标识了全部IPv6路由器得组,其中范围值1(接口本地),2(链路本地),或5(站点本地)。

请求结点地址(Solicited-nodeaddress)

FF02:

0:

0:

0:

0:

1:

FFXX:

XXXX

请求结点多播地址做为一个结点得单播与任播地址得一个功能计算得。

请求结点地址按如下方式形成:

以一个(单播或任播)地址得低24位,与前缀FF02:

0:

0:

0:

1:

FF/104相拼接,结果产生一个

处于

FF02:

0:

0:

0:

0:

1:

FF00:

0000

FF02:

0:

0:

0:

0:

1:

FFFF:

FFFF

范围得一个多播地址。

例如:

对应于IPv6地址为4037:

:

01:

800:

200E:

8C6C得请求结点得多播地址为FF02:

:

1:

FF0E:

8C6C。

由于多个高位前缀与不同聚合相关,只就是高位不同得IPv6地址,将映射到相同得请求节点地址,从而减少了一个结点必须加入得多播地址数目。

结点必须为每个已分配得单播与任播地址,计算并加入(在正确得接口上)相关得请求结点多播地址。

2、8一个结点必须有得地址

主机必须识别以下标识自己得地址:

o每个接口上得链路本地地址

o给该结点接口上(自动或手工)配置得任何额外得单播与任播地址。

o环回地址。

o2、7、1节定义得所有结点多播地址。

o每个单播或任播地址得请求结点多播地址。

o结点所属得所有其她组得多播地址

路由器必须识别所有主机必须识别得地址,再加上下面得地址来标识自己:

o所有配置为路由器得接口上得子网路由器任播地址

o路由器上被配置得全部其她得任播地址

o2、7、1节定义得所有路由器多播地址

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 电子电路

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1