基于wireshark的ospf协议分析

文章描述:-2022年4月14日发(作者:杭观华)《TCP/IP技术》课程论文题目基于wireshark的ospf协议分析学院数理与信息工程学院专业计算机科学与技术班级计科081学号2学生姓名徐永朝指导教师沈士根编写日期2011年11月2日《TCP/IP技术》课程论文基于wireshark的ospf协议分析徐永朝(嘉兴学院数理与信息工程学院,嘉兴)摘要:OSPF(OpenShortestPath

-

基于wireshark的ospf协议分析
2022年4月14日发
(作者:杭观华)

《TCP/IP技术》课程论文

题目基于wireshark的ospf协议分析

学院数理与信息工程学院

专业计算机科学与技术

班级计科081

学号2

学生姓名徐永朝

指导教师沈士根

编写日期2011年11月2日

《TCP/IP技术》课程论文

基于wireshark的ospf协议分析

徐永朝

(嘉兴学院数理与信息工程学院,嘉兴314001)

摘要:OSPF(OpenShortestPathFirst开放式最短路径优先)[1]是一个内部网关协议

(InteriorGatewayProtocol,简称IGP),用于在单一自治系统(autonomoussystem,AS)内

决策路由。与RIP相比,OSPF是链路状态路由协议,而RIP是距离矢量路由协议。OSPF的

协议管理距离(AD)是110。本文详细的介绍了ospf协议的特点,并通过wireshark抓包

分析ospf的实现过程。

关键词:ospf;开放式最短路径优先;wireshark;实现

TheospfprotocolanalysisbasedonwiresharkXutowards

XuYongChao

(JiaxingCollegeMathematicsandInformationEngineering,Jiaxing314001)

Abstract:OSPF(OpenShortestPathFirstOpenShortestPathFirst)[1]isaninteriorgateway

protocol(InteriorGatewayProtocol,referredtoasIGP),forasingleautonomoussystem

(autonomoussystem,AS)edwithRIP,OSPFisa

link-stateroutingprotocol,olOSPF

administrativedistance(AD)perdescribesindetailthecharacteristicsofospf

protocolandwids:ospf;OpenShortestPathFirst;wireshark;achieve

1

《TCP/IP技术》课程论文

一、引言

IETF为了满足建造越来越大基于IP网络的需要,形成了一个工作组,专门用于开发

开放式的、链路状态路由协议,以便用在大型、异构的IP网络中。新的路由协议已

经取得一些成功的一系列私人的、和生产商相关的、最短路径优先(SPF)路由协议为

基础,在市场上广泛使用。包括OSPF在内,所有的SPF路由协议基于一个数学算

法—Dijkstra算法。这个算法能使路由选择基于链路-状态,而不是距离向量。OSPF

由IETF在20世纪80年代末期开发,OSPF是SPF类路由协议中的开放式版本。最初

的OSPF规范体现在RFC1131中。这个第1版(OSPF版本1)很快被进行了重大改进

的版本所代替,这个新版本体现在RFC1247文档中。RFC1247OSPF称为OSPF版本2

是为了明确指出其在稳定性和功能性方面的实质性改进。这个OSPF版本有许多更新

文档,每一个更新都是对开放标准的精心改进。接下来的一些规范出现在RFC1583

2178和2328中。OSPF版本2的最新版体现在RFC2328中。最新版只会和由RFC2138、

1583和1247所规范的版本进行互操作。链路是路由器接口的另一种说法,因此OSPF也称为接口状态路由协议。OSPF通

过路由器之间通告网络接口的状态来建立链路状态数据库,生成最短路径树,每个

OSPF路由器使用这些最短路径构造路由表。OSPF路由协议是一种典型的链路状态(Link-state)的路由协议,一般用于同一

个路由域内。在这里,路由域是指一个自治系统(AutonomousSystem),即AS,它

是指一组通过统一的路由政策或路由协议互相交换路由信息的网络。在这个AS中,

所有的OSPF路由器都维护一个相同的描述这个AS结构的数据库,该数据库中存放的

是路由域中相应链路的状态信息,OSPF路由器正是通过这个数据库计算出其OSPF路

由表的。作为一种链路状态的路由协议,OSPF将链路状态广播数据LSA(LinkState

Advertisement)传送给在某一区域内的所有路由器,这一点与距离矢量路由协议不

同。运行距离矢量路由协议的路由器是将部分或全部的路由表传递给与其相邻的路由

器。

二、OSPF的hello协议

协议的目的:1.用于发现邻居2.在成为邻居之前,必须对Hello包里的一些参数进行协商包在邻居之间扮演着keepalive的角4.允许邻居之间的双向通信5.用于在BMA(onbroadcastMulti-access)网络上选举DR和BDR

2

《TCP/IP技术》课程论文

acket包含以下信息:1.源路由器的RID2.源路由器的AreaID3.源路由器接口的掩码4.源路由器接口的认证类型和认证信息5.源路由器接口的Hello包发送的时间间隔6.源路由器接口的无效时间间隔7.优先级/BDR接口IP地址9.五个标记位(flagbit)10.源路由器的所有邻居的RID

三、OSPF的网络类型

1、OSPF定义的5种网络类型:1.点到点网络(point-to-point),由cisco提出的网络类型,自动发现邻居,不选举

DR/BDR,hello时间10s。2.广播型网络(broadcast),由cisco提出的网络类型,自动发现邻居,选举

DR/BDR,hello时间10s。3.非广播型(BMA)网络(non-broadcast),由RFC

提出的网络类型,手工配置邻

居,选举DR/BDR,hello时间30s。4.点到多点网络(point-to-multipoint),由RFC提出,自动发现邻居,不选举

DR/BDR,hello时间30s。

5.点到多点非广播,由cisco提出的网络类型,自动发现邻居,选举DR/BDR,

hello时间10s。

2、所有的网络也可以归纳成2种网络类型:1.传输网络(Transitetwork)2.末梢网络(Stubetwork)

四、OSPF的DR及BDR在DR和BDR出现之前,每一台路由器和他的所有邻居成为完全网状的OSPF

邻接关系,这样5台路由器之间将需要形成10个邻接关系,同时将产生25条LSA.而

且在多址网络中,还存在自己发出的LSA从邻居的邻居发回来,导致网络上产生很多

LSA的拷贝,所以基于这种考虑,产生了DR和BDR.

3

《TCP/IP技术》课程论文DR将完成如下工作1.描述这个多址网络和该网络上剩下的其他相关路由器.2.管理这个多址网络上的flooding过程.3.同时为了冗余性,还会选取一个BDR,作为双备份之用.

1、DRBDR选取规则:DRBDR选取是以接口状态机的方式触发的.1.路由器的每个多路访问(multi-access)接口都有个路由器优先级(Router

Priority),8位长的一个整数,范围是0到255,Cisco路由器默认的优先级是1优先级为0

的话将不能选举为DR/BDR.优先级可以通过命令ipospfpriority进行修改.包里包含了优先级的字段,还包括了可能成为DR/BDR的相关接口的IP

地址.3.当接口在多路访问网络上初次启动的时候,它把DR/BDR地址设置为0.0.0.0,

同时设置等待计时器(waittimer)的值等于路由器无效间隔(RouterDeadInterval).

2、DRBDR选取过程:1.路由器X在和邻居建立双向(2-Way)通信之后,检查邻居的Hello包中

Priority,DR和

BDR字段,列出所有可以参与DR/BDR选举的邻居(priority不为0).2.如果有一台或多台这样的路由器宣告自己为BDR(也就是说,在其Hello包

中将自己列为BDR,而不是DR),选择其中拥有最高路由器优先级的成为BDR;如

果相同,选择拥有最大路由器标识的。如果没有路由器宣告自己为BDR,选择列表

中路由器拥有最高优先级的成为BDR,(同样排除宣告自己为DR的路由器),如果相

同,再根据路由器标识。3.按如下计算网络上的DR。如果有一台或多台路由器宣告自己为DR(也就是

说,在其Hello包中将自己列为DR),选择其中拥有最高路由器优先级的成为DR;

如果相同,选择拥有最大路由器标识的。如果没有路由器宣告自己为DR,将新选举

出的BDR设定为DR。4.如果路由器X新近成为DR或BDR,或者不再成为DR或BDR,重复步骤2

和3,然后结束选举。这样做是为了确保路由器不会同时宣告自己为DR和BDR。5.要注意的是,当网络中已经选举了DR/BDR后,又出现了1台新的优先级更高的

路由器,DR/BDR是不会重新选举的。/BDR选举完成后,DRother只和DR/BDR形成邻接关系.所有的路由器将组

播Hello包到AllSPFRouters地址224.0.0.5以便它们能跟踪其他邻居的信息,即DR将

泛洪updatepacket到224.0.0.5;DRother只组播updatepacket到AllDRouter地址

224.0.0.6,只有DR/BDR监听这个地址.简洁的说:DR的筛选过程1.优先级为0的不参与选举;2.优先级高的路由器为DR;3.优先级相同时,以routerID大为DR;

4

《TCP/IP技术》课程论文routerID以回环接口中最大ip为准;若无回环接口,以真实接口最大ip为准。4.缺省条件下,优先级为1。

五、OSPF邻居关系

1、关系建立的4个阶段:1.邻居发现阶段2.双向通信阶段:Hello报文都列出了对方的RID,则BC完成.3.数据库同步阶段:4.完全邻接阶段:fulladjacency邻居关系的建立和维持都是靠Hello包完成的,在一般的网络类型中,Hello包周期

性的以HelloInterval秒发送,有1个例外:在BMA网络中,路由器每经过一个

PollInterval周期发送Hello包给状态为down的邻居(其他类型的网络是不会把Hello

包发送给状态为down的路由器的).Cisco路由器上PollInterval默认60sHelloPacket

以组播的方式发送给224.0.0.5,在BMA类型,点到多点和虚链路类型网络,以单

播发送给邻居路由器。邻居可以通过手工配置或者Inverse-ARP发现.

2、PF路由器在完全邻接之前,所经过的几个状态::此状态还没有与其他路由器交换信息。首先从其ospf接口向外发送hello

分组,还并不知道DR(若为广播网络)和任何其他路由器。发送hello分组使用组播地

址224.0.0.5。t:只适于BMA网络,在BMA网络中邻居是手动指定的,在该状态下,

路由器将使用HelloInterval取代PollInterval来发送Hello包.:表明在DeadInterval里收到了Hello包,但是2-Way通信仍然没有建立起来.-way:双向会话建立,而RID彼此出现在对方的邻居列表中。(若为广播网

络:例如:以太网。在这个时候应该选举DR,BDR。)t:信息交换初始状态,在这个状态下,本地路由器和邻居将建立

Master/Slave关系,并确定DDSequenceumber,路由器ID大的的成为ge:信息交换状态,本地路由器和邻居交换一个或多个DBD分组(也

叫DDP)。DBD包含有关LSDB中LSA条目的摘要信息)。g:信息加载状态:收到DBD后,将收到的信息同LSDB中的信息进行比

较。如果DBD中有更新的链路状态条目,则向对方发送一个LSR,用于请求新的LSA。:完全邻接状态,邻接间的链路状态数据库同步完成,通过邻居链路状态请

求列表为空且邻居状态为Loading判断。

5

《TCP/IP技术》课程论文

六、OSPF泛洪

1、ooding采用2种报文LSUType4---链路状态更新报文LSAType5---链路状态确认报文(补充下){HelloType1---Hello协议报文DD(DataDescription)Type2----链路数据描述报文LSRType3----链路状态请求报文}在P-P网络,路由器是以组播方式将更新报文发送到组播地址224.0.0.5.在P-MP和虚链路网络,路由器以单播方式将更新报文发送至邻接邻居的接口地

址.在广播型网络,DRother路由器只能和DR&BDR形成邻接关系,所以更新报文

将发送到224.0.0.6,相应的DR以224.0.0.5泛洪LSA并且BDR只接收LSA,不会确

认和泛洪这些更新,除非DR失效在BMA型网络,LSA以单播方式发送到DR和

BDR,并且DR以单播方式发送这些更新.LSA通过LS类型、LS标识和宣告路由器来识别,并通过序列号、校验和、老化

时间判断LSA新旧。Seq:序列号(Seq)的范围是0x80000001到um:校验和(Checksum)计算除了Age字段以外的所有字段,每5分钟校验

1次.Age:范围是0到3600秒,16位长.当路由器发出1个LSA后,就把Age设置为0,

当这个LSA经过1台路由器以后,Age就会增加,1个LSA保存在LSDB中的时候,

老化时间也会增加.当收到相同的LSA的多个实例(LS类型、LS标识、宣告路由器相同)的时候,

将通过下面的方法来确定哪个LSA是最新的:1.比较LSA实例的序列号,越大的越新.2.如果序列号相同,就比较校验和,越大越新.3.如果校验和也相同,就比较老化时间,如果只有1个LSA拥有MaxAge(3600秒)

的老化时间,它就是最新的.4.如果LSA老化时间相差15分钟以上,(叫做MaxAgeDiff),老化时间越小的越新.5.如果上述都无法区分,则认为这2个LSA是相同的.

6

《TCP/IP技术》课程论文

七、OSPF区域

1、长度32位,可以用10进制,也可以类似于IP地址的点分十进制,分3种通

信量-AreaTraffic:域内间通信量-AreaTraffic:域间通信量alTraffic:外部通信量

2、器类型alRouter:内部路由器(AreaBorderRouter):区域边界路由器neRouter(BR):骨干路由器(AutonomousSystemBoundaryRouter):自治系统边界路由器.虚链路(VirtualLink)以下2中情况需要使用到虚链路:1.通过一个非骨干区域连接到一个骨干区域.2.通过一个非骨干区域连接一个分段的骨干区域两边的部分区域.虚链接是一个逻辑的隧道(Tunnel),配置虚链接的一些规则:1.虚链接必须配置在2个ABR之间.2.虚链接所经过的区域叫TransitArea,它必须拥有完整的路由信息.tArea不能是StubArea.4.尽可能的避免使用虚链接,它增加了网络的复杂程度和加大了排错的难度.OSPF区域—OSPF的精华Link-state路由在设计时要求需要一个层次性的网络结构.OSPF网络分为以下2个级别的层次:骨干区域(backboneorarea0)非骨干区域(nonbackboneareas)在一个OSPF区域中只能有一个骨干区域,可以有多个非骨干区域,骨干区域的区

域号为0。为了避免回环的产生,各非骨干区域间是不可以交换LSA信息的,他们只有与

骨干区域相连,通过骨干区域相互交换信息。非骨干区域和骨干区域之间相连的路由叫边界路由(ABRs-AreaBorderRouters),

只有ABRs记载了接入各区域的所有路由信息。各非骨干区域内的非ABRs只记载了

本区域内的路由表,若要与外部区域中的路由相连,只能通过本区域的ABRs,由ABRs

连到骨干区域的BR,再由骨干区域的BR连到要到达的区域。骨干区域和非骨干区域的划分,大大降低了区域内工作路由的负担。

7

《TCP/IP技术》课程论文

八、OSFPLSA类型1.类型1:RouterLSA:每个路由器都将产生RouterLSA,这种LSA只在本区域内传

播,描述了路由器所有的链路和接口,状态和开销.2.类型2:etworkLSA:在每个多路访问网络中,DR都会产生这种etworkLSA,

它只在产生这条etworkLSA的区域泛洪描述了所有和它相连的路由器(包括DR本

身)。3.类型3:etworkSummaryLSA

:由ABR路由器始发,用于通告该区域外部的目

的地址

.当其他的路由器收到来自ABR的etworkSummaryLSA以后,它不会运行SPF

算法,它只简单的加上到达那个ABR的开销和etworkSummaryLSA中包含的开销,

通过ABR,到达目标地址的路由和开销一起被加进路由表里,这种依赖中间路由器来确

定到达目标地址的完全路由(fullroute)实际上是距离矢量路由协议的行为。4.类型4:ASBRSummaryLSA:由ABR发出,ASBR汇总LSA除了所通告的目的

地是一个ASBR而不是一个网络外,其他同etworkSummaryLSA.5.类型5:ASExternalLSA:发自ASBR路由器,用来通告到达OSPF自主系统外部

的目的地,或者OSPF自主系统那个外部的缺省路由的LSA.这种LSA将在全AS内泛

洪(4个特殊区域除外)6.类型6:GroupMembershipLSA7.类型7:SSAExternalLSA:来自非完全Stub区域(not-so-stubbyarea)内ASBR

路由器始发的LSA通告它只在SSA区域内泛洪,这是与LSA-Type5的区别.8.类型8:ExternalAttributesLSA9.类型9:OpaqueLSA(link-localscope,)10.类型10:OpaqueLSA(area-localscope)11.类型11:OpaqueLSA(ASscope)

九、OSPF路由类型O位于路由器所在外但在ospf自主系统内的网络,以汇总LSA的方式被通告OIA位于路由器所在外但在ospf自主系统内的网络,以汇总LSA的方式被通告OE1、OE2位于路由器所在外但在ospf自主系统内的网络,以汇总LSA的方式

被通告

十、OSPF度量值在Cisco路由器中,使用公式100Mbit/带宽(单位为Mbit)来计算的,但是,在

8

《TCP/IP技术》课程论文

带宽等于100Mbits的链路上,成本为1.在大于100Mbits的链路上这个值就不是很好RotuerA(config-if)#ipospfcostinterface-cost成本越低,链路越好RouterA(config-router)#atuo-costreference-bandwidthref-bw其中cost:1~65535ref-bw:1~

4294967

十一、OSPF末梢区域由于并不是每个路由器都需要外部网络的信息,为了减少LSA泛洪量和路由表条

目,就创建了末梢区域,位于Stub边界的ABR将宣告一条默认路由到所有的Stub区域

内的内部路由器.

1、ub区域限制:a)所有位于stubarea的路由器必须保持LSDB信息同步,并且它们会在它的

Hello包中设置一个值为0的E位(E-bit),因此这些路由器是不会接收E位为1的Hello

包,也就是说在stubarea里没有配置成stubrouter的路由器将不能和其他配置成stub

router的路由器建立邻接关系.b)不能在stubarea中配置虚链接(virtuallink),并且虚链接不能穿越)stubarea里的路由器不可以是ASBR.d)stubarea可以有多个ABR,但是由于默认路由的缘故,内部路由器无法判定哪个

ABR才是到达ASBR的最佳选择.e)SSA允许外部路由被宣告OSPF域中来,同时保留StubArea的特征,因此SSA

里可以有ASBR,ASBR将使用type7-LSA来宣告外部路由,但经过ABR,Type7被转换

为Type5.7类LSA通过OSPF报头的一个P-bit作Tag,如果SSA里的ABR收到P位

设置为1的SSAExternalLSA,它将把LSA类型7转换为LSA类型5.并把它洪泛到

其他区域中;如果收到的是P位设置为0的SSAExternalLSA,它将不会转换成类型5

的LSA,并且这个类型7的LSA里的目标地址也不会被宣告到SSA的外部SSA在

IOS11.2后支持.f)totallystubarea完全的stub区域,连类型3的LSA也不接收。OSPF的包类型:类型号包作用可靠性1HELLO1、用于发现邻居2、建立邻接关系3、维持邻接关系4、确保双向通信

5、选举DR和BDR2DatabaseDescription数据库的描述DBD可靠3Link-stateRequest链路状态请求包LSR可靠4Link-stateUpdate链路状态更新包LSU可靠5Link-stateAcknowledment链路状态确认包LSACKAS自治系统(autonomoussystem):一组相互管理下的网络,它们共享同一个路

9

《TCP/IP技术》课程论文

由选择方法,自治系统由地区再划分并必须由IAA分配一个单独的16位数字。地

区通常连接到其他地区,使用路由器创建一个自治系统。

十二、实验

实验拓扑图:

实验过程:

1.开始启动后抓到的报文:

开始发送的报文邻居列表为空,DR和BDR都为空

2.第二个报文:

10

《TCP/IP技术》课程论文

3.第三个报文

4、第四个报文:添加对方的routerid到邻居列表,说明hello报文检

查通过。

11

《TCP/IP技术》课程论文

5、第五个报文:继续发送,等待网络中通告DR和BDR,如果没有

人通告,那么就会进入DR和BDR的选举。

6、第六个报文:

12

《TCP/IP技术》课程论文

7、第七个报文:

8、第八个报文:

13

《TCP/IP技术》课程论文

9、第九个报文:竞选出DR和BDR

10、第十个报文:

14

《TCP/IP技术》课程论文

11、第十一个报文:竞选主从关系,用的是DBD报文

12、第十二个报文:

15

《TCP/IP技术》课程论文

13、第十三个报文:开始发送具体的DBD描述报文

14、第十四个报文:

16

《TCP/IP技术》课程论文

15、第十五个报文:主路由器开始请求

16、第十六个报文:

17

《TCP/IP技术》课程论文

17、第十七个报文:从路由器开始请求

18、第十八个报文:

18

《TCP/IP技术》课程论文

19、第十九个报文:主路由器开始更新

19

《TCP/IP技术》课程论文

20、第二十个报文:从路由器开始更新

21、第二十一个报文:

22、第二十二个报文:继续更新

20

《TCP/IP技术》课程论文

23、第二十三个报文:继续更新

21

《TCP/IP技术》课程论文

24、第二十四个报文:DR开始发送网络LSA

25、第二十五个报文:开始发送确认报文

22

《TCP/IP技术》课程论文

26、第二十六个报文:确认报文

27、第二十七个报文:

23

《TCP/IP技术》课程论文

28、第二十八个报文:

24

《TCP/IP技术》课程论文

29、第二十九个报文:确认

30、第三十个报文:确认

25

《TCP/IP技术》课程论文

十三、结论

路由协议中的OSPF协议相较于之前的协议版本来说在路由方面的确有了长足的改进,

它仅支持IP路由协议。这个协议是以互联网工程任务组(IETF)为支持庞大的异构网络开

发的Dijkstra算法为基础的一种链路状态的内部网关协议(IGP)。链路状态通告(LSA)要发

给所有的设备,从而引起路由器的大量通信。然后,OSPF就开始高效率地工作了。这个协

议使用了三个不同的数据库表记录邻居、链路状态和路由。

下面是OSPF协议的特点:

◆开放式协议。

◆适用于小型至大型网络。

◆仅支持IP第三层路由协议栈。

◆链路状态路由协议(不像距离矢量仅发送给邻居)。

◆OSPF协议具有内部网关协议。

◆多播链路状态通告。

◆在多播地址224.0.0.5和224.0.0.6上升级。

◆IP协议号89。

◆管理距离是110。

◆衡量标准是累积成本(与带宽成反比)。

◆仅支持等价均分负载,但是,某些执行可利用服务类型请求的好处。

◆要求在那个每一个区域都有一个路由结构,每一个区域必须要接触到骨干区域(否则要使

用虚拟链接等临时的补丁)。LSA、区域和状态等各种路由类型需要根据你的设计和第二层拓

扑结构而定。

◆使用Dijkstra算法选择无路由自环路经,并且提供迅速的融合。这将使用LSA和SPF算

法。

◆支持变长子网掩码(VLSM)和汇总(没有级别)。

◆仅支持手动汇总;OSPF协议并不像增强型内部网关路由选择协议(EIGRP)那样是自动化

的。只能在ABR(区域范围)或者ASBR(汇总地址)上执行

◆基于政策的路由

26

《TCP/IP技术》课程论文

参考文献

[1]蒋波,李方军,郝军.数据包的截获与网络协议分析[J].重庆三峡学院学

报,2006,22(3):26-27.

[2]武奇生,潘若禹,汪贵平,李晗.网络与TCP/IP协议[J].西安电子科技大学

出版社,2011.

[3]llEdTittel.TCP/IP协议原理与应用[J].清华大学出版

社,2005.

[4]s.TCP/IP详解[J].机械工业出版社,2002.

[5][美]杜威.计算机在教学中的应用[M].宋小平译.北京:光明日报出版社,

1988.

27

-

基于wireshark的ospf协议分析

发布时间:2022-04-14 11:59:37
文章版权声明:除非注明,否则均为IT技术网-学习WEB前端开发等IT技术的网络平台原创文章,转载或复制请以超链接形式并注明出处。

发表评论

评论列表 (有 6 条评论,399人围观)

最近发表

随便看看

热门文章

标签列表