【HCIE-R&S 天梯路】OSPF

  • OSPF(IP封装 协议号89)

OSPF基本原理

运行链路状态协议(包括OSPF)的路由器,首先建立邻居关系,然后交互链路状态信息LSA(拓扑信息、路由信息)。LSA会被泛洪到整个区域,使每台路由器对网络拥有一致认知。区域中所有路由器将LSA存储到本地链路状态数据库LSDB中,然后每台路由器独立使用Dijsk算法,得到一棵以自己为根、无环的最短路径树,即知道了到达网络各个节点的最佳路由。

  • OSPF协议号89(IP报头中)
  • 224.0.0.5 / FF02::5    所有OSPF路由器
  • 224.0.0.6 / FF02::6    所有OSPF DR/BDR

OSPF路由器的角色

  1. 内部路由器(Internal Router,IR):所有接口处于一个OSPF域的路由器。R1、R4、R5
  2. 区域边界路由器(Area Border Router,ABR):接入多个区域路由器(因为OSPF区域必须与area0相连,所以ABR至少有一个接口位于area0)。R2、R3
  3. 骨干路由器(Backbone Router,BR):位于area0的路由器,包裹area0的ABR。R1、R2、R3、R6
  4. AS边界路由器(AS Boundary Router,ASBR):OSPF自治区域边界的路由器。R6

LSA类型

作用

产生设备

泛洪区域

LSA1

Router-LSA

“自我介绍”,描述本路由器拓扑+路由

ALL

区域内泛洪

LSA2

Network-LSA

描述MA网络邻接关系(P2P没有LSA2)

DR

区域内泛洪

LSA3

Network-sum-LSA

区域间路由

ABR

仅在一个区域*

LSA4

ASBR-sum-LSA

描述ABR到ASBR的拓扑

ABR

仅在一个区域

LSA5

AS-external-LSA

描述AS外部的路由

ASBR

所有区域(除了Stub、NSSA)

LSA7

NSSA LSA

NSSA区域描述AS外部的路由

NSSA ASBR

NSSA区域(NSSA的ABR会将LSA7转为LSA5注入area0)

*仅在同一区域,注:

area1中产生的路由由ABR2向area0内泛洪(泛洪区域为area0)

这些路由又通过ABR R1,向area2内泛洪(泛洪区域为area2)

LSA的Ad R、泛洪范围

                Ad R              泛洪范围              作用                                                              

LSA1       所有ospf R    本区域                  描述自身拓扑信息、Stub网段信息

LSA2       DR                 本区域                  描述一个MA网络的拓扑

LSA3       ABR               区域间                  描述其他区域的路由信息

LSA4       ABR               区域间                  描述到达其他区域ASBR的拓扑(配合LSA5)

LSA5       ASBR             ospf域                  描述ospf域外路由信息

LSA7       NSSA ASBR    NSSA                 描述NSSA区域外部路由信息

Router-ID

[R] ospf 1 router-id 1.1.1.1

RID选举规则:手动配置 > 最先配置的IP

默认RID=0.0.0.0(全局RID,抢占),非0的RID不抢占

  • 修改Router-ID后需要重启ospf进程<R> reset ospf process

RID作用:     1.     标识一台ospf路由器,作为ospf的拓扑信息

                      2.     DR/BDR选举、master选举

Router-ID冲突的影响

直连:无法建立ospf邻居/邻接关系

同区域非直连:导致SPF拓扑计算错误

区域间R与ABR、ASBR冲突:导致SPF拓扑计算错误

不同区域R冲突:可以正确通信(LSA3中的Advertise R=ABR),但不建议这么配

拓扑信息、路由信息

拓扑信息:邻居信息(Router-ID)。LSA1/2/4

路由信息:叶子信息(节点上的网段)。LSA1中的StubNet、LSA3/5/7

  • 关于路由信息的Link-State ID:

        同一种LSA,同一个Adv Router如果网络号一样、掩码不同,

        则掩码最短的LSA,LS-ID=网络号

        其他LSA的LS-ID=网段的广播地址

Eg.   同一个ASBR上引入了10.0.0.0/8、10.0.0.0/16、10.0.0.0/24产生3条LSA5

       则,       10.0.0.0/8       LS-ID=10.0.0.0             //掩码最短的LS-ID=网络号

                     10.0.0.0/16     LS-ID=10.0.255.255

                     10.0.0.0/24     LS-ID=10.0.0.255

开销计算 = 100M/链路带宽

  • 向上取整,1000M、100M链路,cost=1

        [ospf]      bandwidth-reference 1000

确认机制

  • OSPF基于IP协议,IP协议不可靠(没有确认机制)

显式确认:    通过LSAck确认对方发来的LSU报文

隐式确认:   

  1. Hello报文:首个Hello邻居列表=空,收到邻居Hello后填充邻居列表
  2. DD:邻居之间选出Master/Slave并互传DD报文。master规定DD SN,slave用DD SN回复,master再用DD SN+1传下一个,直至传完。
  3. 收到LSR/LSU后,回复LSU携带LSA Header(LS SN)做确认
  • DD、LSR、LSU报文需要确认,路由器会维护重传列表,5s内没有收到确认,重传

OSPF三张表

  1. 邻居表 [R] display ospf peer
  2. 链路状态数据库LSDB [R] display ospf lsdb
  3. OSPF路由表 [R] display ospf routing

OSPF报文类型

  1. HELLO报文:周期性发送,发现、维持邻居关系
  2. DD报文:Database Description,描述本地LSDB摘要信息,用于两台路由器LSDB同         步
  3. LSR报文:请求对方LSA的报文,只有两台路由器成功交换DD报文后才会发送
  4. LSU报文:向对方发送需要的LSA 或者 主动泛洪新的LSA
  5. LSAck报文:确认收到LSA

OSPF报文头部

Version:      OSPFv2=2     OSPFv3=3

Type:          1=HELLO      2=DD           3=LSR           4=LSU   5=LSAck

Length:OSPF报文总长度,包括报文头

验证类型(Au Type):       0=不验证       1=明文验证   2=MD5认证

认证数据(64bit):         0=不含验证信息

                                          1=明文密码

                                          2=Key ID或MD5或SHA256的验证数据信息,Hash验证数据在OSPF报文末尾(因为放不下)

HELLO、DD、所有LSA中Options字段

 

DN:MPLS VPN场景下,PE在VRF中生成LSA3/5/7发给CE时,DN置位。用于CE双归PE防环

E     =1          普通区域(能接收LSA5)

N/P =1          (Totally)NSSA

E=N/P=0       (Totally)Stub

HELLO报文

  • 发现、建立、维持邻居关系
  • 目的地址:224.0.0.5
  • Hello周期:      广播、P2P            10s

                                NBMA、P2MP      30s

Network Mask:发送HELLO报文接口的网段掩码(掩码不同不能建立邻居)

Hello Interval:发送HELLO报文的时间间隔(Hello/Dead时间不一致不能建立邻居)

Options:标志位

Rtr Pri: DR优先级(默认为1),若该值为0则不参与DR/BDR选举

Router Dead Interval:邻居失效时间(默认为4倍Hello Interval)

Neighbor:邻居列表,用Router-ID标识

DD报文(单播)

Interface MTU:用于邻居MTU协商,华为默认不填充此选项=0

Options:可选项

I位:Initialization起始位, I位=1标识第一个空DD报文

M位:More位,1=后续还有DD报文,0=最后一个DD报文

M/S位:Master/Slave,交换DD报文的路由器需要确定主从关系(Router-ID大=master),Master=1

DD Sequence Number:DD报文序列号

LSA Headers:本路由器LSDB中的LSA头(DD报文不传输完整的LSA)

LSR报文(单播)

 LSA三元组(LS Type、LS ID、Ad R)唯一标识一条LSA

LSU报文

LSU携带多个LSA

Numbers of LSAs:报文中所含LSA的数量

LSAck报文

LSA Headers:OSPF通过多个LSA头部对收到的多个LSA做确认

LSA Header

Link-State Advertisement

LSA封装关系:

IP头

OSPF头+LSU

LSA头+LSA

LS Age:LSA产生后经过的时间,单位为s。若最高位=1,则LSA用不老化。LSA每秒LS Age+1;LSA存放在LSDB中,LS Age+1;LSA经过一台路由器LS Age+1。LS Age最大值=3600s。

LS Sequence Number:LSA的序列号(序列号越大,LSA越新)

  • LS SN一般用不完,如果用完会重置,导致路由震荡并重新收敛

LS Checksum:校验和(不包括LS Age,因为随时在变)

Length:LSA总长度,包括LSA头部

  •  LSA最大生存时间=     3600 s(1小时)

        LSA周期泛洪时间=     1800 s(半小时)

  •  LSA三元组:LS Type、LS ID、Ad R

LSA的新旧

本地始发的>               LSA SN >  checksum >  LS Age

LS Age: 1.     两条LSA时间间隔超过15min,则LS Age被认为更“新”

                2.     两条LSA时间间隔在15min内,被认为一样“新”,保留先前收到的

                3.     特殊LS Age=Max Age=3600s,用于强制更新LSA并立即过期该LSA

  • 通常, LSA SN相同,校验和就相同
  • 如果全部一样,就优选本地的(不会更新,以防路由震荡)

LSA的撤销

1:  Stub路由撤销,SN+1

2:  MA中部分邻居撤销,网段路由SN+1

       MA中全部撤销,向其他MA中发3600s

4:  3600s(取决于ASBR产生的E置位的LSA1撤销)

3/5/7:3600s(一条LSA只携带一条路由)

OSPF接口

  • 0
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值