OSPF协议的LSDB分析和路由计算.docx

上传人:b****8 文档编号:28045216 上传时间:2023-07-07 格式:DOCX 页数:50 大小:176.83KB
下载 相关 举报
OSPF协议的LSDB分析和路由计算.docx_第1页
第1页 / 共50页
OSPF协议的LSDB分析和路由计算.docx_第2页
第2页 / 共50页
OSPF协议的LSDB分析和路由计算.docx_第3页
第3页 / 共50页
OSPF协议的LSDB分析和路由计算.docx_第4页
第4页 / 共50页
OSPF协议的LSDB分析和路由计算.docx_第5页
第5页 / 共50页
点击查看更多>>
下载资源
资源描述

OSPF协议的LSDB分析和路由计算.docx

《OSPF协议的LSDB分析和路由计算.docx》由会员分享,可在线阅读,更多相关《OSPF协议的LSDB分析和路由计算.docx(50页珍藏版)》请在冰豆网上搜索。

OSPF协议的LSDB分析和路由计算.docx

OSPF协议的LSDB分析和路由计算

产品名称Productname

H3CS9500

产品版本Productversion

Total35pages共35页

V100R003

 

OSPF协议的LSDB分析和路由计算

 

拟制:

日期:

审核:

日期:

审核:

日期:

批准:

日期:

 

华为三康技术有限公司

Huawei-3ComTechnologiesCo.,Ltd.

版权所有XX

Allrightsreserve

目录

1OSPF协议的LSDB分析和路由计算7

1.1OSPF的路由形成概述7

1.2组网图7

1.3OSPF的启动8

1.3.1启动OSPF8

1.3.2接口使能OSPF9

1.4LSDB详解10

1.5RouterLSA11

1.6NetworkLSA13

1.7由一、二类LSA计算域内路由14

1.7.1域内路由计算1:

计算最短路径树14

1.7.2域内路由计算2:

把存根网络作为叶子加入最短路径树24

1.8SummaryLSA25

1.8.1SummaryNetworkLSA25

1.8.2SummaryASBRLSA27

1.9AS-external-LSA27

1.10计算区域外部路由28

1.10.1根据SummaryLSA计算区域外部路由28

1.10.2根据AS-external-LSA计算区域外部路由29

2FAQ31

2.1初学OSPF,看哪些文章好?

31

2.2什么是接口状态,什么是邻居状态,它们之间有什么关系?

31

2.3建立邻居关系需要多少时间?

34

2.4当存在连续的两个非骨干区域时,最边缘的区域怎样建立虚连接?

34

2.5在NSSA区域中的ABR,没有引入路由的情况下,为什么其声称自己是ASBR?

34

2.6当NSSA区域有多个ABR时,谁进行type7类LSA到type5类LSA的转换?

34

2.7LSA和报文的关系34

2.8报文的作用35

2.9DD报文中的I/M/MS位解释35

2.10有关路由COST的问题35

图目录

图1OSPF组网图8

图20.1.1.1的area0上的最短路径树115

图30.1.1.1的area0上的最短路径树217

图40.1.1.1的area0上的最短路径树318

图50.1.1.1的area0上的最短路径树420

图60.1.1.1的area0上的最短路径树521

图70.1.1.1的area0上的最短路径树623

图80.1.1.1的area0上的最短路径树724

图9邻居状态机转换图31

图10OSPF的邻居状态截图32

图11接口状态机转换图33

图12OSPF的接口状态截图33

图目录

表1五种LSA类型10

表2交换机接口的四种连接类型12

表3最短路径树计算所需的节点数据结构15

OSPF协议的LSDB分析和路由计算

关键词:

OSPF,LSDB,路由

摘要:

本文举例说明了OSPF协议中的各种LSA的组成、LSDB形成以及路由计算过程。

缩略语:

缩略语

英文全名

中文解释

OSPF

OpenShortestPathFirst

开放最短路径优先

LSDB

LinkStateDatabase

连接状态数据库

LSA

LinkStateAdvertisement

连接状态宣告

AS

Autonomysystem

自治系统

ABR

Areaborderrouters

区域边界路由器

ASBR

ASboundaryrouters

自治系统边界路由器

DR

DesignatedRouter

指定路由器

BDR

BackupDesignatedRouter

备份指定路由器

DROther

DesignatedRouterOther

非DR和BDR的路由器

 

OSPF作为优秀的IGP路由协议之一,本身特别复杂,概念太多,好在我司已有不少优秀的OSPF方面的文章,内容丰富详细,颇具参考价值。

正也因为如此,这里只是结合自己的学习过程,把作为OSPF路由测试新手测试时遇到的一些问题和心得,拿出来和大家分享一下,请指正。

1OSPF协议的LSDB分析和路由计算

1.1OSPF的路由形成概述

首先从简要介绍一下OSPF协议的路由计算过程:

1、交换机间互发hello报文建立邻接;

2、邻接路由器间发送update报文,传播第一、二类LSA到全区域;

3、各路由器根据第一、二类LSA获得网络拓扑、计算得到区域的内部路由(每个区域单独计算);

4、ABR根据步骤3计算得到的各域内路由为骨干区域生成第三、四类LSA,通过update报文向骨干区域传播;

5、ASBR发送update报文,向整个AS发布第五类LSA;

6、各路由器根据第三、四、五类LSA继续计算域间路由。

1.2组网图

本文将以图1的组网图来详细描述OSPF的LSDB的形成和OSPF路由计算过程。

图1OSPF组网图

组网说明:

网络由五台路由器8505-1、8505-2、8505-3、8508和8512组成,区域划分、路由器的routerid和各网段IP地址都已经在图上标注清楚。

为了便于记忆识别,各路由器的接口IP地址的最后一位与自己的routerid的最后一位保持一致。

例如:

8505-2的routerid为0.1.1.1,那么它在网段192.168.100.0/24上的接口的IP就是192.168.100.1/24,同理8508(routerid为0.2.2.2)在该网段上的接口的IP为192.168.100.2/24。

另外,area2为nssa区域,area3通过area1和area0建立虚连接。

1.3OSPF的启动

1.3.1启动OSPF

使交换机运行OSPF用下面这条命令:

ospf[process-id[routeridrouterid|vpn-instancevpn-instance-name]]

process-id:

OSPF进程号,取值范围为1~65535。

如果不指定进程号,将使用缺省进程号1。

process-id只具有本地意义。

推荐使用ospfprocess-idrouteridrouterid的方式启动OSPF,这样该OSPF进程的routerid将不会随路由器的其它参数的改变而改变。

例如:

在8505-2上配置如下:

ospf100routerid0.1.1.1

说明:

一、OSPF的routerid选择优先级依次如下:

1.建立OSPF进程时候配置的routerid,无条件使用;

2.RM(路由管理)配置的routerid(通过命令行routeridrouterid配置,在没有别的进程使用它的情况下);

3.接口地址(loopback优先,没有被别的进程使用的优先)。

因此当建立OSPF进程时如果没有明确指定routerid,则会存在随机选择routerid的情况,对以后的路由配置、管理带来障碍。

二、使用命令行routeridrouterid设定routerid时,routerid必须设置为有效的IP地址。

但是建立OSPF进程时配置的routerid可以使用诸如0.0.0.1的IP地址:

ospf102routerid0.0.0.1

1.3.2接口使能OSPF

仅仅在交换机上启动OSPF进程是不能和其它交换机建立OSPF邻居、交换路由信息的。

这时必须首先在选定区域内使用network命令指定网段,以间接指定要运行OSPF的接口。

networkip-addressip-mask

ip-address:

接口所在网段地址。

ip-mask:

IP地址通配符(类似于IP地址的掩码取反之后的形式),也支持IP地址掩码输入。

通常一个网段指定一个vlan虚接口,这样该vlan虚接口就可以发送接收OSPF协议报文了。

例如:

在8505-2上area0视图下配置vlan虚接口所在网段后,8505-2和8508相连接的接口就开始发送接受OSPF报文了:

network192.168.100.00.0.0.255

说明:

一、为什么不是通过指定接口本身来使能OSPF?

答:

因为OSPF的区域参数中有个地址范围列表(Listofaddressranges),网络和主机是否属于一个区域,取决于其地址是否在区域所定义的某个地址范围之内。

详见rfc2328附录“C.2区域参数”。

二、为了在一个接口上运行OSPF协议,必须使该接口的主IP地址落入该命令指定的网段范围。

如果是该接口的从IP地址落入该命令指定的网段范围,则该接口不会运行OSPF协议。

当该vlan内没有up状态端口时,该接口也不会运行OSPF协议,displayospfprocess-idbrief也看不到该接口。

三、当network命令指定的网络地址范围大于vlan虚接口所在网络地址范围时,发布的是vlan虚接口所在的网络地址;若存在两个接口同时符合network指定的网段时,这两个接口同时使能OSPF,但发布的网段同样也只是它们各自所在的网段。

1.4LSDB详解

各路由器形成邻接后,各区域路由器彼此间通过update报文同步LSA。

在8505-2上键入命令displayospf100lsdb,显示area0中的LSA:

TypeLinkStateIDAdvRouterAgeLenSequenceMetricWhere

Stub201.0.0.00.1.1.11124240x00SpfTree

Rtr0.1.1.10.1.1.11124600x800000ce0SpfTree

Rtr0.5.5.50.5.5.5643360x800000040SpfTree

Rtr0.2.2.20.2.2.21752480x800001c10SpfTree

Rtr0.3.3.30.3.3.3640600x800001fc0SpfTree

Net192.168.100.20.2.2.21752320x8000000d0SpfTree

Net192.168.110.10.1.1.11124320x800000090SpfTree

Net192.168.120.20.2.2.21752320x800000080SpfTree

SNet204.0.0.00.2.2.2644280x800000f714Uninitialized

SNet192.168.130.00.2.2.2644280x8000012b13Uninitialized

SNet192.168.140.00.5.5.5648280x8000000412Uninitialized

SNet192.168.140.00.3.3.3645280x8000009011Uninitialized

SNet205.0.0.00.5.5.5648280x800000041Uninitialized

ASExternalDatabase:

TypeLinkStateIDAdvRouterAgeLenSequenceMetricWhere

ASE9.0.0.00.2.2.2926360x800000351Uninitialized

ASE19.0.0.00.1.1.1242360x8000003c1AseList

先来解释一下LSDB中各个字段的含义。

Type:

LSA的类型,rfc2328共定义了五种LSA,和85实现的LSA类型一一对应,见下表。

各个LSA的详细论述见下文。

表1五种LSA类型

85LSA

rfc2328定义的LSA

所描述的目的地

传播范围

LinkStateID

Rtr

RouterLSA

路由器

域内

始发的RouterID

Net

NetworkLSA

网络

DR在该网段的接口IP

SNet

SummaryNetwork

网络

域间

被通告的网络的IP

ABR

SummaryASBR

路由器

被通告的ASBR的RouterID

ASE

ASExternalLSA

网络

AS内

目的地IP

LinkStateID:

连接状态标识符,各LSA所表达的意义不同,其LinkStateID内容也不同,见上表。

AdvRouter:

发布该LSA的路由器的routerid。

Age:

LSA已经存在时间,单位为秒。

LSA最大存活时间为3600秒,更新时间为1800秒;也就是说如果由路由器自己生成的LSA的LS时限达到了1800,就需要生成LSA的新实例,即使LSA体中的内容完全一样(除了LSA头部)。

Len:

LSA的长度。

Sequence:

LSA的生成序列号,包含同一内容的LSA独立编号,从0x80000001起,至0x79999999止,往复循环。

Metric:

发布路由器到发布网段的花费。

Where:

是我司OSPF协议的具体实现细节,涉及LSA的存放,与理解协议本身关系不大,一般可以不理会该域。

那么这些LSA是如何形成的?

且看下文解说:

)。

1.5RouterLSA

RouterLSA是第一类LSA。

首先看看0.1.1.1生成的RouterLSA:

TypeLinkStateIDAdvRouterAgeLenSequenceMetricWhere

Rtr0.1.1.10.1.1.11124600x800000ce0SpfTree

生成时间:

当0.1.1.1和其它路由器建立邻接关系后,0.1.1.1就会生成并发布RouterLSA。

用displayospf100lsdbrouterverbose命令可以查看该LSA的详细内容:

Type:

Router

Lsid:

0.1.1.1

Advrtr:

0.1.1.1

Lsage:

254

Len:

60

Seq#:

0x800000fb

Chksum:

0x3a88

Options:

(DC)ASBR

Linkcount:

3

LinkID:

201.0.0.0

Data:

255.0.0.0

Type:

StubNet

Metric:

1

LinkID:

192.168.110.3

Data:

192.168.110.1

Type:

TransNet

Metric:

10

LinkID:

192.168.100.2

Data:

192.168.100.1

Type:

TransNet

Metric:

5

其中加粗字体是新出现的字段。

Options:

表明发布路由器的身份,这里表示0.1.1.1是ASBR(ASboundaryrouters),ASBR是与属于其他AS的路由器交换路由信息的路由器。

ASBR在AS内宣告AS外部路由信息。

Linkcount是3,表示0.1.1.1接入了三个网段,后面是各个网段的详细说明,包括LinkID、Date、Type和Metric等四项。

这里的Type指的是交换机接口的连接类型,见表2:

表2交换机接口的四种连接类型

连接类型

描述

连接标识

连接数据

1

P2P

点对点连接

邻居路由器标识

自身的IP接口地址

2

TransNet

连接到传输网络

DR的接口地址

自身的IP接口地址

3

StubNet

连接到存根网络

网络IP地址

网络掩码

4

Virtual

虚拟通道

邻居路由器标识

自身的IP接口地址

说明:

传输网络是指接入了两台或更多路由器的网络。

如果路由器与DR完全邻接,或路由器自身为DR且与至少一台其他路由器邻接,则所接入的网络的网络类型就是传输网络类型。

存根网络就是接入了一台路由器的网络,即该网络只通过一个路由器和外界联系。

如果某网络只接入了当前路由器,则该接口的连接类型就是存根网络类型。

另外,最开始显示的0.1.1.1area0的LSDB中有这么一条LSA:

TypeLinkStateIDAdvRouterAgeLenSequenceMetricWhere

Stub201.0.0.00.1.1.11124240x00SpfTree

这个Stub类型的LSA似乎很熟悉,可它又不是五类LSA中的一种,那么它是哪来的?

比较这个LSA和0.1.1.1生成RouterLSA,发现该LSA的LinkStateID和0.1.1.1发布的RouterLSA中的一个StubNet连接相同。

咨询过开发的同事,了解到原来V3实现OSPF时,为方便计算路由,把RouterLSA中的StubNet连接单独拿出来列为一个LSA。

注意,这类“LSA”虽然有老化时间,但是它的序列号是永远为0,也就是说它的内容是不会改变的。

再仔细想想,其实StubNet路由的处理方法和AS外的路由(作为第五类LSA)很类似,都是单独对待的。

就拿刚才的LSA举例:

LinkID:

201.0.0.0表示发布路由器接入的网络IP地址是201.0.0.0

Data:

255.0.0.0表示发布路由器接入的网络IP地址的掩码是8位的。

Type:

StubNet表示201.0.0.0/8只接入了0.1.1.1一个路由器

Metric:

1表示从发布路由器传送数据包到该网段所需花费为1

下面是连接为传输网络的例子:

LinkID:

192.168.100.2表示发布路由器接口所在网段的DR的接口地址

Data:

192.168.100.1表示发布路由器接口自身在地址

Type:

TransNet表示该网络接入了多台路由器

Metric:

5表示从发布路由器传送数据包到该网段所需花费为5

再来看一下0.3.3.3发布的RouterLSA:

Type:

Router

Lsid:

0.3.3.3

Advrtr:

0.3.3.3

Lsage:

190

Len:

60

Seq#:

0x800003d6

Chksum:

0x2f57

Options:

(DC)ABR

Linkcount:

3

LinkID:

192.168.110.3

Data:

192.168.110.3

Type:

TransNet

Metric:

9

LinkID:

192.168.120.2

Data:

192.168.120.3

Type:

TransNet

Metric:

8

LinkID:

0.5.5.5

Data:

192.168.140.3

Type:

Virtual

Metric:

11

这里出现了第四类连接类型:

虚拟通道:

LinkID:

0.5.5.5表示0.3.3.3的虚拟邻居是0.5.5.5

Data:

192.168.140.3表示在与该IP地址关联的接口建立虚连接

Type:

Virtual

Metric:

11表示0.3.3.3到邻居0.5.5.5的距离为11

1.6NetworkLSA

第二类LSA:

NetworkLSA。

例子:

由网段192.168.100.0/24的DR(IP为192.168.100.2)生成的NetworkLSA:

TypeLinkStateIDAdvRouterAgeLenSequenceMetricWhere

Net192.168.100.20.2.2.21752320x8000000d0SpfTree

生成时间:

当网络类型为广播或NBMA时,会选举产生DR。

仅当DR与网络上至少一台路由器完全邻接后,才生成NetworkLSA。

用displayOSPF100lsdbnetworkverbose命令可以查看该LSA的详细内容:

Type:

Net

Lsid:

192.168.100.2

Advrtr:

0.2.2.2

Lsage:

1294

Len:

32

Seq#:

0x80000003

Chksum:

0xd684

Options:

(DC)

Netmask:

255.255.255.0

AttachedRouter0.2.2.2

AttachedRouter0.1.1.1

Netmask指明了网段的掩码,Lsid字段是DR的接口IP地址,Netmask结合Lsid字段就可以计算出网络地址,这个LSA描述的网络是192.168.100.0/24。

AttachedRouter:

与DR完全邻接的邻居列表,由其OSPF进程的routerid来识别,DR自己也包含在这个列表中。

1.7由一、二类LSA计算域内路由

此时,0.1.1.1上area0内的LSA如下:

Area:

0.0.0.0

TypeLinkStateIDAdvRouterAgeLenSequenceMetricWhere

1Rtr0.1.1.10.1.1.11764600x800000630SpfTree

2Rtr0.5.5.50.5.5.5515360x800000090SpfTree

3Rtr0.2.2.20.2.2.2345480x800001590SpfTree

4Rtr0.3.3.30.3.3.3201600x800001560SpfTree

5Net192.168.100.20.2.2.2345320x800000030SpfTree

6Net192.168.110.30.3.3.3201320x800000030SpfTree

7Net192.168.120.20.2.2.2345320x800000560SpfTree

有了第一、二类LSA就可以来计算area0的域内路由了。

每个路由器上area0内的LSDB是相同的,不同的是:

它们各自为政、以自己为根计算SPF。

这里以0.1.1.1为例计算SPF。

1.7.1域内路由计算1:

计算最短路径树

为方便最短路径树计算,rfc2328使用了称为节点的数据结构来包装LSA、LSA的发

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

当前位置:首页 > 解决方案 > 学习计划

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

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