OSPF复习

目录

一、OSPF基础(开放式最短路径优先协议)

1、技术背景(RIP中存在的问题)

2、OSPF协议特点

3、OSPF三张表

4、OSPF数据包(可抓包)

头部数据包内容:

OSPF数据包(五种)

(1)hello包

(2)DBD(数据库描述报文)

(3)LSR:链路状态请求

(4)LSU:链路状态更新信息

(5)LSAck:对LSU的确认

5、OSPF工作过程

(1)确认可达性,建立邻居

(2)摘要同步,开始建立邻接关系

(3)完整信息同步,完全邻接关系建立

6、OSPF的状态机(七加一个)

7、LSDB的更新

8、OSPF开销计算

(1)参考带宽:         

(2)计算方法:

二、OSPF的区域划分

1、区域产生背景

2、分区好处

3、区域类型

4、OSPF的路由器类型

三、OSFP基础实验


一、OSPF基础(开放式最短路径优先协议)

1、技术背景(RIP中存在的问题)

        1. RIP中存在最大跳数为15的限制,不能适应大规模组网

        2.周期性发送全部路由信息,占用大量的带宽资源

        3.路由收敛速度慢

        4.以跳数作为度量值

        5.存在路由环路可能性

        6.每隔30秒更新

2、OSPF协议特点

        1.没有跳数限制,适合大规模组网

        2.使用组播更新变化的路由和网络信息

        3.路由收敛快

        4.以COST作为度量值

        5.采用SPF算法最短路由优先算法---dijstart )有效避免环路

        6.每隔30分钟更新

        7.在互联网上大量使用,是运用最广泛的路由

注意:OSPF传递的是拓扑信息路由信息RIP传递的是路由表、

以下内容若无刻意强调,则都基于该图进行讨论:

 

OSPF配置:(以R2为例)

[R2]ospf 1                   (协议号1)
[R2-ospf-1]area 0       (区域编号0)
[R2-ospf-1-area-0.0.0.0]network 192.168.1.0 0.0.0.255
[R2-ospf-1-area-0.0.0.0]network 2.2.2.2 0.0.0.0
[R2-ospf-1-area-0.0.0.0]network 192.168.2.0 0.0.0.255
     

router-id不是相要的id则可以经行手动修改,命令如下:

                [R2]ospf 1 router-id 2.2.2.2   

        修改之后在进行重置OSPF进程 ,命令如下:

                <R2>reset ospf process

        注意:重置之后之前宣告的网段依然存在;

3、OSPF三张表

邻居表:记录邻居状态和关系

        查看邻居简表:<R1>display ospf peer brief 

        查看邻居表:<R2>display ospf peer 

 拓扑表:链路状态数据库(LSDB)----存放LSA(链路状态)的信息

                (同一区域的链路状态表相同)

         查看拓扑表 <R2>display ospf lsdb

OSPF路由表:记录由SPF算法计算的路由,存放在OSPF路由表中

 查看路由总表:<R3>display ip routing-table 

查看OSPF路由表 :<R3>display ospf routing (含自身直连)        

查看OSPF路由表 <R3>display ip routing-table protocol ospf 

4、OSPF数据包(可抓包)

OSPF报文直接封装在IP报文中,协议号89

头部数据包内容:

数据包内容简析:

        版本(Version):对于OSPFv2,该字段值恒为2。OSPFV3---IPV6

        类型(Type):该OSPF报文的类型。该字段的值与报文类型的对应关系是:1-Hello;2-DBD;3-LSR;4-LSU;5-LSAck。

        报文长度(Packet Length):整个OSPF 报文的长度(字节数)。

        路由器ID (Router Identification):路由器的OSPF Router-ID。

        区域ID (Area Identification):该报文所属的区域ID,这是一个32bit 的数值。

        校验和(Checksum):用于校验报文有效性的字段。保证数据的完整性

        认证类型(Authentication Type):指示该报文使用的认证类型。

        认证数据(Authentication Data):用于报文认证的内容。

        

         IGP:内部网关协议(RIP/OSPF)

         EGP:外部网关协议(BGP)

OSPF数据包(五种)

(1)hello包

hello包携带自己的router ID:用来周期保活的,发现建立邻居关系。

        只容纳RID:“具体区分和标识不同的OSPF”路由的身份,32位二进制构成

        (具有唯一性,统一性“按照IP地址格式执行“)

        网络掩码(Network Mask):该字段填充的是该接口的网络掩码。两台OSPF 路由器如果通过以太网接口直连,那 么双方的直连接口必须配置相同的网络掩码,否则影响邻居关系建立。

        Hello间隔(Hello Interval):接口周期性发送Hello报文的时间间隔(单位为s)。两台直连路由器要建立OSPF邻居关 系,需确保接口的Hello Interval相同,否则邻居关系无法正常建立。

                Hello时间:默认每10秒发送一次                                                                             

                Dead time 死亡时间:默认等于四倍的Hello时间   40秒                                          

                        OSPF在某些特殊的网络环境下会出现每30秒发送一次Hello包的情况             

                设备获取RID方法: (路由器的身份)                                                                     

                        1.手工配置                                                                                                        

                        2.自动生成                                                                                                        

                             若路由器配置了环回地址,那么他会选择环回地址数值最大的作为自     

                        身RID                                                                                                                

                             若路由器没有配置环回地址,那么他会选择接口IP地址数值最大的作为 

                        自身的RID                                                                                                        

         可选项(Options):该字段一共8bit,每个比特位都用于指示该路由器的某个特定的OSPF 特性。(了解)

        路由器优先级(Router Priority):路由器优先级,范围:0-255,数字越大优先级越高,默认是1,也叫DR优先级, 该字段用于DR、BDR 的选举

                                修改路由器的优先级:[R1-GigabitEthernet0/0/0]ospf dr-priority 100

        路由器(邻居死亡)失效时间(Router Dead Interval):需确保双方直连接口的Router Dead Interval相同,否则 邻居关系无法正常建立。缺省情况下,OSPF路由器接口的Router Dead Interval为该接口的Hello Interval的4倍

        修改死亡时间:

        指定路由器(Designated Router):网络中DR的接口IP地址。如果该字段值为0.0.0.0,则表示没有DR,或者DR尚 未选举出来。

        备份指定路由器(Backup Designated Router):网络中 BDR的接口IP地址。如果该字段值为0.0.0.0,则表示网络 中没有BDR,或者BDR尚未选举出来。

        邻居(Neighbor):在直连链路上发现的有效邻居,此处填充的是邻居的Router-iD,如果发现了多个邻居,则包含 多个邻居字段。

(2)DBD(数据库描述报文)

DBD(数据库描述报文):描述LSDB中LSA的摘要信息类似于LSA的目录)

        LSBB数据库:链路状态数据库(是用来存储LSA“拓扑信息”

        接口最大传输单元(Interface Maximum Transmission Unit):接口的MTU。最大1500个字节

        可选项(Options):路由器支持的OSPF可选项功能。

        DBD报文置位符:

                I:init位(初始),I=1,这是第一次报文的第一个DD报文

                M:more位,M=1表示后续还有DD报文

                MS:master位,MS=1,表示本端为主

        DD序列号(DD Sequence Number): DD报文的序列号,在DD报文交互的过程中,DD序列号被逐次加1,用于确保 DD报文传输的有序和可靠性。值得注意的是,DD序列号必须是由Master路由器来决定的,而Slave路由器只能使 用Master路由器发送的DD序列号来发送自己的DD报文。

(3)LSR:链路状态请求

LSR:链路状态请求,在与DBD包(LSA目录)比对后请求我没有的LSA信息.

                                    请求自己没有的或则比自己更新的链路状态详细信息

        链路状态类型:LSA的类型

        链路状态ID:在type1LSA中填入的是路由ID,type2LSA中填入的是发出该LSA的IP地址,type3LSA 中填入的是想要传播的路由条目的相关网络号

        通告路由器:通告该LSA的路由ID        

链路状态类型链路状态ID通告路由器 ---- “LSA三元组” --- 通过着三个参数可以唯一的标识出一条LSA

(4)LSU:链路状态更新信息

LSU:回复LSR包,真正携带LSA信息的数据包链路状态更新信息 一个LSU报文可以包含多个LSA

        当路由器感知到网络发生变化时,也可以触发LSU报文的泛洪,以便将该变化通知给网络中的其他OSPF 路由器。

        在MA网络中,非 DR、BDR路由器向224.0.0.6这个组播地址发送LSU报文,而DR及 BDR会侦听这个组播地址,DR 在接收LSU报文后向224.0.0.5发送LSU报文,从而将更新信息泛洪到整个OSPF区域,所有的OSPF 路由器都会侦听224.0.0.5这个组播地址。

        224.0.0.6----DR和BDR    

        244.0.0.5---DRother        

(5)LSAck:对LSU的确认

LSAck:对LSU的确认,回复R1信息以到达. 报文中包含着路由器所确认的LSA的头部(每个LSA头部的长度为20byte)   

5、OSPF工作过程

俩种关系:

        邻居:双方通过hello报文,相互认识

        邻接:邻居关系建立好后,进行一系列报文交互,当两台路由器LSDB同步完成,开始独立计算路由时,这两台路由 器形成了邻接关系

只要第一个Hello包发出路由器就进入了init状态

(1)确认可达性,建立邻居

hello 包三次握手:

router ID :标明的是路由器身份

手工配置:IPV4地址格式

自动选举:

        环回口:IP地址大的优先(若无环回口则从物理口中选择)

                物理口:IP地址大的优先

(2)摘要同步,开始建立邻接关系

        1.向邻接路由器发送DD报文,通告本地LSDB中所有LSA的摘要信息

        2.收到DD报文后,与本地LSDB对比,向对方发送LSR报文,请求发送本地所需要的LSA的完整信息

        3.收到LSR后,把对方所需的LSA的完整信息打包为一条LSU报文,发送至对方

        4.收到LSU后,向对方回复LSAck报文,进行确认

 

(3)完整信息同步,完全邻接关系建立

        完全邻接关系建立,LSDB表与OSPF路由表形成

6、OSPF的状态机(七加一个)

(1)down:关闭状态(稳定状态),这种情况处于手动指定邻居的情况下,发送hello包之后进入下一个状态

(2)INIT:初始化状态,收到对方的hello报文,但没有收到对方的hello确认报文

(3)Attempt一般不会出现,只出现在NBMA网络中,发出hello,但收不到对方的hello包、

(4)2-way(稳定状态):双方互相发现,邻居状态稳定,并确认了DR/BDR的角色;

        2-way前,确认DR/BDR

        选举原因:广播网络中使路由信息交换更加高速有序,可以降低需要维护的邻接关系数量

选举范围:每个网段都需要选出一个DR和BDR(0-255)

选举规则:1.优先级大的优先,默认优先级是1;

                  2.router-id大的优先

注:DR/BDR的选举没有抢占性

关系状态:DRother与DR建立邻接关系;

DRother与BDR建立邻接关系;

DR /BDR建立邻接关系;

DRother之间保持邻居关系 当选举完毕后,就算出现一台优先级更高的路由器也不会替换成新的DR\BDR需要原DR\BDR失效,或重置OSPF进程才会成为新的DR\BDR

2-way的前提:

        Router-id无冲突,修改router-id需要重置ospf进程使生效;

        掩码长度一致(MA网络中);

        区域ID一致;

        验证密码一致;

         hello-time一致;

        dead-time一致;

        特殊区域类型一致;

(5)Exstart:交换开始状态;发送第一个DD报文,但不发送LSA摘要,仅用于确定LSDB协商的主从,ROUTER-ID大 的成为master

(6)Exchange:交换状态;发送后续DD报文,用于通告LSDB中的LSA摘要

(7)Loading:读取状态,进行LSA的请求、加入和确认

(8)Full:邻接状态(稳定状态),两端同步LSDB;

        FULL的前提:两端MTU一致,否则可能卡在EXSTART\Exchange状态

        能够计算路由的前提:两端网络类型一致,否则邻居状态full,但无法学习路由

7、LSDB的更新

注:广播网络中的更新:只由DR发起

8、OSPF开销计算

(1)参考带宽:         

        默认是100M

        计算开销的基准带宽值

        参考带宽仅本地有效

        建议把网络中最高的链路带宽设置为参考带宽(不然 千兆链路和百兆链路的开销值都是1,无法判断哪条线路最 优)

(2)cost 计算方法:

        链路带宽大于等于参考带宽 cost=1

        反之,cost=参考带宽/链路带宽(Mb)

注:在路由器上。千兆以太网、百兆以太网、十兆以太网的缺省OSPF链路开销值分别是:1、1、10

二、OSPF的区域划分

1、区域产生背景

        OSPF路由器在同一个区域中泛洪LSA。为了确保每台路由器都拥有对网络拓扑的一致认知,LSDB需要在区域内 进行同步。不同区域的LSDB是不一样的

        如果OSPF域仅有一个区域,随着网络规模越来越大,OSPF路由器的数量越来越多,这将导致诸多问题。

2、分区好处

        减少LSA泛洪范围;

        减小路由表规模;

        提高网络扩展性,有利于组建大规模的网络;

3、区域类型

        骨干区域:area 0

        非骨干区域:

        特殊区域:减少邻居关系,减小OSPF路由表的规模

邻居关系过多缺点:

        (1)大量产生hello包,消耗CPU性能

        (2)产生重复路由通告,消耗CPU性能

        (3)任何一台路由器的路由变化都会导致多次传递,浪费了带宽资源

多区互连原则:

        非骨干区域非骨干区域不能直接相连;

        所有非骨干区域必须与骨干区域相连

                                        此设计是为防止区域间环路;

4、OSPF的路由器类型        

区域内路由器(IR):所有接口在同一区域

骨干路由器(BR):有接口在骨干区域

区域边界路由器(ABR):连接骨干区域非骨干区域

自治系统边界路由器(ASBR):连接外部自治系统并引入外部路由

三、OSFP基础实验

         OSPF基础实验并尝试抓取OSPF的数据包

实验具体步骤请看博客“OSFP基础实验”

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/173772.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

在docker中创建EMQX 加数据卷

1、从虚拟容器中复制出来文件 docker run --rm emqx/emqx:5.3.0 sh -c cd /opt/emqx && tar -c etc | tar -C $PWD -x 2、将这三个文件夹分别赋予最高权限&#xff0c;也可以777可以755 chmod -R 777 data chmod -R 777 etc chmod -R 777 log 3、创建容器代码 docke…

Docker:数据卷挂载

Docker&#xff1a;数据卷挂载 1. 数据卷2. 数据卷命令补充 1. 数据卷 数据卷(volume)是一个虚拟目录&#xff0c;是容器内目录与宿主机目录之间映射的桥梁。 Nginx容器有自己独立的目录(Docker为每个镜像创建一个独立的容器,每个容器都是基于镜像创建的运行实例)&#xff0c;…

Spring Cloud之Docker的学习【详细】

目录 Docker 项目部署问题 总结 镜像与容器 Docker的安装 Docker基本操作 镜像相关命令 拉取镜像 镜像保存 删除镜像 镜像加载 容器相关命令 删除容器 数据卷 数据卷命令 数据挂载 自定义镜像 Dockerfile 案例 Docker-Compose Compose文件 Docker-Compos…

磁盘的结构(磁道,扇区,盘面,柱面,物理地址)

目录 1.磁盘、磁道、扇区的概念1.磁盘2.磁道3.扇区 2.如何在磁盘中读/写数据3.盘面、柱面的概念4.磁盘的物理地址1.根据地址读取一个“块” 5.磁盘的分类1.活动头磁道2.固定头磁盘3.根据盘片是否可更换 1.磁盘、磁道、扇区的概念 1.磁盘 磁盘的表面由一些磁性物质组成&#xf…

项目基础配置

1、Spring整合MyBatis&#xff1a; 在子工程中加入所需要的依赖 准备jdbc.properties 创建spring的配置文件、整合spring和mybatis 在spring的配置文件中加载jdbc.properties 配置数据源 测试数据库连接 配置SqlSessionFactoryBean 装配数据源 指定XXXMapper.xml文件的位…

DIANA算法c++实现

第一步对具有最大直径的簇中每个点计算平均相异度找出最大的点放入splinter group&#xff0c;其余放在放入splinter group 第二步 在old party里找出到splinter group中点的最近距离 < 到old party中点的最近距离的点&#xff0c;并将该点加入splinter group 重复第二步的…

Vue2 跨域问题报错AxiosError net::ERR_FAILED、 Network Error、ERR_NETWORK

请求场景&#xff1a; 当前页面URL&#xff1a;http://127.0.0.1:8000/testcase 跳转请求页面URL&#xff1a;http://127.0.0.1:5000/testcase_orm 使用axios请求 时 页面提示跨域报错 跨域报错信息 > Access to XMLHttpRequest at http://127.0.0.1:5000/testcase_orm fr…

Python爬虫(二十四)_selenium案例:执行javascript脚本

本章叫介绍如何使用selenium在浏览器中使用js脚本&#xff0c;更多内容请参考&#xff1a;Python学习指南 隐藏百度图片 #-*- coding:utf-8 -*- #本篇将模拟执行javascript语句from selenium import webdriver from selenium.webdriver.common.keys import Keysdriver webdri…

13. 机器学习 - 数据集的处理

文章目录 Training data splitNormalizationStandardizedONE-HOT补充&#xff1a;SOFTMAX 和 CROSS-ENTROPY Hi&#xff0c; 你好。我是茶桁。 上一节课&#xff0c;咱们讲解了『拟合』&#xff0c;了解了什么是过拟合&#xff0c;什么是欠拟合。也说过&#xff0c;如果大家以…

leetCode 76. 最小覆盖子串 + 滑动窗口 + 哈希Hash

我的往期文章&#xff1a;此题的其他解法&#xff0c;感兴趣的话可以移步看一下&#xff1a; leetCode 76. 最小覆盖子串 滑动窗口 图解&#xff08;详细&#xff09;-CSDN博客https://blog.csdn.net/weixin_41987016/article/details/134042115?spm1001.2014.3001.5501 力…

android button 按钮,设置左/右小图标,与文字居中距离

参考博客地址 功能点 支持自定义图标与文字的距离支持小图标宽高自定义支持左右自定义小图标 maven { url https://jitpack.io } implementation com.github.CMzhizhe:AppCompatButtonProject:1.0.0<com.gxx.buttonlibrary.DrawableCenterButtonandroid:layout_marginTop&…

OpenCV #以图搜图:感知哈希算法(Perceptual hash algorithm)的原理与实验

1. 介绍 感知哈希算法&#xff08;Perceptual Hash Algorithm&#xff0c;简称pHash&#xff09; 是哈希算法的一种&#xff0c;主要用来做相似图片的搜索工作。 2. 原理 感知哈希算法&#xff08;pHash&#xff09;首先将原图像缩小成一个固定大小的像素图像&#xff0c;然后…

TCP / UDP 概念 + 实验(计网自顶向下)

Github源码 moranzcw/Computer-Networking-A-Top-Down-Approach-NOTES: 《计算机网络&#xff0d;自顶向下方法(原书第6版)》编程作业&#xff0c;Wireshark实验文档的翻译和解答。 (github.com) 暂定打算分2步走&#xff0c;前置是中科大对应计网黑书的视频 第1步完成14个Wire…

Transformers实战(二)快速入门文本相似度、检索式对话机器人

Transformers实战&#xff08;二&#xff09;快速入门文本相似度、检索式对话机器人 1、文本相似度 1.1 文本相似度简介 文本匹配是一个较为宽泛的概念&#xff0c;基本上只要涉及到两段文本之间关系的&#xff0c;都可以被看作是一种文本匹配的任务&#xff0c; 只是在具体…

基于tornado BELLE 搭建本地的web 服务

我的github 将BELLE 封装成web 后端服务&#xff0c;采用tornado 框架 import timeimport torch import torch.nn as nnfrom gptq import * from modelutils import * from quant import *from transformers import AutoTokenizer import sys import json #import lightgbm a…

macOS M1安装wxPython报错

macOS12.6.6 M1安装wxPython失败&#xff1a; 报错如下&#xff1a; imagtiff.cpp:37:14: fatal error: tiff.h file not found解决办法&#xff1a; 下载源文件重新编译&#xff08;很快&#xff0c;5分钟全部搞定&#xff09;&#xff0c;分三步走&#xff1a; 第一步&…

Leetcode—21.合并两个有序链表【简单】

2023每日刷题&#xff08;十三&#xff09; Leetcode—21.合并两个有序链表 直接法实现代码 /*** Definition for singly-linked list.* struct ListNode {* int val;* struct ListNode *next;* };*/ struct ListNode* mergeTwoLists(struct ListNode* list1, struct…

leetCode 136.只出现一次的数字 + 位运算

136. 只出现一次的数字 - 力扣&#xff08;LeetCode&#xff09; 给你一个 非空 整数数组 nums &#xff0c;除了某个元素只出现一次以外&#xff0c;其余每个元素均出现两次。找出那个只出现了一次的元素。你必须设计并实现线性时间复杂度的算法来解决此问题&#xff0c;且该算…

STM32H750之FreeRTOS学习--------(一)初识RTOS

FreeRTOS 一、初识RTOS 裸机&#xff1a;裸机又称为前后台系统&#xff0c;前台系统指的中断服务函数&#xff0c;后台系统指的大循环&#xff0c;即应用程序 实时性差,程序轮流执行delayCPU空等待&#xff0c;效率低程序混乱&#xff0c;臃肿&#xff0c;功能都放在while循环…

vim使用

概述 vi&#xff08;visual editor&#xff09;是Unix/Linux编辑器的一种。类似于win中notepad。vim&#xff08;vi improved&#xff09;加强版 安装vim&#xff1a; $ yum install vim -y四种模式 命令模式&#xff1a;快速进行复制、粘贴、删除等操作&#xff0c;还可以…