组播拓展OSPF
OSPF(Open Shortest Path First开放式最短路径优先)是一个内部网关协议。
定义
OSPF路由协议是一种典型的链路状态的路由协议,一般用于同一个路由域内。在这里,路由域是指一个自治系统(AS),它是指一组通过统一的路由政策或路由协议互相交换路由信息的网络,在这个AS中所有的OSPF路由器都维护一个相同的描述这个AS结构的数据库,这个数据库中存放的是路由域中相应链路的状态信息,OSPF路由器正是通过这个数据库计算出其OSPF路由表的 作为一种链路状态的路由协议,OSPF将链路状态组播数据LSA(Link State Advertisement)传递给在某一区域内的所有路由器,(距离矢量路由协议的路由器是将部分或者全部路由表传递给与其相邻的路由器)
工作原理
OSPF简单来说就是两个相邻的路由器通过发送报文的形式成为邻居关系,邻居在相互发送链路状态信息形成邻接关系,之后最短路径算法算出路由,放在OSPF路由表中,OSPF路由与其他路由比较后,优的路由表加入全局路由表中。 五种报文
报文 | 作用 |
---|
Hello 报文 | 建立并维护邻居关系 | DBD报文 | 发送链路状态头部信息 | LSR报文 | 把从DBD中找出需要的链路状态头部信息传给邻居,请求完整信息 | LSU 报文 | 将LSR请求的头部信息对应的完整信息发给邻居 | LSACK | 收到LAU报文后确认该报文 |
三个阶段
1. 邻居发现:通过发送HELLO报文形成邻居关系 2. 路由通告:邻居间发送链路状态信息形成邻接关系 3. 路由计算:根据最短路径算法算出路由表
四张表 邻居表:主要记录形成邻居关系的路由器 链路状态数据库:记录链路状态信息 OSPF路由表:通过链路状态数据库得出 全局路由表:OSPF路由与其他比较得出
工作过程
**1.本地收发hello包建立邻接关系,生成邻居表 2.在进行条件的匹配,匹配失败将停留于邻居关系,仅hello包保活即可 3.匹配成功者之间建立邻接关系,需要DBD共享数据库目录,LSR/LSU/LSACK来获取未知的LSA信息,当收集完网络网络中所有的LSA后,生成数据表LSDB 4.LADB建立完成后,本地基于OSPF选录规则,计算本地到达所有未知网段的最短路径,然后将其加载到路由表中,完成收敛。 5.收敛完成后 HELLO包周期保活 30分钟周期的BDB比对,若不一致将会LSR/LSU/LSACK重新获取 **
OSPF的状态机
DOWN: 接口状态关闭,不发送hello包,nbma网络类型下会跟指定邻居发送hello,(attempt:nama特有状态)** Int: 发送hello包里面存放了自己的router-id 2way : **在接受到hello包中发现自己的router id证明通信已经双方建立,点到点网络类型直接进入下一状态,ma网络中选 举DR BDR(先选取BDR,由BDR选取DR)等待时间40s。 Exstart: 表明邻接关系已经建立,协商mtu值,如果两段不一致则卡在这个阶段 Exchange: 交换进行的标志,发送链路拓扑后会备份一个放列表中,为重传做准备 序列号 Looding: 清空请求和重传列表 FULL:完成LSDB同步
OSPF的网络类型
点到点 不选取DR和BDR 广播选取DR BDR 且有40s等待时间 非广播 手动指定邻居
|