OSPF笔记

用于内网!不能宣告连接ISP的网段

一. 概念 

使用范围:IGP 

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

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

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

OSPF 特点

OSPF传递路由信息,也传输拓扑信息,即LSA

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

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

      路由LSA:描述本路由器上接口的路由信息

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

常见LSA有6种

路由信息:有掩码

拓扑信息:无掩码,是否传拓扑,看他是点对点还是MA

距离矢量型路由协议:发一次信息,更新一次路由表

链路状态型路由协议:把所有信息收集到一起再计算出所有的最优路径

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

触发更新—网络结构稳定的时候不发数据,网络结构产生变化(网段数量或信息变化,接口状态变化等)时发数据

4.更新地址: 组播和单播更新,(不支持广播肯定也不支持组播)

组播地址: 224.0.0.5(ALL SPF router)

     224.0.0.6 (ALL DR router)

224.0.0.x:本地链路组播,给各种协议使用的,TTL都=1(即只在两个直连的路由)但是rip  224.0.0.9,思科中TTL=2,

成为DR后,才会接受目标224.0.0.6的LSA信息

目标为224.0.0.5 的LSA信息是发给所有启动ospf协议的路由器

DR,BDR:是一个接口!

5.支持路由认证

6.支持手工汇总

拓扑信息不能汇总,内部的LSA包括路由信息及拓扑信息,所以不能进行汇总

7.支持区域划分

8.OSPF 比较消耗设备资源

eigrp:距离矢量,500路由器以下这个好

ospf:500以上路由器好

ospf较于RIP优势及 RIPV2与OSPFV2异同 

数据量:单个:RIP少;整体:OSPF少,因为rip每三十秒会再次共享路由表,很占用资源

OSPF没有v1

V2的相同点:

基于拓扑是为了防环

拓扑更新量太大所以区域划分,即:同一个区域内使用OSPF协议,

两个区域连接的那个路由器使用RIP协议(dv的协议),区域之间用RIP(dv的协议)共享路由表

ABR:同时处理两个区域

 区域划分

区域划分的意义: 信息量很大,1.减少LSA的数量  2.减少LSA的传播范围

因为ospf是LS,所以不管距离多远,这两个路由器要互相知道对方的存在,有些距离太远了,所以采用了区域划分

rip这种DV,是路由器之间互相传递路由表,所以没必要知道有那么远的路由存在

两个区域连接的那个路由器使用RIP协议的方式:共享路由表(dv的协议),区域之间用RIP(dv的协议)共享路由表

区域的划分是基于接口的(链路的)(接口得在同一区域)

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

区域的分类:

          骨干区域: 区域标记为0或0.0.0.0

          非骨干区域:区域标记不等于0或0.0.0.0

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

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

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

OSPF中路由器的角色:

          骨干路由器:

          非骨干路由器:

          ABR:区域边界路由器,能够产生3类LSA的路由器

          ASBR:自治系统边界路由器(能把非ospf的路由引入到ospf中),能够产生5类或7类LSA的路由器

数据包

OSPF 消息数据包

Hello   DBD  LSR  LSU  LSACK

除了hello包都有确认重传机制(hello包是周期发送的)

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

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

DBD:数据库描述数据包;

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

通过序列号隐式确认

2.携带LSA头部信息的DBD

LSR: 链路状态请求,按照DBD中报文的未知LSA头部进行请求。通过LSU确认

LSU:链路状态更新,携带LSA信息。通过LSACK确认

LSACK:链路状态确认,隐式确认

全网唯一:这个OSPF区域内的ID不重复,不同区域之间可以重复(不同区域之间用dv的协议)

RID自动生成:选择环回地址(没有环回就用接口的)中数值最大的;也可以手工配置

二. OSPF的状态机 

类似于TCP的三次握手,第二个包完后,A变为Two-Way状态,B还是init状态,

第三个包(A给B的包),B变为Two-Way状态

Two-Way:双向通讯

条件匹配:DR,BDR选举

条件匹配成功后进入Exstart状态

主从关系:根据DBD包选举(exstart的DBD包没有摘要信息,只进行选举)

根据routeID的大小决定(主从关系),谁先进入下一个状态(Exchange State),

发送摘要信息(目录)

选举主从完后进入Exchange State状态

Exchange State状态发的是摘要信息(目录)

邻居:只有hello包,邻接:除了hello包还有数据库目录的同步

OSPF 邻居状态机制

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

停留在 two-way:没选举出DR

exstart:MTU协商失败

Loading:同步不了LSA

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

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

邻居关系建立条件:

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

成为DR后,才会接受目标224.0.0.6的LSA信息

目标为224.0.0.5 的LSA信息是发给所有启动ospf协议的路由器

DR,BDR:是一个接口!

邻居状态下(two-way): MA的网络中会选举DR(指定路由器)   BDR(备份指定路由器),选完之后等40秒,看还有没有要参选的

DR选举:   1.比较优先级 (范围:0-255,默认优先级为1 ,越大越 优) 

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

注意:1.DR抢占是关闭的    2.DR是一个接口概念  3.优先级范围 0-255,数字为0代表不参与选举  4.先选举BDR ,再升级为DR

谁先设置优先级谁就是DR(此时没有更高的优先级)后面加了个更高的优先级的路由,那么他会成为BDR,不是DR,因为此时主从关系已经完成选举,又不能抢占,所以先设置优先级就是DR,设备重启后就会重新选举

非抢占:最大选举时间40s,后面再加路由器,如果他的RID大(或优先级大)也不会成为DR,成为小弟

实际上没有DR的选举,只选BDR,BDR选出来后,他发现没有DR,那么他就会成为DR,之后发现没有BDR,进行BDR选举,发现有了DR,就老实的当BDR

主从选举:发生在exstart状态, 通过双方的router-id进行比较, router-id大的一方为主。  发送的主从选举DBD,

DBD中包含了MTU值(默认思科直接启用,华为中默认不包含MTU,可以使用命令 激活传递MTU值的功能,若双方的MTU值不值则卡在exstart 状 态)。

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

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

LSA头部信息:即路由表信息摘要(目录)(用于去掉双方重复的路由信息后去学习路由)

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

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

三. OSPF的工作过程 

邻居表->数据库表->路由表

 四. 配置

ospf开销值的运算

参考带宽/真实带宽 : 小于1取1,大于1 的小数去掉小数部分

参考带宽默认为100

华为:环回开销值默认为0

RID

启用OSPF 并指定router-id

Router-id : 路由器标识符,用于标识本路由器在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必须不同;

 五. 扩展配置

条件匹配 

MA:虽然只有两个路由,但是他中间还能再加路由,交换机,这也是MA

串线:点到点

大优:数值越大,优先级越高

DR/BDR选举规则 

进入接口修改优先级

非抢占:最大选举时间40s,后面再加路由器,如果他的RID大也不会成为DR,成为小弟

区域认证:

手工汇总

路由表汇总:汇总只能在ABR上汇总,命令:把某个区域的网段汇总为一条,写掩码,即:ABR路由器去某个区域只有一条路由

区域内(不是ABR)的路由器,是不能汇总的,即不能把两个环回汇总为一个网段,区域内的路由表很详细,有1.0/25和2.0/25,到ABR就可以汇总为1.0/24

因为区域之间用路由表共享,当某个环回失效后,别的区域不知道(因为用的汇总网段),还会继续发,造成资源浪费,如果把区域汇总了,我不知道他在不在,但是ABR知道(写的具体IP)

沉默接口,加快收敛

 缺省路由

只用在边界路由上设置,然后根据动态路由给所有的路由器

加always:自身没有缺省,强制下发

不加always:自身有,然后去下发给所有路由

下发缺省完后,ABR自身是没有缺省的,所以要自己写一条静态,指向ISP

六. ospf各个包和字段分析 

hello包:

version:版本

Message Type:包的类型

Packet Length:包的大小

Source ospf Router:自己的RID

Area ID:自己所属的区域

Packet Checksum:校验和

Auth Type:认证类型,null代表 0(二进制)没有认证,数字1 代表 明文,数字2 代表 md5认证

Auth Data:认证数据,type为1 写的是明文密码,type为2 他就是密码的md5 值

options:

NP:N代表是否支持七类LSA,P代表是否支持七转五LSA

E:代表是否支持五类LSA

如果两个路由器要建立ospf邻居关系, N位与E位必须保持一致

5.特殊区域标识一致(E(外部路由位)=1 ; N(NSSA外部路由 位)=0 P=0)

Hello Interval :hello间隔时间 图中是10秒

Router Priority :优先级

Router Dead Interval:死亡时间 默认40秒

DR:选出的DR是谁(RID)

BDR:选出的BDR是谁(RID)

Active Neighbor:对方的RID(和谁进行邻居关系匹配),也可能有多个RID(收到其他的hello包)

这有值代表这个包已经是第二个hello包了

开始的时候这个字段的值为0

当我收到对方发的包里的Active Neighbor是我自己的RID,这时我就知道可以匹配,就进入to-way状态

DBD包:

MTU:为0,华为默认不携带MTU值,设置改为携带,默认为1500字节

双方进行MTU协商。MTU必须保持一致,不一致会卡在exstart状态

I:初始化位,如果时第一个包,置为1,是第二个或更多的包,置为0

M:为1 代表还有更多的DBD包

MS:主从位,为1 代表我是主,为 0 代表我是从,没选DR之前都认为自己是主

DD Sequence:序列号,如果你是主,那么我会把从的(我的)序列号变为主的序列号(代表我认可你是主了)这是隐式确认(序列号一样就代表书收到了),主的序列号自动增长(+1)

DBD包中出现 LSA Header(目录)代表进入exchange状态

LSR: 链路状态请求,按照DBD中报文的未知LSA头部进行请求。

Link State Request:根据之前的路由摘要信息,请求一些我没有的路由信息

LSU:链路状态更新,携带LSA信息。

意思就是,你之前请求的LSA我给你发(加载阶段,之前是请求,exchange状态)

LSACK:链路状态确认,把之前的头部再发一遍

通过DBD包双方都获取了路由目录,2给1发路由信息,根据重传列表,发送一条LSU,1收到了,在请求列表中删除这一条,同时发送LSACK表示收到了,2收到LSACK就会从重传列表中删除这一条

这个过程相互的

当自己的请求列表和重传列表都空了之后就进入full状态

OSPF三张表:

1.OSPF 邻居表

查看OSPF邻居表

括号里的接口是自身的接口

mode:谁是主,Nbr is Master 邻居是主

Retrans timer interval:重传计时器

Neighbor … :邻居关系建立时间

Authentication … :是否做了认证 0 没有做,1 做了

2.LSDB表(链路状态数据库)存放LSA

查看LSBD的摘要信息:

这个看到的是目录

Router代表一类,Network代表二类,sum-net代表三类

LinkState ID:链路状态标识符

Advroute:该LSA是由谁产生的

Age:LSA的老化时间(LSA存活时间,一般不超过1800秒),3600秒彻底删除

Sequence:序列号

这个就能看到所有的一类

这是所有的二类

3.OSPF 路由表:

ospf能够识别路由的环回与物理接口 ,一旦识别为环回接口,他就认为你这个路由底下就一个用户,所以在路由表中直接写32位掩码,把地址写死了

改接口(华为),这样就不会是32位掩码了

  • 14
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值