OSPF定义了四种网络类型,分别是点到点网络,点到多点网络,广播型网络和NBMA(非广播多路访问)网络。
非广播网络是指支持两台以上路由器互连,但是不具有广播能力的网络。
在非广播网络上,OSPF有两种运行方式,非广播多路访问和点到多点。
非广播多路访问(NBMA):
在NBMA网络上,OSPF模拟在广播型网络上的操作,但是每个路由器的邻居需要手动配置。
NBMA方式要求网络中的路由器组成全连接。例如,使用SVC进行通信的ATM网络。
在配置NBMA的情况下,OSPF在同一时刻向每一个路由器只会发送一个Hello包(Hello包周期性发送,用于建立和确定路由间的邻居关系)而不是进行多播。Hello包的发送周期间隔的范围为10s~30s,而判断邻居失效(dead)的时间范围为40s~120s(4倍于Hello包发送间隔)。
SVC是Switching Virtual Circuit的缩写,意思是交换虚拟电路。信息包交换虚拟线路(节点之间只在需要传送数据时才建立逻辑连结) 面向连接的网络中,从一台计算机到另一台计算机的连接。SVC是虚拟的,因为路径是从路由表中得到的,而不是建立物理线路。SVC是交换的,因为它能按需要建立,类似于一次电话呼叫。
面向连接:一种网络协议,依赖发送方和接收器之间的显示通信和阻塞以管理双方的数据传输。网络系统需要在两台计算机之间发送数据之前先建立连接的一种特性。
面向连接的服务(connection-oriented service)就是通信双方在通信时,要事先建立一条通信线路,其过程有建立连接、使用连接和释放连接三个过程。
点到多点:
将整个非广播网络看成是一组点到点网络。每个路由器的邻居可以使用底层协议例如反向地址解析协议(Inverse ARP)来发现。
对于不能组成全连接的网络应当使用点到多点方式,例如只使用PVC的不完全连接的帧中继网络。
TCP协议就是一种面向连接服务的协议,电话系统是一个面向连接的模式。
如果一种服务具有下列特征,就认为它是面向连接的:
1、建立一条虚电路(比如3次握手)
2、使用排序
3、使用确认
4、使用流量控制。流量控制的类型有:缓冲、窗口机制和拥堵避免。
面向连接的服务就是通信双方在通信时,要事先建立一条通信线路,其过程有建立连接、使用连接和释放连接三个过程。TCP协议就是一种面向连接服务的协议,电话系统是一个面向连接的模式。
OSPF基本特点:
1、支持无类域间路由(CIDR):
OSPF是专门为TCP/IP环境开发的路由协议,支持无类域间路由(CIDR)和可变长子网掩码(VLSM)。
2、无路由自环:
由于路由的计算是基于详细链路状态信息(网络拓扑信息)的,所采用的SPF算法本身不会产生环路,并且OSPF报文携带生成者的ID信息,因此OSPF计算的路由无自环。
3、收敛速度快:
触发式更新,一旦拓扑结构发生变化,新的链路状态信息立刻泛洪,对拓扑变化敏感。
4、使用IP组播收发协议数据:
OSPF路由器使用组播和单播收发协议数据,因此占用的网络资源很小。224.0.0.6
5、支持多条等值路由:
当到达目的地的等开销路径有多条时,流量被均衡地分担在这些等开销路径上。
6、支持协议报文的认证:
OSPF路由器之间交换的所有报文都被验证。
链路状态算法计算过程:
每一个路由器通过泛洪LSA向外发布本地链路状态信息
每一个路由器通过收集其他路由器发布的LSA以及自身的LSA生成链路状态数据库(LSDB),LSDB描述了路由域内详细的网络拓扑结构
通过LSDB,每台路由器计算一个以自己为根,以网络其他节点为叶的最短路径树
通过每台路由器计算的最短路径树得出了到网络中其他节点的路由表
OSPF区域是一组网段的集合。
OSPF支持将一组网段组合在一起,这样的一个组合称为一个区域,即区域是一组网段的集合。
划分区域可以缩小LSDB规模,减少网络流量。
区域内的详细拓扑信息不向其他区域发送,区域间传递的是抽象的路由信息,而不是详细的描述拓扑结构的链路状态信息。每个区域都有自己的LSDB,不同区域的LSDB是不同的。路由器会为每一个自己所连接到的区域维护一个单独的LSDB。由于详细链路状态信息不会被发布到区域以外,因此LSDB的规模大大缩小了。
Area 0为骨干区域,骨干区域负责在非骨干区域之间发布由区域边界路由器汇总的路由信息(并非详细的链路状态信息),为了避免区域间路由环路,非骨干区域之间不允许直接相互发布区域间路由信息。因此,所有区域边界路由器都至少有一个接口属于Area 0,即每个区域都必须连接到骨干区域。(或者通过虚连接的方式)
路由器分类:
内部路由器(Internal Router):
内部路由器是指所有所连接的网段都在一个区域的路由器。属于同一个区域的IR维护相同的LSDB。
区域边界路由器(Area Border Router):
区域边界路由器是指连接到多个区域的路由器。ABR为每一个所连接的区域维护一个LSDB。
骨干路由器(Backbone Router):
骨干路由器是指至少有一个端口(或者虚连接)连接到骨干区域的路由器。包括所有的ABR和所有端口都在骨干区域的路由器。
AS边界路由器(AS Boundary Router):
AS边界路由器是指和其他AS中的路由器交换路由信息的路由器,这种路由器向整个AS通告AS外部路由信息。
AS边界路由器可以是内部路由器IR,或者是ABR,可以属于骨干区域也可以不属于骨干区域。
链路状态算法以图论作为理论基础,用图来表示网络拓扑结构,并利用图论中的最短路径算法来计算网络间的最佳路由.
每一个路由器都能够利用通路最短的原则建立一个以本路由器为根、分支到所有其他路由器的生成树,依据这个生成树就可以很容易地计算出本路由器的路由表。
1.向本自治系统中的所有路由器发送信息。这里使用的方法是洪泛法(Flooding),即路由器通过所有的输出端口向所有的相邻路由器发送信息。而每一个路由器又将此信息发往其所有的相邻的路由器(但不包括刚刚发来信息的那个路由器)。
2.发送的信息就是本路由器相邻的所有路由器的链路状态,但这只是路由器所知道的部分信息。所谓“链路状态”就是说明本路由器和那些路由器相邻,以及该链路的“度量”(Metric)。对于OSPF,链路状态的“度量”主要用来表示费用、距离、时延、带宽等。
3.只有当链路状态发生改变时,路由器才用洪泛法向所有路由器发送此信息。
每个路由器需要有较大的存储空间,用以存储所收到的每一个节点的链路状态分组;计算工作量大,每次都必须计算最短路径。
每一个含有至少两个路由器的广播型网络和NBMA网络都有一个指定路由器(Designated Router,DR)和备份指定路由器(Backup Designated Router,BDR)。
DR和BDR的作用:
1.减少邻接关系的数量,从而减少链路状态信息以及路由信息的交换次数,这样可以节省带宽,减少路由器硬件的负担。一个既不是DR也不是BDR的路由器只与DR和BDR形成邻接关系并交换链路状态信息以及路由信息,这样就大大减少了大型广播型网络和NBMA网络中的邻接关系数量。
本例中,虽然RTA有三个邻居,但是只形成两个邻接关系。
2.在描述拓扑的LSDB中,一个NBMA网段或者广播型网段是由单独一条LSA来描述的,这条LSA是由该网段上的DR产生的。
DR和BDR的选举:(越大越优先)
1、优先级(Router Priority)
2、Router ID
但是为了维护网络上邻接关系的稳定性,如果网络中已经存在DR和BDR,则新添加进该网段的路由器不会成为DR和BDR,不管该路由器的Router Priority是否最大。