Hello
时间
[r1-GigabitEthernet0/0/0]ospf timer hello 20
Dead
时间
[r1-GigabitEthernet0/0/0]ospf timer dead 120
注意:修改
hello
时间,则死亡时间随之改变,而仅修改死亡时间,
hello
间隔时间不变
。
OSPF
特殊区域标记
跟修改掩码效果相同。
认证字段
两者均需要等待死亡时间超时,才会从
full
状态切换到
down
状态。
DBD
包
使用未携带数据的
DBD
报文进行主从关系选举
使用携带数据的
DBD
报文进行目录信息共享
使用未携带数据的
DBD
报文进行确认

接口最大传输单元(接口的
MTU
)
华为将该值设置为
0
华为默认不对
MTU
值进行检测
[r1-GigabitEthernet0/0/0]ospf mtu-enable
如果两边均开启该功能,则会进行
MTU
检测,并且进行检测时,若两边不同,则状态卡在
exstart
状态。
I
位
----
主从关系选举
如果该位置为
1
,则不会携带
LSA
头部。
M
位
----
代表后续是否有多个
DD
报文
置为
1
,则代表后续还有
DD
报文
置为
0
,则代表该报文为最后一个
DD
报文
MS
位
----
代表主设备
该比特位置为
1
,则代表
Master
在主从关系选举完成之前,各个设备均会认为自己的
master
。
DD
序列号
用于确保
DD
报文传输的有序和可靠性
。
----DD
序列号逐次加
1
。
DD
序列号必须是由
Master
路由器决定,而从设备只能使用
Master
设备发送来的
DD
序列号来
发送自己的
DD
报文。(隐性确认机制)
LSA
头部
当路由器使用
DD
报文来描述自己的
LSDB
时,
LSA
的头部信息被包含在内。
一个
DD
报文可以包含一个或多个
LSA
头部信息。
LSR
包
基于
DBD
报文请求本地未知LSA信息。

链路状态类型、链路状态ID、通告路由器-----LSA三原则。---通过三个参数唯一标识一条LSA。
LSU包
LSACK包
OSPF的接口网络类型
网络类型
OSPF
接口的工作方式
BMA
Broadcast
,可以建立多个邻居关系。需要进行
DR
和
BDR
的选举。
hello 10S
;
dead 40S
P2P
P2P
,只能建立一个邻居关系。不需要进行
DR
和
BDR
的选举,
hello 10S
;
dead
40S
环回接口
(虚拟接
口)
P2P
,华为设备定义为
P2P
类型,但实际上该接口无数据收发。环回接口默认学习
32
位主机路由。
hello 10S
;
dead 40S
P2MP
P2MP
,可以建立多个邻居关系,不需要进行
DR
和
BDR
的选举;
hello 30S
,
Dead
120S
。会学习邻居接口
IP
地址所对应的主机路由
NBMA
NBMA
,可以建立多个邻居关系,需要进行
DR
和
BDR
的选举,
Hello 30S
,
Dead
120S
。无法自动建立邻居关系
VLINK
Vlink
;以单播的形式发送
hello
包,
hello 10S
;
dead 40S
;不需要进行
DR
和
BDR
的选举。

广播型多路访问类型(
BMA
)
[r2]display ospf interface GigabitEthernet 0/0/0

OSPF
在
BMA
网络类型的接口上通常以
组播
的方式发送
hello
报文、
LSU
报文和
LSACK
报文。以
单播
的
形式发送
DD
报文和
LSR
报文。
点到点类型(P2P)

OSPF
在网络类型为
P2P
的接口上以组播的方式(
224.0.0.5
)发送所有的协议报文。并且
OSPF
在
P2P
类
型的网络中不会选举
DR
和
BDR
。
该接口类型信息中,缺少了在
BMA
网络中看到的
DR
优先级、
DR
和
BDR
的描述信息。
[r2]display current-configuration configuration ospf //
查看所有当前配置中的关于OSPF的

环回接口(虚拟接口)
Type----P2P-----
在思科中有专门定义的
Loopback
类型作为环回接口的类型,而华为中没有定义,使用
P2P
来填充(没有意义)。
所有通过
OSPF
学习到的环回接口的路由掩码信息都是
32
位,这是因为环回接口是一个模拟的接口,
它实际上并没有连接用户,所以没有其余的
IP
地址存在于环回接口之下,只有一个可用的
IP
地址,故而
使用
32
位掩码来直接标识环回接口。保证路由信息的精确性。
----
避免产生环路或者路由黑洞。
[r1-LoopBack0]ospf network-type broadcast //
修改网络类型为
BMA
State:Waiting
原因在于环回接口此时并没有邻居,也就无法进行正常的
DR
和
BDR
选举,当时间超时后,环回接口会
认为自己就是DR,并将相应信息填充到该接口信息中。

华为将tunnel接口的传输速率定义为64Kbps。
P2MP接口类型
OSPF
在
P2MP
类型的接口上通常以组播的方式发送
hello
报文,以单播的方式发送其它报文。
P2MP
类型无法由设备自动生成,必须由管理员手工更改。
P2MP
类型网络不需要选举
DR
和
BDR
。
非广播型多路访问类型(NBMA)

在
NBMA
场景中,为了让
OSPF
路由器之间能够正确建立邻居关系,需要使用单播邻居的方式来发送
OSPF
报文。
双向配置
。
[r4-ospf-1]peer ?
IP_ADDR<X.X.X.X> IP address
OSPF
的不规则区域
远离骨干的非骨干区域
使用
tunnel
隧道
在
R2
和
R3
之间构建一条隧道,之后,将这个隧道宣告到
Area0
,相当于将
R3
这个非法的
ABR
设备合法
化。
使用
vpn
隧道解决不规则区域的问题
1.
可能产生选路不佳
2.
可能造成重复更新
3.
因为虚拟链路的存在,
R2
和
R3
之间也需要建立邻居。导致他们之间维护的周期性数据将穿越
Area1
,导致中间区域的资源消耗过大。
虚链路
---Vlink
专门为了解决
OSPF
不规则区域所诞生的技术。是一种虚拟的、逻辑的链路
。
[r2-ospf-1-area-0.0.0.1]vlink-peer 3.3.3.3
[r3-ospf-1-area-0.0.0.1]vlink-peer 2.2.2.2
虚链路的配置条件
:
只能穿越一个区域
。
Vlink
链路实际上全部使用单播报文来描述信息。
Vlink
被视为骨干区域的一段延伸
----vlink
永远属于
Area0
。
使用
vlink
解决不规则区域的问题
1.
因为虚拟链路的存在,
R2
和
R3
之间也需要建立邻居。导致他们之间维护的周期性数据将穿越
Area1
,导致中间区域的资源消耗过大。
2.
只能穿越一个区域。
实际上,
vlink
不仅仅应用在我们上述两种不规则区域,还可以用来修
复一些次优路径或者骨干区域不健
壮问题。

Vlink
解决没有骨干区域的场景
。
Vlink
环路问题
场景一

场景二
解决方法:
OSPF
规定,
vlink
所在区域不允许传递聚合路由
。
使用多进程双向重发布
重发布
把一种路由信息以另一种路由协议的方式发布出去
。
[r3-ospf-1]import-route ospf 2 ---
将
OSPF
进程
2
的路由导入到
OSPF
进程
1
[r3-ospf-2]import-route ospf 1
OSPF
的
LSA
详解
LSA头部

链路状态老化时间(Link-State Age)
16bit
,单位
S
当该
LSA
被始发路由器产生时,该值被设置为
0
,之后随着该
LSA
在网络中被洪泛,老化时间逐
渐累积。
最大老化时间
----3600S-----
当到达该时间后,该
LSA
会被本地路由器删除。
在
OSPF
网络中,只有始发路由器能够提前使该
LSA
老化,并删除全网该
LSA
信息。
组步调计时器
----cisco----240S
可选项
内容与
hello
包相同
链路状态类型(
Link-State Type
)
指代该条
LSA
的类型
链路状态
ID
用来标识
LSA
的,不同类型的
LSA
,对该字段的定义不同。
通告路由器
产生该
LSA
的路由器的
RID
链路状态序列号
32
位
bit
,逐次加一
起始:
0X80000001
;截止:
0X7FFFFFFF
序列号空间
线性序列号空间
循环序列号空间
棒棒糖序列号空间
校验和
会参与到
LSA
的新旧关系对比
判断
LSA
的新旧关系
链路状态序列号、老化时间、校验和
1.
具备较高序列号的
LSA
信息更优
2.
具备相同序列号的
LSA
,选择拥有较大校验和的
LSA
3.
具备相同序列号和校验和,如果某条
LSA
的老化时间被设置为最大老化时间,则认为该
LSA
最新。
4.
具备相同序列号和校验和,没有任何一条
LSA
的老化时间为最大老化时间,会对比两个
LSA
的老化
时间之差。
1.
当差值大于
15min
(
MaxAge Diff
:一个
LSA
实例从始发设备发出,直到被洪泛到整个
AS
边
界所需要的最长时间
),会认为两条
LSA
是不同的,选择较小的
LSA
2.
当差值小于等于
15min
,会认为两条
LSA
相同,选择随机一个

Type-1 LSA----Router
对于一类
LSA
,网络中所有设备都会发送,并且只发送一条
同属一个区域的接口共同使用一个一类
LSA
信息进行描述。
若存在多个区域,路由器会为每个区域单独产生一个一类
LSA
,并且每个
LSA
只描述接入该区
域的接口。

Type-2 LSA----Network
在一个网络中,只需要一台设备发送
该
LSA
仅存在于
MA
网络中,由
DR
设备产生
链路状态
ID
为
DR
的接口
IP
地址

Type-3 LSA---Sum-Net
通告者均为
ABR
设备
每一条路由项都使用单独的一条
LSA
信息进行描述
该
LSA
中的开销值,指的是通告者到达目的网段的开销值
设备在接收到
3
类
LSA
之后,需要根据一类
LSA
和二类
LSA
计算的拓扑信息来寻找三类
LSA
的通告
者。
如果,通告者是所在区域的
ABR
设备,那么自然而言,设备可以通过一类和二类
LSA
找到通告者;
若不是本区域的ABR设备通告的,则需要转换通告者。

Type-5 LSA----External
通告者
---ASBR
LS ID----
域外路由信息的目标网络号
传播范围
----
整个
OSPF
域
五类
LSA
中携带的是域外路由信息,通过重发布导入
OSPF
网络,因为不同协议对开销值的算法标准
不同,所以,在路由导入之后,将直接舍弃原本的开销值,之后给路由赋予一个规定值
-----
种子度
量值
OSPF
的种子度量值为
1
[r4-ospf-1]import-route rip 1 cost 5
E
位:
表示外部路由使用的度量值类型,
OSPF
定义了两种外部路由度量值类型,分别为
Metric
Type-1
(
E=0
)、
Metric-Type-2
(
E=1
)
Type-1
:所有设备到达域外目的网段的开销值为本地到达
ASBR
的开销值
+
种子度量值
Type-2
:域内所有设备到达域外目的网段的开销值等于种子度量值;
OSPF
默认使用类型
2.
[r4-ospf-1]import-route rip 1 cost 5 type 1
外部路由标记
一个只有外部路由才能携带的标记,经常被用于部署路由策略或策略路由。
在华为路由器上,缺省时,该字段值被设置为
1
。
转发地址---FA
FA
字段默认为
0.0.0.0
;则到达该外部网段的流量会被转发引入到发送这条
LSA
的
ASBR
设备。
而若
FA
字段不为
0.0.0.0
,则流量会被发送给这个
FA
字段所表示的地址。
作用:解决次优路径问题
-----
与
ICMP
中的重定向报文具有相同效果。
FA
字段被设置为其余数值的条件:
引入外部路由的
ASBR
在其连接外部网络的接口上激活了
OSPF
协议。
该接口的网络类型为
BMA
或者
NBMA
。
该接口的
IP
地址属于
OSPF
协议配置
network
命令范围。
该接口没有被配置为静默接口。

Type-4 LSA------ Sum-Asbr
链路状态
ID------ASBR
的
RID
值
度量值
----
填写的是该通告者到达
ASBR
的
Cost
值
四类
LSA
的任务就是在辅助五类
LSA
完成验算过程,找到
ASBR
的位置,里面只携带一个开销值。
Type-7 LSA----NSSA
E
位
----
表示允许洪泛五类
LSA
信息,如果做成特殊区域,则
E
位为
0
N
位
---
属于
opention
字段,允许处理七类
LSA
P
位
---
不属于
opention
字段,代表支持
7
转
5
操作。
在
7
类
LSA
中,在不存在选路不佳的情况下,
一般会使用通告者(
ASBR
)设备的环回接口地址作为
转发地址
。
如果存在多个环回接口,则使用最先宣告的环回接口地址作为转发地址。
如果没有环回接口,则使用武力接口的地址作为转发地址。
华为逻辑
-----cisco---
选择最后一个宣告的
IP
。
路由撤销
一类
LSA
撤销
一类
LSA
实质是是在通过:序列号
+1
;校验和不变;老化时间
=0
的新
LSA
来覆盖掉老的一类
LSA
。
二类
LSA
撤销
与一类
LSA
玩法相同
三类
LSA
撤销
三类
LSA
的撤销方式:
seq
不变,校验和不变,老化时间设置为3600S
若采用
seq+1
,校验和不变,老化时间不变的方式撤销,当需要撤销的三类
LSA
数量较大时,会导
致路由器会消耗大量计算资源。
五类与七类
LSA
撤销
三类
LSA
的撤销方式:
seq
不变,校验和不变,老化时间设置为
3600S
若采用
seq+1
,校验和不变,老化时间不变的方式撤销,当需要撤销的三类
LSA
数量较大时,会导
致路由器会消耗大量计算资源。
OSPF
优化
主要目的
----
减少
LSA
的更新量以及数量。
1.
路由汇总(减少骨干区域的
LSA
更新量)
2. OSPF
特殊区域(减少非骨干区域的
LSA
更新量)
OSPF
路由汇总(路由聚合)
OSPF
路由汇总是由手工部署的
OSPF
的汇总称为
----
区域汇总,因为
OSPF
在区域之间才传递路由信息,并且是对路由进行汇总而非
LSA
信息。
域间路由汇总
域外路由汇总
域间路由汇总

只要站点内这条汇总路由所涵盖的所有明细路由中有一条是有效的,则
ABR
就会通告该汇总路由,而
当所有的明细路由全部失效时,
ABR
设备才不会继续通告该汇总路由
。
汇总并不会影响
ABR
设备自身的明细路由
。
汇总会抑制明细路由的发送。
域间路由汇总只能汇总
ABR
设备自身通过一类
LSA
和二类
LSA
信息学习到的路由条目
。
域外路由汇总

[r1-ospf-1]asbr-summary 10.1.0.0 255.255.0.0
5
类
LSA
汇总之后的开销值计算方法:
Type-2------
汇总网段的开销值等于所有明细路由开销值中的最大值
+1
Type-1------
汇总网段的开销值等于所有明细路由开销值中的最大值
OSPF
的特殊区域
第一大类
-----1
、不能是骨干区域;
2
、不能存在虚链路;
3
、不能存在
ASBR
设备
末梢区域(
Stub Area
)

如果将一个区域配置成末梢区域,则这个区域将不再学习
4
类和
5
类
LSA
。
-----ABR
设备将不会在给
该区域转发
4
类和
5
类
LSA
信息。
该区域将拒绝学习域外路由信息,但是,其依然具有访问域外路由的需求,所以,由该区域
ABR
设
备,会自动生成一条指向骨干区域的
3
类
LSA
缺省路由。
[r5-ospf-1-area-0.0.0.2]stub
[r1-ospf-1-area-0.0.0.2]stub
注意:一旦做特殊区域,则所有区域内的设备都必须做特殊区域
。
完全末梢区域(
Totally Stub Area
)
在末梢区域的基础上,进一步拒绝学习
3
类
LSA
,仅保留
3
类缺省即可。
[r1-ospf-1-area-0.0.0.2]stub no-summary
该命令仅需要在
ABR
设备上配置即可
第二大类特殊区域
----1
、不能是骨干区域;
2
、不能存在虚链路;
3
、存在
ASBR
设备。
非完全末梢区域(
NSSA
)

如果将一个区域配置成非末梢区域,则这个区域将不再学习
4
类和
5
类
LSA
。
-----ABR
设备将不会在
给该区域转发
4
类和
5
类
LSA
信息。
该区域依然需要将域外路由信息导入,但因为该区域拒绝
5
类
LSA
,所以,只能以
7
类
LSA
的形式来
继续传递域外路由信息。
之后,在
7
类
LSA
信息离开
NSSA
区域后,需要再转换成
5
类
LSA
进行传输。
该区域将拒绝学习域外路由信息,但是,其依然具有访问域外路由的需求,所以,由该区域
ABR
设
备,会
自动生成一条指向骨干区域的
7
类
LSA
缺省路由
。
[r5-ospf-1-area-0.0.0.2]nssa
[r1-ospf-1-area-0.0.0.2]nssa
O_NSSA ------7
类域外路由信息的标记,默认优先级也是
150
。
完全的非完全末梢区域(
Totally NSSA
)
在
NSSA
的基础上,进一步拒绝学习
3
类
LSA
,产生一条
3
类缺省
LSA
。
[r1-ospf-1-area-0.0.0.2]nssa no-summary

总结一下:
1. NSSA
区域的七类
LSA
实际上是需要
ASBR
或者
ABR
自己下发的。
2.
而如果多台设备均下发成功七类
LSA
缺省路由,则虽然都会收到
LSA
信息,但并不会将其余设备的
LSA
缺省信息加入到本地路由表中。因为始终相信自己的缺省路由是最好的。
3.
而对于第一台发布七类缺省路由的设备而言,会认为我身上已经有了一条去往外部区域的路由,并
且本地作为通告者,那么当他接收到其他设备发送来的七类缺省路由,也不会进行学习
。
-----
华为
运用该逻辑解决
Totally NSSA
中的环路问题。
1.
华为为了解决环路问题,保留了
NSSA
区域由
ABR
产生的七类
LSA
缺省路由,这样做的好处就
是使得设备相信自己产生的这条
LSA
,而对于其他设备传递来的七类
LSA
,只接收到不使用。
2.
这样一来,
ABR
设备就不会具备指向
NSSA
区域内部的缺省路由,更不会将这个缺省路由传递
给骨干区域,从而避免环路问题。
OSPF
规定:在
NSSA
区域中,可能同时存在多个
ABR
或
ASBR
,为了防止路由环路产生,边界路由器
之间不计算对方发布的缺省路由