OSPF动态路由协议
单区域OSPF1. 定义:OSPFOpen Shortest Path First是一种基于链路状态Link-State的内部网关路由协议IGP采用Dijkstra最短路径优先算法SPF计算到达每个网络的最短路径。2. rip的缺点以跳数为度量跳数少不一定路径最优如10M链路 vs 2M链路跳数相同但带宽差异大最大跳数16限制网络直径无法用于大型网络收敛速度慢更新计时器30秒、失效计时器180秒、清除计时器240秒发送全部路由表浪费带宽资源1000条路由单次更新需160Kb3. 基本协议模型建立邻居通过hello包探测和发现邻居形成ospf邻居表发起路由描述直连网段和直连拓扑发起lsa存放到自己的LSDB传播路由LSA洪泛区域捏路由器的LSDB达到一致计算路由以自己的LSA1为跟进行spf计算算出路由。4. 基本工作原理核心参数Router ID32为无符号整数唯一标识一台路由器选取顺序手工配置Loopback接口最大的IP地址物理接口最大的IP地址需UP状态链路状态LS定义路由器周边链路的状态内容直连网段状态直连拓扑状态接口开销链路状态通告LSA链路状态通告按照一定格式封装后的链路状态信息链路状态数据库LSDB每一个OSPF路由器中存储LSA的数据库SPF计算最短路由优先算法--计算时每个路由器以自己的lsa为根区域骨干区域area0必须存在且连续非骨干区域必须直连Area0特殊区域------多区域中讲解区域划分目的减小LSDB隔离拓扑变化支持路由汇总路由角色DRBDR为什么需要BR、BDR选举当全路由器互联需要n*n-1/2个邻接关系而DR机制只需要一个星型的拓扑就可以选举规则优先级0-255 默认10不参与选举优先级高者当选DR次高者当选BDR优先级相同RouterID大的优先DR失效→ BDR立即成为新DR → DRother竞争新BDROSPF网络类型Broadcast广播多路访问以太网接口如efg口P2P点到点Serial口不需要进行DR/BDR选举ospf报文类型Hello发现并维持邻居关系DDDatabase Description描述LSDB摘要仅LSA头部LSRLink State Request请求缺少的LSALSULink State Update发送LSA更新LSAckLink State Acknowledge确认收到LSU邻居建立过程接口状态Down → Init → 2-Way → ExStart → Exchange → Loading → Full Down 未收到Hello Init 收到Hello不含自己RID 2-Way 收到含自己RID的Hello邻居建立 ExStart DD序列号协商主从选举下面有注释 Exchange 交换DBD描述 Loading 请求缺失LSALSR/LSU/LSAck Full 邻接建立LSDB同步完成主从状态选举准开始状态根据RouterID进行选举大的为主LSA老化与刷新最大老化时间3600秒刷新机制老化时间到达1800秒一半时发起路由器重新发起该LSA序列号1老化时间归零度量值--costcost参考带宽 / 接口带宽5. 作用OSPF采用SPF算法计算路由从算法上保证了无路由环路。OSPF通过邻居关系维护路由避免了定期更新对带宽的消耗。OSPF路由更新效率高网络收敛快适用于大中型网络多区域OSPF1. 为什么要划分多区域的OSPF呢减少LSDB减小LSA洪泛范围可以做路由汇总特殊区域优化可以配置stub nssa区域等进一步减小路由表2. 多区域OSPF的规则非骨干区域必须和Area0相连Area0必须连续区域间路由必须通过Area0传递3. 几种特殊区域Stub末梢区域核心特征不允许45类LSA进入允许学习123类LSA含默认路由限制条件所有路由器必须配置为stub不能有虚链路不能有ASBR! ABR和区域内所有路由器都要配置 R1(config-router)# area 1 stub R1(config-router)# area 1 default-cost 20 ! 可选修改默认路由CostTotally Stub完全末梢区域核心特征不允许345类进入只允许12类LSA含有默认路由! 仅在ABR上添加no-summary R1(config-router)# area 1 stub no-summary ! 区域内其他路由器仍配置为普通stub R3(config-router)# area 1 stubNSSA非纯末梢区域核心特征允许123类的基础上允许7类LSA外部路由转换为5类LSA进行学习不允许5类LSA。允许区域内有ASBRLSDB包含12347类 路由! NSSA区域内所有路由器配置为nssa R6(config-router)# area 2 nssa R2(config-router)# area 2 nssa ! 可选在NSSA ASBR上注入默认路由 R2(config-router)# area 2 nssa default-information-originateTotally NSSA完全非纯末梢区域在nssa基础上禁止3类LSAR6(config-router)# area 2 nssa no-summary R6(config-router)# area 2 default-cost 20 ! 可选 ! 区域内其他路由器配置为普通nssa R2(config-router)# area 2 nssa4. 路由汇总---减少路由数量区域间汇总 area 区域号 range 网络 掩码 在ABR上汇总3类LSA 外部路由汇总 summary-address 网络 掩码 在ASBR上汇总5类/7类LSA5. 几种类型的LSA类型名称产生者传播范围通告内容核心作用1类Router-LSA路由器LSA每台路由器本区域内部自身直连链路的状态、Cost、邻居信息描述路由器自身的链路状态是本区域拓扑的基础2类Network-LSA网络LSADR指定路由器本区域内部该广播网段内所有相连路由器的RID描述广播型多路访问如以太网网络的拓扑配合1类LSA使用3类Summary-LSA汇总LSAABR区域边界路由器跨区域传播本区域→其他区域区域间的网络前缀和Cost将本区域的路由通告给其他区域实现区域间通信4类ASBR-Summary-LSAABR跨区域传播本区域→其他区域ASBR的Router-ID和到达ASBR的Cost告诉其他区域“ASBR在哪里”配合5类LSA使用5类AS-external-LSA自治系统外部LSAASBR自治系统边界路由器全网传播除特殊NSSA区域外部路由如RIP/静态路由/直连引入的网段和Cost将OSPF域外的路由通告到整个OSPF网络7类NSSA-LSAASBR位于NSSA区域内NSSA区域内部外部路由同5类LSA内容在NSSA非完全末梢区域内引入外部路由由ABR转换为5类LSA后传出6. 各类特殊区域支持的LSA区域类型12类3类45类7类默认路由来源骨干/普通区域✅✅✅❌手动default-informationStub区域✅✅❌禁止4/5❌ABR自动注入3类默认路由Totally Stub区域✅❌禁止3/4/5❌❌ABR自动注入3类默认路由唯一3类NSSA区域✅✅❌禁止4/5✅ASBR手动注入7类默认路由Totally NSSA区域✅❌禁止3/4/5❌✅ABR自动注入3类默认路由7. 链路拓扑分析各类lsa要用的情况8. 相关命令show ip ospf neighbor ! 查看邻居状态 show ip ospf database ! 查看LSDB show ip ospf interface ! 查看接口OSPF信息 show ip route ospf ! 查看OSPF路由 show ip protocols ! 查看OSPF协议状态 show ip ospf statistics ! 查看OSPF统计 debug ip ospf events ! 调试OSPF事件 debug ip ospf adj ! 调试邻居建立 // 查看各种的lsa LSA类型 思科查看命令 说明 1类 show ip ospf database router 查看所有1类LSA或后面加具体的LSA-ID查看单条 2类 show ip ospf database network 查看所有2类LSA由DR产生 3类 show ip ospf database summary 查看所有3类LSA由ABR产生描述区域间路由 4类 show ip ospf database asbr-summary 查看所有4类LSA由ABR产生描述ASBR的位置 5类 show ip ospf database external 查看所有5类LSA由ASBR产生描述OSPF域外路由 7类 show ip ospf database nssa-external 查看所有7类LSA只在NSSA区域内存在 查看LSDB统计 show ip ospf database summary 快速查看各类LSA的数量 查看特定区域的LSDB show ip ospf database [area-id] 例如 show ip ospf database area 0router ospf 1 ! 启用OSPF进程1 router-id 1.1.1.1 ! 设置Router ID network 192.168.1.0 0.0.0.255 area 0 ! 通告直连网络 network 10.0.0.0 0.0.0.3 area 0 ! 通告点对点链路 area 1 stub ! 配置Stub区域 area 1 range 10.1.0.0 255.255.252.0 ! 区域间汇总 redistribute static subnets ! 重分发静态路由 default-information originate ! 下发默认路由 passive-interface FastEthernet0/0 ! 接口不发送Hello被动接口 ps一般配置的时候越详细越好尤其是宣告网段的时候有具体的ip就配具体的ip9. OSPF路由重发布与环路控制路由重发布定义在连接不同路由协议的边界路由器上把从一个协议学到的路由信息转换成另一种协议的格式并广播出去作用在一个大型网络中常常会混用多种不同的路由协议这些协议各自为政互不通信需要路由重发布进行翻译实现全网路由互通。重发布的四种类型重发布类型配置命令思科说明重发布直连redistribute connect subnets metric 值 metric-type 1/2将直连接口所在网段引入OSPF重发布静态redistribute static subnets metric 值 metric-type 1/2将静态路由引入OSPF重发布其他协议redistribute rip subnets metric 值 metric-type 1/2将RIP路由引入OSPF重发布默认路由default-information originate [always]向OSPF域注入默认路由路由环路控制OSPF的路由类型以及优先级优先级路由类型路由表标记LSA类型最高区域内路由O1类、2类↓区域间路由O IA3类↓1类外部路由O E15类Type 1↓2类外部路由O E25类Type 2↓1类NSSA路由O N17类Type 1最低2类NSSA路由O N27类Type 2关于E1和E2外部路由对比对比项E1Type 1E2Type 2Cost计算外部Cost 累加内部Cost仅外部Cost不累加内部默认类型❌ 不是需手动指定✅是默认选路效果随进入OSPF域深度增加而增大整个AS内Cost不变推荐场景需要反映内部路径优劣时简单场景只关心外部开销10. 常见OSPF不能建立邻居的原因物理层问题接口未启用物理链路不通ospf配置问题区域id配置不同Routerid配置相同区域编号不匹配一般是Hello包中的几个参数不同的问题网络类型问题点对点和广播型网络混用11. 假如一个拓扑发生了更新那么网络是收敛的情况是什么样的拓扑变更 → 本地生成新 LSA 打包 LSU → 全网泛洪每一个邻居 LSAck 确认同步 LSDB → 每台设备独立跑 SPF 算最短路径 → 更新路由表 → 全网收敛完成