ospf和其它路由协议下路由器间关系的建立逻辑上是相通的。在这里大家还能清楚
知道并理解的多种数据报.同时能让大家了解DR,BDR的选举及ospf的配置。
ospf和其它路由协议下路由器间关系的建立逻辑上是相通的。在这里大家还能清楚
知道并理解的多种数据报.同时能让大家了解DR,BDR的选举及ospf的配置。
以下的内容大家可以在两本书中找到更详尽的内容。一本是人民邮电出版社出版的[ospf网络设计解决方案],一本是电子工业出版社出版的[CCNP:BSCI(642-801)]。
什么是OSPF:
最短路径优先协议(ospf),一种链路状态路由选择协议。
什么是路由选择协议:
路由选择协议可以作为一个过程来分析。协议通常是通过请求注释过程进行形式化的。
这个过程通常要为一个目标书写注释以便为该技术制定标准。一个路由选择协议标准的例子就是定义ospf的RFC2328.
路由选择协义的基本操作:
一台路由器不直接与其它路由器相连,因而不在路由表中。那么这个路由器是如何识别其他网络的呢?可以通过三种路由选择实现。
第一种,静态路由选择。是指在路由器内手工定义和安装去往给定目的地址的惟一路径;
第二种,缺省路由选择。在路由器内手工为未知目的地址定义一个路径的路由选择类型;
第三种,动态路由选择。使用一个或者是多个路由选择协议中的路由选择算法对到来的路由更新信息进行分析,然后获得通往目的地址的最佳路径。
ospf的特性:
ospf是一个链路状态协议,路由选择域中的所有路由器之间交换信息。每个路由器都能了解整个网络的拓扑结构。ospf协议为TCP/IP协议组中的IP协议提供路由信息;向路由器仅发送路由更新信息而不是整个路由表;与RIP相比,它带来的网络流量较少;它是基于标签交换的路由协义。
到此对OSPF作了基本的概念定义。接下来我们了解一个OSPF术语及它的操作。
ospf术语:
邻居:邻居被定义为一个运行有OSPF过程的已建立连接的相邻的路由器,并且这个路由器还要带有被指定为相同区域的邻接接口。
邻接:邻接被定义为路由器与它相应的指定路由器和备份路由器间的逻辑连接。
链路:在OSPF中,链路被定义为一个网络或者是被指定为给定网络的路由器接口。
接口:路由器的一个物理的或逻辑的接口。
链路状态通告LSA:是一个OSPF数据包,它包含有可在OSPF路由器间共享的链路状态和路由信息。
指定路由器DR:只在OSPF路由器被连到一个广播网络时使用。
备份指定路由器BDR:是在广播网络中热备份的DR.
区域边界路由器:有多个区域分配的路由器。
自治系统边界路由器:是一个带有连接外部网络或不同AS接口的路由器。
非广播多路访问:是指像帧中继,X.25和ATM等类型的网络。
路由器ID:是一个用于识别路由器的IP地址。
OSPF的操作:
在CCNP:BSCI(642-801)中作了如下定义:
OSPF操作可化分为三类,分别是:邻居和邻接初始化;LSA的扩散;SPF树的计算。
在作出详细讨论前,我们先来了解一个OSPF操作的每个基本步骤:
1,OSPF路由器从所有加入到OSFP过程的接口发送HELLO包;
2,一部分的邻居将形成邻接。形成邻居取决于被发送的hello包所通过的网络类型和交换交换这些hello数据包的路由器类型;
3,路由器发送LSA;
4,接收LSA的路由器将会记录这些LSA到它们的链路数据库,并转发些LSA到各自的邻居;
5,在学习了所有LSA后,每个路由器都会使用这个信息到创建自己的SPF树。SPF树中的信息会用来构建路由表。
什么是邻居:
OSPF将具有连接到一个共有网络的接口的两个路由器定义为邻居。当OSPF发现它的邻居时,这是发现网络的和建立路由表的第一步。这个过程开始于路由器通过广播的hello分组来获知其邻居的路由器标识。
在广播和点到点接口中,hello分组每10s发送一次。当路由器在其他的路由器发送的hello分组中看到自己的RID时,应运 始建立邻居关系并且它们达成下列的一至:
hello/dead发送时间间隔;
区域ID号;
子网掩码;
端区标志;
认证类型和密码。
邻接体:
为形成邻接体,OSPF应先发现它的邻居。邻接体是为了交换路由信息才形成的。在下列条件下,OSPF形成邻接体:
网络的互联是点到点的;
网络互联的通过虚链路实现的;
路由器是DR;
相邻路由器是DR;
路由器是BDR;
相邻咱由器是BDR。
你住在不同的人的周围,因此你们就是邻居。当你驱车去商店的时候,你或许会和他们打招呼但是你们并不是亲密的朋友。通常,你会和你遇到的最开始遇到的邻居成为亲密的朋友。这些亲密的朋友就是邻接体;你们总是在夏日隔着栅栏或者邀请他们吃饭储如此类的事情。事实上,你和他们有了更紧密的交流。-------[ospf网络设计解决方案]
邻居和邻接初始化:
邻居/邻接的构成是OSPF操作中一个很大的部分。hello协议通常用于发现邻居并建立邻接,并含有大量的有关发包路由器的信息。
邻居状态:
Down宕机:没有从此邻居处收到hello包;
Attempt尝试:它必须被手工配置,只可用于NBMA网络的连接并表明没有新的信息从这个邻居处接收到;
Init:从另外的路由器处接收到hello包,但本地路由器在其他路由器的hello数据中没有看到自己。双向通信还没有建立;
2way双向:已经被接收到的Hello数据包的邻居字段中包含有自己的路由器ID;
ExStart:为建立邻接,通过交换数据库描述DD数据包,主/从关系已经被建立;
Exdhange交换:路由信息通过使用DD和LSR数据包来交换;
Loding加载:链路状态请求数据包被发送给邻居,请求在交换状态中所发现的新的LSA;
Full全邻接:在邻接的邻居中所有的LSA信息都是同步的。
初始化的流程可简单描述:这个过程从发送hello包开始。然后,每个侦听的路由器都会将此发包路由器加入到邻居数据库中。响应的路由器将会使用它们的hello信息来做应答,这样发包路由器就可以将它们这些路由器加入到自己的邻居表中。
OSPF的对等初始化表:
组播hello数据包(Down)----->侦听路由器将新的
路由器加入到邻接
表(状态)----->路由器就答hello数据包
|2way state
连路类型被 |
广播多路访问问 |
选择DR和BDR<----- 邻接必须被建立<------------------发包路由器将
| ^ ^ ^
| | | | 应答路由器加入邻接表
| | | |ExStart state
| | | |---------------------->交换链路状态信息(Exchange)
比较所有路由器 | | |
优先级值 | | 任何最终的LSA也被交换
| | | (Loading)
| 是 | | |
有连接吗?------>比较路 | | 交换hello数据包,每10秒lsr/l
| 由器ID | | su交换
| |---------------| | | (完整路由信息)
| | | |
取最高值---------->指定为DR-- | |
| |
| |
取次高值--------->指定为BDR--|
一旦邻居被确认,邻接必须被建立,这样路由LSA信息才能被交换。要改变一个邻居OSPF路由器邻接OSPF路由器需要有两个步聚:
1,建立双向通信;
2,建立数据库同步,这包括在路由器间交换三种类型的数据包:
库描述DD数据包
链路状态请求LSR数据包
链路状态更新LSU数据包
一时数据库同步开始,则两个路由器被认为是邻接。这就是邻接如何被守铖的,但你必须了解邻接将发生在什么时候 。
每个OSPF接口都拥有一个可配置的路由器优先级我们可以通过在接中配置模式中使用ip ospf priority命令设置此优先级。可以用于DR和BDR的选举。
在DR和BDR选举时这个优先级值是个关键。我们来看一下当时行DR和BDR选举时的的步骤。
1,建立一个符合条件路由器的列表。用以下标准
优先级大于0
OSPF状态为双向
DR或BDR的IP地址是与所参加接口的IP地址相同
2,从符合条件的路由器列表中形成所有不要求成为DR的路由器列表;
3,使用下列标准,从第二步列表中选择BDR
此BDR的IP地址是与所参加接口的IP地址相同
带有最高路由器优先顷的路由器将成为BDR
如果所有路由器的优先级是相等的,拥有最高路由器ID的路由器将成为BDR
如果上述标准没有路由器能够满足,则带有最高路由器优先级的路由器将被选择为BDR,万一它们相等,带有最高路由器ID的路由器将被选为BDR
4.使用下列标准,从剩下的符合条件的路由器中选择DR
此DR字段使用路由器的接口的IP地址来进行设备
事宜最高路由器优先级的路由器被选为DR
如果没有剩余的符合条件的路由器声明要成为DR,在第3步中选择的BDR将成为DR
LSA
OSPF从 LSA数据库得到路由选择表。OSPF有各种路由器名称 和区域类型。这种复杂
性要求OSPF尽可能准确地交流信息以得到最佳的路由选择。OSPF通过使用不同的类型
的LSA来完成通信。
在这里不作详细介绍,请见下表
LSA类型编号 LSA描述
1 路由器链路通告
2 网络链路通告
3 ABR汇总链路通告
4 ASBR汇总链路通告
5 自治系统扩展路由通告
6 多播组LSA
7 非完全端区扩展
9 不透明的LSA:本地链路范围
10 不透明的LSA:本地区域范围
11 不透明的LSA:自治系统范围
SPF
SPF比较从一点到另一点间经过的不同路径中的最短中的最短路径。CISCO系统实现的SPF算法可以更快的计算路由。这种改变导致了两种类型的SPF计算:完整的和局部的。而SPF树是指通过网络到达