OSPF详解及简单配置

动态路由协议:直连路由器之间构建邻居关系,通过收发各类数据包进行共享信息,来获取未知的路由信息,基于某种算法自动生成未知网段最优路径的解,将其加载在路由表中。
判断一个网络协议的好坏,通常关注三方面:

  • 收敛速度快
  • 占用资源少
  • 选路佳

各类协议的优缺点:
1、RIP
适用于小型网络中,选路依靠跳数(最大15跳),选路不佳
2、EIGRP和OSPF
两个协议都适用于大型网络中,EIGRP属于距离矢量型协议,在超大型网络中没有OSPF选路更佳,所以它采用丰富的度量来优选路径,收敛速度快,占用资源少;OSPF属于链路状态协议,共享拓扑选路佳,不易出环,但其收敛速度较慢,且占用资源大,在超大型网络中无法生存

在超大型网络中,我们一般跑EIGRP/ISIS,但EIGRP–私有,需要全网都为Cisco设备,ISIS–OSPF精简版,失去了选路精确能力

路由协议的分类
1、根据AS(自治系统)
IGP 内部网关协议,AS内适用-------RIP/OSPF/EIGRP/ISIS
EGP 外部网关协议,AS间适用--------EGP/BGP
2、IGP的分类
1)根据更新时是否携带掩码
有类别 不携带 RIPv1/EGP
无类别 携带 OSPF/EIGRP/ISIS/BGP
2)根据工作特点
链路状态型 共享拓扑 OSPF/ISIS
距离矢量型 共享路由表 RIP/EIGRP

RIP周期更新30s的作用: 用于保活,对端无法沟通时的确认,无需确认收到路由更新 EIGRP/OSPF: hello包 用于保活
更新信息非周期发送,需要确认包 OSPF虽有30min的周期更新是为了防止对路由信息的遗漏

OSPF详解

一、简单介绍
OSPF是无类别链路状态型协议,但具有距离矢量特征,基于拓扑收敛(防环,选路佳)更新量大,故为它设计了许多减少更新l量的方式
区域规划-----区域间传路由,区域内传拓扑
合理的IP规划-------一个区域汇总为一条路由,利用子网划分
特殊区域-----减少LSA的更新

二、OSPF的数据包
HELLO 发现、建立、保活邻居
DBD 数据库描述包–主从关系的选举,共享本端路由信息的条目
LSR 链路状态查询包–询问对端本端所需要的未知网段的信息
LSU 链路状态更新包–回答对端的LSR,携带各类LSA
LSACK 链路状态确认包—接收到对端的LSU做出确认,保障可靠性

三、OSPF的状态机
down 两个路由器互不认识,开始收发hello包进入下一状态
init 本端收到带有本端route-id的hello包,进入下一状态
two-way 邻居关系建立的标志
条件匹配 (以太网中,进行DR选举,30s)
成功进入下一状态,失败保持为邻居
exstart 向对端发送类hello的假DBD包进行主从关系的选举,route-id大的先进入下一状态
exchange 向对端发送DBD包共享本地数据库条目
loading state 基于收到的DBD向对端发送LSR,查询未知网段的路由信息,对端发送LSU,本端收到LSU发送LSACK应答
full 两端LSA更新完毕,邻接关系建立

四、OSPF的工作机制
启动宣告配置完成后,路由器通过组播224.0.0.5发送hello包,收到携带有本端route-id的hello包,建立邻居关系,生成邻居表。
基于表中所有邻居进行条件匹配,匹配失败则保持邻居关系,仅hello包保活即可,匹配成功,双方发送假的DBD包,不携带拓扑信息,进行主从关系的选举,route-id大的邻居先发送真的DBD数据库描述包,对端收到DBD后发送LSR查询未知路由条目的信息,本端用LSU进行应答,对端收到LSU后用LSACK应答,本地收到所有邻居的LSA后,生成LSDB数据库表。
LSDB基于SFP算法计算出所有未知网段的最优路径,加载到路由表中。
收敛完成,仅hello包周期保活所有邻居和邻接关系,30min周期进行DBD的收发来进行纠错。

OSPF的收敛行为----LSA的洪范,即LSDB的同步

结构突变情况下:
1、新增网段 触发更新,使用DBD来告知所有邻居,邻居进行LSR/LSU/LSACK收敛
2、断开网段 触发更新,使用DBD来告知所有邻居,邻居进行LSR/LSU/LSACK收敛
3、无法沟通 dead time以及最大老化时间解决
正常邻居间收发hello,若dead time依然没有hello,断开邻居关系,删掉从此邻居处学习到的路由
若邻居关系正常,hello正常,30min没有DBD更新,每条LSA后方有老化时间,最大3609s,到达最大老化时间删除此条LSA。

五、OSPF的基础配置
启动:

[r1]ospf 1 router-id 1.1.1.1  启动时需要定义进程号,仅具有本地意义;  建议同时配置ROUTER-ID;
                              手工---环回最大数值IP地址—物理接口最大数值IP地址

宣告:

[r2]ospf 1 router-id 2.2.2.2
[r2-ospf-1]area 0
[r2-ospf-1-area-0.0.0.0]network 12.1.1.2 0.0.0.0
[r2-ospf-1-area-0.0.0.0]network 2.2.2.0 0.0.0.255
[r2-ospf-1-area-0.0.0.0]q
[r2-ospf-1]area 1 
[r2-ospf-1-area-0.0.0.1]network 23.1.1.1 0.0.0.0

OSPF的区域划分规则:
1、 星型结构—所有的非骨干区域必须连接到的骨干区域,否则不能进行区域间路由共享
2、 ABR—区域边界路由器 同时工作的多个区域间;合法ABR必须同时工作在骨干区域,否则不能进行区域间的路由共享;
启动配置完成后,路由器间使用hello包收发建立邻居关系,生成邻居表

[r2]displayospf peer
Area 0.0.0.0 interface 12.1.1.2(GigabitEthernet0/0/0)'s neighbors
 Router ID: 1.1.1.1          Address: 12.1.1.1        
   State: Full  Mode:Nbr is  Slave  Priority: 1
   DR: 12.1.1.1  BDR: 12.1.1.2  MTU: 0    
   Dead timer due in 35  sec
Retrans timer interval: 5 
   Neighbor is up for 00:18:48     
   Authentication Sequence: [ 0 ]

邻居关系建立后,邻居间进行条件的匹配;匹配成功建立邻接关系,同步LSDB完成后,本地生成LSDB—数据库表

[r2]display ospflsdb   查看数据库的目录;内部存在各种类别的信息,需要具体查看

LSDB同步完成后,本地基于SFP算法,计算到达所有未知网段的最短路径,然后将其加载到路由表中;

[r3]display  ip routing-table  查看路由表
Destination/Mask    Proto   Pre  CostFlags NextHop         Interface
        1.1.1.1/32  OSPF    10   2           D   23.1.1.1        GigabitEthernet0/0/0
        2.2.2.2/32  OSPF   10   1           D   23.1.1.1        GigabitEthernet0/0/0
[r3]display ip routing-table protocol ospf  查看本地所有通过OSPF协议学习到的路由

[r1]display ospf routing    查看本地工作OSPF的直连,及本地通过OSPF学习到的路由
Destination        Cost  TypeNextHopAdvRouter       Area
 1.1.1.1/32         0     Stub       1.1.1.1         1.1.1.1         0.0.0.0
 12.1.1.0/24        1     Transit    12.1.1.1        1.1.1.1         0.0.0.0
 2.2.2.2/32         1     Stub       12.1.1.2        2.2.2.2         0.0.0.0
 3.3.3.3/32         2     Inter-area12.1.1.2        2.2.2.2         0.0.0.0
 23.1.1.0/24        2     Inter-area12.1.1.2        2.2.2.2         0.0.0.0
  类型标记为Inter-area代表其他区域产生的路由条目

OSPF的度量值: COST=接口带宽/参考带宽
默认参考带宽100M
若接口实际带宽大于默认带宽,COST为1,可能选路不佳,需要修改参考带宽,全网需一致

[r1]ospf 1
[r1-ospf-1]bandwidth-reference 1000

六、OSPF邻居关系成为邻接关系的条件----条件匹配

接口网络类型的分类: 基于接口的二层封装技术
点到点:一个网段只能存在两个节点,即使强制连接第三方也无法通信;串行链路上,二层封装为PPP或HDLC
MA:多路访问,一个网段可以存在多个节点
BMA:广播型多路访问,在一个MA网络中存在广播机制;二层封装为以太网
NBMA:非广播型多路访问,MA中不存在广播机制;二层封装为帧中继–串行链路 MGRE

在点到点网络中,OSPF邻居均正常从邻居关系变为邻接关系。
在MA网络中,若OSPF所有邻居关系均升为邻居关系将导致大量的重复更新,(距离矢量型路由协议RIP/EIGRP使用了接口水平分割),由于OSPF是基于数据库同步比对来进行收敛,故不支持接口水平分割。
OSPF在MA网段需要进行DR/BDR的选举,非DR/BDR不建立邻接关系。
选举规则:
1、比较接口优先级
0-255,大优,MA默认接口优先级为1,点到点链路接口中,默认不进行选举,接口优先级为0
2、比较route-id,大优
干涉选举:
修改接口优先级 默认非抢占原则,需重启OSPF进程
建议修改优先级为0,不参与选举

七、OSPF的数据库表–不同类型的LSA

每条LSA均存在以下信息:
type 类型
Ls id link-id
Adv rtr 通告者的route-id
Ls age 老化时间,正常下到1800s刷新,触发更新下直接变为0,3609s后没有变化直接删除LSA
Len 长度
Options 选项
Seq# 序列号
Chkm 校验和

什么情况下LSA会更新:
1、1800到期会更新
2、触发更新(接口地址变化(增加,或删除),修改接口开销值,删除接口,或者删除通告)

OSPF的LSA是1800会更新一次更新一次序列号会加一
LSA的新旧比较
1、会先比较序列号,序列号越大越优,
2、如果序列号相同,会比较校验值(checksum)越大越优
3、如果校验值也相同,会比较LSA Age时间,是否等于MAX-age时间(3600)
4、如果age时间不等于max-age时间,会比较他们的差值,如果差值大15分钟(900秒),小的优
5、如果age时间不等于max-age时间,会比较他们的差值,如果差值小于15分钟,说明是同一条LSA,忽略其中一条

LSA类型 传播范围 通告者 携带信息
router 域内 区域内每台路由器 本设备直连拓扑
network 域内 每个网段的DR 每个MA网段的拓扑
sum-net 整个OSPF域 ABR 域间路由
sum-asbr 除ASBR所在区域的整个OSPF域,ASBR所在域基于1类LSA进行拓扑演算 ABR 标记ASBR的位置
external 整个OSPF域 ASBR,经过下一个ABR修改为新的ABR 域外路由
nssa 本地的NSSA区域,离开本地转为5类 ASBR 域外路由
LSA类别 link-id 通告者
router 通告者的router-id 本区域每台路由器
network DR的接口IP MA网段的DR的router-id
sum-net 域间路由的网段 ABR,经过下一个ABR时,修改为新的router-id
sum-asbr ASBR的router-id 和ASBR同一区域的 ABR,经过下一个ABR时修改为新的router-id
external 域外路由的网段 ASBR
nssa 域外路由网段 ASBR,离开本区域后变为新的ASBR
 [r4-ospf-1]import-route rip 1   将RIP进程1重发布到OSPF的进程1
 [r5]display ospf lsdb ase originate-router  查看5类LSA 
 ASBR—自治系统边界路由器—协议边界路由器

八、优化OSPF协议 减少LSA的更新量

正常1类LSA一个路由器一条LSA,2类LSA一条网段一条LSA,3类和5类一条路由一条LSA,4类是一个ABR产生一条

1、汇总–减少骨干区域的更新量
1)域间路由汇总,在ABR上,需手动在黑洞处空接口防环
不允许汇总自己学的路由,只能汇总本地通过该区域1、2类LSA产生的路由

[r1]ospf 1
[r1-ospf-1]area 2   只能汇总本地通过该区域1、2类LSA产生的路由
[r1-ospf-1-area-0.0.0.2]abr-summary 5.5.4.0 255.255.252.0 

2)域外路由的汇总,在ASBR上汇总

[r4]ospf 1
[r4-ospf-1]asbr-summary 99.1.0.0 255.255.252.0

2、特殊区域–减少非骨干区域的更新量 不存在骨干区域,不存在虚链路
1)不存在ASBR
末梢区域 stub
拒绝4、5类LSA,出现一条3类缺省,指向骨干区域;需在该区域所有路由器上配置

[r5]ospf 1   
[r5-ospf-1]area 2
[r5-ospf-1-area-0.0.0.2]stub

完全末梢区域 stub no-summary
末梢区域的基础上,进一步拒绝3类LSA,只存在一条3类缺省;仅在ABR上定义即可

[r1-ospf-1-area-0.0.0.2]stub no-summary

2)存在ASBR
非完全末梢区域 NSSA
拒绝4、5类LSA
拒绝其他区域ASBR产生的4/5类LSA;本区域内的ASBR产生的5类LSA以7类在本区域传播,从本区域进入骨干区域时由新的ASBR将7类转为5类在其他区域传播,本地产生一条指向骨干的7类缺省
Cisco内:不产生缺省

[r4]ospf
[r4-ospf-1]are 1
[r4-ospf-1-area-0.0.0.1]nssa 

完全NSSA
在NSSA的基础上进一步拒绝3类LSA,只存在一条3类缺省

 [r3-ospf-1-area-0.0.0.1]nssa  no-summary

ISP连接网络后与特殊区域自动产生的缺省可能成环,则运营商在那个区域,哪个区域不能调为骨干区域

九、过滤OSPF的路由传输
利用OSPF的汇总,在汇总条目的同时要求OSPF协议传递这些汇总路由来实现路由过滤

ospf 1 router-id 4.4.4.4 
area 0.0.0.1 
abr-summary 192.168.1.144 255.255.255.248 not-advertise   该条路由将不能再传递—3类


[r6]ospf  1 
[r6-ospf-1]asbr-summary 192.168.1.144 255.255.255.248 not-advertise   
[r6-ospf-1]asbr-summary 192.168.1.132 255.255.255.252 not-advertise  拒绝7类的传递

注、此处的汇总网络号,实际可以是具体的明细路由

十、OSPF的不规则区域
规则区域:星型结构(骨干在中心,骨干与非骨干都有ABR连接)----减少LSA更新量,性价比高
为了实现以上规则,OSPF必须存在的硬性条件:
1、直连的邻居间hello包中区域ID必须完全一致;若不一致将无法建立邻居关系—ABR
2、一台ABR若没有连接到骨干区域,将不能进行区域间路由共享—星型结构
3、只要ABR连接到的骨干区域,可以同时再连接N个非骨干,且进行两两区域间路由共享

不规则区域:
1、原理骨干的非骨干区域
2、不连续骨干

OSPF详解及简单配置_第1张图片
解决方法:
1、tunnel
在两台ABR上建立tunnel,将其宣告到OSPF协议中,逻辑上将这条链路加到区域0中,直连两个ABR,实际数据加了一层封装还是走物理链路。
缺点:
周期和触发的信息将对中间的穿越区域造成资源的占用;选路不佳

区域2的路由会传给1,tunnel也会将2路由给1,2会选择tunnel学习2的路由,因为骨干区传的路由优于骨干区路由,造成选路不佳

interface Tunnel0/0/0
 ip address 10.1.1.1 255.255.255.0 
 tunnel-protocol gre
 source 34.1.1.1
destination 45.1.1.2

2、虚链路
网络中合法ABR和非法ABR之间建立一条虚链路,由合法ABR授权非法ABR进行区域间路由共享(两个ABR上都要定义)
优点:没有新生链路,选路正常
缺点:cisco设备中OSPF虚链路为避免对中间穿越区域周期保活和更新产生资源占用,取消了周期的hello包和周期更新;---- 不可靠,不稳定
华为设备中依然保留周期的hello包和更新----占用中间区域资源

 [r3]ospf 1 
 [r3-ospf-1]area 1 
 [r3-ospf-1-area-0.0.0.1]vlink-peer 5.5.5.5    此处5.5.5.5为对端ABR的router-id
 [r3]display ospf vlink

3、OSPF多进程双向重发布(建议)
OSPF多进程,进程号仅具有本地意义,邻居间建立邻居关系时可以使用不同的进程号,若在一台设备上同时启动多个进程,那么不同进程存在自己的邻居关系,生成不同的数据库(不共享);最终将所有的数据库计算的路由加载到同一张路由表中。
在解决不规则区域时,可以让非法ABR将不同OSPF区域工作在不同的OSPF进程中,之后双方双向重发布来实现路由共享。
优点:选路正常,无周期信息,但依然可靠(触发更新,邻居关系周期保障)

[r2]ospf  1 
[r2-ospf-1]import-route  ospf  2 
[r2-ospf-1]q
[r2]ospf  2 
[r2-ospf-2]import-route  ospf  1

十一、OSPF扩展知识点
1、link-id相同
若一台ABR将两条3类LSA导入其他区域(一条汇总一条明细);同时这两条LSA的link-id会相同;
假设:短掩码网段先进入,link-id正常显示;长掩码进入时link-id加反掩码
20.1.0.0/16–link-id 20.1.0.0
20.1.0.0/24–link-id 20.1.0.255
2、OSPF选路规则
(1)AD管理距离无关的一种情况:

r2(config)#router ospf 1 
r2(config-router)#distance 109 1.1.1.1 0.0.0.0

本地从RID为1.1.1.1的设备处学习到路由条目,管理距离修改109;
一台路由器从两个OSPF邻居处学习到了两条相同的路由时,仅比较度量值,不关注管理距离;因为仅针对一台邻居进行管理距离修改的结果是要么两台都被改,要么修改失败;-关注IOS版本—有时修改RID大路由器管理距离生效,有时需要修改RID小的设备;

(1)AD管理距离无关的第二种情况
OSPF详解及简单配置_第2张图片O IA 与 O IA路由相遇,到达相同目标的两条3类路由,这两条路由均通过非骨干传递,仅关注cost值,不关注管理距离;
若一条通过骨干区域传递,另一条同过非骨干区域传递–非骨干传递的路由无效
OSPF的水平分割:区域标号为A的3类LSA,不能回到区域A;

两条均为OE2或者均为N2,起始度量相同; 关注沿途的累加度量 (OE2路由在表中度量默认不显示内部度量,仅显示起始度量)
两条均为OE2或者均为N2,起始度量不同;优先起始度量小的路径;
注:以上设计是便于管理员快速干涉选路;

3、优先级
拓扑优于路由 1/2LSA计算所得路由优于3/4/5/7类计算所得
内部优于外部 3类优于4/5/7类
类型1优于类型2 E1优于E2,N1优于N2,E1优于N2,N1优于E2;
E1与N1相遇,或E2与N2相遇,先比总度量(起始+沿途)小优;度量一致5类优于7类

你可能感兴趣的:(ccnp)