OSPF的基本概念及但区域配置
 
OSPF路由协议是一种链路状态路由协议。
一、OSPF路由协议的概述
开放式最短路径优先协议(open sortest path first ,OSPF)是基于开放标准的链路状态路由选择协议。
 
二、OSPF是内部网关路由协议。
内部网关路由协议(IGP:用于单一自治系统内决策路由。
RIP V1 RIP V2OSPF都属于内部网关路由协议(IGP)。与内部网关路由协议像对应的外部网关路由协议(EGP,外部网关路由协议用于在多个自治系统之间执行的路由。
三、OSPF区域
四、OSPF 是链路状态路由协议
五、Router ID
六、Router ID是在OSPF区域内唯一标识一台路由器的IP地址。Cisco路由器通过下面的方法得到他们的Router ID
*  首先,路由器选取他们所有loopback接口是那个数值最高的IP地址。
*  如果路由器没有配置loopback接口的IP地址,那么路由器就在所有物理端口中选取一个数值最高的IP地址作为路由器的Router ID。用作RouterID的路由器结果不一定非要运行OSPF协议。
 
使用loopback结果作为routerID主要有两个好处。
* Loopback接口比任何其他网络的物理端口都更稳定。一旦路由成功,这个环接口就处于活动的状态了,只有整个路由器失效时它才失效。
* 网络管理员可以配置很好识别和便于记忆的RouterID
 
七、OSPF的工作过程。
运行RIP的路由器只需保存一张路由表,而使用OSPF路由器协议的路由器需要保存3张路由表。
* 邻居列表
列出了每台路由器已经建立的邻接关系的邻居路由表。
 
* 链路状态数据库(LSDB
列出了网络中其他路由器的信息,由此显示了全网的网络拓扑图。
 
* 路由表
列出通过SPF算法就算出的到达每个相连网络的最佳路径。
八、邻接关系的建立
1、  邻接关系的建立过程。
 
九、OSPF的网络接口类型
路由器的接口类型不同,在建立邻接关系的时候,OSPF路由器执行的操作也不同,因此,OSPF定义了如下接口类型
* 点到点网络(poing to point
* 广播多址网络(baoadcast)
* 非广播多址网络(NBMA)
* 点到多点的网络(point to multipont)
网络类型
示例
广播多址网络
以太网
非广播多址网络
帧中继
点到点网络
PPPHDLC
点到多点网络
多个点到点的链路集合
 
 
十、OSPF多址网络中的DRBDR
对上述的四种网络接口类型,路由器建立邻接关系的步骤也略有不同,
 
 
 
为了完成广播网络中避免这些问题的发生,可以在网段上选举一个指定的路由器DR
DR将完成以下工作。
(1)       DR同网络中的其他路由器变成邻接关系。因为链路状态数据库是通过邻接关系的建立进行同步的DR在这个同步的过程中起着核心的作用。
(2)       管理这个多址网络上的泛洪过程。
如果网络上的每一台路由器都将和指定的路由器过程邻接关系,那么就只需要建立n-1个邻接关系就可以了,所有的路由器只和指定的路由器(DR)建立邻接关系,也就是和DR互相交换链路状态信息。,DR将从各个非DR的路由器上收集到的完整的链路信息以组播的形式发送到网络上,其他与DR建立邻接关系的路由器会接收到这个网络内完整的链路信息。
为了加强网络的冗余性,当一个指定的路由器失效时,必须有一个新的指定的路由器来接替他继续同网络上的其他路由器重新建立邻接关系,进行网络数据库的同步。这个路由器是备份指定路由器(Backup Designated RouterBDR)。这样网络中的路由器将和指定路由器和备份指定路由器同时形成邻接关系。DRBDR之间也将互相形成邻接关系。如果DR失效了,BDR将成为新的DR
为了能够使选举DR/BDR的处理过程正常进行,需要满足一些一些条件:
每台路由器的每一个多点的访问接口都有一个路由优先级(Router priority),用一个8位的无符号整数来表示,大小的范围是0-255,数值越到,优先级越高。在cisco路由器上默认的优先级是1.基于每一个多点访问接口都可以通过命令ip ospf priority来更改。具有0优先级的路由器不能成为DRBDR
 
十一、       OSPF的包类型
        OSPF路由器为了同他的邻居路由器有效的共享链路状态信息,需要在路由器之间建立关系。OSPF路由器依靠5种不同的包来标识他们的邻居已经更新链路状态路由信息。这5种类型包使得OSPF具备了高级和复杂的通信能力。5中包类型如下表:
链路状态
描述
HELLO
建立和维护同邻居路由器的邻接关系
数据库描述包DBD
描述每台OSPF路由器的链路状态库的内容
链路状态请求包LSR
请求链路状态数据库的部分内容
链路状态更新包LSU
传送链路状态数据通告LSA邻居路由器
链路状态确认包LSACK
确认邻居发送过来的LSA已经收到
   Hello报文用于发现恶化维护邻居关系,并保证邻居间的双向通信。在不同的类型网络中,hello协议的工作方式如下:
Ø 多址网络:周期性的组播hello包,允许邻居的动态发现,尝试进行指定路由器DR/备份指定路由器BDR的选举。
Ø 点到点的网络:发送hello包给与之直连的能通信的全部路由器。
DBDLSR报文用于建立邻接关系。
LSULSACK报文用于实现OSPF可靠的更新机制。
 
十二、       OSPF的路由传播
整个OSPF的拓扑图可以描述成一组互联的节点,这里所说的互联不是指物理的链路而是逻辑的邻接关系。为了使这些节点能够在这里逻辑的拓扑上完全进行路由选择,每个节点都必须拥有一个关于这个拓扑图结构的相同的拓扑图。这个拓扑图就是拓扑数据库,也叫链路状态数据库。这个数据库由路由器可以收到的所以LSA组成。在拓扑图中发生的一个变化将成为可以表示的一条或多条LSA的变法。泛洪(flooding)过程就是将这些变化的或新的LSA发送到整个网络中去,以确保每一个节点的数据库都可以更新,最终保持所有的节点的数据库的同一性的过程。
泛洪过程需要使用到下面两种类型的OSPF报文
(1)       链路状态更新报文(linkstateupdatepacks ,类型4
(2)       链路状态确认报文(linkstateacknowledgmentpasks,类型5
 
十三、       OSPF的度量值
      OSPF使用度量路径优劣的度量值称为cost(代价)。是指从该接口发送出去的数据包的出站口代价。链路代价是OSPF协议的度量,并使用16位的无符号的整数表示,大小范围是1-65535之间。
 
十四、       使用OSPF的原因
(1)       网络规模
(2)       网络拓扑结构
(3)       其他的特殊要求
(4)       路由器的自身要求
 
十五、       OSPF的特点
* 可适应大规模的网络
* 路由变化收敛快
* 无路由环
* 支持可变成的子网掩码
* 支持区域的划分支持以组播地址发送协议报
 
十六、       OSPFRIP的比较
OSPF
RIPV1
RIPV2
链路状态路由协议
距离矢量路由协议
没有跳数的限制
RIP15跳的限制
支持可变成的子网掩码(VLSM)
不支持可变成的子网掩码(VLSM)
支持可变成的子网掩码(VLSM)
收敛速度快
收敛速度慢
使用组播发送链路状态更新,在链路状态变化时使用触发更新,提高了带宽的利用率
周期性的广播整个路由表,在低速链路及广域网中使用将产生很大的问题.
 
 
十七、       OSPF但区域的介绍
十八、       OSPF单域的基本配置命令
1、  配置lookback接口地址,为运行OSPF的路由器配置一个loopback接口,用来作为路由器的router ID。配置命令:
Router(config)#interface loopback 0
Router(config)#ip address IP 地址 掩码
2、  启用OSPF进程。与配置RIP不同的是,在配置OSPF的时候需要配置进程号,进程号是本路由器的进程号,用于标识一台路由器上的多个OSPF进程,其值可以在1—65535之间。
Router(config)# router ospf 进程号
3、  指定OSPF协议运行的接口和所在的区域。
Router(config-router)#network 网络号 反向掩码 area 区域号
4、  修改接口的cost值,cost值使用16位的无符号整数表示,大小范围在1—65535之间。
Router(config-if)#ip ospf cost cost
例如:router(config)#interface s0
      Router(config-if)#ip ospf cost 1000
5、  配置OSPF计时器,这些值是一些典型值,一般不需要改动。只有当需要同另外的路由器的性能进行匹配时可能需要改动这些计时器的配置
Router(config-if)#ip ospf  hello-interval 时间
   Router(config-if)#ip ospf  dead-interval 时间
6、  用于诊断时的查看命令
* 查看邻居列表
Router#show ip ospf neighbor
* 查看链路状态数据库
        Router#show ip ospf database
* 查看路由表
        Router#show ip route
* 查看OSPF的配置
Router#show ip ospf
* 查看OSPF接口数据结构
        Router#show ip ospf interface 接口