OSPF笔记1

LinkID
1.routeID
2.dr的ip地址
3.网段的地址
4.虚连接 对面的接口的routeID
LInkDate
Stub:掩码
其他 是自己的ip地址

LinkStateID
1.RouteID
2.DR ip
3.网络地址
4.ASBR routeID 网段0.0.0.0
5. 外面的网络地址

1.OSPF属于 链路状态协议,运行链路状态协议的路由器 周期性泛洪LSA,并需要同步LSDB(链路信息数据库),并且采用SPF算法(最短生成路径)来计算最优路由,(链路状态协议不传播路由信息,而是传播链路状态信息(LSA Link State )
2.OSPF是内部网关协议IGP,OSPF封装在IP报文中,协议号是89
3.一台路由器可以启用多个OSPF进程,但一个接口只能有一个OSPF进程
4.IPv4用的是OSPF2(RFC2328),IPv6用的是OSPF3(RFC2740)
OSPF每隔30分钟 或是 触发更新则会 泛洪LSA
5.RouteID字段用来标识路由器,建议手动配置,如果没配置则默认使用Loopback接口中最大的IP地址如果没有Loopback接口则使用物理接口中最大的IP地址
6.RouteID选定后再改则要重启OSPF进程
7.RouteID使用32位无符号整数表示

OSPF 区域
8.OSPF Area用来标识一个OSPF区域,区域ID是32位非0二进制数,如 area 0.0.0.1(area0.0.1.0等同于area256,许多厂商都支持两种格式创建OSPF Area)
9.OSPF Area 0 是骨干区域(area 0.0.0.0)

度量值
10. OSPF使用cost开销作为路由的度量值,每个启用了OSPF进程的接口都维护一个cost值,默认是100Mbits/接口带宽(1MBs= 8Mbits),开销值越小则路径越优,可以通过修改cost值,改变最优路由。
11. 100Mbits是默认参考值,可以修改
12. OSPF采用累计cost作为开销值,即从本接口到目标接口所有路径开销值的和

13.OSPF有三张表,OSPF邻居表,LSDB(链路状态数据库),OSPF路由表.OSPF传递链路状态信息前要建立OSPF邻居关系,邻居关系要通过交换Hello报文来建立。
14. dis ospf peer可以查看 OSPF邻居状态
15. LSDB保存了 路由器自己和邻居的LSA信息,可通过dis ospf lsdb 来查看当前路由器的lsdb信息
16. OSPF用SPF算法从LSDB中生成一个无环的树,把其中的最优路由放入OSPF自己的路由表中,使用display ospf routing 可以查看OSPF路由表

OSPF报文类型
这五种OSPF报文的报文头都相同
OSPF报文头字段解释

Version版本,2是ipv4,3是ipv6
Type类型字段
RouteID生成此报文的路由器的RouteID
AreaID此报文需要被通报的区域
AuthType0表示不验证,1表示明文验证,2表示MD5加密验证
Authentication认证用,根据AuthType的值而变化
PacketLength包长度,单位是字节
Checksum校验和,范围包括整个OSPF报文,包括OSPF头部

Hello报文
以太网链路上,默认时,hello报文以组播方式发送,目的地址224.0.0.5
报文字段说明:

Network mask发送hello报文的接口的子网掩码
Hello interval发送hello报文的间隔,默认是10s
RouterDeadinterval如果40秒未收到邻居发来的hello报文,则认为邻居失效,默认是40s
Neighbor邻居,用RouteID标识
OptionsE是否支持外部路由,MC是否支持转发组播数据包
N/P 是否是NSSA区域
Route Priority优先级,高的当DR,默认为1,0则不参与DR,BDR选举
Designated RouterDR 的接口地址
Backup Designated RouterBDR的接口地址

DD报文(DataBase Discription)
Interface MTU 指在不分片情况下,此接口能发出的最大IP报文长度。 两个相邻路由器发送DD报文中包含MTU参数,如果收到的报文MTU参数和本端的MTU不相等,则丢弃DD报文,但默认情况下,华为设备未开启MTU检查
LSR报文(Link State Request)

LSU报文(Link State Updata)

LSA报文(Link State ACK)

OSPF工作流程

  1. A路由器启动OSPF进程,**没有收到任何OSPF报文**,开始泛洪Hello报文 ,A路由器的状态是 down
    
  2. A路由器收到B路由器发送的Hello报文,但邻居列表中不包含自己的RouteID,A路由器的状态是 init
    
  3. A路由器收到邻居列表中包含自己RouteID的Hello报文,A路由器的状态时 2-way
    

OSPF以组播方式发送Hello报文,组播地址224.0.0.5
OSPF中DR和BDR发送hello报文的组播地址是224.0.0.6
在不支持组播的网络中,OSPF支持以单播形式发送Hello报文
4. 这时,A路由器 建立了相邻OSPF路由器建立了 邻居关系,路由器开始交换LSDB,这时每个路由器都认为(建立邻居的路由器)都认为自己是主路由器。
A路由器会认为邻居路由器是 Exstart状态,会发送 空的DD报文,来比较两者的RouterID(大的当主路由器),确认谁是主路由器后,从路由器会发送 DD报文,告诉选上的主路由器,
它是老大。
5. 选出主从路由器后, A路由器(所有路由器)的状态是ExChange状态开始互相发送带有链路信息摘要的报文,这一过程由主路由器主导
R1 10.0.1.1 R2 10.0.2.2
R1 ->ExStart
R2 ->ExStart
R1发送DD报文 (M=1 ms=1 I =1 seq=x)
R2也发送DD报文 (M=1 ms=1 I =1 seq=y(x和y都是随机))
结果,收到DD报文的R1发现自己的RouterID小,
R1 ->Exchange
R1触发Negotiation-Done事件,改变了状态
R1发送DD报文 包含LSDB摘要信息 序列号是R2的y I=0,M=0 MS=0
R2 ->Exchange
R2发送DD报文,包含LSDB摘要信息,seq y+1 ,MS=1
R1发送 DD报文,seq y+1 报文内容为空
R1触发Negotiation-Done事件,
R1->Loading
R2收到 R1发的最后一个 即空的DD报文
R2 -> Full(假设R2的LSDB是新的,不需要再向R1请求更新)
R1 向R2发送 LSR报文,请求再Exchange状态下通过DD报文知道的它没有的链路信息
R2 向R1发送LSU报文,包含详细的LSA
R1接收后,没有其他需要请求的后 状态变成Full
R1->Full
R1向R2发送 LSAck报文

DR 和BDR
在广播网络中,重复泛洪LSA会造成浪费和低效率。所以只选出一个路由器来当周期性泛洪LSA(DR),另一个监听DR路由器的状态,在DR挂掉时,上去顶(BDR)
这时,不是DR和BDR的路由器就是DRother

MA(Multiple Access 多路访问)
其有两种类型BMA和NBMA
BMA(Broadcast Multi-Access 广播多路访问) 例如 以太网
NBMA(Non-Broadcast Multiple Access 非广播多路访问)例如 过时的帧中继

DR/BDR的选举 是非抢占式的,选举基于接口
接口的DR优先级越大越优先接口的DR优先级相同时,RouterID越大越优先如果优先级为0,则不参与选举
BMA和NBMA链路上DR/BDR选举过程:

注意: DR,BDR和 Master,Slave不一样
DR,BDR在 建立邻居关系后选举出来
Mster和Slave 在ExStart阶段选举出来 M和S只用来在DD报文中使用
一个area中能有多个DR和BDR,DR和BDR,一个网段(广播域)都有一个DR和BDR(路由器的不同接口不能设置相同网段)

OSPF配置
[]ospf [进程号 | RouterID routerid号 ]

LSA详解
LSA链路状态信息被存储在路由器的LSDB中(每个OSPF进程,会有一个LSDB),同一Aear的路由器的LSDB是相同的
LSA的最重要作用—进行路由计算

LS AgeLSA的生存时间,单位是秒,从0开始,到达MaxAge(默认3600s)则该LSA不再使用
LS Sequence NumberLSA有新实例产生时,序列号增加(判断LSA新旧和是否重复)
序列号0x80000001-0x7FFFFFFF 初始是0x80000001,每次更新序列号加1,到达最大时,重新产生该LSA,序列号再次为0x80000001
Options每一位对于了OSPF支持的某种特性
LS TypeLSA的类型
Link State ID不同类型的LSA,对该字段的定义不同
Advertising Router通告路由器 产生该LSA的路由器的RouterID
LS Checksum校验和
Length包含LSA头部在内的LSA总长度

LSA类型
LSA的简称,如RouterLSA叫1类LSA,网络汇总LSA叫3类LSA

RouterLSA1类,设备的链路状态和开销,在所属的area中传播
Network LSA2类,DR生成,在所属的area中传播,DR所在的网段(广播域)中所有设备的链路状态和开销
Network-summary-LSA3类,ABR生成,
ASBR-summary-LSA
AS-external-LSA
NSSA LSA
Opaque LSA

Router LSA

Network LSA

Stub区域和Totally Stub区域
OSPF区域类型
Stub Area (末端区域)只承载本区域发起的或访问本区域的流量
Transit Area(传输区域)除了承载本区域发起的或访问本区域的流量外,还承载源IP和目的IP都不属于本区域的流量
Totally Stub区域
Stub区域 Totally

silent-Interface
不会接受和发送OSPF报文
直连路由任何可以通信

OSPF报文认证
OSPF支持报文认证,只有通过认真的OSPF报文才能被接受
区域认证方式
一个区域内所有的路由器认证模式和口令必须一致
接口认知模式
相邻路由器直连接口下的认证模式和口令必须一致
当两种验证方式都存在,优先使用接口验证方式

OSPF高级特性:
PRC(Partial Route Calculation 部分路由计算)


ospf 是一种动态路由协议,属于链路状态和内部网关协议,通过周期性泛洪LSA(链路状态信息)来创建和维护路由表。

ospf通过 建立邻接关系,收 集lsa到lsdb中,通过spf算法来计算出一棵 以自身为中心节点的 无环 的树?

ospf封装在ip报文中,协议号89
ospf有5种报文
hello报文 用于周期性泛洪使用,维护和发现邻居路由器
默认hello报文10s发送一次,如果40s仍未收到对端回应,则判断对方失效,从邻居表移除对端信息
以太网链路中,目标地址是 224.0.0.5 组播地址
DD 报文 当邻居关系建立后,三层设备会通过DD报文进行交互,以建立 邻接关系

LSR报文 设备请求LSA时,会发送LSR报文
LSU报文(Link state Update) A设备接收到B设备的LSA报文请求时,会发送带有具体LSA的LSU报文

LSA(Link State ACK) A设备发送LSU报文后,会发送LSA报文用确认对端设备是否接收到。

邻居关系表
通过hello建立邻居关系

LSDB
存放了ospf路由器接收到的各种LSA信息,spf算法会计算LSDB的数据,将其中的最优路由 添加到 ospf路由表中

路由表

ospf路由器建立邻居关系的7种状态
down
init
2-way
1.如果不需要形成邻接关系则邻居状态机就停留在此状态,否则进入Exstart状态
2.当链路两端的设备都进入2-way状态后,如果是MA或NBMA网络,会进行DR/BDR的选举。该选举是为了减少广播型网络和NBMA网络中建立邻接关系的数量。

如果存在DR的情况下,其他DR-Other只会和DR建立邻接关系,DR-Other之间建立邻居关系,但是不会建立邻接关系,状态一直处于2-way状态
exstrat
exchange
loading
full
LSR重传列表为空,此时状态为Full

ospf建立邻居关系的过程

在路由器上设置 routerID,默认是loopback接口(不然是物理接口最大的IP地址)
启用ospf进程(一个路由器可以启用多个ospf,但一个接口只能由一个ospf进程)

路由器接口启动ospf协议后,发送hello报文到对端接口(第一个hello报文中邻居关系是空的) 此时接口的状态为down
当接口接收到对端发来的hello报文时(该报文邻居信息中并不包含该接口),接口状态转换为Init。
当路由器接口接收到l邻居信息中包含自己routerID的报文时,接口状态转换为2-way
双方建立邻居关系
此时开始交换DD报文,接口状态转换成 exstart
路由器接口会认为本端为master,DD报文为空,格式为 seq =x, i=1 ,m=0, ms=1()
路由器接口接收到对端发送过来的DD报文,比较routerID,大的一方为master,小的为salve, 此时小的ospf路由器状态转化成exchange
此时 小的一方 发送DD报文,seq = master之前发送的seq i=0, m=0,ms=0,包含LSDB的摘要信息
选为master的路由器 接收到后 发送 seq =x+1 i=0,m=0,ms=1,也包含了自身的LSDB的摘要信息 ,此时master路由器状态转化成 exchange
salve路由器 接收到后 发送 seq=x+1 ,内容为空的DD报文,salve路由器的状态转换成 loading
master路由器 接收到后 状态转换成 full
slave 路由器向master路由器 发送 LSR报文,请求在DD报文时获得的缺少的LSA信息。
master路由器 发送LSU报文,包含具体的LSA信息
slave路由器接收到后,并且没有其他待请求的LSA后,状态转换成full
slave路由器 发送 LSA报文 作为接受LSU报文的回执信息。

ospf建立 dr/bdr 的过程
在ospf路由器发送hello报文后,ospf进入 waiting状态,waiting tmier计时器开始计时,到达40s后,ospf路由器的
ospf报文将包含dr/bdr的routerID,如果当前网段中存在dr/bdr,则路由器会将不参与选举,采用该选举。
如果当前网段中没有dr/bdr,则路由器会参与选举,其中routerID最大的路由器会被选为dr
lsa具有各种类型
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
1类LSA router LSA 在同一网段中传播
link state ID 是 routerID metric 是 cost值
transit
link data 是 源路由器接口的IP地址
link type 是transit
link id 是DR接口的ip地址
p2p
link data 是源路由器接口的ip地址
link type 是p2p
link id 是源路由器接口的ip地址
stub-net
link data 是源路由器接口的Ip地址
link type stub-net
link id 该网段的掩码

2类LSA Network LSA 由DR传播
network LSA携带了DR同步的所有ospf路由器的信息和 本网段的掩码
link state ID 是 DR的routerID metric 是 cost值
transit
Network Mask 是本网段的网络掩码
Attached Router DR和邻接路由器的routerID,如果有多个路由器,则有多个该字段

SPF算法工作过程
阶段1
1.路由器将自己作为 root节点,以自己开始构建树
2. 根据routerLSA和 networkLSA的信息,将cost值最小的路由器(Dr标识或RouterID)添加到 树中(MA网络中,dr和相连接口的那一段cost=0)
3. spf树只会构建单向的最短路径,以防止环路
阶段2
4.树构建完后,开始计算最优路由在
5.将 routerLSAHe1networkLSA的路由信息 附加到 树中对应的ospf路由器上,计算最优路由

SPF构建过程

  1. 邻居关系建立,交换完LSA后,路由器把自己作为 Root节点,检查获得的1类LSA,将LSA中的LinkID 加入【候选列表】中并记录cost值(不包含StubNet)
    2.将【候选列表】中总开销最小的【LinkID】加入到【树】上,并在【候选列表】中删除
    3.查询DR的2类LSA,将信息添加到候选列表中,如果有信息在树上存在,则忽略该信息节点
    4.将后乱总路径cost最小的的添加到树上,并在候选列表中删除
    5.继续查DR的2类LSA,重复操作

3类LSA 网络汇总LSA 由ABR传播,描述area中,某个网段的路由,在区域间路由中传递
4类LSA ASBR汇总路由 ABR
5类LSA AS外部LSA ASBR
6类LSAS
7类LSA 非完全末梢区域LSA


Stub区域
位于Stub区域的 ABR路由器不会向区域内发送它收到的 AS外部路由(4,5类LSA)
同时,为了保证Stub区域可达AS外部,Stub区域的ABR 生成一条 缺省路由(0.0.0.0),该路由用3类LSA发送出去
注意点:
骨干区域不能配置为Stub区域
Stub区域内的所有路由器都必须为Stub区域(同一网段都要是Stub)
Stub不引入也不接受AS外部路由(4,5类LSA)
虚连接不穿过Stub区域
Totally Stub区域
不允许AS外部路由传播(4,5类LSA),也不允许3类LSA
ABR生成一条缺省路由,并用3类LSA发送出去
ABR要追加 no-summary关键字

NSSA区域
上述区域完全屏蔽了外部路由LSA,但有时候 即需要引入外部路由,又要避免外部路由带来的资源损耗,这时就需要NSSA会屏蔽4,5类LSA,但会接受7类LSA,并将7类LSA转换为4,5类LSA,然后传给骨干区域泛洪
ABR生成一条缺省路由,并用3类LSA发送出去

Totally NSSA区域
ABR追加 no-summary关键字
屏蔽了3类LSA
ABR生成了一条缺省路由,并用3类LSA发送出去


路由器收到LSA的处理原则
接收到LSA
LSDB中没有,则更新并泛洪LSA
LSDB中有但没更新,则更新并泛洪LSA
LSDB中有且相同,忽略
收到的LSA损害(如Checksum错误),则不接受


Silent-Interface
作用:将该接口设置成Silent接口后,不会发送hello报文,但该接口
仍然会通告到OSPF其他区域,是可达的。这样降低了系统资源损耗
不接受和发送OSPF报文,只发送直连路由


OSPF报文认证
区域认证: 一个ospf区域内的所有路由器在该区域下的认证模式和口令必须一致
接口认证:相邻路由器直连接口下的认证模式和口令必须一致
同时存在时,优先使用接口认证

--------------

每个路由器有一个唯一的RouterID(32位无符号整数)
RouterID如果不手动配置,会选取路由器最大的Loopback接口的ID,没有就是IP池的最大IP地址
OSPF协议号89
不同OSPF进程号的OSPF路由器之间可以建立邻居关系
两个不同网络类型的OSPF路由器可以建立邻接关系(full),但不进行路由计算

LS Type , AdvertisingRouterLink state ID 标识一条LSA
如果出现重复的LSA,通过LS sequence number ,LS checksum和LS age来判断新旧

OSPF网络类型

报文类型

Hello报文

BMA(广播)和NBMA模式下hello报文每隔5秒发送一次
由DR other发送报文组播地址为224.0.0.5,DR发送的组播地址224.0.0.6

DD报文

2-way模式后,会交换DD报文来获取LSDB的摘要信息
image.png

LSR报文

ex-change模式下,slave会向master发送LSR,获取LSDB的LSA

LSU报文

master接收到LSR报文会发送LSU报文,LSU报文包含具体的LSA信息

LSK报文

slave接收到LSU报文后会发送LSK报文向master回应

邻居和邻接建立过程和状态机

邻居关系

邻接关系

BMA和NBMA网络下,邻居关系建立后DR other之间会停在2-way状态,只有DR和BDR会和其他路由器建立邻居关系
什么时候会建立邻居关系?
1.邻居关系第一建立(2-way)
2.DR和BDR发生变化

建立过程-状态机变化

BMA和NBMA网络下:

image.png

LSA类型

LAS默认每隔30分钟更新

1类 RouterLSA

link state ID 是 routerID
metric 是 cost值
image.png
transit
Link ID : DR的IP
Link Data:发送该1类LSA的路由器接口的ip地址
p2p
Link ID : 邻居路由器(对端)的IP
Link Data:发送该1类LSA的路由器接口的ip地址
stub-net
Link ID : 发送该1类LSA的路由器接口的ip地址
Link Data:该网络的掩码
报文格式

2类 NetworkLSA

network LSA携带了DR同步的所有ospf路由器的信息和 本网段的掩码
link state ID 是 DR的routerID
metric 是 cost值
Network Mask 是本网段的网络掩码
Attached Router DR和邻接路由器的routerID,如果有多个路由器,则有多个该字段

3类 Network-SummaryLSA

4类 ASBR-SummaryLSA

5类 AS-externalLSA

7类 NSSA

区域

普通区域

Stub区域

Totally Stub区域

NSSA区域

Totally NSSA区域

虚连接

认证

区域认证

接口认证

两个都有则接口认证优先

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值