OSPF:Open Shortest path First  :开方式最短路径优先

一、基础知识:

1、使用范围:IGP

2、协议算法特点:链路状态型路由协议,SPF算法

3、协议是否传递网络掩码:是

4、协议封装:基于TCP封装,协议号为89

二、OSPF特点:

1、OSPF是一种典型的链路状态型路由协议

2、传递的信息称作:LSA,LSA链路通告,包含路由信息和拓扑信息

  路由LSA:描述本路由器上的接口路由信息

  拓扑LSA:描述路由器之间的连接状态

3、更新方式:触发更新+30min的链路状态更新

4、更新地址:组播和单播更新地址

     组播地址:224.0.0.5----所有运行OSPF的路由器都会接收这个组播组

          224.0.0.6----多有的DR路由器才会运行的

5、支持路由认证

6、支持手工汇总

  OSPF是LS型路由协议,既传递路由又传递拓扑,手工汇总只能汇总路由信息,不能汇总拓扑信息

7、支持区域划分

三、OSPF区域

   基于接口或链路划分

1、区域划分的意义:

   (1)、减少LSA数量

   (2)、减少LSA传播范围

2、区域划分是基于接口或链路的

3 、区域设计原则:

  1)OSPF网络中必须存在且唯一的骨干区域

  2)若存在非骨干区域,非骨干区域必须与骨干区域直接相连

    骨干路由器:所有接口都在area 0里

    非骨干路由器:所有接口都在非area 0里

    ABR:区域边界路由器,能够产生3类LSA的路由器(属于area 0 和非area 0的路由器)

    ASBR:自治系统边界路由器,能够产生5类或7类LSA的路由器(OSPF网络和非OSPF网络网络的边界路由器,必须通过重发布在路由器上做路由引入才算ASBR)

四、OSPF消息数据包:

1、邻居与邻接 :

  邻居:双方互相知道彼此的存在,但并没有交换LSA

  邻接:在邻居关系建立之后才会共享LSA,在共享了LSA之后,邻接关系才会建立

2、hello:周期性发送,周期时间10s或30s(根据不同的网络类型默认10s或30s)

    目的:建立并维持OSPF邻居关系(邻居关系建立之后充当保活包功能)

3、DBD:数据库描述包,特点:隐性确认,看序列号,在对方互相发的包中,序列号变相同后代表隐性确认

  1)主从选举DBD:比较双方的router-id,大的一方为主(master),小的一方为从(slave),主要用于LSA的交互

  2)携带LSA头部信息的DBD

4、LSR:链路状态请求,按照DBD报文中的未知LSA头部进行请求

5、LSU:链路状态更新,携带LSA信息

6、LSACK确认:链路状态确认

五、OSPF邻居状态机制:--LS型协议特有的

down、init、attempt、two-way、exstart、exchange、loading、full

1、init:初始化状态,一旦开始发送hello报文,进入初始化状态

2、two-way:双向通信状态(邻居状态),接收到包含自己router-id的对方hello报文

  邻居关系建立的条件: 

    1.router-id 必须不同
    2.area ID 相同
    3.认证: 认证类型 (不认证=0 明文认证=1 MD5=2) 认证数据
    4.hello时间,dead时间
    5.特殊区域标识(E(外部路由位)=1 ; N(NSSA外部路由位)=0 P=0)
    6.MA网络中,网络掩码必须一致
    7.必须同时使用单播或组播更新
    8.更新源检测(双方的IP地址必须在同一网段

  DR选举: 

    邻居状态下(two-way):条件匹配-->邻居成为邻接关系的条件(目的:消除重复更新)
       MA的网络中会选举DR(指定路由器) BDR(备份指定路由器)
    DR选举: 1.比较优先级 (范围:0-255,默认优先级为1 ,越大越优)
           2.比较各自的router-id,越大越优
    DR选举了之后,其他所有人只是个DR建立邻接,把信息都交给DR,然后再由DR分别交给其他人
    注意:1.DR抢占是关闭的
          2.DR是一个接口概念
          3.优先级范围0-255,数字为0代表不参与选举
          4.先选举BDR ,再升级为DR
       (DR、BDR的选举是在一个时间范围内,超过这个时间范围优先级再高也不能成为DR),时间:waiting time,在华为中,waiting time=dead time(40s)
3、exstart:预启动状态,一旦开始发送主从DBD,则进入预启动状态
4、exchange:预交换,(发送类hello的DBD选主从)主从选举完成,则发送携带LSA头信息的DBD,进入预交换,会发数据包,但没有LSU

5、loading:加载状态,一旦发送LSU数据包,进入了加载状态,进行大量LSA的学习

6、full:邻接状态,双方LSA同步(双方LSA全部学习)  

六、补充:

1、为什么RIP不需要router-id,OSPF需要?

  因为OSPF是LS型协议,需要router-id,因为收集到路由、拓扑信息需要构建逻辑拓扑,则需要将OSPF中的每个路由器标记出来,用路由器的唯一性标识-router-id来

2、以太网线----->MA

    可以通过修改接口网络类型将MA改为P-to-P

   串线------>点到点

3、广域网:PPP、HDLC   ------> 不选DR

      FR(帧中继)、ATM  ------> 选DR

  路由器物理接口类型:是一个默认的、最原始的状态---->选DR或不选DR,但OSPF的网络类型是独立的,因为不同的物理接口,可以修改它的网络类型

HCIP -- OSPF 总结的更多相关文章

  1. 华为HCIP实验--OSPF单区域

    场景:你是公司的网络管理员.现在公司的网络中有三台ARG3路由器,通过以太网实现相互的连通.在以太网这样的广播式多路访问网络上,可能存在安全隐患,所有你选择采用OSPF区域认证的方法来避免恶意的路由攻 ...

  2. Ceph RGW 的 OSPF负载均衡 + quagga的配置

      随着开源技术的发展,以及商业设备价格的不断攀升.大公司总是希望能使用开源的方案来替换过去使用的商业设备.比如之前大家用的很多的F5和A10,现在已经在逐步被LVS替换.传统的单个lvs的性能是比不 ...

  3. 动态选路、RIP协议&&OSPF协议详解

    动态选路.RIP协议&&OSPF协议详解 概念 当相邻路由器之间进行通信,以告知对方每个路由器当前所连接的网络,这时就出现了动态选路.路由器之间必须采用选路协议进行通信,这样的选路协议 ...

  4. OSPF协议详解

    CCNP OSPF协议详解 2010-02-24 20:30:22 标签:CCNP 职场 OSPF 休闲 OSPF(Open Shortest Path Fitst,ospf)开放最短路径优先协议,是 ...

  5. RIP、OSPF、BGP、动态路由选路协议、自治域AS

    相关学习资料 tcp-ip详解卷1:协议.pdf http://www.rfc-editor.org/rfc/rfc1058.txt http://www.rfc-editor.org/rfc/rfc ...

  6. OSPF理解

    from http://kingdee.blog.51cto.com/98119/27310STP,PIM,OSPF,长的好像(*_*)可以把整个网络(一个自治系统AS)看成一个王国,这个王国可以分成 ...

  7. OSPF

    Ospf OSPF(开放最短路径优先协议)是一种无类内部网关协议(IGP):是一种链路状态路由选择协议: 入门: 可以把整个网络(一个自治系统AS)看成一个王国,这个王国可以分成几个 区(area), ...

  8. OSPF(Open Shortest Path First开放式最短路径优先 -链路状态路由协议

    OSPF分为OSPFv2和OSPFv3两个版本,其中OSPFv2用在IPv4网络,OSPFv3用在IPv6网络 思科OSPF的协议管理距离(AD)是110,华为OSPF的协议管理距离是10 通告网络接 ...

  9. OSPF虚链路配置.示例2

    先看一个拓扑图 黄色区域是area0,即骨干区域,如果如图示RT1与RT6之间的链路断了,那么会出现骨干区域被“分裂”的情况,很明显骨干区域是不能被分割开的,出现这种状况的时候可能会影响到整个自制系统 ...

随机推荐

  1. Java反射说得透彻一些

    目录 一.反射机制是什么? 二.反射的具体使用 2.1 获取对象的包名以及类名 2.2 获取Class对象 2.3 getInstance()获取指定类型的实例化对象 2.4 通过构造函数对象实例化对 ...

  2. redis cluster可用性测试

    上一节,我们用三台redis组成了cluster,现在我们停掉一台试试: 比较奇怪的是,在停掉其中一台服务器之前建立的链接仍然可以正常执行命令,当我们断开重连时,命令就都被拒绝了: 关联知识: 什么时 ...

  3. C++语言中std::array的神奇用法总结,你需要知道!

    摘要:在这篇文章里,将从各个角度介绍下std::array的用法,希望能带来一些启发. td::array是在C++11标准中增加的STL容器,它的设计目的是提供与原生数组类似的功能与性能.也正因此, ...

  4. 必须掌握的Spark调优技术点

    在利用Spark处理数据时,如果数据量不大,那么Spark的默认配置基本就能满足实际的业务场景.但是当数据量大的时候,就需要做一定的参数配置调整和优化,以保证业务的安全.稳定的运行.并且在实际优化中, ...

  5. volatile禁止重排使用场景与单例模式的Double Check Lock

    普通单例模式Demo public class Demo{ private static Demo INSTANCE; private Demo(){} public static Demo getI ...

  6. Vite ❤ Electron——基于Vite搭建Electron+Vue3的开发环境【一】

    背景 目前社区两大Vue+Electron的脚手架:electron-vue和vue-cli-plugin-electron-builder, 都有这样那样的问题,且都还不支持Vue3,然而Vue3已 ...

  7. python 网络并发 :理论部分

    1.今日内容大纲 进程的介绍(理论部分) 进程的创建以及分析 获取进程的pid 进程之间的隔离 1.进程的介绍(理论部分) 1.1什么是进程 一个正在被cpu执行的程序就是一个进程,一个程序可以开启多 ...

  8. 第14.5节 利用浏览器获取的http信息构造Python网页访问的http请求头

    一. 引言 在<第14.3节 使用google浏览器获取网站访问的http信息>和<第14.4节 使用IE浏览器获取网站访问的http信息>中介绍了使用Google浏览器和IE ...

  9. 使用XPath爬取西刺代理

    因为在Scrapy的使用过程中,提取页面信息使用XPath比较方便,遂成此文. 在b站上看了介绍XPath的:https://www.bilibili.com/video/av30320885?fro ...

  10. CSS常用语法缩写

    使用缩写可以帮助减少你CSS文件的大小,更加容易阅读.CSS常用语法缩写的主要规则如下: 颜色 16进制的色彩值,如果每两位的值相同,可以缩写一半,例如:#000000可以缩写为#000;#33669 ...