2024年路由技术——OSPF,面试必备话术

在这里插入图片描述

感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的:

① 2000多本Python电子书(主流和经典的书籍应该都有了)

② Python标准库资料(最全中文版)

③ 项目源码(四五十个有趣且经典的练手项目及源码)

④ Python基础入门、爬虫、web开发、大数据分析方面的视频(适合小白学习)

⑤ Python学习路线图(告别不入流的学习)

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

31.关于路由算法, 什么时候用iSPF, 什么时候用PRC ?

深挖:关于IPv6:OSPFv3

32.有lsa9为什么还需要lsa8?

33.OSPFv2 和 OSPFv3 的相同点【至少答出4点】

34.OSPFv2 和 OSPFv3 的不同点:【开放性答题, 尽量多写】

基础理论部分:邻居关系建立

=================

1.OSPF 报文类型以及每一种报文的作用?(提示:hello 作用有4个)

OSPF报文一共有5种

1>Hello:作用:1)发现邻居 2)维护邻居关系 3)选举DR/BDR 4)保证邻居的双向通信


2>DBD(Database description)1)选举DR/BDR 2)交互数据库摘要信息


3>LSR( LSA Request) 向对方请求对方有, 本地没有的LSA信息


4>LSU(LSA Update) 给邻居发送LSA 信息


5>LSACK(Link State Acknowledgement) 确认邻居发送的LSA 信息和对DBD 报文进行确认

2. 描述一下OSPF 工作流程?

1>交互hello:路由器向每一个启用OSPF 进程的接口发送hello接收邻居发送过来的hello,并且匹配hello中的各种参数, 如果参数匹配, 就进行下一步, 建立邻居关系.


2>邻居/邻接:接口根据OSPF 网络类型建立邻居或者邻接的关系, 邻居关系就是只交互过hello报文,并不知道邻居具体的物理拓扑信息.邻接关系就是两个邻居之间完全交互过各种报文, 两台路由器拥有各自的明细拓扑信息LSDB 完全同步.


3>发送LSA:路由器根据与对方建立的邻居或邻接关系向邻居发送不同类型的LSA,这些LSA 包含了路由器所有启用了OSPF 进程的链路信息,接口信息,这些信息可以是末梢网络,也可以是去往其他OSPF 区域的传输网络,或者是去往外部自治系统的网络, 根据各种各样的情形设计了不同的LSA.


4>LSA 泛洪:接收邻居发送过来的LSA ,加入LSDB,并且根据路由器自身的角色对邻居发送过来的LSA 进行泛洪发送,以及转换工作.


5>收敛:当一个区域内的所有路由器的LSDB 完全同步, 网络就完成收敛.


6>执行SPF计算:一个区域内每个路由器以自身为树根, 计算到达每一个节点的最短路径, 画出一个最短路径的矢量图, 这个拓扑图就是SPF算法树.


7>计算路由:根据SPF 计算得到的矢量图计算到达每一个节点的最优路径, 放到路由表.

3.Router ID 选举原则

Router ID是一个32位的值,它唯一的标识了一个自治系统内的路由器,可以为每台运行OSPF的路由器上可以手动配置一个RouterID,或者指定一个IP地址作为RouterID,如果设备存在多个逻辑接口地址,则路由器使用逻辑接口中最大的IP地址作为RouterID,如果没有配置逻辑接口,则路由器使用物理接口的最大IP地址作为RouterID

4.OSPF建立邻接的条件:【提示:报头、hello、DBD 中的参数, 共11点】

  1. 报头中要匹配的字段.

1>版本一致.IPv4 版本的OSPF 和IPv6版本的OSPF 版本报文不兼容

2>RID不能冲突.

3>一条链路的两端 必须在同一个区域.

4>认证类型和密钥.


2)hello报文中需要匹配的字段

5>掩码需要匹配

并不是所有的掩码都需要匹配,当你的网络类型为广播和NBMA的时候,大家要建立邻居,掩码必许要一致.如果网络类型为点到点或点到多点的时候,掩码是不需要一致的,

6>hello时间dead时间需要匹配,

7>option中的E位和N位必须要一致的,

8>Router priority字段,为0 代表该路由器没有资格选举DR/BDR , 在要求选举DR/BDR 的网络类型中, 必须至少有一个DR 存在,即在这个网络中至少有一个路由器接口路由器优先级不为0.

9> NBMA中要对邻居指peer,双方要互指

10> 建立邻居的接口不能是静默接口


  1. DBD 报文需要匹配的字段

11>DBD报文中只有一个字段要匹配,就是MTU.如果MTU不匹配,路由器就会卡在exstart状态,因为在这个状态中双方会交互firstDBD选择主从,如果开启MTU一致性检测,只有MTU一致才可以选出主从,思科默认开启这个特性,huawei默认没开.

5.OSPF 邻居建立过程

1>Down,

建立邻居的第一步就是down,指的是我没有给邻居发送任何报文。也没有收到邻居给我发任何报文


1.5>Attempt 尝试,只有在Non-Broadcast非广播和point-to-multipoint non-Broadcast点到多点非广播才能见到尝试。在这2种接口使用OSPF,不会主动发送hello,因为在发送ospf报文的时候,必须只能以单播的形式发送

Cisco需要使用neighbor 华为需要指peer 命令指定单播报文发送的目的地,就是单播指定了一个邻居,已经给他发送了一个单播hello,还没收到任何回应,我的邻居状态就是attempt

这个阶段是临时阶段,最多维持hello时间4倍,没有收到回应就回到down


2>Init 初始化状态:

指的是当前router通过邻居收到了一个hello,但是在hello字段中没有看到我自己的路由器ID

RID,在hello载荷中有neighbor字段,4字节用来装RID,RID能够在AS内全局标识自己,每台路由器发送

Hello的时候都会携带我的RID,我的邻居收到我的hello会把我的RID加入他的hello报文的neighbor字段

他发送的hello就会携带我的RID,用来告诉别人我曾收到过邻居给我发送的hello,判定为init就是通过邻居收到hello之后有没有在neighbor中找到我自身的RID, 单向邻居。


3>Two-way 双边邻居:

我通过邻居收到了一个hello,这个hello中我看到了我自己的RID,表示邻居已经收到了我的 Hello,我们之前曾交互过hello

当大家都到达Two-way之后,如果接口类型为广播或者非广播,需要开始选举DR/BDR

选举原则:先比优先级,比参选router的接口ospf优先级,默认是1,取值范围0-255,0是没有资格参选

优先级谁大谁做DR,第二大的做BDR,其他的做DRothers,如果选不出来就再比较RID,谁大谁做DR,次大

大的做BDR


4>Exstart 准启动状态:

选举主从Master/slave 交互3个报文选举谁做主谁做从

First DBD:选举主从,载荷是空的,没有任何LSA报头信息,DBD有flag字段,有3个位

I 1 交互第一个FirstDBD I位置1

M 1 由于我的第一个FirstDBD没有LSA报头,而我的LSBD中肯定有LSA。等我们交互完FirstDBD之后,我肯定会给你发送至少一个携带LSA报头的DBD,由于后续有其他DBD存在,所以这个位置1

M/S 1双方在得到对方信息之前,都会认为自己就是Master这个位都置1

这3位都置1,就是0x7,由于DBD包含RID,通过PK大家的RID,我们就能知道谁的RID大,谁的RID小,

由RID大的一方做Master,小的做第一次隐式确认,回复一个隐式确认的DBD,并且把M/S位设置为0,告诉 对方我做slave,而且回应报文所使用的序列号就是FirstDBD中的序列号的值.


5>Exchange 阶段:

主路由器带动从路由器交互DBD 报文


6>loading:根据交互的DBD 报文可以得知双方需要的LSA 信息, 根据自己没有而邻居有的LSA向邻居请求


7>FULL完全邻接状态 :最终状态,邻居建立完成

6 .隐式确认交互过程

使用一个携带载荷的LSA,使用与对方发送的LSA序列号相同的序列号来回应,一方面告诉对方,这个数据包我收到了,另一方面把对方需要的LSA发送给对方,这种可以节约2次ACK交互次数的确认方式就是隐式确认

DBD 先使用隐式确认发送信息,不够发了再使用显式确认来确认

(不单独回复ACK,双方要同步一个序列号,设备必须确定一个主一个从,由主设备给从设备发送第一个报文并且确定序列号,从设备使用主设备的序列号给主做确认。选举主从就是比较双方router id大小,谁大谁主)

选举Master路由器做主设备发起第一个DBD

谁的RID大就做master,小的就做slave

Master 发起第一个DBD报文,slave仅仅做确认

7. OSPF 网络类型

Point-to-point点到点类型

Point-to-multipoint点到多点类型

Broadcast广播类型

NBMA 非广播多路访问网络

Virtual-link 虚链路

8.每一种网络类型下的报文发送是使用单播还是组播,如果是组播, 地址是多少?hello 发送时间是多少

hello

Database description

Link State Request

Link State Update

Link state

ack

Point-to-point

224.0.0.5 / 10秒

224.0.0.5

224.0.0.5

224.0.0.5

224.0.0.5

Point-to-MultiPoint

224.0.0.5/30秒

单播

单播

单播

单播

Virtual-link

单播/10秒

单播

单播

单播

单播

broadcast

224.0.0.5 /10秒

单播

单播

224.0.0.5/6

224.0.0.5/6

NBMA

单播 30秒

单播

单播

单播

单播

9. 点到点与点到多点的网络类型能否建立邻居,能否传递路由?如果想建立邻居, 如何修改参数?

可以建立邻居,可以传递路由计算拓扑, 需要修改hello 时间改一致, 点到点hello是10秒,点到多点hello 是30秒, 建议把点到点的hello 时间改为30秒

10.DR 和 BDR 的作用和竞选规则?

DR 作用:

DR 在多路访问中可以减少邻接关系和 LSA 的泛洪


BDR 是DR的备份。

如果设备之间建立全互联的邻接关系, LSA 泛洪和处理占用系统资源和链路资源,

如果选举一个DR/BDR , 所有设备都和DR/BDR 建立full的邻接关系,DRothers 之间停留在Two-way , DRothers 和DR/BDR 之间交互LSA 就可以了,这样可以减少邻接关系和 LSA 的泛洪。

简化网络的拓扑结构

在广播和NBMA 中DR 是一个伪节点,每个设备只要计算到达DR 的开销即可,画路径矢量图的时候会用到


竞选规则:1. 接口优先级数字越大越优先(0-255,0 优先级不能参与 DR、BDR 选举) 2. RouterID 越大越优先

11. 为什么DR不可以抢占?

因为在MA网络中所有DRothers是和DR建立邻居的,如果新加入的路由器抢占DR位置,会导致其他所有路由器断掉现在的邻居,和新加入的路由器建立邻居,由于需要重新选举DR、建立邻居、传递更新计算路由,会导致短时间的断网现象,会导致网络的不稳定。

12.IS-IS也有一个广播的网络类型,和OSPF中的DR一样有一个DIS,这个DIS是可以被抢占的,叫指定中间系统,为什么DIS支持被抢占?

因为IS-IS中邻居关系没有OSPF中的这么多,邻居关系只有2级,UP和Down,建邻居的条件很简单,只要交互过hello就可以,在IS-IS中两两之间比如选举出了一个DIS,邻居关系还是有的,不会立即断掉,路由器之间发的叫LSP,这个LSP和OSPF的LSA中内容不一样,不是所有的LSP先发给DIS,再由DIS发送给大家,由于两两之间可以建立邻居,所以两两之间可以传递LSP进行同步,LSP是发送CSNP报文,叫完全序列号PDU,这个PDU包含的内容就是DIS当前所有所有的LSP信息,这个报文周期性发送,10秒一次CSNP,就是告诉这个MA网络我的LSDB中有哪些LSP,接收到CSNP的路由器查看,你的LSP我有没有,我的LSP你有没有,如果我发现你缺失一些LSP,我就给你做一些更新,如果说我缺失了一些LSP,我就给你发送PSNP报文,叫做部分序列号PDU,通过发送这个序列号向你做一个请求,所以,可以理解为,在IS-IS中,DIS就是做这样一件事,就是DIS周期性发送CSNP,仅此而已,不发CSNP也可以同步,只是效率会低一些,这就是说在Isis中DIS是一个可有可无的东西,仅仅起到的是一个优化的作用,而且DIS能做的事情,别的路由器也可以做到。这个时候新添加一个路由器,抢占DIS位置对整个网络不会造成大的波动,所以 可以抢占.

13.OSPF开销的计算方式:

计算公式为带宽参考值/带宽,带宽bit/s为单位,

可以使用bandwidth-reference 设置带宽参考值

OSPF基于接口带宽计算开销,计算公式为:接口开销=带宽参考值/带宽,带宽参考值可以设置,缺省为100Mbit/s

以此,一个64kbit/s串口的开销为1562,一个E1接口的(2.048Mbit/s)开销为48

命令bandwidth-reference可以用来调整带宽参考值,从而改变接口开销,带宽参考值越大,开销越准确,在支持10Gbit/s速率的情况下,推荐将带宽参考值提高到10000Mbit/s来分别为10Gbit/s、1Gbit/s和100Mbit/s的链路提供1、10和100的开销。注意配置OSPF带宽参考值的时候,需要在整个OSPF网络中统一配置,另外,还可以通过OSPF cost命令手动为一个接口调整开销,开销值范围是1-65535,缺省是1

14. 5类LSA有哪几种计算外部路由metric值的方式,有什么区别?

External Type 1和External Type 2,简称E1和E2。

E2:默认,生成路由时不叠加内部cost值,只计算外部cost值。

E1:表示累加内部cost值,生成路由的cost为内部cost值+外部cost值。


内部cost:本台路由器到ASBR的cost值。

外部cost:ASBR生成5类LSA时携带的cost值,默认为1。

15.两种外部路由metric计算方式怎么进行优选比较?

通过修改cost值可以控制OSPF选路

1>. 先比较类型,E1优于E2

2>. 若类型都为E1。则比较总开销(内部cost+外部cost)

3>. 若类型都为E2。先比较外部cost值,小的优先。再比较内部cost值。

4>. 如果外部cost和内部cost值都一样。就负载均衡。

16.OSPF 是如何进行防环的?[提示:区域内的防环:区域间防环:外部路由防环:]

(1)区域内的防环:

LSA1,LSA2:根据 SPF 算法进行防环


(2)区域间防环:

(a)特殊的区域结构:OSPF 要求所有的非 0 区域必须与骨干区域直接相连, 区域间路由需经由骨干区域中转。

解读:OSPF 要求所有的非 0 区域必须与骨干区域直接相 连,区域间路由需经由骨干区域中转。这个要求使 得区域间的路由传递不能发生在两个非 0 的区域之 间,这在很大程度上规避了区域间路由环路的发生, 也使得 OSPF 的区域架构在逻辑上形成了一个类似 星型的拓扑 ○

(b)区域间的水平分割:

1>从一个非骨干区域学习到的 LSA3 不会再传回该 非骨干区域(因为 1LSA 优于 3LSA,不是根据区域 ID 判断,主要根据 ABR 的 LSDB 判断)

2>完全意义上的 ABR 从非骨干区域收到的 LSA3 会 接收但是不会参与计算也不会传回非骨干区域(此 规则对非完全意义上的 ABR 无效)


(3)外部路由防环:

LSA4:由于 LSA4 类的产生以及泛洪范围与 LSA3 一致,所以 LSA4 的防环 规则与 LSA3 一致。LSA5、7:当 FA 地址为全零,根据 LSA4 类防环;如果 LSA4 无环,那么 LSA5, 7 也无环。当 FA 地址为非全零,根据 LSA1-3 类防环;如果 LSA1-3 无环,那么 LSA5,7 也无环。

17. 真ABR 与伪ABR 的概念和ABR的防环规则

ABR :区域边界路由器:至少有一个接口被宣告进area0, 真伪ABR都可以产生3类LSA


伪ABR 有接口属于area0 但是在area0 中没有full的邻居


真ABR,有接口属于area0在area0 中有full的邻居,真ABR能实现3类LSA的防环机制

真ABR通过非骨干区域收到3类LSA,这些3类LSA中的路由bit是不会置1的,只能加入LSDB,不能计算路由,也不会把这些LSA转发给其他邻居。伪ABR就可以计算路由

18.LSA 能不能汇总,在哪里汇总,为什么?

LSA3 只能在 ABR 处,且是 LSA1/LSA2 转换为 LSA3 时,进行汇总。

即最初产 生 LSA3 的 ABR 上做汇总,其他位置不能汇总 骨干区域路由器配置 Vlink 之后无法进行 ABR 汇总,因为可能会产生环路(详 情见 vlink 内容) LSA5 只能够在产生 LSA5 的 ASBR 处做汇总。如果是在 nssa 区域中,产生 LSA7 的 ASBR,则可以对 LSA7 汇总,也可以在发生 7/5 转换的位置对 LSA5 做汇总。

19 .OSPF路由选路的原则,及在什么情况下会负载,

选路原则:O>O IA>O E1 >O E 2> O N1 > O N2


负载条件:1、cost 一致;2、区域一致

20.如果有多台ABR存在,是每台ABR都会进行7转5操作吗?转换者选举原则是什么?

不会。因为各个路由器 7 转 5 后生成的 5 类 LSA 都是一样,只需让一台路由器 进行 7 转 5 即可,达到可以减小其他区域的 LSDB 和路由表的规模。


规则:如果 NSSA 区域有多台 ABR,只有 RouerID 大的 ABR 路由器会进行 7 转 5 操作。

进阶理论:OSPF LSA

=================

21.1类LSA 是谁产生的?1类LSA都包含哪些信息?有几种链路类型?描述一下每一种链路类型, Link ID,adv router 是什么?cost 如何计算?

1类LSA 是运行OSPF 的每台路由器都可以产生


每条链路由 Link ID,Data,Type 和 Metric 组成

LinkID:此链接的对端标识

Data:描述此链接的附加信息


Type:链路类型(P2P、TransNet、StubNet、Virtual)

1> P2P 网段:描述连接到另外一个路由器;

2> Transit 网段:描述使用该接口连接到一个虚节点(DR),例如广播 型网 段或 NBMA 网段;

3> Stub 网段:描述末节类型链路(网络),例如 Loopback 接口、Sub-IP 地址、P2P 和 P2MP 网络中链路的路由信息;

4> Virtual:一个从本路由器到虚连接对端 ABR 的链接;


Link ID是Router ID, ADV router 是Router ID


cost 默认是100兆除以接口带宽

22.2类LSA 是谁产生的?2类LSA 包含的内容是什么, Link ID,adv router 是什么?

2类LSA 是每个网络的DR产生


2类LSA 包含这个网络内一共有多少成员, 每个成员的router ID 是多少, 以及这个网络的掩码是多少位


Link ID 是DR 的接口IP 地址,adv router 是 DR 的 RouterID。

23. 3类LSA 是谁产生的?3类LSA 包含的内容是什么, Link ID 是什么, ADV Router 是什么, 跨区域传递ADV Router 如何改变?cost 是多少?

3类LSA是 每个区域的ABR产生.


如果你也是看准了Python,想自学Python,在这里为大家准备了丰厚的免费学习大礼包,带大家一起学习,给大家剖析Python兼职、就业行情前景的这些事儿。

一、Python所有方向的学习路线

Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

二、学习软件

工欲善其必先利其器。学习Python常用的开发软件都在这里了,给大家节省了很多时间。

三、全套PDF电子书

书籍的好处就在于权威和体系健全,刚开始学习的时候你可以只看视频或者听某个人讲课,但等你学完之后,你觉得你掌握了,这时候建议还是得去看一下书籍,看权威技术书籍也是每个程序员必经之路。

四、入门学习视频

我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。

四、实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

五、面试资料

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

成为一个Python程序员专家或许需要花费数年时间,但是打下坚实的基础只要几周就可以,如果你按照我提供的学习路线以及资料有意识地去实践,你就有很大可能成功!
最后祝你好运!!!

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值