邻居关系建立
01 OSPF 报文类型以及每一种报文的作用?(提示:hello 作用有4个)
答:OSPF报文一共有5种
1>Hello:作用:1)发现邻居 2)维护邻居关系 3)选举DR/BDR 4)保证邻居的双向通信
2>DBD(Database description)1)选举master slave 2)交互数据库摘要信息
3>LSR( LSA Request) 向对方请求对方有, 本地没有的LSA信息
4>LSU(LSA Update) 给邻居发送LSA 信息
5>LSACK(Link State Acknowledgement) 确认邻居发送的LSA 信息和对DBD 报文进行确认
02 描述一下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 计算得到的矢量图计算到达每一个节点的最优路径, 放到路由表。
03 Router ID 选举原则
Router ID是一个32位的值,它唯一的标识了一个自治系统内的路由器,可以为每台运行OSPF的路由器上可以手动配置一个RouterID,或者指定一个IP地址作为RouterID。
如果设备存在多个逻辑接口地址,则路由器使用逻辑接口中最大的IP地址作为RouterID,如果没有配置逻辑接口,则路由器使用物理接口的最大IP地址作为RouterID。
04 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> 建立邻居的接口不能是静默接口
3) DBD 报文需要匹配的字段
11>DBD报文中只有一个字段要匹配,就是MTU.如果MTU不匹配,路由器就会卡在exstart状态,因为在这个状态中双方会交互firstDBD选择主从,如果开启MTU一致性检测,只有MTU一致才可以选出主从,思科默认开启这个特性,huawei默认没开。
05 OSPF 邻居建立过程
1>Down
在Down状态下,OSPF进程还没有与任何邻居交换信息。OSPF在等待进入Init状态。
1.5>Attempt 尝试。只有在Non-Broadcast非广播和point-to-multipoint non-Broadcast点到多点非广播才能见到尝试。在这2种接口使用OSPF,不会主动发送hello,因为在发送ospf报文的时候,必须只能以单播的形式发送。
Cisco需要使用neighbor 华为需要指peer 命令指定单播报文发送的目的地,就是单播指定了一个邻居,已经给他发送了一个单播hello,还没收到任何回应,我的邻居状态就是attempt。
这个阶段是临时阶段,最多维持hello时间4倍,没有收到回应就回到down。
2>Init 初始化状态
OSPF路由器以固定的时间间隔(缺省10s)发送类型1(Hello)的分组,以便与邻居路由器建立特殊的关系。
3>Two-way 双边邻居
每台OSPF路由器都使用分组试图与同一个IP网络中的所有邻居路由器建立双向状态或双向通信。Hello分组中含有发送者已知的OSPF邻居列表。当路由器看到它自己出现在一个邻居路由器的Hello分组中时,它就进入了双向状态。
4>Exstart 准启动状态
当路由器与它的邻居进入到ExStart状态后,他们之间的会话就表征为一种毗邻关系,但这时路由器还没有变成全毗邻状态。
ExStart状态是使用类型2的数据库描述(DBD,DataBase Description)分组建立的,两个路由器用Hello分组协商在它们之间的关系谁是“主”,谁是“从”(具有最高OSPF路由器ID的路由器将胜出并变成“主”)。
5>Exchange 阶段
主路由器带动从路由器交互DBD 报文
6>loading:根据交互的DBD 报文可以得知双方需要的LSA 信息, 根据自己没有而邻居有的LSA向邻居请求
7>FULL完全邻接状态 :最终状态,邻居建立完成
06 隐式确认交互过程
答:使用一个携带载荷的LSA,使用与对方发送的LSA序列号相同的序列号来回应,一方面告诉对方,这个数据包我收到了,另一方面把对方需要的LSA发送给对方,这种可以节约2次ACK交互次数的确认方式就是隐式确认。
DBD 先使用隐式确认发送信息,不够发了再使用显式确认来确认。
(不单独回复ACK,双方要同步一个序列号,设备必须确定一个主一个从,由主设备给从设备发送第一个报文并且确定序列号,从设备使用主设备的序列号给主做确认。选举主从就是比较双方router id大小,谁大谁主)
选举Master路由器做主设备发起第一个DBD
谁的ID大就做master,小的就做slave
Master 发起第一个DBD报文,slave仅仅做确认
07 OSPF 网络类型
答:Point-to-point点到点类型
Point-to-multipoint点到多点类型
Broadcast广播类型
NBMA 非广播多路访问网络
Virtual-link 虚链路
08 每一种网络类型下的报文发送是使用单播还是组播,如果是组播, 地址是多少?hello 发送时间是多少?
09 点到点与点到多点的网络类型能否建立邻居,能否传递路由?如果想建立邻居, 如何修改参数?
答:可以建立邻居,可以传递路由计算拓扑, 需要修改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)区域间防环:
1>特殊的区域结构:
OSPF 要求所有的非 0 区域必须与骨干区域直接相连, 区域间路由需经由骨干区域中转。
解读:OSPF 要求所有的非 0 区域必须与骨干区域直接相 连,区域间路由需经由骨干区域中转。这个要求使 得区域间的路由传递不能发生在两个非 0 的区域之 间,这在很大程度上规避了区域间路由环路的发生, 也使得 OSPF 的区域架构在逻辑上形成了一个类似星型的拓扑。
2>区域间的水平分割:
a)从一个非骨干区域学习到的 LSA3 不会再传回该 非骨干区域(因为 1LSA 优于 3LSA,不是根据区域 ID 判断,主要根据 ABR 的 LSDB 判断)
b)完全意义上的 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,只能加入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 操作。