| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 网络协议 -> OSPF协议知识点总结 -> 正文阅读 |
|
[网络协议]OSPF协议知识点总结 |
OSPF:开放式最短路径优先协议概念:OSPF路由协议是用于网际协议(IP)网络的链路状态路由协议。该协议使用链路状态路由算法的内部网关协议(IGP),在单一自治系统(AS)内部工作。 特点:使用范围:IGP 协议算法:链路状态路由协议, SPF算法 基于IP协议封装 1.OSPF 是一种典型的链路状态型路由协议 2.传递信息称作LSA,LSA 链路状态通告,包含路由信息和拓扑信息。 路由LSA:描述本路由器上接口的路由信息 拓扑LSA:描述路由器之间的链接状态 3.更新方式: 触发更新+30分钟的链路状态刷新 4.更新地址: 组播和单播更新,组播地址: 224.0.0.5(ALL SPF router) 224.0.0.6(ALL DR router) 5.支持路由认证 6.支持手工汇总 7.支持区域划分 8.OSPF 比较消耗设备资源一个路由器上最多支持31个OSPF 进程 无类别链路状态路由协议--传递网络掩码 公有协议; 跨层封装到IP报头,协议号89; 触发更新、周期更新 一、 OSPF的数据包—5种数据包跨层封装于3层报头,协议号89; ? ? Hello 包 :邻居的发现、建立、周期保活 hello time 默认10s或30s DBD数据库描述包 : ------主从选举DBD: 比较双方的router-id ,router-id大的一方为主(master ),小的一方为从 (slave);主用于控制LSA的交互 LSR 链路状态请求: ------链路状态请求,按照DBD中报文的未知LSA头部进行请求。 LSU 链路状态更新 : ----携带LSA信息 LSack 链路状态确认(30min) **LSA – 链路状态更新 – 是具体的每一条拓扑或者路由信息;基于LSU包来进行传输; 二、 邻居与邻接关系建立过程OSPF状态机—两台允许OSPF协议的路由器间的不同关系的阶段 Down 一旦接收到hello,进入下一个状态 Init初始化 一旦接收到的hello包中,存在本地的RID进入下一状态 2way 双向通讯 邻居关系建立的标志 条件: 点到点网络将直接进入下一个状态; MA网络类型将进行DR/BDR选举,非DR/BDR间将无法进入下一状态; DR选举: 1.比较优先级 (范围:0255,默认优先级为1 ,越大越优) 注意:1.DR抢占是关闭的 2.DR是一个接口概念 3.优先级范围0-255,数字为0代表不参与选举 4.先 选举BDR ,再升级为DR Exstart 预启动 使用不携带内容的DBD包进行主从关系选举,RID数值大为主;优先进入下一个状态机; Exchange 准交换:使用携带数据库目录的DBD包进行交换,需要ACK确认; Loading加载:将本地和邻居发送过来的目标进行比对,针对本地未知的LSA,使用LSR向对端进行请求;对端使用LSU来共享新的LSA信息;本地需要LSack确认;收敛完成后进入下一个状态; Full转发:邻接关系建立的标志 三、 OSPF的工作过程:启动配置完成后,ospf的邻居开始组播224.0.0.5收发hello包;hello包中将携带本地的RID;在接收到的hello包中若存在本地的RID,及代表对端已经认识本端,那么邻居关系建立;生成邻居表; 邻居关系建立后,需要关注网络类型; 若条件不允许将卡在邻居关系,仅hello包周期保活即可; 若条件允许将可以建立为邻接关系; 邻接关系的建立需要先使用不携带目录信息的DBD进行主从关系选举,RID数值大为主;可以优先进行携带目标信息的DBD收发;在和邻接间收发完DBD后,将基于DBD中本地未知的LSA信息,使用LSR/LSU/LSack来获取具体的LSA信息; 在收集齐整个网络的LSA后,本地数据库表(LSDB链路状态数据库)完成; 当本地的数据库同步完成后,先将其转换为有向图,再基于图生成最短路径树;最后将本地到达所有未知网段的最短路径加载于本地的路由表中;该计算过程被称为SFP最短路径优先计算; 路由表生成后,邻接关系建立;收敛完成;正常仅hello包周期保活即可; 结构的突变: 1、 新增网段 2、 断开网段 3、 无法沟通 – dead time到时时,断开邻居关系,删除信息,能否重建关系关注hello包; Hello包:hello time 10s 或者30s dead time 为hello time 4倍 邻居间建立邻居关系时,必须完全一致的参数,否则无法正常建立邻居关系 1、Hello、dead time 2、区域ID 3、认证字段 4、特殊区域标识 5、在华为的设备中,要求邻居间接口配置的子网掩码也必须一致; 四、 OSPF的基础配置[r1]ospf 1 router-id 1.1.1.1 启动时需要定义进程号;以及RID 进程号仅具有本地意义;不定义进程,默认为进程1;不定义RID,默认将自动生成—先去环回上最大数值的ip地址—》物理接口上最大数值的ip地址 RID必须全网唯一; 进行宣告:1、区域划分 2、选择接口激活 3、宣告接口的信息 [r1-ospf-1]area 0 [r1-ospf-1-area-0.0.0.0]network 1.1.1.1 0.0.0.0 [r1-ospf-1-area-0.0.0.0]network 12.1.1.1 0.0.0.0 OSPF的区域划分规则: 1、 星型结构拓扑 – 所有非骨干区域必须连接到骨干区域 区域0为骨干,大于0非骨干 2、 区域间必须使用ABR相连 ABR—区域边界路由器 启动和宣告配置完成后,邻居间基于组播224.0.0.5收发hello包,生成邻居表: [r2]display ospf peer 邻居关系详述表 [r2]display ospf peer brief 查看邻居关系简表 OSPF Process 1 with Router ID 2.2.2.2 Peer Statistic Information ---------------------------------------------------------------------------- Area Id Interface Neighbor id State 0.0.0.0 GigabitEthernet0/0/0 1.1.1.1 Full 0.0.0.1 GigabitEthernet0/0/1 3.3.3.3 Full 区域 本地连接该邻接的接口 邻居的RID 状态机 邻居关系建立后,进行条件匹配,匹配失败将维持邻居关系;匹配成功将可以建立为邻接关系;邻接关系间将使用DBD和LSR/LSU/LSack来获取未知的LSA信息; 最终和邻接间同步数据库-LSDB; [r2]display ospf lsdb LSA洪泛、LSDB同步(OSPF收敛的名词)完成后;本地基于数据库转换为—有向图—最短路径树;最终计算本地到达所有未知网段的最短路径,然后将其加载到本地的路由表中; 在华为体系中,OSPF所得路由默认优先级为10,优于静态路由的60; 在cisco体系中,OSPF所得路由优先级为110,不如静态路由的1; 使用cost值作为选路的度量; Cost值=开销值=参考带宽/接口带宽 默认参考带宽100M; 若接口带宽大于参考带宽,cost值取1; 故在接口带宽大于参考带宽的网络中,可能导致选路不佳;可以通过修改默认的参考度量来干涉: [r1]ospf 1 INTEGER<1-2147483648> The reference bandwidth (Mbits/s) [r1-ospf-1]bandwidth-reference 1000 切记:一旦修改,全网需修改的一致; 五、 OSPF邻居建立为邻接关系的条件:邻居间只有hello包,没有其他数据包,没有LSA; 邻接关系都是在邻居关系之上来建立; 基于网络类型来确定关系: 1、点到点 串线的PPP/HDLC 虚拟的GRE 因为一个网段只能存在两个节点;故必然从邻居关系成为邻接关系 2、 MA多路访问—一个网段中节点的数量不限制 由于节点数量的不限制,故若两两间皆邻接关系,将可能导致大量的重复更新;在距离矢量协议中可以使用接口水平分割来解决该问题; 但OSPF协议需要邻接间比对数据库,故不能使用接口水平分割;最终进行DR/BDR选举;所有非DR/BDR之间为邻居关系,不进行LSA的同步;来避免大量重复更新; 1)DR/BDR选举 -- 先比较参选接口的优先级,大优;默认所有接口为1;0-255; [r1]interface GigabitEthernet 0/0/1 [r1-GigabitEthernet0/0/1]ospf dr-priority 2修改接口优先级 2)若所有接口优先级相同,将比较参选设备的RID,数值大优; 切记:DR/BDR选举是非抢占的,一旦选定,后加入者无论参数如何只能认可之前的选举结果; 因此在修改完接口优先级后,选举结果将不变化,除非人为重启选举; 所有设备全部重启OSPF进程,之后将重选DR/BDR <r1>reset ospf process Warning: The OSPF process will be reset. Continue? [Y/N]:y 或者将非DR/BDR的优先级修改为0,0代表不参选,不用重启设备的进程;万万不能一个网段所有设备优先级为0,否则将导致无法正常收敛。 六、 OSPF接口网络类型----OSPF协议在不同的网络类型下,其不同的工作方案; [r1]display ospf interface GigabitEthernet 0/0/1 查看OSPF协议在该接口工作方式 网络类型 OSPF接口网络类型(工作方式) 环回 P2P点到点 没有hello包;默认32位路由传递 点到点(串线PPP/HDLC/GRE)P2P点到点 hello time10s;不选DR/BDR BMA (以太网) Broadcast广播 hello time10s,选DR/BDR NBMA(帧中继、MGRE) 在MGRE接口,由于ospf协议默认为点到点的工作方式,只能建立一个邻居关系; 故将无法全网可达; 解决方法:修改接口的工作方式 [r1-Tunnel0/0/0]ospf network-type broadcast 修改为广播型 注:broadcast工作方式的hello time 为10s,但需进行DR/BDR选举;P2P也是10s,不进行DR/BDR选举,两者若相遇可以建立邻居关系,但无法正常收敛LSA;故在一个网段内所有接口的工作方式应该一致; 修改接口网络类型后,必须关注拓扑的结构; 1、 中心到站点(星型、轴辐状)--由于分支站点间不知道其他分支的存在,从而导致整个网段的DR选举错误,最终导致该网络无法正常收敛;中心站点作为DR,无BDR; 2、 全连网状 --在所有接口修改为broadcast后一切正常 3、 部分网状---排除星型结构外的非全连结构—结合拓扑的实际情况来干涉DR的位置; 七、 OSPF的不规则区域默认OSPF协议要求区域设计基于星型结构;中心为骨干区域,编号0;其他大于0为非骨干区域,所有非骨干必须直接连接骨干; OSPF的不规则区域 1) 远离了骨干的非骨干区域 2) 不连续骨干 解决方案: 1、 将非法ABR与区域0中的设备进行GRE的建立;然后将该GRE宣告到OSPF协议中; 缺点:1)周期性保活和更新将对中间穿越区域照成很大的影响 2)选路不佳 2、 OSPF虚链路 连接骨干区域的合法ABR对非法ABR进行授权;之后非法ABR可以实施区域间路由共享的能力; [r2]ospf 1 [r2-ospf-1]area 1 两台ABR同时所在的区域 [r2-ospf-1-area-0.0.0.1]vlink-peer 4.4.4.4 对端ABR 的RID 优点:没有新增新的物理或逻辑链路,故不存在选路不佳的问题; 缺点:1)cisco 取消两台ABR间的周期保活及更新,避免对中间区域资源占用;但失去可靠性; 2)华为保留了两台ABR间的周期保活及更新,增加了对中间区域的资源占用,导致网络的转发延时大幅上升; 3、(推荐)多进程双向重发布 多进程:在一台设备上若同时启动多个进程,且不同进程宣告到不同的接口;它们将存在各自独立邻居,及独立的数据库;且数据不共享;最终所有计算所得路由加载于同一张路由表中; 若将同一个接口再多个进程同时宣告;仅最先宣告的进程生效; 双向重发布可以将不同路由协议或相同协议的不同进程,计算所得路由进行共享,最终实现全网可达 [r4]ospf 1 [r4-ospf-1]import-route ospf 2 [r4-ospf-1]q [r4]ospf 2 [r4-ospf-2]import-route ospf 1 八、 关于OSPF的MTU值问题; Ospf协议要求邻接关系间的接口MTU必须完全相同,否则将卡在exstart或exchange状态机;因为MTU值被携带与DBD包中; 默认cisco将自动检测DBD包中的MTU值;而华为设备默认不携带MTU值; [r1]interface GigabitEthernet 0/0/1 [r1-GigabitEthernet0/0/1]ospf mtu-enable 在与邻接直连的接口上,开启MTU值检测功能;两端设备均需开启; 九、 OSPF的数据库表[r1]display ospf lsdb 查看数据库简表 由多种LSA构成;OSPF协议使用不同类型的LSA来携带不同条件下产生的拓扑或路由信息; 无论哪类的LSA均存在以下信息 [r1]display ospf lsdb router 12.1.1.2 详细查看某种类别的LSA信息 类别名 LINK-ID Type : Router 类别名,此处为1类 Ls id : 12.1.1.2 link-id 在目录中的编号,类似页码 Adv rtr : 12.1.1.2 通告者的RID,该条LSA发出的源头设备的RID Ls age : 1269 老化时间,周期30min归0;触发更新马上归0;最大老化3609s Len : 48 Options : ABR E seq# : 8000000b 序列号,每一条LSA存在不同的序列号,每一次更新序列号+1 (OSPF使用的是棒棒糖序列号机制) chksum : 0xb43b LSA类别 传播范围 通告者 携带的内容 LSA1- Router 单区域 该区域内每台设备 本地直连拓扑 LSA2- Network 单区域 该网段的DR 该DR所在网段的拓扑 LSA3- summary 整个OSPF域 ABR 域间路由 LAS4-asbr 除ASBR所在区域 ABR ASBR的位置 以外的整个OSPF域 ASBR所在区域基于1类交代位置 LSA5- ase 整个OSPF域 ASBR 域外路由 LSA类别 link-ID 通告者 LSA1-router 通告者的RID 该区域每台运行OSPF的路由 LSA2-network DR接口的ip地址 该网段的DR LSA3- summary 域间路由的目标网络号 ABR,在经过下一台ABR时,修改为新的ABR LSA4-asbr ASBR的RID ABR,在经过下一台ABR时,修改为新的ABR LSA5- ase 域外路由的目标网络号 ASBR 思维导图 |
|
网络协议 最新文章 |
使用Easyswoole 搭建简单的Websoket服务 |
常见的数据通信方式有哪些? |
Openssl 1024bit RSA算法---公私钥获取和处 |
HTTPS协议的密钥交换流程 |
《小白WEB安全入门》03. 漏洞篇 |
HttpRunner4.x 安装与使用 |
2021-07-04 |
手写RPC学习笔记 |
K8S高可用版本部署 |
mySQL计算IP地址范围 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 3:19:17- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |