众所周知,路由器的连接分为两大类,静态路由和动态路由。但是静态路由的在实际应用中由于可用性低,权限等问题存在各种隐患,所以动态路由闪亮登场。
动态路由要实现传输,就要有动态路由协议,主要的协议有三种RIP协议、OSPF协议、BGP协议
RIP协议能够在局域网中快速找到最适合的路径,但是缺点是限制于只能十五跳,所以只适合小范围的应用。
BGP协议一般用于两个连接不同的自治系统
而我们今天的主角OSPF协议,OSPF协议可以通过Dijkstra algorithm(迪杰斯特拉最短路径算法)查找路径,用于在同一个自治系统(AS)内的路由器之间交换路由信息。OSPF使用链路状态路由算法,它计算出每个路由器到其他路由器的最短路径,并将这些信息广播给网络中的其他路由器。而且会实时更新路由表,以保证可靠性。因为其可靠性,现在广泛用于企业和互联网提供商的路由器之间的通信。
三张表
而OSPF协议可以做到这样强大的功能主要依靠着这么三张表:邻居表、拓扑表、路由表。
邻居表:能够让路由器了解到相邻的路由器端口
拓扑表LSDB:在OSPF中传输的每一条报文信息叫LSA,LSDB相当于ospf中的数据库
路由表:OSPF根据LSDB中的数据,通过算法从而得到路由信息将其加载到全局路由表,还要经过比较路由优先级过程。·
报文类型
LSA上面提到过是报文信息,这些报文的类型有五种:
hello报文
用于发现邻居
DBDs(database descriptor packets)
描述本地LSDB的摘要信息,用于两台设备进行数据库同步
LSRs(link state request)
向对方申请缺失的记录(LSA)
LSU(link state update)
更新信息
LSACKs(link state ack)
收到LSA进行响应