IPv6 OSPFv3协议详解(下)

转载链接:http://www.h3c.com/cn/d_200911/655330_97665_0.htm

姓名:罗学元    学号:21181214375     学院:广州研究院

【嵌牛导读】IPV6 OSPFv3协议

【嵌牛鼻子】IPV6 OSPFv3协议

【嵌牛提问】IPV6 OSPFv3协议具体包含哪些部分

书接上篇:IPv6 OSPFv3协议详解(上)

3.1 协议数据结构

主要的数据结构是不变的,分为:区域数据库,接口数据库,邻居数据库,链路状态数据库和路由表。Top-level数据结构与RFC2328 Section 5中列出的一致。对数据库主要做了下列修改:所有未知的LS类型和AS洪泛范围出现在顶层数据库中,这些内容过去只限于特定的区域或链路。AS-external-LSA是唯一具有AS洪泛范围的LSA。未知LS类型’U-bit’设为1。

3.1.1区域数据结构

OSPFv3区域数据结构包括了RFC2328 Section 6中定义的所有元素。此外,区域数据结构中包含了所有已知类型的LSA洪泛范围,包括:router-LSA、network-LSA、inter-area-prefix-LSA、inter-area-router-LSA和intra-area-prefix-LSA。区域数据结构中也包含未知LS类型的洪泛范围:area。实现MOSPF的路由器会在区域数据结构中包含group-menbership-LSA。7类LSA放在NSSA区域的数据结构中。

3.1.2接口数据结构

在OSPFv3中,路由器通过接口连接到链路。OSPFv3的接口数据结构相对于OSPFv2做了以下修改:

3.1.2.1  Interface ID

路由器的每个接口都分配了接口ID,用来唯一的标识这些接口。例如有些应有会用MIB-II IfIndex作为接口ID。接口ID出现在:该接口发送的Hello报文中;路由器向连接该接口的链路发送的link-local-LSA中;所属区域的Router-LSA中。链路上的DR发送的network-LSA中把本设备该链路上的接口ID作为link State ID。

3.1.2.2  Instance ID

每个接口都分配了Instance ID,缺省为0。只有当存在多个彼此独立的OSPF团体(community of OSPF Router)时,才有必要分配各自不同Instance ID。

例如,有两个完全独立的OSPF团体。给团体1分配Instance ID 0,即给所有的OSPF团体1接口分配Instance ID 0;对团体2分配Instance ID 1,即给其余的接口分配Instance ID 1。这样OSPF的发送和接收过程就能保证两个团体的独立。

3.1.2.3  本地链路范围的LSA列表

该列表包括了所有洪泛范围为本地链路范围的LSA,也包括这样一些LSA,他们是由连接到该链路的接口的接口数据结构中包含的链路产生或传播的。该列表包含了本链路的Link-LSA。

3.1.2.4  未知LS类型的LSA列表

该数据结构包括所有未知LS类型和’U-bit’设为0(对未知LS类型,认为该LSA传播范围为本地链路范围)。

3.1.2.5  接口IP地址

OSPFv3中几乎所有报文的源地址都是发送接口的本地链路地址,只有虚连接除外:在虚连接上发送的报文必须使用路由器的本地站点地址或IPv6全球地址作为接口IP地址。

3.1.2.6     链路前缀列表

路由器在Link-LSA中会通告本链路上的IPv6前缀列表。这样链路上的DR就可以在intra-area-prefix-LSA中通告这些地址。

OSPFv3中,每个路由器接口有唯一的metric,该metric代表了该接口发送报文的花费。OSPFv3的认证依赖于IPv6报文的认证头和IP封装安全有效载荷报头。OSPFv3通过这些IP报文头来确保路由交换的完整性和认证/保密。因此,关键字AuType和Authentication与OSPF接口无关。

接口状态,事件和接口状态机保持不变,,可参见RFC2328 Section 9.1-9.3。DR和BDR选举机制也保持不变,可参见RFC2328 Section 9.4。

3.1.3邻居数据结构

OSPFv3中邻居数据结构的作用不变:收集所有建立邻接关系需要的信息。每个数据结构绑定到单个的OSPF接口上。IPv6中定义的邻居数据结构与RFC2328中的定义有以下差异:

邻居接口ID

邻居数据结构必须记录邻居发出的Hello报文中的接口ID。在两种情况下,路由器发布的Router-LSA会包含邻居的接口ID:

1) 发送到p2p邻居;

2)  向DR通过与之相连的链路;

邻居IP地址

在OSPFv3中,邻居IP地址是对方的本地链路地址。虚链路除外。

DR

邻居选举出的DR用Router ID来标识,而不象过去用IP地址标识。

BDR

邻居选举出的BDR用Router ID来标识,而不象过去用IP地址标识。

邻居状态、事件和邻居状态机保持不变,可参加RFC2328 10.1、10.2、10.3。判断是否建立邻接关系不变,可参加RFC2328 10.4。

3.2报文处理

OSPFv3直接运行在IPv6网络层之上,因此,OSPFv3报文被封装在一个或多个IPv6报文头之后,而其紧邻的前一个报文头Next Header域值为89。

与OSPFv2一样,除了保持邻居关系的Hello报文外,其他的OSPF协议报文只发给建立邻接关系的邻居。OSPFv3报文类型和功能与OSPFv2报文一致,在标准OSPF报文头Type域中标明。

3.2.1发送协议报文

IPv6路由器发送OSPF协议报文时,如下填充标准IPv6 OSPF报文头的各个域:

版本

设为3。

类型

OSPF报文类型,如Hello,LSU等。

包长度

包括标准OSPF报文头在内的整个OSPF报文的字节数。

Router ID

标识发送报文的路由器本身。

Area ID

接收OSPF报文的区域号。

Instance ID

绑定发送OSPF报文的接口的OSPF实例号。

校验和

标准IPv6 16位报文完整校验和,覆盖了整个OSPF报文和IPv6伪头。

对OPSFv3协议报文的IPv6源地址和目的地址选择与OSPFv2一致,可参见RFC2328 Section 8.1。目的地址从建立邻接路由器的AllSPFRouters,AllDRouters和邻居IP地址中选取。在IPv6中,除了虚连接外,都是选择对方的本地链路地址。

发送LSR报文和LSAck报文不变,可参见RFC2328 Section 10.9,13.5。发送Hello报文详见本文3.2.1.1,DD报文发送详见本文3.2.1.2,发送LSU报文详见3.5.2。

3.2.1.1 发送Hello报文

OSPFv3中,发送Hello报文有如下改变:

1)    Hello报文必须包含发送接口的接口ID;

2)         由于OSPFv3运行基于链路而不是网段,因此Hello报文中不再携带子网掩码;

3)       被选举出的DR,BDR在Hello报文中用他们的Router ID标识,而不是接口地址。报文中将DR/BDR置为0.0.0.0表示DR/BDR尚未选出。

4)        扩展了Hello报文中的Option域,如下的一些位必须设置正确:

        a. 当且仅当发送接口连接到non-stub区,才设置’E-bit’;

        b.当且仅当发送接口连接到NSSA区,才设置’N-bit’;

        c.当且仅当接口抑制Hello报文发送,才设置’DC-bit’;

 Hello报文中Option域不能识别的位应清空。

NBMA链路上的Hello报文发送与OSPFv2一致,可参见RFC2328 Section9.5.1。

3.2.1.2 发送DD报文

OSPFv3中,DD报文的发送与OSPFv2有如下差异:

1)        扩展了Hello报文中的Option域,如下的一些位必须设置正确:

2)       当且仅当路由器转发按照MOSPF转发多播报文时,才设置’MC-bit’;

3)       当且仅当接口抑制Hello报文发送,才设置’DC-bit’;

 DD报文中Option域不能识别的位应清空。

3.2.2接收协议报文

当路由器收到OSPF协议报文时,他用接收接口对报文进行标记。对于配置虚连接的接口,可能无法立即找到标识接口。在下面的描述中,我们都假设报文不是来自虚连接链路。

处理OSPFv3报文前,必须对封装OSPFv3报文的IPv6报文头做如下检验:

1)      报文的目的IP地址必须是接收接口的单播地址,包括本地链路地址,或者是AllSPFRouters、AllDRouters的多播IP地址;

2)        紧邻的IPv6头必须在Next Header域指明OSPF协议(89);

3)        必须验证所有的IP验证头和IP封装安全载荷以保证OSPF路由交换的安全认证以及机密性;

4)         本地产生的OSPF报文不送往OSPF:必须检查IPv6源地址,以确保没有路由器自己产生的多播报文。

在处理完IPv6报文头后,紧接着处理OSPF报文头。OSPFv3报文头的字段必须服从如下规则,否则报文将被丢弃:

1)         类型域必须为3;

2)      标准的IPv6 16位完整校验和必须通过校验,该校验和覆盖了整个OSPF报文和IPv6伪头;

3)        区域ID必须通过校验:区域ID可以是如下的任一种情况,如果以下情况都不满足,应丢弃该OSPF报文:

4)      是接收接口的区域ID。与IPv4不同,IPv6中源地址不必与接收接口地址处于统一网段;

5)      为骨干区。这时,报文在虚连接上传送,接收路由器是ABR,报文中的源路由器Router ID是虚连接另一端的路由器Router ID。接收接口也配置在该虚连接中。通过以上检查后,路由器接收该报文并把该报文绑定到虚连接上。

6)       实例ID必须与接收接口实例ID相同;

7)        仅有DR或BDR接收目的IP地址为AllDRouters。

报文头处理完后,报文按照不同的OSPF报文类型来处理。

对Hello报文,送给Hello协议处理。其他报文则只在建立邻接的双方收发。这也意味着发送报文的路由器是active的邻居。

除了Hello报文外,其他报文的接收机制不变。

3.2.2.1 接收Hello报文

Hello报文的接收有如下变化:

1)         在所有类型的链路上,邻居由他们的OSPF Router ID来唯一的标识。除了虚连接外,路由器用接收报文的源地址作为邻居的IP地址;

2)        不含地址掩码;

3)       选出的DR,BDR用他们的Router ID来标识。

OSPFv3的路由表项与OSPFv2相似:包含IPv6地址前缀表项,ASBR表项。后者只是建立路由表过程中的一个中间结果。

为了保持SPF运算中每个区域的中间结果,每个区域有各自的路由表,路由表包含的表项如下:

1)         区域中的每个路由器:路由器由他们的Router ID来标识;这些路由表项包含到路由器的最短路径集,路由器用Intra-area-prefix-LSA发布自己产生的IP地址前缀时,会用到这些信息;对于ABR,这些信息也用于计算到区域内部地址前缀的路径。

2)     区域中每个transit连接:Network-LSA用到了Transit连接。Transit连接和Network-LSA都是用链路上DR的接口ID和DR的Router ID的组合来标识的。这些路由表项使得intra-area-prefix-LSA可以得到Transit Link的IP地址前缀。

一些OSPF路由表的域保持不变:capabilities(Router only),path type,cost,type 2 cost,link state origin,到同一目的地的等价路由,下一跳,发布路由器。

在OSPFv3中,路由表每项中的link-state origin域是直接或间接产生该路由项的router-LSA或network-LSA。

3.3.1 路由表查找

路由表查找(即决定指导IP转发的最佳路由项)保持不变。

3.4 链路状态广播

OSPFv3中,LSA头有少许的改变:LS类型域扩展了;Option字段放到了LSA中;一些LSA的格式变化了(router-LSA,network-LSA,ASE);一些LSA更名了(3类和4类路由分别更名为inter-area-prefix-LSA和inter-area-router-LSA);增加了两类LSA(Link-LSA和Intra-Area-prefix-LSA),如下图所示;LSA中去掉了Type of Service(TOS)字段。

                                                                                                图8 OSPFv2与OSPFv3 LSA类型对照

下面将详细介绍这些变化。

3.4.1    LSA报文头

在IPv4和IPv6中,OSPF LSA头都是20字节,但是20字节中的内容是不同的。其中,Advertising Router,LS Sequence Number,LS Checksum和length域不变,可参见RFC2328 Section12.1.1,12.1.5,12.1.6,12.1.7和A4.1。变化的域有:

Options:

LSA头中去掉了Option字段,在router-LSA,network-LSA,Inter-area-router-LSA和Link-LSA中加入了Option。Option字段从原来的8位扩展到24位,一些位的定义有了变化。另外,LSA中的每个前缀跟有一个单独的8位的PrefixOption域。

LS type:

该域从8位扩展到16位。前两位表示洪泛的范围,接下来的位表示对未知的LSA类型的处理。

Link State ID:

该字段长度保持32位不变,但是除了network-LSA和link-LSA外,其他LSA中的该值已经没有了地址意义。比如,一个支持IPv6的路由器在生成多个ASE时,可以给他们依次分配Link State ID:第一个分配0.0.0.1;第二个分配0.0.0.2等等。这时,Link State ID已不具备地址意义,只是为了区分单个路由器产生的多个LSA的一个标识。

对于network-LSA,Link State ID是DR在链路上的接口地址。当路由器产生link-LSA时,该LSA的Link State ID是该路由器在这个链路上的接口地址。

                                                                                                 图9  OSPFv3 LSA Header

LS Type: 有9种类型, 其中6和7两种不属于基本类型

         0x2001    Router-LSA

         0x2002    Network-LSA

         0x2003    Inter-Area-Prefix-LSA

         0x2004    Inter-Area-Router-LSA

         0x4005    AS-External-LSA

         0x2006    Group-membership-LSA

         0x2007    Type-7-LSA

         0x0008    Link-LSA

         0x2009    Intra-Area-Prefix-LSA

3.4.2链路状态数据库

与OSPFv2一样,OSPFv3中,一条LSA是由它的LS类型,Link State ID和发布路由器三个字段的组合唯一确定的。对同一条LSA的两个实例而言,通过LSA的LS Sequence Number来判定哪一条是最近发布的。当出现一样的情况,使用LS checksum和LS age来做判定。可参见RFC2328 Section 13.8。

OSPFv3中,Link-State database被分割为3个独立的数据结构:

1)         AS洪泛范围的LSA放在顶层数据(top-level date structure)结构中,包括已知的ASE和’U-bit’置1的LSA;

2)        区域洪泛范围的LSA放在appropriate area structure中,包括router-LSA,network-LSA,inter-area-prefix-LSA,inter-area-router-LSA和intra-area-prefix-LSA以及’U-bit’置1的LSA;

3)       本地链路洪泛范围的LSA,包括link-LSA和’U-bit’置0的未知类型LSA。

3.4.3生成LSA

重新生成LSA的过程不变:LSA的LS sequence number增加,LS age置0,重新计算checksum后加到链路状态数据库中,从特定的接口发布。

除了RFC2328 Section12.4中描述的触发重新生成LSA的事件外,OSPFv3增加了如下的触发事件/动作:

1)        路由器的某个接口状态改变:这是路由器可能需要(重新)生成或发布它的Link-LSA和一条或多条router-LSA和/或intra-area-prefix-LSA;

2)         链路的DR identity改变:路由器可能需要(重新)生成或发布该链路的network-LSA和一个或多个router-LSA和/或intra-area-prefix-LSA;

3)      邻居状态迁移到’full’或从’full’迁移。路由器可能需要(重新)生成或发布该链路的network-LSA和一个或多个router-LSA和/或intra-area-prefix-LSA;

4)        邻居的接口ID改变:路由器可能在相关区域内重新发布router-LSA,一条或条intra-area-prefix-LSA;

5)        链路上增加了一个新的前缀或删除了一个前缀:这使得路由器重新发布该链路上的link-LSA,如果这台路由器是链路上唯一的一台设备,它会重新生成intra-area-prefix-LSA;

6)      由于收到新的link-LSA而使得链路上的前缀集合改变:对于链路上的DR会生成一条新的intra-area-prefix-LSA。

下面的章节详细叙述了7类LSA的结构。

3.4.3.1 Router-LSA

----- 每个路由器生成,描述本路由器的链路状态和花费,只在路由器所处区域内传播

                                                                                            图10 Router-LSA格式

Type: 1--- PPP连接

     2---Transit网络

     3---保留

     4---VLink

Options: 与Hello报文中的Options相同

3.4.3.2 Network-LSA

----- 广播网络和NBMA网络的DR生成,描述本网段链路状态,只在DR所处区域传播, 列出了DR所连接的所有Router ID。 Link-LSA和Network-LSA的 LS ID 与 Interface ID 相同。

                                                                                                     图11 Network-LSA格式

Attached Router: DR所连接的Router ID

Options: 与Hello报文中的Options相同

3.4.3.3 Inter-Area-Prefix-LSA

----- 和OSPFv2中的Type-3 LSA(net sum_LSA)对应,该LSA由区域边界路由器ABR生成,在与该LSA相关的区域内传播。每一条Inter-Area-Prefix-LSA描述了一条到达本自治系统的、其他区域的IPv6地址前缀(IPv6 Address Prefix)路由。

                                                                                        图12 Inter-Area-Prefix-LSA格式

Metric: 这条路径的花费

PrefixLength: 前缀长度

PrefixOptions: 

           NU: No Unicast, 如果为1, 则不参与单播路由计算

           LA: 为1, 表示这个前缀为产生LSA的路由器的接口地址

           MC: 是否多播

            P: NSSA区域前缀被ABR重新公布时设为1

3.4.3.4 Inter-Area-Router-LSA

----- 和OSPFv2中的Type-4 LSA(asbr sum_LSA)对应,该LSA由区域边界路由器ABR生成,在与该LSA相关的区域内传播。每一条Inter-Area-Router-LSA描述了一条到达本自治系统的、其他区域的去往边界路由器ASBR的路由。

                                                                                           图13 Inter-Area-Router-LSA格式

Options: 与Hello报文中的Options相同

Metric: 到其他区域的路由器的花费

Destination Router ID: 目标路由器的Router ID

3.4.3.5 AS-external-LSA

----- 由自治系统边界路由器ASBR生成,描述到达其它AS的路由,传播到整个AS(Stub区域除外)。AS的缺省路由也可以用AS-external-LSAs来描述。

                                                                                                图14 AS-External-LSA格式

E: 为1时, 表明为Metric为第2类外部路由的花费

F: 为1时, LSA里带转发地址(Forwarding Address)

Forwarding Address: 转发地址, 数据流将经过这个地址

T: 为1时, LSA里带外部路由标记(External Route Tag)

External Route Tag: 外部路由标记, 用于ASBR间交流

Referenced LS type: 非0时, LSA带Referenced Link State ID

Referenced Link State ID: 所引用的LS ID, 用于ASBR间交流

3.4.3.6 Link-LSA

----- 路由器为每一条链路生成一个Link-LSA,在本地链路范围内传播。每一个Link-LSA描述了该链路上所联系的IPv6地址前缀,包含Link-local地址。

    1) 向链路上其他路由器发布自己的Link-local地址

    2) 发布这条链路上的IPv6前缀

    (注: Link-LSA的LS ID与发布此LSA的路由器的Interface ID相同, Network-LSA也是如此)

                                                                                                        图15 Link-LSA格式

各个域的意义同上

3.4.3.7 Intra-Area-Prefix-LSA

----- 每个Intra-Area-Prefix-LSA包含路由器上的IPv6前缀信息,stub网段信息或传输网段(Transit network)的网段信息,该LSA在区域内传播, 发布区域内的前缀。由于Router-LSA和Network-LSA不再包含地址信息,导致了Intra-Area-Prefix-LSAs的引入。

                                                                                                          图16 Intra-Area-LSA格式

# prefixes: 本条LSA包含的前缀数目

Referenced LS type, Referenced Link State ID, Referenced Advertising Router:

这3个参数表明引用的是哪条router-LSA 或 network-LSA,以及产生这条LSA的路由器。报文中的地址前缀信息即为相应路由器或网段/链路的地址前缀。

其余各个域的意义同上。

3.5洪泛

大多数的OSPFv2中的洪泛机制保持不变,可参见RFC2328 Section13。完全继承的部分有:

1)     判定更新的LSA实例,参见RFC2328 Section13.1;

2)      对自己产生的LSA的处理,RFC2328 Section13.4;

3)     发送LSAck报文,RFC2328 Section13.5;

4)       LSA的重传,RFC2328 Section13.6;

5)       LSAck的接收,RFC2328 Section13.7。

洪泛范围的修改和对未知LS类型的报文处理使得洪泛机制有了变化:LSU的收发必须考虑LSA的洪泛范围和’U-bit’设置;另外,由于IPv6中对LSA的类型和内容进行重组,在数据库中加入一条LSA也会触发不同的事件,下面对这些内容进行详细描述。

3.5.1接收LSU报文

LSU的接收与以前不同,这些变化是因为在LS type中包含了洪泛范围,以及处理未知LS类型报文的需要。在IPv4中,要检验LSU中的每一条LSA,检验的8个步骤详见RFC2328 Section 13。在OSPFv3中,步骤2和3有如下修改:

(2)检验LS type。丢弃下列LSA,转而处理LSU中的下一条:

1)        未知LS类型;

2)         在Stub区中收到洪泛范围为AS flooding scope或’U-bit’置1的LSA;

(3)LSA的洪泛范围置为’reserved’。丢弃该LSA,转而处理LSU中的下一条。

步骤5b和5d也做了修改,见3.5.2和3.5.3。

3.5.2发送LSU报文

发送LSU的步骤不变,可参见RFC2328 Section 13.3。在OSPFv3中,洪泛LSA的合法接口不同了,接口的选择基于以下因素:

1)       LSA的洪泛范围;

2)       对于洪泛范围为区域或本地链路的LSA,LSA与之关联的区域或接口;

3)       是否能够识别该LSA的LS类型;

4)        ‘U-bit’设置:

    a.  为0:未识别LS类型的LSA洪泛范围为本地链路范围;

     b. 为1:未识别LS类型的LSA被当作已知LS类型的LSA接收和洪泛;

因此,合法接口的选择有以下三种情况:

情况1:LSA的LS类型已知

此时,合法接口集取决于LS type中的洪泛范围。

对洪泛范围为’AS-flooding-scope’的LSA,合法接口集合包括除虚连接外的所有路由器接口,此外,ASE不从连接到Stub区域的接口发送。

    对洪泛范围为’area flooding scope’的LSA,合法接口集合包括连接到该区域的所有接口。

对洪泛范围为’link-local flooding scope’的LSA,合法接口只包含一个接口,就是路由器连接到这条链路上的接口,该接口也是收到这条LSA的接口。

情况2:未知LS类型且’U-bit’置0

认为该LSA洪泛范围为本地链路范围。合法接口只包含一个接口,就是路由器连接到这条链路上的接口。

情况3:未知LS类型且’U-bit’置1

这时,合法接口的选择与情况1类似,要排除连接到Stub区域的接口。

有时候,在将一条LSA加入指定邻居的链路状态重传列表时,还需要其他条件。如果路由器能识别LS Type而他的邻居不能(可以从邻居发出的DD报文的Option字段判定),并且此时LSA的’U-bit’置为0,当且仅当邻居是DR或BDR时,将该LSA加入邻居链路数据库重传队列。除了group-membership-LSA外,我们假定前面提到的9类LSA都能被所有的路由器识别。对于group-membership-LSA,只有MOSPF路由器才能识别,它的’U-bit’是置0的。仅当一个non-MOSPF邻居路由器是DR或BDR时,该邻居才转发这类LSA。

3.5.3在数据库中添加LSA

由于数据库被分为独立的三个部分,添加LSA也相应的分为三种情况:

1)        已知LS type或’U-bit’置1的自治系统洪泛范围的LSA被加入global OSPF数据结构中;

2)        已知LS type或’U-bit’置1的区域洪泛范围的LSA被加入appropriate area数据结构中;

3)        未知LS type且’U-bit’置0的LSA和本地链路洪泛范围的LSA被加入appropriate interface数据结构中。

在向链路状态数据库中加入LSA时,必须检查LSA的内容是否改变。当LSA的内容改变时,根据LSA类型的不同,路由表的如下部分必须重新进行计算:

1)Router-LSA,Network-LSA,Intra-Area-Prefix-LSA和Link-LSA:整个路由表需要重新计算;

2)Inter-Area-Prefix-LSA和Inter-Area-Router-LSA:通过这些LSA得到的到达目的的最优路由必须重新计算。当目的地是ASBR时,所有的ASE可能也需要重新计算;

3)AS-external-LSA:通过这些LSA得到的到达目的地的最优路由必须重新计算。

当得到一条LSA的新的实例时,该LSA的旧的实例必须从数据库中清除,同时所有邻居的重传请求队列中也应该去掉该LSA。

3.6自己产生的LSA

OSPFv3中,对自己产生的LSA的描述简化了:自己产生的LSA就是那些Advertising Router与自己的Router ID一致的LSA。

3.7  虚连接

除了以下情况外,OSPFv3对虚连接的定义不变:

1)       具有自治系统传播范围的LSA决不向虚连接邻居传播,也不在数据库交换的过程中将这样的LSA聚合起来传给虚连接邻居。

2)     接口范围必须是站点本地或全球范围地址,而不是被其他接口类型使用的本地链路地址。站点本地或全球范围地址才能用于虚连接的协议报文源地址;

3)        为了在路由计算时得到虚连接邻居的IPv6地址,邻居在Intra-Area-Prefix-LSA中向虚连接传播区域发布他的虚连接IPv6接口地址;

4)      虚连接被分配唯一的接口ID。这个ID用于虚连接上Hello报文的发布和router-LSA的发布。

路由表计算过程中,OSPFv3和OSPFv2的区别有:

1)       Router-LSA不发布前缀信息,改由intra-area-prefix-LSA发布。因此,在Stub区将对intra-area-prefix-LSA发布的前缀做检查;

2)        3类和4类LSA更名为inter-area-prefix-LSA和inter-area-router-LSA;

3)      地址信息不在link state ID中,在LSA体中;

4)        路由器在当区域中可以生成多条router-LSA,多条router-LSA之间用link state ID区分。在SPF运算中,这些router-LSA必须被当作一个整体;

路由表变化触发的事件以及等价路由保持不变。

3.8.1计算区域内路由

OSPFv3中对inter-area路由的计算有如下变化:

1)      3类和4类LSA分别更名为:inter-area-prefix-LSA和inter-area-router-LSA;

2)    地址前缀信息放在inter-area-prefix-LSA体中,不再放在link sate ID中;路由器的OSPFRouter ID 放在inter-area-router-LSA体中;

3)       Prefix Options中设置了’NU-bit’的前缀应被inter-area路由计算忽略;

当单个inter-area-prefix-LSA或inter-area-router-LSA改变时,运用RFC2328 Section16.5的机制,而不是重新计算整个路由表。

3.8.2检查Tansit区Summary-LSA

OSPFv3对这部分的修改参加Section3.8.3中对inter-area路由的部分。

3.8.3计算ASE

ASE的计算有如下修改:

1)   ASE的link state ID不再是网段信息。地址前缀信息被放在ASE体中;

2)     默认路由由ASE发布,其中的前缀长度为0;

3)   不通过forwarding address是否置0.0.0.0判断是否使用了forwarding address,判断external-LSA的F位。当且仅当设置了F位时,使用了forwarding address;

  a.  区域内的路由计算应该忽略设置了Prefix Options域’NU-bit’的前缀;

当单个ASE改变时,可以不对整个路由表进行重新计算。

3.9多接口共享链路

在OSPFv3中,路由器可能有多个接口连接到单个链路上,所有的接口都收发数据报文,但只有一个接口收发OSPF控制信息,具体实现如下:

1)  每个接口都有各自不同的接口ID。这样一来,路由器可以自动检测到何时多个接口连接到同一个链路上:当收到的Hello报文来自它本身的Router ID,但是接口ID不是接收接口的ID时;

2) 对单个链路OSPF关掉其他接口的OSPF控制报文收发功能,只留下该链路上的一个接口。对这个接口的选择取决于实现。例如,选择接口ID最大的接口。如果路由器是DR,那么这个接口的ID也是network-LSA的link state ID;

3) 单个链路上的多个接口都将出现在router-LSA中,每个接口也都将产生link-LSA。因此,单个链路上的多个接口都将参与到SPF运算中;

4)  如果选出的收发控制报文的接口失败,另一个接口将接替他的工作,从新建立邻接关系。通过其他接口停止收到该接口发出的hello报文,路由器可以侦测到接口失败。

你可能感兴趣的:(IPv6 OSPFv3协议详解(下))