动态路由协议有主要有rip、ospf、BGP、Isis等,动态路由协议通过路由信息的交换生成并维护转发引擎所需的路由表。当网络拓扑结构改变时动态路由协议可以自动更新路由表,并负责决定数据传输最佳路径。本文简单了解下rip、重点讲解ospf的重要内容,后续会讲解BGP、Isis。


RIP

rip协议基于udp,端口号为520,ripv1基于广播,RIPv2基于组播(组播地址224.0.0.9)。RIP路由的更新周期为30秒,如果路由器180秒内没有回应,则说明路由不可达;如果240秒内没有回应,则删除路由表信息。RIP协议的最大跳数为15跳,16跳表示不可达,直连网络跳数为0,每经过一个结点跳数增1。
RIP分为RIPv1、RIPv2和RIPng三个版本,其中RIPv2相对RIPvl的改进占有:使用组播而不是广播来传播路由更新报文;RIPv2属于无类协议,支持可峦长子网掩码(VISM)和无类别域间路由(CIDR);采用了触发更新机制来加速路由收敛,支持认证,使田经讨散列的口令字来限制更新信息的传播。RIPng 协议属于IPv6中的路由协议。


距离矢量路由协议rip,容易形成路由环路,存在传递好消息快、传递坏消息慢的问题,可以使用以下的方法解决环路的问题。

(1)水平分割:收到的路由不会再发送给源端。

(2)路由中毒:不会立刻删除路由不可达的路由条目,而是将这个路由的度量值设置无限大发给邻居。

3)反向中毒(Poison Reverse)

,则应该向同一个接口返回一条路由

路由器从一个接口学习到一个度量值为无穷大的路由信息

不可达的信息。

(4)抑制定时器(Holddown Timer)

一条路由信息失效后,一段时间内都不接收其目的地址的路由更新.路由器可以避免收到同一

路由信息失效和有效的矛盾信息。通过抑制定时器可以有效避免链路频繁起停,增加了网络有效性。

(5)触发更新(Trigger Update)

路由更新信息每30秒发送一次,当路由表发生变化时,则应立即更新报文并广播到邻居路由器。

无类别的协议,rip v1,所以掩码只有24 16 8三种


3.RIP配置

RIP协议配置如下:

Huaweirip//启动rip进程,进程号为1

[Huawei–1-rip]network192.168.1.0P中发布指定网段,有多个网段时,可以多次使用 network命令发布网络

version2/指定全局RIP版本

Huawel-rip-1]network 10.0.0.0


ospf

RIP是基于距离矢量算法的路由协议,应用在大型网络中存在收敛速度慢、度量值不科学、可扩展性差等问题。IETF提出了基于SPF算法的链路状态路由协议OSPF(Open Shortest Path First)。通过在大型网络中部署OSPF协议,弥补了RIP协议的诸多不足。那么ospf是如何解决的呢?

一、ospf协议防环机制

(1)ospf协议使用SPF算法,每个路由器以自己为根节点,其他相连的路由器为叶子结点,构建一个无环的最短路径树,每台路由器计算的最短路径树得出了到网络中其它节点的路由表;(2) ospf只允许骨干区域和非骨干区域之间传递路由信息,而不允许非骨干路由器之间直接传递路由信息,从而保证区域间是无环的(在区域间传递的是抽象的链路状态信息,在区域内部传递的是详细的链路状态信息);(3)为了避免区域间的环路,OSPF规定不允许直接在两个非骨干区域之间发布路由信息,只允许在一个区域内部或者在骨干区域和非骨干区域之间发布路由信息。因此,每个区域边界路由器(ABR)都必须连接到骨干区域。


二、ospf协议所支持的网络类型

ospf支持四种网络类型:点到点、点到多点、广播多址、非广播多址


三、ospf协议邻居邻接关系建立过程(ospf状态机)

ospf5种报文:

1、hello报文:发现和维护邻接关系(邻居)

2、DD报文:发送链路状态数据库摘要(邻接)

3、link state request:请求特定的链路状态请求,本端没有的对端有的链路信息(邻接)

4、link state update:发送详细的链路状态信息,发送对方需要的详细信息(邻接)

5、link state ack:发送确认报文(邻接)

邻居关系:双方交换了hello报文,同意了相关参数。

邻接关系:双方同步了lsdb。会形成邻接关系。

邻接是邻居的进一步的发展,并不是所有的路由器之间一定会形成邻接(在区域内部,Drother和Drother是邻居关系,与BD、BDR是邻接关系,BD、BDR是邻接关旭);

1)Down:这是邻居的初始状态,表示没有从邻居收到任何信息。在NBMA网络上,此状态下仍然可以向静态配置的邻居发送Hello报文,发送间隔为PollInterval,通常和RouterDeadInterval间隔相同。

2)Attempt:此状态只在NBMA网络上存在,表示没有收到邻居的任何信息,但是已经周期性地向邻居发送报文,发送间隔为HelloInterval。如果RouterDeadInterval间隔内未收到邻居的Hello报文,则转为Down状态。

3)Init:在此状态下,路由器已经从邻居收到了Hello报文,但是自己不在所收到的Hello报文的邻居列表中,表示尚未与邻居建立双向通信关系。在此状态下的邻居要被包含在自己所发送的Hello报文的邻居列表中。

2-WayReceived:此事件表示路由器发现与邻居的双向通信已经开始(发现自己在邻居发送的Hello报文的邻居列表中)。Init状态下产生此事件之后,如果需要和邻居建立邻接关系则进入ExStart状态,开始数据库同步过程,如果不能与邻居建立邻接关系则进入2-Way。

4)2-Way:在此状态下,双向通信已经建立,但是没有与邻居建立邻接关系。这是建立邻接关系以前的最高级状态。1-WayReceived:此事件表示路由器发现自己没有在邻居发送Hello报文的邻居列表中,通常是由于对端邻居重启造成的。

查看OSPF邻居:[R4]display ospf peer [brief]

5)ExStart(预启动):这是形成邻接关系的第一个步骤,邻居状态变成此状态以后,路由器开始向邻居发送DD报文。主从关系是在此状态下形成的;初始DD序列号是在此状态下决定的。在此状态下发送的DD报文不包含链路状态描述。

6)Exchange(交换):此状态下路由器相互发送包含链路状态信息摘要(LSA Header)的DD报文,描述本地LSDB的内容。

7)Loading(加载):相互发送LS Request报文请求LSA,发送LS Update通告LSA。

8)Full:两路由器的LSDB已经同步。邻接关系形成


四、ospf协议BD/BDR选举过程、作用

(1)为了维护网络上邻接关系的稳定性,如果网络中已经存在DR和BDR,则新添加进该网段的路由器不会成为DR和BDR,不管该路由器的Router Priority是否最大。

(2)新加入的路由器不会抢占现有的DR,只有当DR或BDR故障时,才能重新参加选举如果DR故障,BDR立刻成为新的DR,剩下的所有路由器会选举出一个BDR如果BDR故障,DR位置不动,剩下的所有路由器会选举出一个BDR这种选举机制的目的是为了保持邻接关系的稳定,减小拓扑结构的改变对邻接关系的影响。

(3)邻居和邻接关系建立原则:DR/BDR之间为full状态的邻接关系 ; DRother和所有的DR/BDR之间为full状态的邻接关系 ; DRother和DRother之间的关系为two-way的邻居关系


五、ospf协议的区域的划分

1、骨干区域

(1)骨干区域(BackboneArea)OSPF划分区域之后,区域号0,通常被称为骨干区域。骨干区域负责各个区域之间的抽象的路由条目的传递,非骨干区域之间的路由信息必须通过骨干区域来转发。(为了防范,OSPF规定所有非骨干区域必须与骨干区域保持相连;骨干区域自身也必须保持相连。

(2)虚连接(VirtualLink)虚连接是指在两台ABR之间通过一个非骨干区域而建立的一条逻辑上的连接通道。它的两端必须是ABR,而且必须在两端同时配置方可生效。为虚连接两端提供一条非骨干区域内部路由的区域称为传输区(TransitArea)。虚连接也属于主干区域

2、Stub区域和完全Stub区域

(1)Stub区域是特殊的区域。该区域的ABR会接收区域间的路由信息传递到本区域,但不会引入自治系统外部路由,区域中路由器的路由表的长度和LSA类型数量都会大大减少。为保证到自治系统外的路由依旧可达,stub区域的ABR将生成一条缺省路由3类LSA,发布给本区域中的其他非ABR路由器。

(1)为了进一步减少Stub区域中路由器的路由表长度以及LSA类型数量,可以将区域配置为TotallyStub区域,即完全stub区域,该区域的ABR不会将区域间的路由信息和自治系统外部路由信息传递到本区域。为保证可以到达本自治系统的其他区域,该区域的ABR将生成一条缺省路由3类LSA,发布给本区域中的其他路由器。

3、NSSA区域和TotallyNSSA区域

(1)NSSA区域与Stub区域的区别在于NSSA区域允许引入自治系统外部路由,ASBR会发布7类LSA通告给本区域。7类LSA到达NSSA的区域边界路由器后(ABR),由ABR将7类LSA转换成5类LSA,传递到其他区域。

(2)可以将区域配置为TotallyNSSA区域,即完全NSSA,该区域的ABR不会将区域间的路由信息传递到本区域。为保证可以到达本自治系统的其他区域,该区域的ABR将生成一条缺省路由3类LSA,发布给本区域中的其他路由器。


六、ospf协议的7类LSA

由于OSPF协议定义了多种路由器的类型,因而定义多种LSA通告的类型也是必要的。

例如:一台DR路由器必须通告多路访问链路和所有与这条链路相连的路由器,而其他类型的路由器将不需要通告这种类型的信息。

OSPF的七种类型LSA:

1、路由器LSA (Router LSA)

由区域内所有路由器产生,并且只能在本个区域内泛洪广播。这些最基本的LSA通告列出了路由器所有的链路和接口,并指明了它们的状态和沿每条链路方向出站的代价

LSA传播范围:本域内传递,不穿越ABR(边界路由器)

LSA通告路由器:本路由器的Router ID

LSA链路状态ID:本路由器的Router ID

LSA包含的内容:本路由器的直连邻居,以及直连接口的信息

2、网络LSA (Network LSA)

由区域内的DR或BDR路由器产生,报文包括DR和BDR连接的路由器的链路信息。网络LSA也仅仅在产生这条网络LSA的区域内部进行泛洪

LSA传播范围:本域(存在以太网络连接的域)内传递,不穿越ABR(边界路由器)

LSA通告路由器:DR的Router ID

LSA链路状态ID:DR的接口IP

LSA包含的内容:MA网络中的路由器以及本网的掩码信息和DR路由器本身的Router ID

3、网络汇总LSA (Network summary LSA)

由ABR产生,可以通知本区域内的路由器通往区域外的路由信息。在一个区域外部但是仍然在一个OSPF自治系统内部的缺省路由也可以通过这种LSA来通告。如果一台ABR路由器经过骨干区域从其他的ABR路由器收到多条网络汇总LSA,那么这台始发的ABR路由器将会选择这些LSA通告中代价最低的LSA,并且将这个LSA的最低代价通告给与它相连的非骨干区域。

LSA传播范围:域间路由,能泛洪到整个AS中,始发路由器除外。

LSA通告路由器:ABR的Router ID(经过一个ABR,就会改为这个ABR的Router ID)

LSA链路状态ID:网络号

LSA包含的内容:本区域中的路由信息,包括网络号和掩码

4、ASBR汇总LSA (ASBR summary LSA)

也是由ABR产生,但是它是一条主机路由,指向ASBR路由器地址的路由。LSA传播范围:泛洪到整个AS中,(把ASBR的Router ID传播到其他区域,让其他区域的路由器得知ASBR的位置。)

LSA通告路由器:ABR的Router ID(经过一个ABR,就会改为这个ABR的Router ID)

LSA链路状态ID:ASBR的Router ID

LSA包含的内容:本区域中的路由信息,包括网络号和掩码

注意:在ASBR直连的区域内,不会产生4类的LSA,因为ASBR会发出1类的LSA,其中会指明自己是ASBR。

5、自治系统外部LSA (Autonomous system external LSA)

由ASBR产生,告诉相同自治区的路由器通往外部自治区的路径。自治系统外部LSA是惟一不和具体的区域相关联的LSA通告,将在整个自治系统中进行泛洪。

LSA传播范围:域外路由,不属于某个区域,一个LSA即是一条路由信息

LSA通告路由器:ASBR的Router ID,通告路由器不会发生改变

LSA链路状态ID:网络号

LSA包含的内容:将外部自治系统传递进来,包含着域外的路由信息

6、组成员LSA (Group membership LSA) * 目前不支持组播OSPF (MOSPF协议)

可以 不去了解

7、NSSA外部LSA (NSSA External LSA)

由ASBR产生,几乎和LSA 5通告是相同的,但NSSA外部LSA通告仅仅在始发这个NSSA外部LSA通告的非纯末梢区域内部进行泛洪。在NSSA区域中,当有一个路由器是ASBR时,不得不产生LSA 5报文,但是NSSA中不能有LSA 5报文,所有ASBR产生LSA 7报文,发给本区域的路由器。