OSPF 协议
OSPF(开放最短路径优先)是一种内部网关协议,用于在同一自治系统内进行路由选择,支持无类域间路由(CIDR)和可变长子网掩码(VLSM)。
链路状态路由协议(LSA)通告的是链路状态而不是路由表,运行链路状态路由协议的路由器之间首先会建立一个协议的邻居关系,然后彼此之间开始交互LSA;
OSPF路由器将网络中的LS信息收集起来,存储在LSDB中。路由器都清楚区域内的网络拓扑结果,这有助于路由器计算无环路径;
SPF计算
每台路由器基于LSDB,使用SPF(最短路径优先)算法进行计算,每台路由器都计算出一颗以自己为根、无环的、拥有最短路径的树,有了这个树,路由器就已经知道了到达网络各个角落的优选路径;
链路状态:OSPF 路由器通过交换链路状态通告(LSA),构建网络的拓扑图。
最短路径树:路由器使用 Dijkstra 算法,计算到达各网络的最短路径。
ospf基础术语
区域
ospf area用于标识一个osfp的区域
区域是从逻辑上将设备划分为不同的组,每个组用区域号(Area id)来标识;
度量值
ospf使用cost(开销)作为路由的度量值。每一个激活了ospf的接口都会维护一个接口cost值,缺省时,接口cost值=100mbit每秒除接口带宽,100为设定的参考值
router-id
路由器标识符,用于在一个ospf域中唯一标识一台路由器;可以通过手工配置的方式,或者使用系统自动配置的方式
ospf的三大表项(邻居表、lsdb表、路由表)
邻居表
ospf在传递链路状态信息之前1,需先建立ospf邻居关系
ospf的邻居关系通过交互hello报文建立
ospf邻居表显示了ospf路由器之间的邻居状态,使用display ospf peer查看
lsdb表
lsdb会保存自己产生的及从邻居收到的lsa信息
type标识lsa的类型,advrouter标识发送lsa的路由器
使用命令行display ospf lsdb 查看lsdb表
路由表
ospf路由表和路由器路由表是两张不同的表项
包含destination、cost和nexthop等指导转发的信息
使用命令display ospf routeing查看路由器表
ospf完成邻接关系的建立有四个步骤,建立邻居关系,协商主/从、交互lsdb信息,同步lsdb
ospf网络类型是一个非常重要的接口变量,这个变量将影响ospf在接口上的操作,例如采用什么方式发送ospf协议报文,以及是否需要选举dr、ndr等
默认网络类型取决于接口所使用的数据链路层封装
ospf有四种网络类型,broadcast、nbma、p2mp和p2p
一般情况下,链路两端的ospf接口网络类型必须一致,否则无法建立邻居关系
为优化网络中ospf邻接关系,ospf指定了三种ospf路由器身份,dr(指定路由器)、bdr(备用路由器)和drother路由器
只允许dr、bdr与其他ospf路由器建立邻接关系,drouter之间不会建立全邻ospf邻接关系,bdr会监控dr的状态,并在当前dr发送故障时接替其角色
ospf路由器根据其位置或功能不同,有这几种类型:区域内路由器、区域边界路由器abr、骨干路由器、自治系统边界路由器asbr;
ospf基础配置命令
(系统视图)创建并运行ospf进程
ospf [process-id | router-id router-id
ospf支持多进程,在同一台设备上可以运行多个不同的ospf进程,它们之间互不影响
(ospf视图)创建并进入ospf区域
area area-id
area-id可以是十进制整数或点分十进制格式,采取整数形式,取值范围是0~429497295
(ospf区域视图)指定运行的ospf的接口
network network-address wildcard-mask
network命令用来指定运行ospf协议的接口和接口所属的区域,network-address为接口所在的网段地址,wildcard-mask为IP地址的反码
配置ospf接口开销
ospf cost cost
ospf cost 命令用来配置接口上运行ospf协议所需的开销,缺省情况下,ospf会根据接口的带宽自动计算其开销值
设置ospf带宽参考值
bandwidth-reference value
用来设置通过公司计算接口开销所依据的带宽参考值11
设置接口在选择dr时的优先级
ospf dr-priority priority
用来设置接口在选举dr时的优先级,priority值越大,优先级2越高,取值范围是0~255