详解OSPF动态路由协议
一、ospf的五种数据包
? 1.hello包-发现、建立、保活邻居关系 ;周期为10s;dead time为hello的4倍;
? 2.DBD数据库描述-描述路由的目录
? 3.LSR链路状态请求
? 4.LSU链路状态更新
? 5.Lsack链路状态确认
二、ospf的七种状态机 状态机:两者之间关系状态的一个描述
Down`:一旦接受hello包,进入下一个状态`
Init`:初始化 收到的hello包中若存在本地的RID进入下一状态`
2-way`:双向通信 邻居关系建立的标志`
条件匹配:点到点网络直接进入下一状态;MA网络进行DR/BDR选举;非DR/BDR间不能进入下一状态
Exstart`:预启动,使用不携带信息的DBD包进行主从关系选举,RID数值大为主,优先进入下一状态`
Exchange`:准交换 使用携带数据库汇总信息的DBD包进行交互,需要ack确认`
Loading`:在基于其他设备发送过来的DBD包,对比本地缺失的LSA信息;使用LSR进行查询,对端使用LSU将这些LSA信息共享;需要ACK确认。`
Full: 转发 邻接(毗邻)关系建立的标志
注;LSA:链路状态通告,拓扑或者路由信息
三、ospf的工作过程 1.Ospf启动配置完成后,邻居间组播收发hello包获取对端的RID,建立邻居关系,生成邻居表;
? 2.邻居关系建立后,邻居间进行条件匹配;
匹配失败将维持邻居关系,仅hello包周期保活即可;
匹配成功者间,可以建立为邻接关系;将使用DBD进行主从关系选取;由主优先进行数据库目录的交互;之后使用LSR/LSU/LSack来获取未知的LSA信息;最终和邻居之间同步数据库;生成数据库表LSDB(LSDB-链路状态数据库 --所有lsa的集合(所有拓扑图信息))
? 3.当数据库同步完成后,本地将数据库转化为有向图;再转换为树形结构;最终基于树形结构计算本地到达所有未知网段的最短路径,加载到路由表中;
? 4.收敛完成后,hello包周期保活;每30min周期再对比数据库;
? 结构突变:
(1)新增网段
? (2)断开网段
? (3)无法沟通 dead time到时时,将断开邻居关系,删除信息
四、ospf的基础配置
[R1]ospf 1 route-id 1.1.1.1
[R1-ospf-1]area 0
[R1-ospf-1-0.0.0.0]network 1.1.1.1 0.0.0.0(代表1.1.1.1的四位均不可变)
[R1-ospf-1-0.0.0.0]network 12.1.1.0 0.0.0.255(代表12.1.1.0的前三位不可变)宣告后路由器寻找12.1.1.0-.255的接口,激活并选中 (后面是反掩码)
[R2]ospf 1 route-id 2.2.2.2
[R2-ospf-1]area 0
[R2-ospf-1-0.0.0.0]network 12.1.1.2 0.0.0.0
[R2-ospf-1-0.0.0.0]network 2.2.2.2 0.0.0.0
[R2-ospf-1-0.0.0.0]q
[R2-ospf-1]area 1
[R2-ospf-1-0.0.0.1]network 23.1.1.1 0.0.0.0
[R3]ospf 1 route-id 3.3.3.3
[R1-ospf-1]area 1
[R1-ospf-1-0.0.0.1]network 3.3.3.3 0.0.0.0
[R1-ospf-1-0.0.0.1]network 23.1.1.2 0.0.0.0
宣告配置完成后,邻居间组播收发hello 包,建立邻居关系,生成邻居表`
邻居关系建立后,邻居间进行条件的匹配;匹配成功者间将建立临接关系;过程中使用DBD进行目录共享,LSR/LSU/Lsack获取未知的LSA信息;最终实现数据库同步,生成数据库表-LSDB;
数据库同步完成后,本地将生成有向图-树形结构;之后使用SFP选路规则,计算本地到达所有未知网段的最短路径,然后将其加载到路由表中;
ospf的RID规则:**
? 1.使用ipv4地址
? 2.全网唯一
? 3.生成方式--手工配置--环回接口中最大数值的ip地址-物理接口中数值最大的ip地址
? ospf宣告:
? `1.区域划分 2.激活-收发ospf信息 3.路由、拓扑-该接口的信息可被告知邻居
|