什么是OSPF
OSPF基于链路状态的自治系统内部的路由协议,相较于RIP来说,OSPF具有更大的扩展性,快速收敛性和安全可靠性,同时能尽可能减少对网络资源的浪费。但是OSPF的算法需要消耗更多的路由器内存和处理能力,比较适合中小型网络构建。
复制代码
OSPF协议工作过程概述
- 个人资历有限,如有错误请及时指出,谢谢!
1. 寻找邻居
- 先寻找网络中可以与自己交互链路状态信息的周边路由器,可以交互则为邻居。
- OSPF路由器周期性的从启动OSPF协议的每个接口以组播的方式发送Hello包,已寻找邻居,Hello包会携带一些参数:始发路由器的RouterID,Area ID,接口的地址掩码,以及选定的DR路由器,路由器优先级等信息。
2. 建立邻接关系
- 它是在邻居路由器之间构成的,只有建立了邻接关系的路由器才能互相传递链路状态信息。
- 下图有5台路由器,且都在OSPF区域内,彼此互为邻居并且都建立邻接关系,那么就会有10个邻接关系,如果有10台路由器,则有45个邻接关系,如果n台,那么:n(n-1)/2个邻接关系,因此需要消耗较多的资源来维持。注:连接为点到点的虚连接,这里用接口线代替。
- 为了解决以上问题,OSPF会选举一台DR(指定路由器):负责用LSA描述该网络类型以及网络内其它路由器。DR选定后,所有路由器只与DR建立邻接关系。如果DR失效,则会重新选举一台新的DR。
- 为了加快收敛速度,在选举DR的同时,会再选举一个BDR(备份指定路由器).网络上所有路由器将与DR和BDR同时形成邻接关系,如果DR失效,BDR会成为新的DR。如下图采用DR/BDR方式建立邻接关系:
选举:优先级高将被宣告为BDR,优先级相同则 Router ID大的优先。BDR选举成功后,进行DR选举.优先级最高的为DR。
3. 链路状态信息传递
- OSPF路由器将根据自己周围的网络拓扑结构生成一条LSA(链路状态通告),建立邻接关系的OSPF路由器之间互相交换自身的LSA,最终形成包含网络完整链路状态信息的LADB(链路状态数据库)。
- OSPF路由器之间通过发布LSA来交互链路状态信息,通过获得对方的LSA,同步OSPF区域内链路状态信息后,各路由器形成相同的LSDB。
4. 计算路由
- 在获得完整的LSDB之后,在OSPF之内的每个路由器都会对这个网络的结构有相同的认识,随后各个路由器依据LSDB的信息用SPF算法独立计算出路由。
- 计算过程:
- 评估一台路由器到另一台路由器需要的开销(cost)。
- 同步LSDB区域内每台路由器的LSDB。
- 使用SPF计算出路由(用SPF算法以自身为根节点计算出最短路径)。
配置OSPF
[H3C]interface G 0/0 //进入接口
[H3C]ip address 10.0.0.1 24 //配置ip
[H3C]interface LoopBack 0 //配置环回口 0接口
[H3C-loopback-0]ip address 1.1.1.1 255.255.255.0 //配置ip
[H3C-loopback-0]quit //退出
[H3C]router id 1.1.1.1 //配置router id
[H3C]ospf //启动ospf,默认从1开始
[H3C-ospf-1]area 0 //ospf区域,0-4096区间
[H3C-ospf-1-area-0.0.0.0]network 1.1.1.1 0.0.0.255 //接口上启动ospf,设置反向子网掩码
复制代码
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END