一、预习:
1、介绍:
是一种基于接口的典型的链路状态路由协议,协议号89,把大型网络分隔为多个较小、可管理的单元:Area,管理距离110;OSPF基于IP,使用了LSAck包来保证包数据的可靠性;
a.减少LSA泛洪范围,有效地把拓朴变化 控制在区域内,达到网络优化的目的
b.在区域边界做路由汇总,减少了路由表
c.充分利用ospf特殊区域的特性,进一步减少LSA泛洪,从而优化路由
d.多区域提高了网络的扩展性,有利于组建大规模的网络
2、定义了4种网络类型(接口视图下配置):
P2P、Broadcast、NBMA、P2MP,(其中p2p、p2mp不用选举DR、BDR)
3、5种包:
Hello、DD、LSR、LSU、LSAck(对LSA的确认)
4、7个状态:
down、init、2-way、Exstart、Exchange、Loading、Full
Attempt(一般称为7个状态,此第8种状态仅在 NBMA 网络类型下,单播建邻居时,用 peer 对端IP 的方式单播发 hello 后的状态)
5、OSPF之间,两种稳定的关系:
a. 邻居关系:DROther和DROther之间是邻居关系,状态停在2-way,它们之间只交换Hello包,不交换LSP报文,LSP报文只发给DR和BDR
b. 邻接关系:相互交换LSA的OSPF邻居关系建立邻接关系:DR和BDR、BDR和DR、DROther建立邻接关系,状态FULL,既发Hello包又交换LSA报文
6、6种区域:
a. 骨干区域:连接其它ospf区域的中央区域,通用用Area 0表示
b. 标准区域:通用区域,传输区域内、区域间路由和外部路由
c. Stub区域:拒绝4、5类路由,即外部路由消失,且ABR产生一条3类LSA默认路由;条件:area 0 不能配成stub区域;stub不允许有ASBR存在;stub不能允许有虚链路;stub无4类、5类lsa存在;stub区域的ABR会下发给stub区域一条去往其他区域的3类默认路由)
d. Totally Stub区域:拒绝3、4、5类路由,即仅剩域内路由,且ABR自动下发一条3类LSA默认路由
e. NSSA:拒绝4、5类LSA,即无外部路由,ABR产生一条7类默认路由(条件:area0不能配置成nssa;需要在区域内所有区域接口上配置;不允许虚链路)
f. Totally NSSA:拒绝3、4、5类LSA,引入7类LSA
7、LSA类型:
a. 1类:Router,每个设备都会产生,是始发路由器产生的 lsa,LinkState-ID 和 发布者 ADV 都是自己的路由ID,只有IP没有掩码,描述了设备的链路状态和开销,在所属区域内传播。内容中的 link-type 分为 stubnet、p2p、transnet、virtual;scope是区域内传播
b. 2类:Network,由 DR 产生(所以仅在选举 DR BDR 的 MA 和 NBMA 中产生),是 DR 的接口地址,描述的是本网段的链路状态,LinkState-ID 是 DR 的接口地址,ADV 是DR 的 route-id,有 IP 和掩码;scope 是区域内传播
c. 3类:Network-Sumary,由ABR产生,把收到的同区域一类和二类LSA,和其它ABR传来的三类LSA(Advertising Router改为自己)的路由汇总起来,然后在ospf区域内传播
d. 4类:是由ASBR区域的ABR生成的,用于描述ABR能够到达的ASBR的路由信息,Link ID 为目的ASBR的RID;ASBR路由在经过ABR时,ADV路由ID会改变为ABR的路由ID,通告给除ASBR所在区域的其他相关区域(dis ospf lsdb asbr)
e. 5类:AS-External,由ASBR产生,用于描述到ospf AS外的目标网段信息,Link ID是域外目标前缀,一条域外路由对应一条五类LSA,通告者的路由信息在传递过程不变,通告到所有区域,五类LSA不允许进入stub、nssa区域(dis ospf lsdb ase)
f. 7类:NSSA,由ASBR产生,描述到AS外部的路由,仅在NSSA区域内传播,在NSSA中ASBR针对外部网络产生类似于Type5的LSA,到达ABR的时候,nssr ABR 将7类转换为5类的外部路由传给area0区域(若有多个ABR,则由RID大的负责转换)(dis ospf lsdb nssa)
分别显示1\2\3\4\5\7类型路由:dis ospf lsdb router|network|summary|asbr|ase|nasa
8、ase外部路由类型:
type1:内部开销+外部开销
type2:外部开销
E1优于E2
9、组播地址:
OSPF的两个组播地址:224.0.0.5、224.0.0.6;5是通用的,所有启用OSPF的设备都监听这个地址,用这个地址收发Hello包;6是仅DR和BDR、和DROthers发送LSU报文给DR、BDR的目的地址,当DR收到此报文后,再将此LSA发给0.5的DROthers
10、DR、BDR选举:
a. 优先级大者优(0-255),默认1;0 不参加选举
b. 再比较RouterID,大者优
11、常用命令:
dis ospf lsdb | router |network |summary | nssa | ase | asbr 查看lsdb数据库
dis ospf peer brief 查看邻接关系
dis ospf interface g0/0/0 验证接口角色DR/BDR/DRother、连接类型、cost 值、Hello|Dead 时间、mtu(默认华为不检查 mtu,cisco 检查mtu)...这里显示的是端口状态,而不是路由器状态
dis ospf vlink 查看虚链路信息
dis ospf routing | dis ip routing-table protocol ospf 查看ospf路由
dis ospf abr-asbr 查看ABR和ASBR
dis ospf error 查看错误信息
dis ospf lsdb router originate-router 查看lsdb中的路由来源
network ip mask 区域视图下宣告IP地址|段
ospf enable area n 接口视图下开启ospf(同上条效果相同)
preference x ospf进程视图下,配置优先级,默认为10
ospf network-type p2p|p2mp|broadcast|nbma 接口视图下,更改网络连接类型
ospf dr-priority 0-255 接口视图下,配置ospf优先级,0 为不参加选举
ospf network-type p2p|p2mp|broadcast|nbma| 接口视图下,更改网络类型
ospf cost <1-65535> 接口视图下,更改网络开销
ospf filter-lsa-out all | acl xxx 接口视图下,过滤 lsa 报文
reset ospf process 用户视图下,重启ospf进程
default-route-advertise allways 出口设备注入默认路由
peer ip x.x.x.x ospf进程视图下,用单播建立邻居
silent-interface G0/0/0 | all ospf进程视图下,静默ospf(不收发 ospf 报文)
filter-policy acl xxx import ospf 进程视图下,根据 acl 表过滤相应的 lsa 报文
import route direct | bgp | isis | rip | static | unr [cost <1-255> | route-policy <xxx> | tag <xxx> | type <1|2>] 进程视图下,引入外部路由
abr-summary ip mask 区域视图下,手工汇总某段路由
vlink-peer <router-id> ospf区域下,建立虚链路
vlink-peer ip 区域视图下,配置对端虚链路IP,建立路由关系
default-cost <0-16777214> 区域视图下,配置默认cost值
dis ip int brief 查看所有接口的IP地址
dis osfp routing route-id x 查看去往route-id的路由
dis ospf error | interface G0/0/0 | lsa | packet #查看ospf错误信息
二、多区域ospf例子
1、查看3类lsa:
a、将区域2和区域0的设备打开,将区域2设置为stub区域,然后在R1上看可到三类的默认路由:
* stub和totally stub的区别:stub和totally stub配置后,都可看到ABR下发了一条3类LSA,但totally stub配置后,仅剩区域内路由和一条默认路由了,ABR会连其他区域的3类路由都不传递到stub区域内了;totally stub配置方法为stub后面加 no-summary,仅需在ABR上配这个参数即可
b、在R1上设置三个环回口,将区域2设置为totally stub,在R3上可看到3类lsa汇总路由,ADV都是BDR R2:
<R1>dis interface LoopBack | in 172
Internet Address is 172.1.1.1/24
Internet Address is 172.1.2.1/24
Internet Address is 172.1.3.1/24
<R1>dis current-configuration configuration ospf
[V200R003C00]
#
ospf 1 router-id 1.1.1.1
import-route direct
area 0.0.0.2
network 0.0.0.0 255.255.255.255
stub
#
return
<R2>dis curr con ospf
[V200R003C00]
#
ospf 1 router-id 2.2.2.2
area 0.0.0.0
network 23.1.1.0 0.0.0.255
area 0.0.0.2
abr-summary 172.1.0.0 255.255.252.0
network 10.1.1.0 0.0.0.255
stub
#
return
2、查看5类lsa:
打开区域100的设备,配置IP61.1.1.6、环回口6.6.6.6,可在R3上看到5类lsa:
<R6>dis ip interface brief
*down: administratively down
^down: standby
(l): loopback
(s): spoofing
The number of interface that is UP in Physical is 3
The number of interface that is DOWN in Physical is 2
The number of interface that is UP in Protocol is 3
The number of interface that is DOWN in Protocol is 2
Interface IP Address/Mask Physical Protocol
GigabitEthernet0/0/0 61.1.1.6/24 up up
GigabitEthernet0/0/1 unassigned down down
GigabitEthernet0/0/2 unassigned down down
LoopBack0 6.6.6.6/32 up up(s)
NULL0 unassigned up up(s)
<R6>dis curr configuration ospf
[V200R003C00]
#
ospf 1 router-id 6.6.6.6
import-route direct
area 0.0.0.100
network 0.0.0.0 255.255.255.255
#
3、查看4类lsa:
R3和R1处于不同的区域,对于R3来说,R1是ASBR,需要通过ABR R2将5类的lsa 转为4类的lsa,将AVR变为ABR的Router ID,才能和asbr的R1通信:
4、查看7类lsa:
开启area1区域内的设备,配置为nssa,可在R3上看到7类lsa
三、外部路由过滤(3类、5类LSA过滤)
两种方式:
1、在接口方式下配置ospf filter-lsa-out ase aclnumber针对5类lsa进行过滤(acl写匹配)
ospf filter-lsa-out|in all | ase | nssa | summery (所有lsa、3类、5类、7类)
2、在ospf进程下使用filter-policy aclnumber export针对5类lsa进行过滤
area 10]filter n export | import
acl number 2001
rule deny source 192.168.0.0 0.0.255.255
rule permit any
域内路由器可以在区域下,使用 filter-policy aclnumber import |export (加入路由表之前进行过滤),仅针对自己的入方向,如果在abr上做,则影响到相邻的区域,这时abr上会出现有lsa,但无路由传递的现象
另外 ,abr、asbr上也可以用参数not-advertise进行汇总不通告,也可以形成5类lsa的过滤:
abr-summary ip mask not-advertise
asbr-summary ip mask not-advertise
acl 2001
rule 5 permit source 6.0.0.0 0.255.255.255
#
route-policy abc permit node 10
if-match acl 2001
#
ospf 10 route-id 6.6.6.6
import -route direct route-policy abc
对于外部路由,也可以在区域引入时进行过滤:import-route direct route-policy acl
ospf
import-route isis
area 10
filter-policy aclnumber export isis|direct|static
四、ospf路由控制:
1、调整接口开销
2、设置等价路由 maximum load-balance n //配置ospf的路由条目值,默认开启,默认8条
3、引入外部路由
4、路由聚合
5、缺少路由通告
6、filter-policy
7、对发送的lsa 进行过滤
五、ospf快速收敛概述:
1、PRC(partial Route Calculation)部分路由计算;ospf只有一种prc:当网络上路由发生变化 的时候,只对发生变化的路由进行重新计算,prc不计算节点路径,而是根据spf算法算出spf来更新路由
2、智能定时器作用:1、控制lsa的生成和接收;2、控制路由计算
3、ip frr(fast reroute)快速重路由实现备份链路的快速切换,也可与bfd联动实现对故障的快速感知。ospf ip frr是动态ip frr,利用lfa(loop-free alternates)算法预先计算出备份路径,保存在转发表中,以备在故障发生时快速切换到备份链路中,保证流量不中断,从而达到流量保护的目的,该功能可将故障恢复时间降低到50ms以内。
基本思路是:以可提供备份链路的邻居为根节点,利用spf算法计算出到目的节点的最短距离 。然后,按照不等式计算出开销最小且无环的备份链路
六、提个问题:如何让area 100的nssa区域的外部路由能和area0互访?
答案:在ASBR的R1上引入默认路由,这样就能让R6上的外部路由可以访问区域0
[R1-ospf-1]dis this
[V200R003C00]
#
ospf 1 router-id 1.1.1.1
default-route-advertise always
import-route direct
area 0.0.0.2
network 0.0.0.0 255.255.255.255
area 0.0.0.100
abr-summary 172.1.0.0 255.255.252.0
network 61.1.1.0 0.0.0.255
nssa
#
return
* ABR和ASBR的区别:ABR是区域边界路由器,ASBR是连接其它自治系统的边界路由器,一个路由器可以有同时有两种角色
* stub和nssa的区别,nssa外部可以引入外部路由,能看到明细路由,stub外部看不到明细路由;nssa下发7类,stub下发3类
* 华为 ma 网络默认不检查 mtu 值,不同则卡 exstart 或者 exchange 状态,但 cisco 默认要检查,所以不同的设备建邻居时,华为改时用ospf mut enable,同时配置 mtu 值 ;思科改时用 ip ospf mtu-ignore
* tips1:重启ospf进程方法1:在DR、BDR接口视图下,声明ospf dr-priority 0,不参与DR选举后,ospf进程重置,立刻生效;2、ospf端口关闭重启;3、用户视图下:reset ospf process
* tips2:装HCL模拟器后,发现virtualbox版本高了,导致ensp里的设备无法启动,网上查了下,要下5.2.44版本可兼容两个模拟器: https://download.virtualbox.org/virtualbox/5.2.44/VirtualBox-5.2.44-139111-Win.exe