首页 > 其他分享 >OSPF基础

OSPF基础

时间:2024-08-10 17:25:34浏览次数:15  
标签:LSA DR 基础 router OSPF 路由 路由器

目录

一、路由分类

1.直连路由

2.非直连路由

二、OSPF概述

1.什么是OSPF        

2.OSPF的特点

3.OSPF的区域划分

1.划分区域的意义

2.区域的划分

三、OSPF 消息数据包

1.数据包的类型

2.Hello包

2.DBD包

3.LSR包

 4.LSU

 5.LSACK

 四、OSPF 邻居状态机制

1.邻居关系建立条件

2.DR与BDR的选举

3.主从选举

4.所有的状态

1.Down

2.init

3.two-way

4.exstart

5.exchange

6.loading

7.full

五、基本配置

1.启用ospf

 2.network通告

3.激活DBD中携带的MTU

4.查看


一、路由分类

1.直连路由

2.非直连路由

1.静态路由
2.动态路由

(1):IGP:内部网关路由协议-在同一个AS内部使用(在企业内部或者数据中心内部使用)
             -DV:距离矢量路由协议
                 -RIP(v1/v2)
                 -IGRP-思科私有协议
                 -EIGRP-思科私有协议
             -LS:链路状态路由协议
                  -OSPF:开放式最短路径优先( 企业用:功能多,可以精细化控制) 
                  -ISIS:中间系统到中间系统( 数据中心用,转发能力强,大流量转发 )

(2):EGP:外部网关路由协议:在不同的AS之间使用(AS:自治系统)
              -BGP:边界网关协议

二、OSPF概述

1.什么是OSPF        

        开放式最短路径优先OSPF 是一种动态的高度可靠和高度可扩展的路由协议,用于构建大型网络中的动态路由系统。

使用范围:IGP 

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

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

协议封装:基于IP协议封装,协议号为 89

2.OSPF的特点

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

2.传递信息称作LSA,LSA 链路状态通告,包含路由信息和拓扑信息。

      路由LSA:描述本路由器上接口的路由信息(通过判断有无掩码确实路由LSA)

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

3.更新方式: 触发更新+30分钟的链路状态刷新 

   网络结构发生变化触发更新,否则不触发更新

   凡是触发更新,都会有邻居机制

    30min的链路状态刷新,刷新参数

4.更新地址: 组播和单播更新,

        组播地址: 224.0.0.5(ALL SPF router)      224.0.0.6 (ALL DR router)

         本地链路组播地址224.0.0.X(TTL=1)

5.支持路由认证

6.支持手工汇总

7.支持区域划分

8.OSPF 比较消耗设备资源

3.OSPF的区域划分

1.划分区域的意义

1.减少LSA的数量 

2.减少LSA的传播范围

 ( 同一区域内是链路,不同区域内是距离矢量)

2.区域的划分

区域的划分是基于接口的(链路的)

1.区域的标记:使用了32个二进制    1.十进制   2.类似于IP地址  A.B.C.D

        通过十进制表示,例如区域 0、1、2、3等

        通过点分十进制表示,例如区域 0.0.0.0 、0.0.0.1、0.0.0.2等

2.区域设计原则: 向日葵型网络结构

        OSPF网络中必须存在并唯一的骨干区域(单区域除外)

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

3.OSPF中路由器的角色:

          骨干路由器:所有接口属于骨干区域

          非骨干路由器:所有接口属于非骨干区域

          ABR:区域边界路由器,能够产生3类LSA的路由器(骨干和非骨干之间)

          ASBR:自治系统边界路由器,能够产生5类或7类LSA的路由器(ospf与非ospf之间的路由器,同时该路由器能够将非ospf的路由信息引入ospf区域中)

        ospf 1 router-id 1.1.1.1 //指定ospf进程号(1-65535)指定router-id(推荐用手工指定router-id)
        area 0.0.0.0   (area 0)             //指定区域id
        network 192.168.1.0  0.0.0.255     //宣告网段
        network 192.168.12.0  0.0.0.255    //宣告网段

三、OSPF 消息数据包

1.数据包的类型

Hello   DBD  LSR  LSU  LSACK

2.Hello包

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

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

OSPF Header  头部报文解析: 
 【 OSPF Version 】 
     这个字段,指的是OSPF的版本
     版本2——针对的是IPv4的网络
     版本3——针对的是IPv6的网络
 【 Message Type 】 
     消息类型
     OSPF中,一共有五种报文:Hello、DD、LSR、LSU、LSAck
     分别对应了1、2、3、4、5
 【 Packet Length 】 
     报文的长度,不可修改
 【 Source OSPF Router 】 
     发送这个Hello报文的路由器的Router ID
     而在一个OSPF网络中,Router ID就是用来唯一标识一台路由器的
     所以,不同路由器的Router ID不能相同
  【 Area ID 】 
     发送这个Hello报文的接口,所在的区域
     两台路由器,想要建立邻居,它们的互联接口,必须在同一个区域中
 【 Packet Checksum 】 
     报文的校验和,用来校验报文是否完整
 【 Auth Type/Data 】 
     这里指的是OSPF的认证
     认证的类型必须相同,认证的密码必须一致OSPF Header  头部报文解析:

【 Network Mask 】 
    子网掩码
    默认情况下:两个建立OSPF邻居的路由器,互联接口的掩码必须相同
 【 Hello Interval 】 
    Hello时间间隔/Hello计时器/Hello时间
    就是发送这个Hello报文的路由器,多长时间发一个Hello包
    默认情况下:Hello时间为10秒
    两台路由器,想要建立OSPF邻居,它们的Hello时间必须相同
  【 Option 】 
     特殊标记位
     不同的区域类型的标记位也不同
     想要建立OSPF邻居,Option位必须相同
  【 Router Priority 】 
     DR优先级,用于DR选举
     如果两台想要建立OSPF邻居的路由器,在互联接口上都配置了自己的DR优先级为0,那么,两台路由器都不会参加DR选举
     而在需要DR的网络中,选举不出DR,邻居就无法继续建立
     所以,两台设备DR优先级为0,在需要DR的网络中,邻居状态会卡在2-way
  【 Router Dead Interval 】 
      Dead时间/死亡时间
      默认情况下:是Hello时间的4倍=40秒
      Dead时间会随着Hello时间的改变而改变,但还是4倍关系
      所以,我们如果更改Dead时间,一定要注意是否受Hello时间影响,
      即:我们需要单独更改Dead时间(手动配置的Dead时间优先于默认情况——4倍Hello时间)
  【Designated  router 】  :  DR :指定路由器

  【backup  Designated  router】   :BDR  :备份指定路由器

  【Active  Neighbor 】 :  活跃的邻居,我认可的邻居

2.DBD包

 数据库描述数据包(用于描述数据库摘要信息)

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

3.LSR包

链路状态请求,按照DBD中报文的未知LSA头部进行请求(不包含的路由信息)

( 请求数据库中没有的LSA信息)

 4.LSU

链路状态更新,携带LSA信息。(据对方的请求信息,更新LSA给对方)

 5.LSACK

链路状态确认(收到对方的更新LSA信息后,进行确认)

 四、OSPF 邻居状态机制

1.邻居关系建立条件

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地址必须在同一网段)

2.DR与BDR的选举

邻居状态下(two-way): MA的网络中会选举DR(指定路由器)  BDR(备份指定路由器)

DR选举:  

       1.比较优先级 (范围:0-255,默认优先级为1 ,越大越优) 若优先级为0 代表弃选

        2.比较各自的router-id,越大越优

注意:

    1.DR抢占是关闭的 (先选举的DR不会因为后来的BDR或DRother的优先级和router-id而影响)

    2.DR是一个接口概念 

    3.优先级范围0-255,数字为0代表不参与选举 

    4.先选举BDR ,再升级为DR

3.主从选举

发生在exstart状态, 通过双方的router-id进行比较,router-id大的一方为主。  发送的主从选举DBD,DBD中包含了MTU值(默认思科直接启用,华为中默认不包含MTU,可以使用命令激活传递MTU值的功能,若双方的MTU值不匹配则卡在exstart 状态)。

4.所有的状态

Down、 init 、 attempt(尝试 过渡) 、 two-way 、  exstart  、 exchange  、loading  、full

1.Down

邻居关系没有建立就处于down(down状态下可能还会每隔120s发送一次hello包)。

2.init

初始化状态,一旦开始发送hello报文,就进入初始化状态。

3.two-way

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

4.exstart

预启动状态,一旦开始发送主从DBD,则进入预启动状态。

5.exchange

预交换,主从选举完成,则发送携带LSA头部信息的DBD,进入预交换状态,会发送LSR数据包。(但是没有LSU)

6.loading

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

当请求列表,重传链表空时就会处于full,不空时处于loading

7.full

邻接状态。双方LSA同步(双方LSA全部学习)

五、基本配置

1.启用ospf

OSPF router-id 选举规则:(主从选举)

       1.手工指定最优先

       2.选举所有逻辑中IP地址最大的

       3.选举所有物理接口IP地址最大的

华为中: 若以上三点都不满足,则可以创建router-id 为0.0.0.0 ;在使用逻辑或物理接口IP地址时,接口可以是关闭状态;若一台路由器启用了多个OSPF进程,不同进程可以使用相同的router-id(不推荐);

思科中:若以上三点都不满足,则无法启用OSPF;在使用逻辑或物理接口时,接口必须双 up ,该接口可以不通告进入OSPF中;同一路由器上多个OSPF进程必须router-id必须不同;

全局模式下可以选择针对所有的OSPF进程修改router-id ;(若同时在接口部署时,接口优先生效)

 2.network通告

3.激活DBD中携带的MTU

激活DBD中携带MTU(最大传输单元)值功能:

修改接口MTU值: (同时修改3层和2层的MTU值)

查看二层接口信息:

查看三层信息:

4.查看

OSPF邻居表 

LSBD的摘要信息

OSPF 路由表 

标签:LSA,DR,基础,router,OSPF,路由,路由器
From: https://blog.csdn.net/sgdhshshhs/article/details/140952705

相关文章

  • 2024最新版PyCharm下载安装详细教程,Python环境配置和使用指南,零基础保姆级教程
    一、简介PyCharm是一款PythonIDE,其带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具,比如,调试、语法高亮、Project管理、代码跳转、智能提示、自动完成、单元测试、版本控制等等。此外,该IDE提供了一些高级功能,以用于支持Django框架下的专业Web开发。Pytho......
  • 008.Vue3入门,最基础的事件处理,点击按钮增加次数,支持传参
    1、代码如下:<template><h3>内联事件处理群</h3><button@click="addCount1">Add</button><p>{{count1}}</p><button@click="addCount2('hello')">按钮</button><p>{{coun......
  • 熵编码(五)-CABAC(一) 基础篇
    目录1.前言2.二进制算术编码3.CABAC编码原理分析3.1.自适应算术编码3.1.1.算法流程流程3.1.2.自适应3.1.3.码流输出(区间缩放)3.1.4自适应算术编码的计算复杂度及优化3.1.4.1自适应概率模型背景3.1.4.2.自适应概率模型设计3.1.4.2.1.自适应概率模型量化3.1.4.2.1.自适......
  • C++基础入门
    一·命名空间(namespace)正常namespace的使用include<stdio.h>#include<stdlib.h>//1.正常的命名空间定义//wzh是命名空间的名字,⼀般开发中是⽤项⽬名字做命名空间名。namespacebit{//命名空间中可以定义变量/函数/类型intrand=10;intAdd(in......
  • 网络编程基础
    目录学习内容:1. 网络体系结构及OSI开放系统系统互联模型1.1 网络体系结构概念 1.2 OSI开放系统互联模型1.3 TCP/IP协议族(簇)的体系结构1.4 TCP/IP四层结构中常见的协议 2. TCP和UDP异同(笔试面试)3.网络编程基础相关的概念3.1 字节序2>验证主机大小端的方......
  • 二叉树基础OJ题
    前言二叉树学到现在,我们对递归已经一定程序上的理解了,所有这里为了加深我们对二叉树递归的掌握,我会分享几道基础的练习题来巩固加深我们对二叉树的理解这里拿出一些二叉树OJ题,我会写出过程详解,如有错误还望指正!题源来自于牛客网和力扣单值二叉树这题需要判断每个节点的值......
  • 零基础转行网络安全真的好就业吗?(非常详细)零基础入门到精通,收藏这一篇就够了
    网络安全作为近两年兴起的热门行业,成了很多就业无门但是想转行的人心中比较向往但是又心存疑惑的行业,毕竟网络安全的发展史比较短,而国内目前网安的环境和市场情况还不算为大众所知晓,所以到底零基础转行入门网络安全之后,好不好就业呢?今天我们就来全面彻底分析一下网络安全对......
  • JDBC数据库连接技术基础及核心API
    目录JDBC的概念JDBC的搭建步骤JDBC的代码实现步骤框架代码实现核心API注册驱动(jdk6.0后可自动注册,无需编写代码)Connection(连接数据库)Statement(用于执行SQL语句,会被SQL注入攻击,后被PreparedStatement替代)PreparedStatement(可以防止SQL注入,全面替代Statement)ResultS......
  • 【MATLAB源码】数学建模基础教程(2)--层次分析法(评价类算法)
    系列文章目录在最后面,各位同仁感兴趣可以看看!层次分析法引言一、层次分析法的特点二、模型的建立求解过程(1)问题的提出:实际问题的转化(2)建立层次结构模型(3)构造判断(成对比较)矩阵(4)一致性检验:三、层次分析法的优点与局限代码开源最后:总结系列文章目录引言层次分析......
  • 多元时间序列分析统计学基础:基本概念、VMA、VAR和VARMA
    多元时间序列是一个在大学课程中经常未被提及的话题。但是现实世界的数据通常具有多个维度,所以需要多元时间序列分析技术。在这文章我们将通过可视化和Python实现来学习多元时间序列概念。这里假设读者已经了解单变量时间序列分析。1、什么是多元时间序列?顾名思义,多元时间序列是......