目录
RIP的弊端
1.传输的是整张路由表----学习--计算路由--传输--收敛效率慢!
2.学习的信息是通过传闻的方式,不了解全局网络
3.选路的时候是以跳数为度量值----存在次优路径选择
一.OSPF工作过程
1.建立邻居
2.同步数据库
3.计算路由
运行OSPF路由器的身份标识:RID
---手工配置:在启动协议的时候,指定设备名字
自动选择:如果配置loopback接口,接口IP地址最大的作为RID
如果没有配置loopback接口,那么选择物理接口IP地址最大的作为RID
----------------------------------------------
1.建立邻居关系
---hello报文
影响邻居关系建立因素:
OSPF头部信息:
1.RIP必须不同
2.区域必须相同
3.认证必须相同(认证类型、密码)
hello包信息
1.子网掩码必须相同(点到点除外)
2.hello时间必须相同
3.dead时间必须相同
4.router优先级不能全为0(点到点除外)
5.特殊标记位必须相同
2.OSPF邻居建立过程 ----状态
down-----没有邻居状态
int-----没有初始化状态,收到了邻居发来的信息,但是邻居没有收到自己的信息
2-way----邻居状态,双向通信,彼此都知道对方
3.LSDB同步状态
---exstart 交换初始化 发送第一个DD报文,目的确定设备的主从关系,通过对比DD报文里面的 RID,确定主从关系,RID大的为主设备
DD报文: i=1,说明当前是第一个DD报文
M=1 说明后边还有很多DD报文
MS=1 说明此设备是主设备
---exchange 交换状态 交换的是DD报文,从设备发现主设备里面的DD报文有本设备没有的内 容,开始请求交换
----loading 加载状态 加载的是在对端数据库里面存在的信息,本端没有的内容,通过LSR、 LSU、LSACK报文进行加载
---full完全同步状态(邻接)
邻居和邻接状态的区别:
邻居状态数据库没有同步,只是相互认识了,邻接状态是已经同步了数据库
224.0.0.5向邻居发送信息用到的组播地址,每一个启用OSPF的设备都使用此组播地址
224.0.0.6
接口IP及掩码
链路状态信息----接口信息
链路类型
邻居路由器信息
链路带宽
4.网络类型:
1、P2P类型(Point-to-Point)
·当链路层协议是PPP、HDLC时,OSPF会认为网络类型是P2P。·
报文发送地址:以组播(224.0.0.5)发送所有OSPF报文。·
不需要进行DR、BDR选举
. Hello: 10秒; Dead: 40秒
当OSPF接口的网络类型为P2P的时候只能建立一个OSPF邻居。(广播型修改成P2P后也是一样)
2、P2MP类型(Point-to-Multipoint)
·没有任何一种链路层协议被认为是P2MP类型,P2MP是认为手动配置的。
·报文发送地址:以组播(224.0.0.5)发送Hello报文。
单播发送DD、LSR、LSU、LSACK。·不需要进行DR、BDR选举
. Hello: 30秒;Dead: 120秒
3、NBMA类型(Non-Broadcast Multi-Access)
·当链路层协议是帧中继和ATM/FR时,OSPF会认为网络类型为NBMA网络。·报文发送地址:单播发送所有HELLO、DD、LSR、LSU、LSACK。
·需要进行DR、BDR选举
. Hello:30秒;Dead: 120秒
4、广播类型(Broadcast)
当链路层协议是以太网的时候,OSPF会认为网络类型为Broadcast
He1lo: (10秒;Dead:40秒)
广播类型网络用到两个组播地址,224.0.0.5和224.0.0.6。
·所有设备使用单播形式交互DD报文以及LSR报文。
·所有设备固定使用组播(224.0.0.5)交互HELLO报文。
LSU和LSACK的发送地址根据路由器角色有所变化以下将一一列出:
DRother: DRother产生的LSU通过224.0.0.6发送给DR和BDR;DR通过224.0.0.5发送给其他的DRoher和BDR;DRother收到DR的LSU之后通过224.0.0.6发送ACK确认,BDR收到DR的LSU之后通过组播地址224.0.0.5发送ACK向DR确认。
DR:DR产生的LSU通过224.0.0.5发送给其他DRother和BDR;BDR收到之后通过224.0.0.5发送ACK向DR进行确认;DRother收到之后通过224.0.0.6发送ACK向DR确认。
BDR:BDR产生的LSU通过224.0.0.5发送给其他的DRother和DR,DR收到之后通过224.0.0.5发送ACK向BDR确认,DRother收到之后通过224.0.0.6发送ACK向BDR确认。
DR和BDR同时监听224.0.0.5和224.0.0.6两个组播地址,drother只监听在224.0.0.5。需要注意一点在初次建立邻居的时候会产生LSR报文,而LSR是单播发送的报文,在广播网络类型中中无论是DR, BDR还是DRother只要收到了LSR之后,都会以单播的形式发送LSU更新。ACK则正常发送。
DR与BDR的区别在于DR收到DRother的LSU则泛洪,BDR不做任何相应。
OSPF基于IP封装,协议号89
RIP基于UDP,端口号520
5.报文类型
hello报文---建立和维护邻居关系
DD报文---发送数据库简要信息
LSR---链路状态请求报文,当本地设备的DD报文和对端设备DD报文发送之后,发送对端设备信息,我设备有的信息没有,这个时候就需要向对端请求,对端就会发送LSU报文
LSU报文----收到LSR后,发送更新信息给对端设备,用LSU报文发送
LSACK报文---收到LSU之后,用LSACK确认
6.DR和BDR的选举
--------------广播型网络和NBMA
DR和BDR是接口的概念
规则:对比DR优先级,大的作为DR
优先级相同,对比RID,RID大的作为DR,次大的为BDR
DR和BDR是邻接关系,DR或BDR与DRother是邻接关系
DRother之间是邻居关系
默认没有开启抢占功能
7.OSPF的度量方式
某接口cost=参考带宽/实际带宽(参考带宽默认为100)
修改参考带宽所有路由器都得修改,确保选路一致性
二.LSA类型:1/2/3/4/5/7
如何判断一个唯一的LSA呢?使用LSA的三要素:
1、LSA的类型:Type
2、LSA的链路状态ID:Link state ID
3、LSA的通告者:Adv Router
如何判断LSA的新旧状态呢?
1、首先比较的就是LSA的序列号,初始值为ex80000001,每次osPF更新的时候都会+1。
2.当序列号相同,将会比较校验和,越大越优
3、当校验和相同,将会比较LSA的age时间:
首先age等于3600的LSA,用于删除一条LSA
如果两条LSA的age时间相差大于900s,将会选择age数值小的LSA。
如果两条LSA的age时间相差小于900s,将会认为相同,保持原有不变。
OSPF的更新机制:
触发更新:当链路状态发生改变之后OSPF将会触发更新,比如cosT变了,网段变了掩码变了,取消宣告。
周期更新:每个oSPF路由器自身产生的LSA,都会每隔30分钟(1800s)周期更新一次自身的LSA,更新时将SEQ+1检验和重新计算,age时间重新恢复到初始值
OSPF的老化机制:
OSPF路由器每产生一条LSA,都会存在一个age时间为3600s,初始值为1,当AGE时间递增到3600s之后,将会认为LSA老化,从自身LSDB中删除此LSA。I
OSPF LSA的删除机制:
当OSPF需要删除一条LSA的时候,将会把LSA的age时间变为3600s,当其他路由器接收到这条LSA之后,将会把自身LSDB中对应的LSA删除掉。
实验拓扑:
每个网段都会选举出一个DR,p2p网络不会有DR
[AR3]dis ospf lsdb
OSPF Process 1 with Router ID 3.3.3.3
Link State Database
Area: 0.0.0.0
Type LinkState ID AdvRouter Age Len Sequence Metric
Router 2.2.2.2 2.2.2.2 1340 48 80000004 1
Router 1.1.1.1 1.1.1.1 1378 48 80000004 1
Router 3.3.3.3 3.3.3.3 1300 60 8000000C 1
//这两个IP就是这个拓扑的DR
Network 192.168.2.2 3.3.3.3 397 32 80000003 0
Network 192.168.1.2 3.3.3.3 739 32 80000003 0
1.查询1类LSA:
1类LSA:每个oSPF的路由器,都会用一类LsA描述自身所有启用oSPF的接口。
router:1类LSA
ADV router:自身RID 每个路由器都会产生1类LSA,相当于每个设备的自我介绍
LS ID: 自身RID 链路的名字
[AR2]dis ospf lsdb router self-originate
OSPF Process 1 with Router ID 2.2.2.2
Area: 0.0.0.0
Link State Database
Type : Router //LSA的类别
Ls id : 2.2.2.2 // 链路状态ID
Adv rtr : 2.2.2.2 //产生此LSA的路由器Router ID
Ls age : 74
Len : 48
Options : E
seq# : 80000004
chksum : 0xbb8c
Link count: 2
//link type为p2p或者TransNet都是拓扑信息
* Link ID: 192.168.2.2
Data : 192.168.2.1 //宣告该Router LSA的路由器接口的IP地址
Link Type: TransNet
Metric : 1 //开销
//subnet都是路由信息
* Link ID: 10.1.1.2 //该subnet网络的ip地址
Data : 255.255.255.255 //该subnet网络的网络掩码
Link Type: StubNet
Metric : 0
Priority : Medium
在1类LSA中,使用4种link-type描述接口的链路状态信息。
link-type: stubNet用于描述直连的网络号。(路由信息)
link-id :用于描述直连的网络前缀。
data:用于描述网络掩码信息
metric:用于描述路由器自身去很该网络的cost值。
link-type: P2P用于描述直连链路上网络类型为p2p或者p2MP的邻居。
link-id :用于描述P2P网络上邻居的Rid。
data:用于描述自身连接P2p邻居的接IP地址。
metric:用于描述自身去往邻居的cost值。
link-type: TransNet用于描述直连链路上网络类型为广播或者NBMA的邻居。
link-id :用于描述伪节点的Router-id,使用的是DR的接口IP地址充当。
data:用于描述自身去往伪节点的接口IP地址。
Metric:用于描述自身到达伪节点的cost值。
link-type: V-link用于描述虚链路上的OSPF邻居。
link-id :用于描述虚链路邻居的Router-id。
data:用于描述自身去往虚链路邻居的接口IP地址。
Metric:用于描述自身去往虚链路邻居的cost值。
2.查询2类LSA
2类LSA:(由DR产生,描述拓扑信息,所连接的路由器)
network:2类LSA
ADV router:DR的RID
LS ID: DR的接口IP
[AR3]dis ospf lsdb network self-originate
OSPF Process 1 with Router ID 3.3.3.3
Area: 0.0.0.0
Link State Database
Type : Network
Ls id : 192.168.2.2 //DR接口的IP地址
Adv rtr : 3.3.3.3 //DR的RouterID
Net mask : 255.255.255.0
Priority : Low
Attached Router 3.3.3.3 //连接到该网段的路由器列表
Attached Router 2.2.2.2
Type : Network
Ls id : 192.168.1.2
Adv rtr : 3.3.3.3
Net mask : 255.255.255.0
Priority : Low
Attached Router 3.3.3.3
Attached Router 1.1.1.1
Area: 0.0.0.1
Link State Database
3/4/5类LSA拓扑图
3.查询3类LSA
3类LSA:由ABR产生,在域间进行传递,只包含路由信息,无拓扑信息
传递过程:
1.area0区域内传递的1类LSA和2类LSA,到达了边界路由器(BDR),BDR会重新计算并将1类LSA变成3类LSA传递给area1区域,在这样传给area2
2.将骨干区域内的3类LSA,转换成非骨干区域内的3类LSA
network-summary:3类LSA
Type:Sum-Net
LS id:目的网段地址
ADV router:产生此3类LSA的routerID
3类LSA防环规则:对于非骨干区域传来的3类LSA只接受不传递
防环原则一:为了防止osPF区域间路由环路,定义出了ABR这种设备角色,并且定义区域间路由的转换只能由ABR完成,而ABR是连接到骨干区域的,所以在OSPF区域设计要保证非骨干区域与骨干区域相连。
防环原则二:ABR不会将非骨干区域的3类LSA传递到骨千区域
ABR在骨千区域存在邻居的时候不会计算非骨干的LSA3
如果骨千区域不存在邻居将会计算非骨千的LSA3
防环原则三:无论COST,1、2类LSA优先于3类LSA。
[AR5]dis ospf lsdb summary
OSPF Process 1 with Router ID 5.5.5.5
Area: 0.0.0.0
Link State Database
Type : Sum-Net
Ls id : 6.6.6.6
Adv rtr : 5.5.5.5
Ls age : 688
Len : 28
Options : E
seq# : 80000001
chksum : 0xc966
Net mask : 255.255.255.255
Tos 0 metric: 1
Priority : Low
Type : Sum-Net
Ls id : 3.3.3.3
Adv rtr : 2.2.2.2
Ls age : 705
Len : 28
Options : E
seq# : 80000001
chksum : 0xae99
Net mask : 255.255.255.255
Tos 0 metric: 1
Priority : Medium
Type : Sum-Net
Ls id : 66.1.1.1
Adv rtr : 5.5.5.5
Ls age : 688
Len : 28
Options : E
seq# : 80000001
chksum : 0x60a2
Net mask : 255.255.255.255
Tos 0 metric: 1
Priority : Low
Type : Sum-Net
Ls id : 192.168.2.0
Adv rtr : 5.5.5.5
Ls age : 752
Len : 28
Options : E
seq# : 80000001
chksum : 0x17c5
Net mask : 255.255.255.0
Tos 0 metric: 1
Priority : Low
下面还有很多没有截完
4.查询5类LSA
AS-External-LSA(引入外部路由发送的LSA)
display ospf lsdb ase self-originate
5类LSA里的字段:
type External LSA类型
Ls id 目的网段地址
Adv router 产生此5类LSA ASBR的RouterID
[AR5]dis ospf lsdb ase
OSPF Process 1 with Router ID 5.5.5.5
Link State Database
Type : External
Ls id : 7.7.7.0 //引入的网段
Adv rtr : 6.6.6.6 //产生此5类LSA的Router ID
Ls age : 1206
Len : 36
Options : E
seq# : 80000001
chksum : 0x4d56
Net mask : 255.255.255.0
TOS 0 Metric: 1
E type : 2
Forwarding Address : 0.0.0.0
Tag : 1
Priority : Low
ASBR:引入外部路由的路由器既为ASBR。
ASBR的自白:当路由器成为ASBR之后,将会在产生的1类LsA中将ASBR标志置1,标识自己为ASBR。
1、和ASBR在相同区域的路由器
cost如何计算:路由器使用自身到达ASBR的COST+ASBR到达外部路由的cost。
下一跳:路由器到达ASBR最短路径树的下一跳,即为自身到达外部路由的下一跳。
2、和ASBR不在相同区域的路由器
cost如何计算:即自身到达ABR的cost+ABR到达ASBR的cost+外部路由携带的cost。
下一跳:路由器达到ABR最短路径树的下一跳,即为自身到达外部路由的下一跳。
默认情况下,OSPF引入外部路由的cost值为1,外部路由类型为type 2, tag值为1.
type1:其他OSPF路由器计算type1类型的外部路由,将会累加内部cost值。
type2:其他OSPF路由器计算type2类型的外部路由,不会累加内部cost值。
外部路由选路原则:
1、无论任何cost, type1总是优先于Type2.
2、同为Type1的时候如何比较:
比较cost和值,越小越优。
如果cost和值相同,则负载。
3、同为type2的时候如何比较:
比较引入时的cost值,即5类LSA携带的cost值。
如果引入时的cost相同,则比较到达ASBR的cost。
如果到达ASBR的cost相同,则负载。
5.查询4类LSA
作用:用来标识ASBR位置的(与ASBR同区域的ABR会发送这个4类的LSA)
ASBR-Summary-LSA
display ospf lsdb asbr self-originate
4类LSA字段:
Type: Sum-Asbr LSA类型
Ls id ASBR的RouterID
Adv router 产生此4类LSA ABR的Router ID
Tos 0 metric:1 从ABR到达此ASBR的开销
[AR5]dis ospf lsdb asbr
OSPF Process 1 with Router ID 5.5.5.5
Area: 0.0.0.0
Link State Database
Type : Sum-Asbr
Ls id : 6.6.6.6 //ASBR的Rorter ID
Adv rtr : 5.5.5.5 //产生此4类LSDB的Router ID
Ls age : 1320
Len : 28
Options : E
seq# : 80000001
chksum : 0xbb73
Tos 0 metric: 1
Area: 0.0.0.1
Link State Database
Area: 0.0.0.2
Link State Database
4类LSA如何产生:
4类LSA由ABR产生,用于告诉其他区域内的路由器,ASBR的位置,4类LSA产生在那个区域就在那个区域内部泛洪,当4类LSA传递到其他区域,Adv rtr和cost将会改变。
三.OSPF特殊区域及其他特性
3.1Stub区域和完全 Stub区域
1.配置stub区域(减少LSDB数据库,消除4、5类LSA)(末节区域)
拓扑:
特点:
1、在该区域下所有的接口发送的OSPF Hello报文E bit等于0
2、OSPF路由器不会将4、5类LSA传递给特殊区域下的OSPF邻居。
3、ABR将会产生一条缺省的3类LSA,帮助stub区域内的设备访问外部网络。
4、完全stub区域内的设备不能引入外部路由。
5、Stub区域内缺少了5类LSA,所以stub区域内的设备,将没有办法根据5类LSA选择出去往外部路由的最优路径,当Stub存在多个ABR的时候,将会产生次优路径的风险。
解决方式:
1、在ABR上手动调整,自身产生缺省路由的cost值。(使用最多)
2、手动调整区域内设备的路径cost,使其优选最优的ABR作为出口
3、在区域内的设备上针对下一跳地址,手动设置权重值。
配置完成后就不会lsdb数据库就没有4、5类lsa了
[AR3]dis ospf lsdb asbr
OSPF Process 1 with Router ID 3.3.3.3
Area: 0.0.0.1
Link State Database
[AR3]dis ospf lsdb
OSPF Process 1 with Router ID 3.3.3.3
Link State Database
Area: 0.0.0.1
Type LinkState ID AdvRouter Age Len Sequence Metric
Router 2.2.2.2 2.2.2.2 140 36 80000004 1
Router 3.3.3.3 3.3.3.3 139 60 80000005 1
Network 192.168.1.1 3.3.3.3 139 32 80000001 0
Sum-Net 0.0.0.0 2.2.2.2 180 28 80000001 1
Sum-Net 6.6.6.6 2.2.2.2 180 28 80000001 4
Sum-Net 44.1.1.1 2.2.2.2 180 28 80000001 2
Sum-Net 5.5.5.5 2.2.2.2 180 28 80000001 3
Sum-Net 14.1.1.0 2.2.2.2 180 28 80000001 3
Sum-Net 11.1.1.1 2.2.2.2 180 28 80000001 1
Sum-Net 55.1.1.1 2.2.2.2 180 28 80000001 3
Sum-Net 172.16.1.0 2.2.2.2 180 28 80000001 1
Sum-Net 4.4.4.4 2.2.2.2 180 28 80000001 2
Sum-Net 2.2.2.2 2.2.2.2 180 28 80000001 0
Sum-Net 22.1.1.1 2.2.2.2 180 28 80000001 0
Sum-Net 10.1.1.0 2.2.2.2 180 28 80000001 2
Sum-Net 66.1.1.1 2.2.2.2 180 28 80000001 4
Sum-Net 192.168.2.0 2.2.2.2 180 28 80000001 4
Sum-Net 1.1.1.1 2.2.2.2 180 28 80000001 1
[AR3]dis ospf routing
OSPF Process 1 with Router ID 3.3.3.3
Routing Tables
Routing for Network
Destination Cost Type NextHop AdvRouter Area
3.3.3.3/32 0 Stub 3.3.3.3 3.3.3.3 0.0.0.1
33.1.1.1/32 0 Stub 33.1.1.1 3.3.3.3 0.0.0.1
192.168.1.0/24 1 Transit 192.168.1.1 3.3.3.3 0.0.0.1
//这个缺省的三类lsa就是AR2生成的
0.0.0.0/0 2 Inter-area 192.168.1.2 2.2.2.2 0.0.0.1
1.1.1.1/32 2 Inter-area 192.168.1.2 2.2.2.2 0.0.0.1
2.2.2.2/32 1 Inter-area 192.168.1.2 2.2.2.2 0.0.0.1
4.4.4.4/32 3 Inter-area 192.168.1.2 2.2.2.2 0.0.0.1
5.5.5.5/32 4 Inter-area 192.168.1.2 2.2.2.2 0.0.0.1
6.6.6.6/32 5 Inter-area 192.168.1.2 2.2.2.2 0.0.0.1
10.1.1.0/24 3 Inter-area 192.168.1.2 2.2.2.2 0.0.0.1
11.1.1.1/32 2 Inter-area 192.168.1.2 2.2.2.2 0.0.0.1
14.1.1.0/24 4 Inter-area 192.168.1.2 2.2.2.2 0.0.0.1
22.1.1.1/32 1 Inter-area 192.168.1.2 2.2.2.2 0.0.0.1
44.1.1.1/32 3 Inter-area 192.168.1.2 2.2.2.2 0.0.0.1
55.1.1.1/32 4 Inter-area 192.168.1.2 2.2.2.2 0.0.0.1
66.1.1.1/32 5 Inter-area 192.168.1.2 2.2.2.2 0.0.0.1
172.16.1.0/24 2 Inter-area 192.168.1.2 2.2.2.2 0.0.0.1
192.168.2.0/24 5 Inter-area 192.168.1.2 2.2.2.2 0.0.0.1
Total Nets: 18
Intra Area: 3 Inter Area: 15 ASE: 0 NSSA: 0
2.配置完全stub区域(3、4、5类LSA都不要了)
配置命令:ospf 1
area 1
stub no-summary
配置完成后LSDB数据库只剩一条缺省的三类LSA
[AR3]dis ospf routing
OSPF Process 1 with Router ID 3.3.3.3
Routing Tables
Routing for Network
Destination Cost Type NextHop AdvRouter Area
3.3.3.3/32 0 Stub 3.3.3.3 3.3.3.3 0.0.0.1
33.1.1.1/32 0 Stub 33.1.1.1 3.3.3.3 0.0.0.1
192.168.1.0/24 1 Transit 192.168.1.1 3.3.3.3 0.0.0.1
0.0.0.0/0 2 Inter-area 192.168.1.2 2.2.2.2
1、在stub基础上,在3类LSA也进行过滤。
2、完全stub区域内,缺失了3类4类和5类LSA,导致stub区域内路由器,访问区域间和域外路由的时候可能出现次优路径。
3.2nssa区域和完全nssa区域
1.nssa区域
特点:nssa区域的路由器既可以引入外部路由,也可以优化LSDB数据库的规模
[R7]dis ospf lsdb
OSPF Process 1 with Router ID 7.7.7.7
Link State Database
Area: 0.0.0.3
Type LinkState ID AdvRouter Age Len Sequence Metric
Router 7.7.7.7 7.7.7.7 262 48 80000005 1
Router 1.1.1.1 1.1.1.1 263 36 80000004 1
Network 10.1.17.7 7.7.7.7 262 32 80000001 0
Sum-Net 10.1.45.0 1.1.1.1 306 28 80000001 4
Sum-Net 10.1.23.0 1.1.1.1 306 28 80000001 2
Sum-Net 10.1.34.0 1.1.1.1 306 28 80000001 3
Sum-Net 5.5.5.5 1.1.1.1 306 28 80000001 4
Sum-Net 3.3.3.3 1.1.1.1 306 28 80000001 2
Sum-Net 10.1.12.0 1.1.1.1 306 28 80000001 1
Sum-Net 4.4.4.4 1.1.1.1 306 28 80000001 3
Sum-Net 2.2.2.2 1.1.1.1 306 28 80000001 1
Sum-Net 1.1.1.1 1.1.1.1 306 28 80000001 0
配置了NSSA区域,减少了LSDB数据库,还可以在本区域引入外部路由
//这三条是本路由器引入的外部路由,作为ASBR
NSSA 172.16.2.0 7.7.7.7 313 36 80000001 1
NSSA 172.16.3.0 7.7.7.7 313 36 80000001 1
NSSA 172.16.1.0 7.7.7.7 313 36 80000001 1
//这一条默认的7类LSA是AR1作为ABR下发的,AR7需要访问外部路由时可根据这条默认的7类LSA找到ABR
NSSA 0.0.0.0 1.1.1.1 306 36 80000001 1
1、当把一个区域配置为nssa区域之后,该区域下所有OSPF接口发送的报文N比特置1.
2、ABR不会将5类LSA,传递到NSSA区域内部。
3、NSSAI区域内部引入的外部路由,将会以7类LSA进行呈现。
4、NSSAl区域内ABR会将7类LSA,转换成5类LSA传递到其他区域。
5、NSSA区域内ABR将会自动产生一条7类缺省LSA,帮助nssa区域内的设备访问其他区域引入的外部路由信息。
6、当NSSA区域内存在多个ABR的时候:
防环:当ABR在一个区域产生一条7类LSA之后,将不会计算其他设备产生的相同7类LSA。
选路:NSSA区域由于缺少5类LSA,当存在多个ABR的时候,访问外部路由将有可能出现次优路径。
7转5:当NSSA区域存在多个ABR的时候,Router-id大的路由器,执行7转5.
5类LSA FA如何产生:
1、ASBR去往外部路由的出接口加入到了OSPF进程中。
2、ASBR去往外部路由的出接口不是静默接口。
3、ASBR去往外部路由的出接口不是P2P或者P2MP类型。
7类LSA FA如何产生:
1、与5类相同的场景下,FA地址的取值,为自身去往外部路由的下一跳。
2、与5类不相同的场景下,FA地址的取值,使用一下原则:
①如果ASBR在NSSA区域内存在活动的1oopback接口,则FA的值选取loopback接口地址。
②如果ASBR在NSSA区域没有loopback接口,FA的值选取NSSA区域内第一个UP的物理接口。
③如果不符合上述两个条件,则FA的值为0。
2.完全nssa区域
1、在NSSA区域的基础上,将3类LsA也进行过滤。
2、完全NSSA区域内的设备由于缺失3类和5类LSA,可能导致访问区域间路由和域外路由出现次优路径
3.3虚链接vlink
V-Link的特色:
1、虚链路属于区域0的逻辑链路
2、虚链路不能穿越特殊区域
3、虚链路只能穿越一个常规的非骨干区域
4、做了区域0的认证,由于vlink属于区域0,也会启用认证。
虚链路中报文的目的Ip地址如何判断呢?
以虚链路邻居为根节点,构建出sPF树,在sPF树中到达自身最短路径的出接口IP地址
即自身向虚链路邻居发送报文的目的IP地址。
虚链路中报文的源IP地址如何判断呢?
自身去往目的IP地址的出接口地址,即为虚链路报文的源IP地址。
使用Router-id建立虚链路邻居的优势在哪里?
稳定,当区域内存在多条冗余路径的时候,当某条路径出现故障,只要区域内的SPF树不会断 开,那么虚链路邻居也不会断开。
虚链路的建立,只能跨域一个常规的非骨干区域。
虚链路邻居如何进行维护?
1、华为设备中,虚链路邻居之间,会周期的交互hello报文,默认10s一次,dead time为40s。
2、当和虚链路邻居之间的SPF树断开之后,虚链路邻居将会立刻断开。
四.OSPF快速收敛机制
4.1OSPF IP FRR
官方定义:OSPF IP FRR是动态IP FRR,利用LFA(Loop-Free Alternates)算法预先计算出备份路径,保存在转发表中,以备在故障时将流量快速切换到备份链路上,保证流量不中断,从而达到流量保护的目的,该功能可将故障恢复时间降低到50 ms以内。
lLFA计算备份链路的基本思路是:以可提供备份链路的邻居为根节点,利用SPF算法计算出到目的节点的最短距离。然后,按不等式计算出开销最小且无环的备份链路。
自己的定义:简单的说就是在需要开启备份链路的路由器上开启FRR功能,就可以多出一条备份路由,这样原来的路由断开之后可以马上切换到备份路由进行转发,就不需要再重新计算路径,能够快速收敛
计算备份链路的条件:从R1的1.1.1.1到R4的4.4.4.4最优路由是经过R3,如果开启FRR功能,将备份路由经过R2到达R4,那么会在R2的视角去计算,(R2到R4的开销)<(R2到R1再到R4的开销和),满足这个公式就可以产生备份路由,必须是小于,大于等于都不可
[AR1]dis ip routing-table 4.4.4.4 verbose
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Routing Table : Public
Summary Count : 1
Destination: 4.4.4.4/32
Protocol: OSPF Process ID: 1
Preference: 10 Cost: 2
NextHop: 13.1.1.3 Neighbour: 0.0.0.0
State: Active Adv Age: 00h01m00s
Tag: 0 Priority: medium
Label: NULL QoSInfo: 0x0
IndirectID: 0x0
RelayNextHop: 0.0.0.0 Interface: GigabitEthernet0/0/0 //这个是主链路
TunnelID: 0x0 Flags: D
BkNextHop: 12.1.1.2 BkInterface: GigabitEthernet0/0/1 //这个是备份链路的出接口
BkLabel: NULL SecTunnelID: 0x0
BkPETunnelID: 0x0 BkPESecTunnelID: 0x0
BkIndirectID: 0x0
[AR1]
备注:做实验的话就需要把R2的1口开销改的比上面一条链路大,如果都是1的话,上下两条路开销都是2,都会加表了,上面开销为2,优选从上走,在R1上开启FRR,查看verbose信息,就可以看见这条路由的备份链路了
4.2OSPF与BGP联动
实验拓扑:
问题:R1R2R3R4都运行ospf协议,都互相建立IBGP邻居关系,R5把5.5.5.5发送给EBGP邻居R4,R4再传给其他对等体,R1学习到的5.5.5.5是经过R2到达R5,当R2断电了之后,R1到达R5会马上切换到经过R3,但是当R2重新启动了,OSPF邻居恢复,R1还是会优选从R2走,这个时候虽然OSPF邻居建立成功,但是BGP邻居还没有成功,此时5.5.5.5的路由并没有传给R2,R1将到达5.5.5.5的数据包发送到R2,R2没路由会丢弃,BGP邻居建立一定比OSPF久,这个过程就会导致丢包
解决方法:
ospf 1
stub-router on-startup 90 //配置了on-startup命令,90秒内此路由器产生的所以LSA的cost值都会是65535,如果不配置,则表示此路由器始终为STUB路由器,产生的LSA的cost值都为65535