一、ospf是什么?(开放式最短路径优先,协议号89)
1、一个igp、公有、链路状态协议
2、通过组播224.0.0.5、224.0.0.6(dr,bdr)建立邻居
3、通过rid来唯一标识 一台路由器 (1、手动指定 2、路由器loopback地址3、物理地址)
4、ospf同步概念
二、lsa 链路状态
1、包含IP地址,子网掩码,网络类型,cost值等,通过获取链路状态信息,从而计算出每个目标的最优路径。ospf路由器将会把所有链路状态全部发给邻居,邻居会将收到的状态放入自己链路状态库,最终所有的路由器都拥有所有的链路状态
2、各种lsa
1) LSA-1 路由lsa
每台ospf路由器都会产生,在本区域泛洪,相当于告诉全村人家门口的状况
2)LSA-2 网络lsa
仅仅存在于ma网络,由dr产生,用来描述网络中所有路由器,只在area1内泛洪
3)LSA-3网络汇总lsa
由于abr产生,将1、2类lsa做个归纳,然后为其他区域生成3类lsa并泛洪到其他区域
4)LSA-4 asbr汇总lsa
指向asbr的lsa,由该区域的abr产生
5)LSA-5 AS外部lsa
4类lsa主要告诉城门在哪,里面情况。那么5类lsa主要告诉的是外面情况
6)七类lsa
nssa区域中的asbr产生,用于向nssa区域通告外部路由
三、ospf三张表
1、邻居表:通过hello报文进行邻居 认识,该路由器会记录hello报文中rid和接口的信息关联起来形成邻居表
2、拓扑表:里面存放着对整个网络的认知情况(类似地图)
3、路由表:只有最优的路由才会放入路由表
四、ospf的五种报文
hello报文:用于建立和维护邻居关系
DBD报文:用于 向邻居发送摘要信息以同步链路状态数据库,lsa目录信息,相当于书的目录,邻居看完就知道哪些lsa是需要发给自己的。
LSR报文:用于请求更详细的信息(本地没有的)
LSU报文:收到lsr后发送链路状态通告(lsa),一个lsu可能包含多个lsa
LSACk报文:确认收到lsu,每个lsa进行确认
五、ospf邻居建立过程
1、down
建立邻居的第一步 down,该状态我没有给邻居发送任何报文。也没有收到邻居报文
2、init 初始状态
收到邻居一个hello报文,但是在hello字段没有看见自己的路由器id
3、two-way 双边邻居
收到包含自己rid的邻居hello包,
4、exStart 准启动状态
选举主从关系
5、exchange
主路由器带动从路由器交互dbd报文
6、loading 加载
根据dbd报文得知双方需要的lsa信息,向邻居请求自己没有的lsa信息
7、full 完成
邻居建立完成
六、ospf接口的七种状态
1、down
接口初始状态 。接口不可用
2、loopback
环回状态,不可以进行正常的数据传输,但可以进行lsa通告,进行连通测试能够发现到达该路口的路径
3、waiting
在设备进行dr和bdr选举的时候,进入waiting计时器,在这个计时器超时前,设备发送hello报文不包含dr和bdr,说明存在dr和bdr,不参与选举。这样可以避免不必要改变已经存在的dr和bdr
4、drother
设备没有被选举成dr和bdr
5、p2p
这个接口连接到物理的点对点或者虚拟链路,这时候这个设备与另一端的设备建立邻居关系
存在 p2p、p2mp网络有此状态
6、dr
7、bdr
七、dr和bdr选举
作用:1)减少邻接关系
2)降低ospf协议流量
选举:基于接口选举
1)比较接口优先级,越大越优先
2)接口优先级相等,router-id越大越优先
3)如果前面都相等,比较物理ip,越大越优先