OSPF(链路状态路由协议):Open Shortest Path First开放式最短路径优先协议
是一个内部网关协议(Interior Gateway Protocol,简称IGP),用于在单一自治系统(autonomous system,AS)内决策路由。是对链路状态路由协议的一种实现,隶属内部网关协议(IGP),故运作于自治系统内部。OSPF支持负载均衡和基于服务类型的选路,也支持多种路由形式,如特定主机路由和子网路由等。
周期更新(30min)+触发更新;链路状态协议的更新量随着网络范围的扩展指数性的上升,因此ospf协议为了在中大型网络中工作,需要结构化的部署-区域划分、合理ip地址规划;
组播更新:224.0.0.5 224.0.0.6
版本区别:
OSPFv2用于IPv4,基于网络运行。
OSPFv3用于IPv6,基于链路的。
特点:
无环路,收敛快,扩展性好,支持认证
工作原理:
四张表:
邻居表:主要记录形成邻居关系路由器。
链路状态数据库:记录链路状态信息。
OSPF路由表:通过链路状态数据库得出。
全局路由表:OSPF路由与其他比较得出。
五种报文:
Hello报文:建立并维护邻居关系;周期(10s)的保活;携带rid。
DBD报文:数据库描述包;本地数据库目录;发送链路状态头部信息。
LSR报文:链路状态请求;把从DBD中找出需要的链路状态头部信息传给邻居,请求完整信息。
LSU报文:链路状态更新;将LSR请求的头部信息对应的完整信息发给邻居。
LSACK报文:链路状态确认;收到LSU报文后确认该报文。
LSA:链路状态;具体一条一条路由信息或拓扑信息,但它不是一个包,是被lsu数据包来携带。
LSDB:链路状态数据库;所有LSA的集合。
七个状态机:
1.Down:没有启用OSPF的状态机,邻居失效后变为该状态;一旦接收到hello包,进入下一个状态机。
2.Init:初始化状态,一旦收到对端发来的hello包,存在本地的rid时,进入到下一个状态机。
3.2-way:邻居状态,邻居关系建立的标志;相互间周期发送hello的状态(双向通讯)。
4.Exstart:预启动,交换信息的初始化状态;发送不携带目标信息的DBD包(包含本地的LSA的摘要信息),选举主从路由器利用hello包中的RID和优先权来进行选举,RID大为主,不允许抢占,DR没了,BDR才能上);解决了目录共享时的无序。
5.Exchange:准交换,交换信息的状态;使用携带目标信息的DBD包,共享本地数据库目录。
6.Loading:加载状态(没有学习完的状态);查看完邻接的DBD信息后,对比本地,然后基于本地未知的LSA进行查询;使用LSR向对端查询,对端使用LSU来传输这些LSA信息,本地收到后需要LSACK来进去确认。
7.Full:邻接状态(学习完的状态),邻接关系建立的标志;彼此的LSDB同步,即所有的LSA相同。
工作过程:
启动配置完成后,邻居间开始收发hello包,hello包中将携带本地及本地所有已知邻居的rid,之后生成邻居表,邻居间需要关注是否可以成为邻接的条件。
若不能建立为邻接,将保持为邻居关系,仅hello包周期保活即可。
若可以建立邻接关系,将使用DBD进行本地数据库目录的对比,之后基于对比的结果,使用LSR/LSU/LSACK来获取本地未知的LSA信息,使邻接关系间数据库(LSDB)完成同步(一致),生成数据库表(链路状态数据库表)。
之后本地基于LSDB,使用spf算法,生成有向图->最短路径树->计算本地到达所有未知网段的最短路径,将其加载到本地路由表(OSPF路由表)中,收敛完成。
收敛完成后,邻居和邻接关系间均hello每10s保活,每30min一次邻接关系间周期数据库比对得出全局路由表,保障一致。
结构突变:
1.新增网段
2.断开网段
3.无法沟通:dead time为hello time的4倍即在4次周期内未收到对端的hello包,将断开与其的邻居关系,删除通过该邻居计算所得路由。
基础配置:
[R1]ospf 1 router-id 1.1.1.1 启动时可以定义进程号、RID,默认进程1;RID格式为IPV4地址,全网唯一;取RID顺序:手工->环回接口最大数值->物理接口最大数值
[R1-ospf-1]
宣告:1.激活:可以收发ospf的信息 2.被选中接口的拓扑信息可以共享给邻接 3.区域划分
ospf在宣告时,需要使用反掩码,来匹配宣告的地址范围
[R1-ospf-1]area 0
[R1-ospf-1-area-0.0.0.0]network 1.1.1.1 0.0.0.0 精确宣告
[R1-ospf-1-area-0.0.0.0]network 12.1.1.0 0.0.0.255 范围宣告
区域划分规则:
1、星型结构:编号0为骨干区域(中心),大于0为非骨干区域(分支);非骨干区域必须直连骨干区域。
2、必须存在ABR:区域边界路由器,两个区域间互联的设备
启动配置完成后,邻居间收发hello包,建立邻居关系,生成邻居表。
[R2]display ospf peer 查看邻居关系
[R2]display ospf peer brief 查看邻居简表
邻居关系建立后,关注条件;匹配失败,保持为邻居关系,仅hello包周期保活;匹配成功可以建立为邻接(毗邻)关系;邻接关系间,将使用DBD/LSR/LSU/LSACK来获取本地未知的LSA信息,完整的本地的LSDB(数据库表)。
[R2]display ospf lsdb 查看完整的本地的LSDB(数据库表)
当数据库同步完成后,本地基于SPF算法,将数据库转换为有向图,再将有向图转换为树型结构;之后基于树形结构,以本地为起到到达所有未知网段的最短路径,加载到路由表中。
display ip routing-table protocol ospf 查看ospf路由
优先级为10,度量为cost值,cost值=开销值
Ospf cost = 参考带宽/接口带宽 默认参考带宽为100M
ospf优选cost值之和最小,为最佳路径;若两条链路cost值之和相同,等开销负载均衡;
若接口带宽大于参考带宽,cost为1,将可能导致选路不佳,建议修改默认的参考带宽。切记:若修改参考带宽,全网需修改的一致。
[R1]ospf 1
[R1-ospf-1]bandwidth-reference ?
INTEGER<1-2147483648> The reference bandwidth (Mbits/s)
[R1-ospf-1]bandwidth-reference 1000
扩展配置:
1.DR/BDR选举
邻居成为邻接关系的条件,与网络类型有关。
网络类型:
点到点–在一个网段内只能存在两个节点。 串线链路
MA:多路访问,在一个网段内的节点数量不限制;不是当下连接了几个节点,而是该网络类型允许最终连接多个节点。 以太网
点到点网络邻居关系直接成为邻接关系。
在MA网络中,将进行DR/BDR选举;在一个网段中仅DR/BDR与其他路由器为邻接关系;非DR/BDR之间为邻居关系。
选举规则:
1.先比较该网段所有参选设备接口的优先级,越大越优;默认优先级为1;取值范围0-255,0标识不参选。
2、若所有参选者优先级相同,比较参选设备的RID,数值大优。
干涉选举:
1.DR优先级最大,BDR次大 切记ospf的选举是非抢占性的,故在修改完优先级后,需要所有路由器重启OSPF进程。
[R2]interface GigabitEthernet 0/0/0
[R2-GigabitEthernet0/0/0]ospf dr-priority 3 修改接口优先级
reset ospf process 重启ospf进程
Warning: The OSPF process will be reset. Continue? [Y/N]:y
2.DR优先级修改为最大,BDR次大;其他设备修改为0,退出选举;无需重启进程。
2.区域汇总
OSPF协议不支持接口汇总,只能在ABR上将a区域拓扑计算所得路由,共享给B区域时进行汇总。
[R2]ospf 1
[R2-ospf-1]area 0
[R2-ospf-1-area-0.0.0.0]abr-summary 1.1.0.0 255.252.0.0
R2为一台连接区域0和其他区域的ABR;以上操作为:R2将通过区域0学习到的拓扑计算所得的路由,传递给其他区域时进行汇总,汇总网段为1.1.0.0/22。
3.被动接口(沉默接口)
仅接收不发送路由协议信息;用于连接用户终端的接口,不得用于连接邻居路由器的接口,否则无法建立邻居关系。
[R2]ospf 1
[R2-ospf-1]silent-interface GigabitEthernet 0/0/0
4.认证
接口认证在直连邻居或邻接的接口上配置,保障更新的安全。
[R1-GigabitEthernet0/0/1]ospf authentication-mode md5 1 cipher 123456 模式、编号、密码要求邻居间一致
5.加快收敛
邻居间计时器:10s hello time 40s dead time
邻居间,修改本端的hello time,本端的dead time自动4倍关系匹配,但ospf中邻居间的hello time和dead time必须完全一致,否则无法建立邻居关系。
[R1]interface GigabitEthernet 0/0/0
[R1-GigabitEthernet0/0/0]ospf timer hello 5
6.缺省路由
边界路由器上配置后,将自动向内网下放一条缺省路由,之后内网设备将自动生成缺省路由指向边界。
[R4]ospf 1
[R4-ospf-1]default-route-advertise always