一、了解OSPF基础

OSPF协议基础

大型网络的变化:

RIP缺陷:

路由协议原理上分类:

工作范围上分类:

AS自治系统:

二、了解OSPF邻居建立过程

OSPF三部曲:

一、邻居建立过程(阶段一)

项目建议:

Hello报文:

Hello发送规则:

Hello包:

hello包中影响邻居关系的因素:(任何情况下)

OSPF邻居建立包文交互过程

OSPF可靠性机制:

链路状态数据库同步(Hello建立邻居到2-way,阶段二)

OSPF的LSDB同步:

ExStart预启动状态:

Exstart(OSPF七级邻居关系4):

Exchange(OSPF七级邻居关系5):

Loding状态(OSPF七级邻居关系6):

Full(OSPF七级邻居关系7):

为什么要同步?

三、OSPF报文类型

OSPF报文类型:

摘要信息:

设计好处:

OSPF工作在哪一层?

OSPF报文功能需求:

四、OSPF-LSA和链路类型

LSA的头部:

OSPF邻居状态机:

OSPF的度量值:

OSPF-LSA:

1、Router LSA(1类LSA):

四种链路类型:

(1)、stubnet:

(2)、transnet:

(3)、P2P:

(4)、vlink:

链路的网络类型(四种):

MA网络中的问题:

为了解决MA网络问题:

OSPF邻居表:

五、OSPF多区域

单区域OSPF配置:

单区域问题(划分区域的原因):

区域划分:

ABR区域边界路由器:

区域间的路由如何计算?

区域间路由计算方法:

避免区域间路由环路:

2、3类LSA传递规则:

六、Vlink虚链路

Vlink虚链路:

虚链路实验:

七、OSPF外部路由

OSPF外部路由:

五类LSA:

八、OSPF特殊区域

OSPF特殊区域及其他特性:

OSPF的LSA问题:

解决LSA问题的方法:

OSPF特殊区域

特殊区域不足:

Stub区域(末节区域):

Totally Stub区域(完全末节区域):

NSSA区域:

Totally NSSA区域:

LSA总结:

九、OSPF区域间汇总和外部路由汇总

特殊区域的局限性在哪里?

特殊区域不使用,减少LSA还有没有其他方法?

区域间路由汇总和外部路由汇总:

1、区域间路由汇总:

2、外部路由汇总

十、OSPF更新机制和协议认证

OSPF更新机制

1、周期性更新(反应网络的实时状态):

2、触发更新:

OSPF协议认证

什么是数据安全?

OSPF认证方式:

1、区域认证:

2、接口认证:

认证模式:

1、不认证:默认情况下。

2、明文认证:

3、MD5认证:


学习目标:

1、了解OSPF基础

2、了解OSPF邻居建立过程

3、OSPF报文类型

4、OSPF-LSA和链路类型

5、OSPF多区域

6、Vlink虚链路

7、OSPF外部路由

8、OSPF特殊区域

9、OSPF区域间汇总和外部路由汇总

10、OSPF更新机制和协议认证

一、了解OSPF基础

OSPF协议基础

由于RIP是基于矢量算法的路由,在大型网络中存在收敛慢、度量值不科学、可扩展性差等问题被淘汰了。

IETF提出了SPF算法(数学算法,最短路由优先算法),OSPF基于SPF算法开发而来的一种链路状态协议,多厂家都能支持OSPF协议,部署在大型网络中,弥补了RIP的不足。

‘路由中OSPFv2、BGP、MPLS三大基石。

OSPFv3、ISIS、EVPN、SR、TE。

大型网络的变化:

1、网络规模大

2、网络可靠性提高(收敛需要毫秒级)

3、网络异构化趋势加剧

RIP缺陷:

1、逐跳收敛很慢,故障恢复时间长

2、传闻路由,缺少对全局网络的了解,去往目的地都是听其他路由器"来说",基于传闻的协议。

3、跳数作为度量值,有效15跳(受限当时网络技术影响,基本都2M网络,现在带宽很大,不同链路区别很大)。

4、最大开销15跳(经过15台路由)

路由协议原理上分类:

1、距离矢量协议:收到路由信息自己计算完结果,再发别人。

RIPv1、RIPv2、IGRP(cisco私有)

2、链路状态协议:把路由信息传递,收到路由信息再自己进行计算。

OSPFv2、OSPFv3、ISIS

3、路径矢量路由协议:BGP

4、混合型路由协议(高级距离矢量):EIGRP

工作范围上分类:

AS自治系统:

技术上定义:运行相同的IGP协议的设备所组成的网络。

1、内部网关路由协议:实现AS内部互联互通的路由协议(RIPv1、RIPv2、IGRP、OSPFv2、OSPFv3、ISIS、EIGRP)。

2、外部网络路由协议:实现AS之间互联互通的路由协议(BGP)。

OSPF链路状态协议(属于传输层协议)

1、路由信息的传递与路由计算分离

2、基于SPF算法

3、以“累积链路开销”作为选路参考值

二、了解OSPF邻居建立过程

OSPF三部曲:

阶段一:建立邻居关系(一切的开始)

阶段二:进行链路状态数据库的同步(LSDB一致)

阶段三:运行SPF算法,计算路由

一、邻居建立过程(阶段一)

Router ID:自治系统中唯一标识一台运行OSPF的路由器(Router ID跟IP地址没有任何关系,只是结构相同·)

默认OSPF的Router ID如何确定?

1、默认使用路由器全局的Router ID作为协议的Router ID。

2、默认情况下,设备配置的第一个IP地址就是全局的Router ID。

3、允许管理员手动全局配置Router ID(修改全局Router ID后,协议的Router ID需要重置协议才会改变)

4、允许管理员单独手动配置/修改协议的Router ID,优先级最高(修改协议Router ID后,协议的Router ID需要重置协议才会改变)

项目建议:

1、一般项目上通常使用loopback接口地址作为全局或协议的Router ID,方便网络管理。

2、协议Router ID的变更,生效需要重启进程,会导致邻居关系中断,网络产生振荡,一般网络不会频繁变更Router ID。

思科设备运行OSPF是手动配置优先级最高,没手动选择loopback口的IP做为Router ID,如果loopback没配置IP就选择物理口最大的IP地址作为Router ID。

OSPF报文

Hello报文:

1、邻居发现:自动发现邻居路由器。

2、邻居建立:完成Hello报文中参数协商,建立邻居关系。

3、邻居保持:通过keepalive机制,检测邻居运行装置。

Hello发送规则:

1、凡是加入到OSPF协议的接口都会主动发送Hello报文(环回口/隧道口除外)

2、Hello接口源地址为接口IP地址,目的地址为组播224.0.0.5

@在点到点、广播型链路每隔10秒周期性发送,邻居失效时间默认为Hello间隔的4倍(4倍Hello时间收不到邻居Hello断掉邻居关系,并重新计算路由)

@在NBMA、点到多点链路每隔30秒发送

Hello包:

OSPF封装在IPv4包头中,协议号为89

1、版本号:OSPF的版本

2、报文类型:1是hello包、2的DD报文、3是LSU、4是LSR、5是LSACK

3、报文长度

4、Router ID:路由的OSPF的Router ID

5、区域ID:描述发送hello报文接口所属区域

6、认证类型和认证数据:

Auth Type:0代表空认证(不认证)、1代表明文认证、2代表MD5认证

Auth Data:明文密码、密文MD5值

7、network mask:发送hello的接口子网掩码

8、hello时间:hello发送周期

9、Opthin中N和E位:

10、router priorit路由器优先级:默认是1,用于选举DR/BDR

11、dead interval:邻居失效时间

12、DR:链路上DR路由器的接口IP地址

13、BDR:链路上BDR接口路由器的IP地址

如果是P2P、P2MP,DR/BDR值为0,不选举DR/BDR。

hello包中影响邻居关系的因素:(任何情况下)

1、Router-ID不能冲突

(1)、Router ID冲突会导致ExStart状态中第一次交互DD报文主从选举没法进行(主从选举比Router ID大小)

2、区域ID要一致

3、认证类型要一致

4、认证数据要一致

5、Hello间隔要一致

6、Hello失效间隔要一致

7、N、Ebit取值要一致

以上七个条件是OSPF任何情况下都要同时满足建立邻居的条件

遗忘曲线、给别人讲

OSPF邻居建立包文交互过程

1、Down(OSPF七级邻居关系1):路由器没有发现邻居,接口没有收到任何邻居的Hello包,但不影响自己发Hello包(发的Hello包不携带邻居的router id)。

2、Init(OSPF七级邻居关系2):初始化,收到邻居的Hello包,能感知到链路上存在其他运行OSPF的路由器(第一次握手,收到了邻居Hello,但是在邻居的Hello包没有发现自己,单向发现)。

3、2-way(OSPF七级邻居关系3):hello参数协商后携带邻居router id发送Hello包(双向发现)。

实际3个包就到2-way了(3次握手):

OSPF可靠性机制:

1、3次握手建立双向邻居关系,避免单边的邻居建立。

链路状态数据库同步(Hello建立邻居到2-way,阶段二)

OSPF的LSDB同步:

1和2选出了主从,3、4、5进行DD摘要的交互,从路由器发送DD报文摘要使用主路由器的序列号发送,主发DD序列号+1做确认和传递自己的DD报文,从再使用主发的序列号+1作为自己DD报文的结束(+1就是可靠性的体现)。

从没有资格对序列号+1(被动地位),只能使用主的序列号发送DD报文。

进入到2-way状态后,开始进行LSDB的同步

ExStart预启动状态:

通过发送DD报文进行主从选举,发送不携带LSA的DD报文。

DD报文2种:

1、不携带LSA(链路状态)摘要信息的DD报文(主从选举)。

2、携带LSA(链路状态)摘要信息的DD报文。

DD报文中I、M、MS三个bit位(状态的表达)和DD sequence序列号

I:为0代表不是第一次发DD报文,1是第一次发DD报文。

M:为0代表DD报文发完了,1代表不是最后一个DD报文还要发。

MS:为1代表是master主路由器,为0代表是slave从路由器。

R1和R2第一次DD报文I、M、MS都一样,协商主从(Router ID大的做Master主路由器),协商完再做同步

Exstart(OSPF七级邻居关系4):

交换不携带摘要信息的DD报文,完成主从选举,进入Exchange状态。

Exchange(OSPF七级邻居关系5):

将自身LSDB中所有LSA的摘要通过DD报文进行交换(实现LSDB同步)。

LSA摘要就是描述路由的头部。

DD报文(LSDB的目录)中LSA的摘要就是每一条LSA的头部信息

摘要的用途:(实现LSDB同步,同步设计的字段、字段的含义、同步的规则)

1、唯一的标识一条LSA,由Type、Ls id、adv router三个参数唯一标识一条LSA(通过识别LSA判断自己是否缺少LSA,LSA差异)

(1)、Type类似:表面LSA的种类。

(2)、LS ID链路状态ID:LSA的名字,Ls ID的取值由Type决定。

(3)、Adv Router:产生这条LSA路由器的Router ID。

2、用于判断LSA的新旧(通过LSA的sequence序列号、checksum校验合、Ls Age老化时间判断新旧程度,旧的被新的替换掉)

(1)、sequence number:序列号越大越新,起始值0x80000001,最大值0x7FFFFFFF。

(2)、checksum校验和:越大越新

(3)、LS Age老化时间:等于3600s最新。

(4)、如果LS Age都不等于3600s,则判断LS Age差值,如果大于900s则LSA Age小的新,如果小于/等于900s则认为相同。

所谓的LSDB同步就是邻居之间最终拥有相同的LSA的信息,以及这些LSA的新旧程度一致。

1、Type类似:表面LSA的种类。

2、LS ID链路状态ID:LSA的名字,Ls ID的取值由Type决定。

3、Adv Router:产生这条LSA路由器的Router ID。

4、sequence number:序列号越大越新,起始值0x80000001,最大值0x7FFFFFFF。

5、checksum校验和:越大越新

6、length:长度

为什么同步,同步的规则:

DD报文(就是一本书的目录)的设计就是为了加快收敛速度,节省设备资源。

从路由器携带DD摘要信息使用主路由器的序列号(主路由器决定从路由器发送DD报文的序列号,让DD报文传输有可靠的传输机制),主路由器收到从路由器发自己DD的摘要会把序列号+1(1、从使用主的序列号发DD做缺认,确定你从路由器身份。2、同时把自己的DD报文发给对方)

从路由器

主路由器

从再回使用主的序列号

最后一个DD报文

主路由器发最后一份DD:

从路由器要发一份空的做最后确认

从的DD报文(最后做确认)

1、DD seq = x i = 0 More = 1 ms = 0 LSA1 头部、LSA2头部、LSA3头部

3、DD seq = x+1 i = 0 More = 1 ms = 0 LSA4头部、LSA5头部

5、DD seq = x+2 i = 0 More = 0 ms = 0 LSA6头部

7、DD seq = x+3 i = 0 More = 0 ms = 0 null(告诉主路由器最后发的收到了,做一个最后确认收尾)

主的DD报文(最后一个DD报文)

2、DD seq = x+1 i = 0 More = 1 ms = 1 LSA1 头部、LSA2头部、LSA3头部

4、DD seq = x+2 i = 0 More = 1 ms = 1 LSA4头部、LSA5头部

6、DD seq = x+3 i = 0 More = 0 ms = 1 LSA6头部

Loding状态(OSPF七级邻居关系6):

通过LSR中携带DD摘要的LSA标识,发给对方请求这条LSA,对方收到LSR的请求会把对应的LSA明细通过LSU发过去(收到LSR、LSU做交换)

R2的LSR请求,LSA头部

R1通过LSU更新完整条目给R2

收到DD报文判断对方DD中摘要是自己需要的(没有或对方新)就会发DD报文携带LSR请求自己需要的LSA。

不管谁最后发DD,总要有一个人最后做确认收尾。

Full(OSPF七级邻居关系7):

对LSU做确定发LS ACK,同步了LSA,最终LSDB同步(到达Full)

LS ACK:对收到的LSU中的LSA做确认(不是对LSU确认,信息确认,不是报文确认)

R2的LSU:

R1的LSA ACK对收到之前的LSU做确认:

为什么要同步?

1、什么是同步:LSDB要一样。

2、如何做才能同步:通过LSR、LSU、LS Ack实现。

三、OSPF报文类型

OSPF报文类型:

DD、LSR、LSU、LSAck报文都包含那些信息?这么设计有什么好处?

DD报文携带LSDB中所有LSA的摘要信息,摘要信息有哪些?

摘要信息:

1、唯一的标识一条LSA,由TypeLs idadv router三个参数唯一标识一条LSA(通过识别LSA判断自己是否缺少LSA,LSA差异)

(1)、Type类型:表面LSA的种类。

(2)、LS ID链路状态ID:LSA的名字,Ls ID的取值由Type决定。

(3)、Adv Router:产生这条LSA路由器的Router ID。

2、用于判断LSA的新旧(通过LSA的sequence序列号、checksum校验合、Ls Age老化时间判断新旧程度,旧的被新的替换掉)

(1)、sequence number:序列号越大越新,起始值0x80000001,最大值0x7FFFFFFF。

(2)、checksum校验和:越大越新

3)、LS Age老化时间:等于3600s最新。

(4)、如果LS Age都不等于3600s,则判断LS Age差值,如果大于900s则LSA Age小的新,如果小于/等于900s则认为相同。

LSR报文写到LSA的标识Type、Ls id、adv router。

LSU携带LSA的头部以及链路状态。

LSACK是LSA的摘要信息。

设计好处:

DD实现LSDB核对,按需同步LSA,提高邻居速度,节省设备资源。

OSPF邻居建立的可靠性提现。

由于OSPF是被IP协议直接封装的路由协议,IP协议不具备可靠性机制。

OSPF协议需要自己建立一套可靠性机制,保障邻居能成功同步。

1、三次握手形成two-way。

2、DD报文序列号+1机制,隐式确认(对报文做确认)。

显示确认:会单独针对报文发确认包。

隐式确认:发包通过序列号+1回复上个包收到了。

3、LSAck对LSA的确认不是对LSU的确认(不是对LSU确认,信息确认,不是报文确认)

OSPF工作在哪一层?

OSPF被IP协议封装,工作在网络层之上的一种路由协议(地位跟传输层持平,IP|OSPF、IP|TCP、IP|UDP,不好说OSPF是传输层)

OSPF协议报文头部:DD、LSR、LSU、LSAck都有这个头部

OSPF报文功能需求:

1、邻居发现与保持:通过Hello机制实现。

2、LSA同步:双方互相发送LSA,完成同步,同时同步速度更快,占用资源更少,通过DD报文。

3、可靠性:确保LSA同步过程可靠性,DD报序列号+1,LSAck的确认。

四、OSPF-LSA和链路类型

LSA的头部:

1、LS Age:老化时间。

2、Options:可选项。

3、LS Type:LSA的类型。

4、Link State ID:LSA的名字,Ls ID的取值由Type决定。

5、Advertising Router:LSA的产生者。

6、LS sequence number:序列号。

7、LS checksum:校验和。

8、Length:长度。

OSPF邻居状态机:

OSPF的度量值:

1、链路开销:接口开销(默认环回口开销为0,能改)。

OSPF通过带宽计算开销,100M/带宽(serial链路带宽2.048)=48

只取整数位

100/1000 小于0取1,大于0取整数位,100/10000也是1,千兆和万兆值一样,比跳数了。

(1)改OSPF参考带宽(针对OSPF进程下所有接口生效)

改带宽命令(整个AS都要改)

(2)、改接口带宽(针对接口生效)

2、路径开销:到目的网段路径的开销,就是链路出接口开销的累加和。

路径两端开销不一致会导致报文来回路径不一致(对用户来说不会有任何问题,会造成故障分析难度增加,安全上看如果中间有安全设备会导致被拦截)

OSPF-LSA:

1、Router LSA(1类LSA):

每台运行OSPF的路由器都会产生,用于描述路由器自身加入到OSPF进程的直连链路状态。

四种链路类型:

描述直连链路的时候,通过四种链路类型:

任何一种链路类型都由这三个参数描述link id、data、mctric。

(1)、stubnet:

描述路由器直连网络号,link id、data、mctric。

link id:直连网络号。

data:子网掩码。

mctric:自身到直连网络OSPF的cost开销。

(2)、transnet:

描述广播型/NBMA链路上的(伪节点)邻居。

link id:伪节点的router id,由DR的接口地址充当伪节点的router id。

data:自身和伪节点相连的接口IP。

mctric:到伪节点的开销。

这条链路的伪节点为10.1.234.2,但是DR≠伪节点,是链路本身的算法抽象了虚拟的伪节点,借用DR接口地址充当Router ID(每一条广播链路都会选DR,接口地址充当伪节点的Router ID)。

(3)、P2P:

描述P2P或P2MP链路上的(实节点)邻居。

link id:邻居的router id。

data:和邻居相连的接口地址。

mctric:到邻居的开销。

(4)、vlink:

描述虚链路上的(实节点)邻居。

link id:虚链路上邻居的router id。

data:和vlink邻居相连的接口地址。

mctric:到邻居的开销。

transnet、p2p、virtual共同点是用来描述邻居的,都可以叫拓扑信息(根据信息描述整个网络)

stubnet网络(路由)信息,描述网络号和掩码。

先画树,再画叶,开枝(拓扑信息)散叶(路由信息)。

链路的网络类型(四种):

1、p2p:ppp、hdlc

2、p2mp:手动配置

3、BRO:ethernet、fddi

4、NBMA:ATM、Fr(帧中继 )

默认接口的链路层协议决定链路的网络类型,但是也可以被管理员手动修改。

主从选举是lsdb同步的时候发生的事情(解决两台路由器LSDB同步dd报文的可靠性问题),伪节点是算法上用DR接口ip地址充当伪节点的router id(解决算路由的时候,为了简化拓扑结构,从而虚拟化出的一个节点,避免多路访问描述复杂),DR/BDR

MA网络中的问题:

网络中多台设备互相建立邻居,泛洪信息导致重复的信息在网络中一直传递(n*(n-1)/2,n是网络中路由器的数量,个邻接关系泛洪 ,重复的LSA泛洪造成资源浪费)

为了解决MA网络问题:

选出DR/BDR减少full的邻居关系,降低重复的LSA数量,优化网络。

MA多路访问:BRO/NBMA链路都属于MA的类型。

默认情况下OSPF协议在BRO/NBMA型网络会自动进行选举DR。

每条BRO/NBMA型都会进行DR/BDR的选举:

1、比较接口的优先级,默认等于1,取值范围0-255(比大)

2、比较router id(比大)

router id相同会导致主从选举问题和1类LSA识别问题。

3、DR/BDR不可被抢占。

4、其他路由器为DRother。

5、接口优先级等于0,代表只能是DROther,没有资格进行DR/BDR选举。

P2P/P2MP的链路上不会进行DR/BDR的选举,直接建立FULL的邻接关系。

224.0.0.5代表所有运行OSPF协议的路由器。

224.0.0.6代表BRO/NBMA链路上的DR/BDR。

DR失效,判断是否存在BDR,如果有BDR,则BDR成为新的DR,重新选举BDR(BDR可选可不选)。

DRother只建立邻居到2-way,所有DRother和DR/BDR建立邻接Full的关系。

DR/BDR的组播组地址224.0.0.6,DRother把LSU(状态通告)通过224.0.0.6发给DR/BDR,DR再通过224.0.0.5发给其他DRother。

DR/BDR同时监听224.0.0.5和224.0.0.6。

DRother只监听224.0.0.6。

DR/BDR彼此不当一回事,但是DROther要关注哪个是DR/哪个是BDR。

wait time:DR/BDR选举时间,一般是hello时间的4倍。

OSPF邻居表:

邻居的Router ID

邻居和我相连的接口IP:

和邻居的状态:

DD报文主从选举(预启动状态):

优先级(选DR/BDR用):

DR和BDR:

邻居死亡时间:

重置OSPF进程:

R1的1类LSA

顺藤摸瓜,自身1.1.1.1连着2.2.2.2,R1通过1类LSA找到R2

1类LSA对应的P2P的link-ID一定有一条匹配的1类LSA

R1针对2.2.2.2的1类LSA:

Transnet:用于描述连接着伪节点,而如何描述伪节点连着哪些节点呢?

摸到伪节点后,顺着1类LSA的线索断掉了,此时需要找2类LSA解决伪节点问题,2类LSA由DR产生,描述伪节点连接着哪些节点

R1的2类LSA,DR接口充当2类LSA名字:

查看3.3.3.3和4.4.4.4的1类LSA

这个时候看3的1类LSA:发现3没有其他的藤了

这个时候看4的1类LSA:

R1再画叶子路由:stubnet的

R2的叶子:

伪节点的叶子(2类的链路状态ID与子网掩码):

DR的IP地址和DR的子网掩码与运算得出叶子网络,10.1.2.234.0/24

R3的叶子:

1、2类既描述拓扑,也描述路由。

通过1类、2类LSA计算出的路由信息为区域内路由,通过SPF算法计算出的路由,100%避免路由环路(因为不管实节点还是伪节点,都只能在树上出现一次)

IGP协议的Network:控制将自己哪些直连链路加入到协议进程中,两种方法:

1、network 直连网络的网络号 反掩码(配置少,不精确宣告接口,太麻烦得算,多网段还是得用这个)

2、network 接口IP地址 0.0.0.0(精确)

五、OSPF多区域

单区域OSPF配置:

单区域问题(划分区域的原因):

如果一个区域规模很大,设备数量多,链路数量多,会有什么问题?

1、树的规模较大,SPF算法会消耗更多的CPU资源。

2、任何链路状态发生改变, 产生的1类2类的更新后需要在整个区域内泛洪传递。

3、当网络不稳定,整个区域所有路由器都要参与SPF的重新计算,发生故障可能性会增加。

区域划分:

1、将网络划分成两层的区域结构,骨干区域(area 0区域)/非骨干区域(非area0),区域内发生变化,只能影响变化的区域,不影响其他区域。

2、area 0 有且只有一个,并且要连续。

3、非骨干区域一定要和骨干区域直连相连,骨干区域area0是花蕊,非骨干区域的靠在花蕊旁的花瓣。

ABR区域边界路由器:

1、连接多个区域,至少有一个活动接口属于area 0的路由器。

2、配置了vlink虚链路的路由器。

IR区域内部路由器:

1、所有接口都属于同一个区域的路由器。

区域间的路由如何计算?

由ABR将自身直连区域的区域内路由(1/2类计算的路由)转换成其他直连区域的3类LSA,完成区域间路由的计算。

ABR把区域内明细路由转换为三类LSA进行区域间传递。

三类LSA:Sum-Net,纯粹的路由信息(1、2类LSA是拓扑信息)

区域间路由计算方法:

Cost = 自身到ABR的开销 + ABR到路由的开销。

Next-Hop = 自身到ABR的下一跳,根据到ABR的APF树进行计算。

ABR转发3类LSA会改写Adv router为自身的router id,开销也会重新计算,3类LSA只能在产生区域内泛洪,转发其他区域会针对该区域重新生成3类LSA。

SPF在区域间是一种距离矢量算法。

区域间防环:所有非骨干区域流量,都得通过骨干区域传输,这样可以避免区域间环路。

区域间路由如何计算?

1、由ABR将自身直连区域内的区域路由器转换为其他直连区域的3类LSA,完成区域间路由的计算。

2、ABR将区域0中的3类LSA转化为其他骨干区域的3类。

区域间环路的产生:(真实这样设计不会有环路)

避免区域间路由环路:

1、骨干区域与非骨干区域,所有非骨干区域都要和骨干区域相连,骨干区域只能有一个,非骨干区域都要通过骨干区域中转。

2、3类LSA传递规则:

(1)、不是ABR就不能产生3类LSA。

(2)、从骨干区域传来的3类LSA不能再传回骨干区域。

六、Vlink虚链路

不规则OSPF区域设计解决方案,Vlink

Vlink虚链路:

1、创建了vlink的路由器都会成为ABR。

2、vlink永远是属于area 0的链路。

3、vlink不能在area 0创建,只能在非骨干区域创建,只能跨越一个非骨干区域(可以一步一步跳)

4、特殊区域不能创建虚链路。

5、用于修复不连续的骨干区域。

6、将非骨干区域和骨干区域直接相连。

7、能不用就别用(能按规则设计就别乱搞,增加网络复杂性,故障排错很麻烦,除非是没办法了)

8、做area 0的备用链路:

区域0上边链路down了,导致有两个区域0,可以事先A和B通过vlink在area 1中建立一条虚链路,当做备用链路来用。

对端的router id

虚链路实验:

做完后,AR2是ABR了

R7带源ping:

思考题:

1、一条Network-Summary-LSA可以描述多条路由吗?

一条3类LSA只能描述一条路由,区域间路由多的话,做区域间路由汇总。

2、OSPF如何避免区域间环路?

(1)、区域0有且只有一个,并且连续。

(2)、非骨干区域要和骨干区域直接相连,非骨干区域直接想要通,必须经过ABR,保证网络架构无环,星型架构。

(3)、区域间水平分割,从该区域传递到其他区域的路由不允许再传回本区域。

七、OSPF外部路由

OSPF外部路由:

企业需要和外部访问,不同企业网络之间存在互相访问。

外部路由引入:将其他协议的路由或OSPF其他进程的路由引入到OSPF协议进程中。

import route static 将执行该命令路由器的路由表中活动的静态路由引入OSPF进程中

外部路由,5类LSA:

FA转发地址

链路状态协议的最大特点:谁产生谁负责,其他路由器无权更改非自身产生的链路状态。

外部路由计算的规则:

1、和ASBR在同一个区域的路由如何计算外部路由?

cost = 自身到ASBR的开销 + 引入时开销

Next-hop = 自身到ASBR的下一跳

2、和ASBR不在同一个区域的路由如何计算外部路由?

4类LSA,属于路由信息,和ASBR同一个区域的ABR产生,描述自身到ASBR的开销,link id是ASBR的router id,adv router是ABR的router id。

cost = 1类得到自己到ABR的开销(SPF) + 4类得到ABR到ASBR的开销 + 5类外部路由本身的开销

Next-hop = 自身到ASBR的下一跳(根据4类算出,就是自到自己ABR的开销)

3类LSA描述的是到一个网络的开销。

4类LSA描述的是到一个节点的开销。

凡是没有描述邻居信息的都是路由信息!!!

外部路由类型:默认是OE 2

引入外部路由时在路由表中忽略AS内部路径的开销,仅显示引入时的开销。

1、OE 1:路由表中始终显示引入时的开销和内部路径开销之和(cost值是AS内部开销值 + AS外部开销值)

2、OE 2:cost值是外部开销值。

外部路由选路:5类、7类

外部路由O E 1永远优于OE 2。

都是cost-type 1:选择cost小的,如果相同就负载分担,路由上的选路方式。

都是cost-type 2:优先比较引入时的开销(选小),不关注AS内部开销,管理意义上的选路方式,引入时开销一样,比较AS内部开销(选择到ASBR近的),如果内部开销也一样就负载分担。

路径优化(OSPF自动的路径优化):去往8.0路由下一跳是1.8,外部路由会携带FA转发地址,如果R6发现FA转发地址,是通过自己的直连路由可达,本地有这条路由就会把这条路由的下一跳用为FA地址。

FA转发地址(直连环境下):

这条FA地址确定的方法就是自己去往目的网络的下一跳,ASBR会把自己去往外部路由的下一跳作为这条外部5类LSA的FA地址传进去,内部路由器发下这条5类LSA携带有FA转发地址,并且FA转发地址是自己直连路由可达,那么就直接把转发地址作为这条5类LSA的下一跳。

当OSPF路由器计算外部路由时,5类LSA携带FA转发地址时,如果发现自身有存在FA转发地址的直连路由,则将这条外部路由的下一跳地址直接设置为FA地址(FA直连环境下)

FA转发地址什么时候产生?(IE中具体说明)

五类LSA:

type ase

ls id 外部路由的网络号

adv router ASBR router id

network mask 外部路由的子网掩码

metric 1

cost-type 2

fa 0.0.0.0

tag 1

四类LSA:由ASBR所在区域的ABR产生

area 10产生了一条5类LSA,4类LSA是R2在area 0区域产生,来告诉其他区域ASBR在哪以及开销的计算。

八、OSPF特殊区域

OSPF特殊区域及其他特性:

OSPF需要维护区域内(1、2类LSA完成计算)、区域间(3类完成计算)、外部路由(5类完成计算,4类辅助)

OSPF的LSA问题:

LSDB中需要维护大量的LSA,消耗设备资源。

解决LSA问题的方法:

通过OSPF特殊区域进步一减少LSA数量和路由表规模。

OSPF特殊区域

1、减少特殊区域中LSA的数量!!!

2、减少路由表的规模!!!

3、保证网络能通!!!

特殊区域不足:

1、会产生次优路径

2、不能建立vlink

3、area 0不能是特殊区域

Stub区域(末节区域):

1、不允许5类LSA在该区域泛洪。

2、该区域不产生4类LSA。

3、该区域的ABR会产生一条3类的默认路由(默认是1,cost可以改,多条3类缺省用来控制选路,开销一样负载分担),用于访问外部网络。

4、区域视图下default-cost 修改缺省路由开销。

5、不能有ASBR,不允许引入外部路由。

6、DD报文同步的时候,故意隐瞒5类LSA,仅是跟你同步我想和你同步的内容,所以ABR Stub有5类LSA,Stub没有5类,邻居关系是Full。

hello报文中option中E、N bit:

E = 0 代表不进行5类LSA同步,E = 1 代表需要同步5类LSA。

N = 0 代表不进行7类LSA同步,N = 1 代表需要进行7类LSA同步。

E = 1 ,N = 0代表普通区域

E = 0 ,N = 0代表Stub/Totally Stub区域

E = 0, N = 1代表NSSA/Totally NSSA区域

E = 1, N = 1不存在这种组合

五类LSA很多:

配置Stub区域:区域内所有路由器都要敲,这个时候邻居关系会重新建立

会过滤4、5类LSA,并且下发一条3类默认指向ABR:

实验:

ABR和区域内路由器敲stub:

Stub之前:

stub之后:

Totally Stub区域(完全末节区域):

1、不允许5类LSA在该区域泛洪。

2、该区域不产生3、4类LSA。

3、该区域的ABR会产生一条3类的默认路由(默认是1,cost可以改,多条3类缺省用来控制选路,开销一样负载分担),用于访问外部网络。

4、区域视图下default-cost 修改缺省路由开销。

5、DD报文同步的时候,故意隐瞒5类LSA,仅是跟你同步我想和你同步的内容,所以ABR Stub有5类LSA,Stub没有5类,邻居关系是Full。

6、不能有ASBR,不允许引入外部路由。

stub的时候:

Totally Stub之后:

NSSA区域:

1、允许本区域的ASBR引入外部路由,以7类LSA的形式存在。

2、不允许其他区域ASBR产生的5类LSA泛洪,不产生4类LSA。

3、NSSA区域的ABR产生一条7类缺省路由,用于访问其他区域引入的外部路由。

4、7类LSA只能在NSSA区域内泛洪。

5、NSSA区域的ABR会把7类LSA转换为5类LSA泛洪到其他区域(如果有多个ABR,比较router-id,大的做转换者,只需要一个转换者)

7类LSA在路由表中标识为O-NSSA:

R1-------------R2---------------R3---------R4

------area 1----------area 0-------area 2------

R4在NSSA区域引入7类外部,R3以转换者的身份把7类LSA转换成5类LSA进行传递,5类LSA到R2后,R2会针对这个5类LSA产生一条4类LSA,连同收到的5类LSA(5类LSA传递ADV router不会改变,需要4类来计算到5类ASBR的开销【4类就是描述自己到ASBR的开销】),传递到area 1,4类LSA来辅助R1计算这条5类LSA的路由。

NSSA区域ABR【转换者】会选择性的把7类LSA转换为五类,什么时候会这样(特殊场景)?

R3是区域的ABR,同时也是NSSA的ABR、ASBR,转换7类发NSSA区域,转换5类发area 0区域,下边的ABR就没必要再做7转5的转换。

指定转换者路由器角色命令:

Totally NSSA区域:

1、允许本区域的ASBR引入外部路由,以7类LSA的形式存在。

2、不允许其他区域ASBR产生的3类、5类LSA泛洪,不产生4类LSA。

3、NSSA区域的ABR产生一条3类和7类的缺省路由,用于访问其他区域区域间路由【3类LSA】和其他区域引入的外部路由【7类LSA】(优先使用3类的缺省指导报文转发)

4、7类LSA只能在NSSA区域内泛洪。

5、NSSA区域的ABR会把7类LSA转换为5类LSA泛洪到其他区域(如果有多个ABR,比较router-id,大的做转换者,只需要一个转换者)

敲完nssa no-import route no-summary,会使路由器不产生7类到内部,只产生五类到外部,Totally NSSA区域内路由器的路由表会更优化(OSPF优化技术)。

7类LSA:

面试题:

交换机对于源目IP都是组播的数据包如何处理?

一般情况都是源是单播,目的是组播,华为不同型号交换机有的收到这样的数据包直接丢弃,有的会进行转发。

特殊区域,能不能增强特殊区域的稳定性?

可以,通过缺省路由访问外部网络,外部路由明细变化不会影响缺省路由。

LSA总结:

4类除了ASBR区域,其他区域每台ABR都会产生。

九、OSPF区域间汇总和外部路由汇总

特殊区域的局限性在哪里?

1、产生次优路径

2、不能有vlink

特殊区域不使用,减少LSA还有没有其他方法?

1、路由汇总

区域间路由汇总和外部路由汇总:

1、区域间路由汇总:

(1)、只能在ABR上做

(2)、只能对直连区域的路由做汇总

(3)、汇总路由的开销继承明细路由中开销最大的(华为继承大的,思科继承小的)

(4)、明细路由全部失效,汇总路由才会失效。

(6)、如果区域有多个ABR,所有ABR都要执行汇总,否则失去汇总效果(不然明细就进来了)。

汇总前:

汇总后:

手动更改汇总路由的开销:

汇总但是不通告,能做到路由过滤,不会产生这条汇总的3类LSA:

2、外部路由汇总

(1)、只能在ASBR上执行。

(2)、汇总路由的开销类型继承明细路由的开销类型,如果明细路由开销类型不一致,则开销类型为O E2。引入外部路由类型为O E1,汇总就是O E1,引入外部路由类型为O E2,汇总就是O E2,引入外部路由类型有O E1和O E2两种,汇总后是O E2(默认是O E2)。

(3)、NSSA区域的外部路由汇总,可以在ABR也可以在ASBR。

默认开销是2(引入外部路由的开销是1,做了汇总+1):

十、OSPF更新机制和协议认证

OSPF更新机制

LSA比较新旧:

1、seq序列号越大越新

2、chksum校验和越大越新

3、ls age老化时间 = 3600最新,ls age差值大于900s,ls age小的新,ls age差值小于900s,一样新。

LSA更新机制:3600s没更新就会在LSDB中删除

1、周期性更新(反应网络的实时状态):

默认情况下,产生这条LSA的路由器会每隔1800s(原来序列号+1,校验和重新计算、老化时间置零),会更新自身产生的LSA。

2、触发更新:

当产生这条LSA的的路由,发现这条LSA的状态发生了变化(邻居发生变化、开销发生变化、网络号/掩码发生变化、tag、type) ,会产生触发更新(原来序列号+1,校验和重新计算、老化时间置零),发生LSU在邻居之间进行同步。

产生LSA的路由器,要删除该LSA,会在序列号不变、校验和不变的情况下,ls age老化时间置位3600s,然后LSU更新出去,其它路由器收到后同步删除掉。

OSPF协议认证

OSPF协议认证:保护协议报文的安全性

什么是数据安全?

1、数据机密性:只有通信双方可以看懂数据内容,其他任何人都无法了解数据内容,通过加密实现。

2、数据完整性:数据无法被伪造或者篡改,通过散列算法实现。

3、数据不可抵赖性:不能否认你做过/没做过。

路由协议认证,只能实现数据完整性保护。

安全隐患:

1、通过接入非法设备,注入非法路由,使财务部和Database通信的流量经过非法设备,被获取。

OSPF认证方式:

1、区域认证:

在属于这个区域的接口上启用认证。

使用MD5做认证

2、接口认证:

仅在该接口上启用认证。

3、接口认证优先于区域认证:接口认证灵活性更高。

认证模式:

1、不认证:默认情况下。

认证类型取值为0,代表不认证,认证数据用0填充

2、明文认证:

密码一致就认为通过,则认为认证通过,auth type 1,无法实现数据完整性保护。

3、MD5认证:

数学上是一种哈希函数,

(1)、不可逆:无法通过哈希值反推出原始数据。

(2)、雪崩效应:原始数据任何bit被修改,得到的hash值和原始的hash存在很大区别。

(3)、不定长输入,定长输出:MD5为128bit(16字节,16*8=128bit),SHA为160bit。

auth crypt req:防重放攻击,每次收到只能越来越大。

4、加强版HMAC-MD5(仅在华为设备之间支持)

5、配置要求:Key id一致,秘钥Key一致,认证才能成功,认证模式要一致(一边区域认证MD5,一边接口认证MD5,只要认证模式一样就行)。

网络安全、信息安全(懂编程、懂操作系统)、信息安全管理,存储(不是所有公司都会用),华为数通、安全、存储、云计算,大数据、人工智能比较窄路(数学出生,数学不好没必要搞)

安全是建立在信任的前提上,两把秘钥、Key ID要一致,数据和秘钥做hash哈希计算,发给对方,对方提取原始数据和本地秘钥做hash,算出结果一致认为认证成功(MD5是不会传递密码的)。

OSPF详解完全版(HCIP)相关推荐

  1. iOS核心动画详解swift版----基础动画

    2019独角兽企业重金招聘Python工程师标准>>> iOS核心动画详解swift版---基础动画 创建工程,添加2个ViewController,通过rootViewContro ...

  2. Web IDE优势在哪?详解Web版数据库管理工具SQL Studio

    Web IDE优势在哪?详解Web版数据库管理工具SQL Studio 去年年末,GitPod在A轮融资中获得2500万美元,用来兑现云端开发环境(Cloud Development Environm ...

  3. matlab guide图像处理实例,现代数字图像处理技术提高及应用案例详解 MATLAB版-教科书.pdf...

    数字,图像处理,技术,提高,应用,案例,详解,教科书 [General Information] 书名=现代数字图像处理技术提高及应用案例详解 MATLAB版 作者=赵小川编著 页数=384 SS号 ...

  4. YOLOV1详解——Pytorch版

    YOLOV1详解--Pytorch版 1 YOLOV1 1 数据处理 1.1 数据集划分 1.2 读入xml文件 1.3 数据增强 2 训练 2.1 Backbone 2.2 Loss 2.3 tra ...

  5. unity导出面板详解(pc版)

    unity导出面板详解(pc版) 目录 Resolution and Presentation(分辨率和显示) Fullscreen Mode(全屏模式) 全屏模式 参数 功能 Fullscreen ...

  6. grpc java_grpc详解 java版

    grpc 详解 java版 Java中gRPC的基本教程介绍. 本教程提供了有关使用gRPC的基本Java程序员介绍. 通过遍历此示例,您将学习如何: grpc设计的核心概念. 在.proto文件中定 ...

  7. CCNP中单区域OSPF详解(第一部分)

    1. OSPF特性综述 2. Ospf协议下运行的三种拓补结构 3. 广播型多路访问网络下的OSPF运行      1)路由器ID      2)指定路由器和备份指定路由器      3)DR和BDR ...

  8. 网络原理往期考试题+部分详解+最终版

    一.填空题: (+号代表出现次数,无则说明一次) ++1. 在采用电信号表达数据的系统中,数据有数字数据和__模拟数据__两种. 2. 国际标准化组织ISO提出的不基于特定机型.操作系统或公司的网络体 ...

  9. JSX语法使用详解——终极版

    一.基础 1.JSX是什么 JSX是一种像下面这样的语法: const element = <h1>Hello, world!</h1>; 它是一种JavaScript语法扩展 ...

最新文章

  1. 关于MySQLdb连接数据的使用(插入数据,删除数据,更新数据,搜索数据——前端页面完成这些对数据库的操作)
  2. mysql docker 制作_docker 制作自己的mysql镜像
  3. PHP去除换行符的方法小结(PHP_EOL变量的使用)
  4. BZOJ3611: [Heoi2014]大工程
  5. Gartner:2013年SIEM市场分析(MQ)
  6. android toolbar控件,Android Toolbar控件
  7. PyTorch——nn.Conv2d和其中的padding策略,Caffe、Tensorflow的padding策略
  8. mysql 单例模式_php基于单例模式封装mysql类完整实例
  9. java adt真机调试_Unity Android 真机调试
  10. 土地调查图斑编号_土地年度变更调查“图斑类型”说明
  11. 万年历c语言代码单链表,万年历的C语言实现
  12. 服装尺寸 html,女装标准尺码对照表,服装尺寸对照表,衣服尺码对照表
  13. python菜鸟教程 | print功能
  14. 怎样删除Github中的项目
  15. cdh6.2离线安装(傻瓜式安装教程)
  16. RDKit入门教程(2)——利用RDKit获取分子指纹
  17. ef oracle 双引号,Oracle 数据库中字符串和日期必须使用双引号标识。
  18. ./sbin/start-dfs.sh 开启NameNode 和 DataNode 守护进程报错
  19. DICOM3.0中的VR相关介绍
  20. matlab dpsk,利用Matlab simulink实现DPSK通信 - 图文

热门文章

  1. OSPF 多区域实验报告
  2. OpenCL开发案例学习
  3. 英文系统下如何显示中文
  4. android 媒体通知栏适配
  5. Linux学习总结(10)——Linux查看CPU和内存使用情况
  6. 芯片中常见的DPC陶瓷基板材料有哪些?
  7. 播音主持基本功:怎么样正确发声
  8. 网页设计常用的12种颜色
  9. php报错: file_put_contents(): failed to open stream 的解决方法
  10. [数据结构笔记] 最优二叉树