一、思维导图
二、Markdown 文档
第一章
*前言:
1、定义:开放式最短路劲优先协议 / 无类别(携带掩码)链路状态(基于拓扑)型GIP(AS内部)协议
2、最大缺点:更新量大-- > 为了在中大型网络生存-->进行结构化的部署-->区域划分、地址规划
3、更新方式
触发更新
周期更新:30min/次
组播更新:224.0.0.5--all ospf 224.0.0.6--DR/BDR
4、版本类型
v1、v2、v3,目前使用v2居多,v3属于IPV6使用
5、跨层封装3层报头,协议号89;支持等开销负载均衡
一、OSPF数据包类型
1、OSPF数据包的头部结构
2、跨层封装到IP报头,协议号89
3、5个类型数据包
Hello包:
组播周期发送,用于邻居、邻接关系的发现、建立、周期保活;在Hello包中存在已知邻居的RID,用于保活这些邻居
DBD包:
数据库描述包
LSR:
链路状态请求
LSU:
链路状态更新,携带具体的LSA信息
LSACK:
链路状态确认
二、状态机(7个)
Down:
一旦接收到Hello包,就进入下一个状态机
Init:初始化
接收到的Hello包中,若存在本地RID,将进入下一个状态机
2way:双向通讯
邻居关系建立的标志
条件匹配机制:
P2P(点到点)网络将直接进入下一个状态机
MA网络,将进行DR/BDR选举,成功将进入下一个状态机;失败不能进入下一个状态机
Exstart:预启动
使用不携带信息的DBD包进行主从关系选举,RID数值大的为主,优先进入下一个状态机
Exchange:准交换
使用DBD进行数据库目录的共享,需要ACK确认
Loading:加载
基于对端数据库目录,对照本地数据库,然后使用LSR来获取未知的LSA信息;对端使用LSU来共享LSA,需要ACK确认
Full:转发
邻接关系建立的标志
三、OSPF工作过程
过程:
1、预启动配置完成后,邻居间收发Hello包,建立邻居关系,生成邻居表
2、进行条件匹配:
匹配失败的邻居将保持为邻居关系,仅Hello包周期保活即可;
匹配成功的邻居,将进行邻接关系的建立;过程中先使用DBD进项目录交换,再使用LSR/LSU/LSACK来获取本地未知的LSA信息,最终完成邻接关系间的LSDB同步,生成数据库表
3、本地基于LSDB表,生成有向图-->树形结构-->最短选路
SPF算法,基于树形结构计算本地到达所有未知的最短路径,然后将其加载到路由表中
4、收敛完成 ,Hello包周期保活,每30min邻居间再周期对比DBD包
结构突变:
1、新增网段:直连新增网段的设备,直接使用更新包告知本地所有的邻接
2、断开网段:直连断开网段设备,直接使用更新包告知本地的所有邻接
3、无法沟通:Dead time倒计时结束,邻居间断开关系,删除信息
名词拓展:
1、LSA:链路通告,在不同环境下产生不同的拓扑或路由,一条信息即为一个LSA
2、LSDB:链路状态数据库,即整个网络的LSA集合
3、LSDB同步:OSPF的收敛行为,整个网络的LSDB需要一致
4、LSA洪泛:OSPF的收敛行为,需要整个网络均接收到同一条LSA
四、OSPF基础配置
1、基础配置:
[r1]ospf 1 router-id 1.1.1.1
启动时可以定义进程号,进程号仅具有本地意义;每一个OSPF进程均需要RID,全网唯一;生成顺序-- 手写--环回接口最大数值的ip地址 -- 物理接口上数值最大的ip地址
[r1-ospf-1]area 0
[r1-ospf-1-area-0.0.0.0]network 1.1.1.1 0.0.0.0
- 宣告:(1)区域划分;(2)激活接口--可以收发ospf的信息 ;(3)传递接口信息--该接口信息将被共享给其他邻接
2、OSPF的区域划分规则:
(1)星型拓扑 --- 区域0为骨干,大于0为非骨干,所有非骨干必须连接到骨干区域方可正常共享路由
(2)区域间必须存在ABR -- 区域边界路由器
3、DBD包的参数:
(1)MTU:
OSPF协议在DBD包中携带与邻居直接连接口的MTU值,要求邻居的MTU值必须完全一致,否则将卡在Exstart状态机,默认华为设备不检测这个MTU值;
开启命令:[r1-g0/00]ospf mtu-enable
(2)隐性确认:
一台设备使用和另外一台设备一样的序列号来确认对端的数据 OSPF中,“从”来对“主”进行隐性确认
(3)描述字段:
I为1,表示本地发出的第一个DBD包
M为0,表示本地发出的最后一个DBD包
MS为1,表示为“主”
S为0,表示为“从”
4、OSPF的查看命令:
查看数据库:display ospf lsdb
查看本地所有与OSPF相关的路由信息(发送+接收):display ospf routing
修改设备参考带宽:bandwidth-reference 1000;注意--若进行修改则需要整个网络的设备均进行一样的修改
五、OSPF邻居关系-->邻接关系的条件
1、P2P(点到点)网络:
邻居正常必然成为邻接关系
2、MA网络(点到多点)
(1)由于OSPF不支持接口水平分割,故若两两设备之间均为邻接关系,将导致大量的重复更新,因此必须进行DR/BDR选举,DR/BDR使用组播224.0.0.6;在该网段内的非DR/BDR设备之间只能建立为邻居关系
(2)选举规则:先比较参选接口的优先级(0-255),数值大的优,0表示不参选,优先级默认为1,;若优先级一致,则比较参选设备的RID值,数值大的优
(3)干涉选举(修改优先级):ospf dr-priority 0
(4)注意:DR选举是非抢占性的,故修改优先级后需要,重新启动OSPF进程:restart ospf process
六、OSPF的接口网络类型
1、前言:OSPF的协议在不同网络类型的接口上,其工作方式也不同
查看接口工作方式命令:display ospf interface g0/0/0
2、网络类型:
LoopBack:
P-2-P,实际为环回专用工作方式,无Hello包,32位主机路由传递
点到点:
P-2-P,Hello time 10s,不选DR,直接建立邻居关系
BMA(以太网):
Broadcast,hello time 10s,DR/BDR选举
NBMA(MGRE):
在MGRE中,由于MGRE和GRE均使用tunnel接口,故工作方式均默认为p2p在普通的GRE中,由于GRE本身就是点到点网络类型,所有p2p工作方式正常;
而MGRE为多点的MA环境,再使用p2p公司将出现故障:p2p工作方式仅允许存在一个邻居;华为默认仅和最先接收到的hello邻居建立;
Cisco 为循环建立邻居关系; --- 均无法在该网段正常收敛
- 解决建邻问题---修改网络接口工作方式:ospf network-type broadcast
- 注意:
- 在MGRE环境中,若网络拓扑为星型;且所有接口的工作方式,均修改为broadcast;由于分支站点之间没有伪广播,无法知道对端的存在,故DR/BDR选举将混乱;只能让中心站点成为DR,没有BDR;
- 2)修改所有接口的工作方式为p2mp
P2MP 工作方式 hello time为30,不进行dr、bdr选举,P2mp是为帧中继这种物理的NBMA网络设计,在MGRE环境中不建议使用
3、拓扑结构:
1)星型 -- 中心站点固定ip地址,所有分支仅和中心注册
2)全连网状 --- 所有站点均为固定ip,所有设备均为中心,两两间均注册
3)部分网状 -- 部分设备为固定ip地址,存在部分中心和部分的分支
第二章
一、OSPF的不规则区域
1、类型:
1)远离骨干的非骨干区域
2)2、不连续骨干,本地学习到来自XX区域的路由之后,不得共享到XX区域
2、解决方案:
普通GRE(Tunnel隧道)
(1)定义:Tunnel -- 在合法与非法ABR间使用tunnel建立一个新的网段(类似连接一条独立的网线);然后将该网段宣告到ospf协议中;
(2)缺点:
1)选路不佳
2)周期和触发信息对中间穿越区域照成影响
OSPF虚链路
(1)定义:合法的ABR与同一区域的非法ABR,建立虚链路;非法ABR获得合法ABR授权后,可进行区域间路由的共享;
(2)优点:由于没有新的网段链路出现,不会像tunnel一样选路不佳;
(3)缺点:周期和触发的信息对中间穿越区域照成影响
cisco系 --- 在虚链路上取消周期更新、周期保活 -- 失去可靠性
华为系 --- 保留周期信息,对中间区域照成影响
(4)配置命令:[r2]ospf 1 ;[r2-ospf-1]area 1 两台ABR共同存在的区域 ;[r2-ospf-1-area-0.0.0.1]vlink-peer 4.4.4.4 对端ABR的RID;两台设备均需配置
多进程双向重发布(推荐)
1、定义:
多进程 :一台路由器上运行多个OSPF进程,可以分别建立自己的邻居,,每个进程拥有独立的数据库,不共享信息;只是将各自计算所得路由加载于同一张路由表中;类似于在同一台路由器上允许多种动态路由协议的效果;路由器单一一个接口只能工作在唯一一个进程中;
重发布:一个网路中,若同时运行多种路由协议;默认协议间不兼容,无法共享路由;可以在两种协议间配置ASBR,ASBR(自治系统边界路由器,协议边界路由器)必须用不同的接口工作不同的协议中;通过两种协议获取到两边的路由,默认这些路由不共享,重发布技术可以实现路由共享,最终全网可达;
2、故在不规则区域中,利用多进程加重发布机制,可以实现全网可达,且不存在选路问题和中间区域周期信息相关问题;
3、配置命令:
[r4]ospf 1
[r4-ospf-1]import-route ospf 2
[r4-ospf-1]q
[r4]ospf 2
[r4-ospf-2]import-route ospf 1
- 注意:通过重发布手段学习到的ospf路由,显示协议为0_ASE,优先级为150;
二、OSPF的数据库表
1、前言:
LSDB中装载了所有可以学习到的LSA;
LSA-- 链路状态通告 一条拓扑或一条路由条目被称为一条LSA;
OSPF协议的数据库是本地所有LSA的集合,不同网络环境下将产生不同类别的LSA;
LSA在共享时基于LSU数据包传递;
2、LSA信息:
(1)查看一条LSA的具体信息:Display ospf lsdb type link-id
(2)LSA携带的基本信息
Type : Router 类别名,此处为1类
Ls id : 2.2.2.2 在目录中页码号
Adv rtr : 2.2.2.2 通告者的RID,该条LSA发起源的设备RID
Ls age : 1532 老化时间,单位秒;周期1800归0,触发当下归0;最大老化3609;
Len : 48 长度
seq# : 80000026 序列号
chksum : 0x568e 校验码
- (3)注意:OSPF:区域内传拓扑,区域间传路由
- (4)LSA类型(5个)
-
第三章
一、减少LSA的更新量
1、汇总(减少骨干区域的LSA更新量)
域间路由汇总:在ABR上进行汇总 --- 汇总3类LSA
配置命令:bar-summary 55.4.0 255.255.254.0
域外路由汇总:在ASBR上进行汇总 --- 汇总5/7类
配置命令:asbr-summary 99.1.0.0 255.255.252.0
2、特殊区域(针对费骨干区域的优化)
成为特殊区域的条件:
1、不是骨干区域
2、不存在OSPF虚链路
3、不能存在ASBR
末梢(stub)
1、定义:该区域将拒绝4/5类的LSA,由该区域同时连接骨干区域的ABR,向该区域发布一条3类缺省路由。
2、配置命令:[r5-ospf-1-area-0.0.0.2]stub
注意:该区域所有设备均需要配置,否则无法建立邻居关系。
完全末梢(stub no-summary)
1、定义:在末梢区域的基础之上,进一步拒绝3类的LSA,仅保留一条3类的缺省;先将该区域配置成末梢区域,然后仅在ABR上进行完全末梢配置即可。
2、配置命令:[r5-ospf-1-area-0.0.0.2]stub no-summary
NSSA(非完全末梢:nssa)
1、成为NSSA区域的条件:
(1)不是骨干区域
(2)不能存在OSPF虚链路
2、定义:拒绝4/5类LSA,主要用于拒绝网络中,该区域以外的区域产生的4/5类LSA进入该NSSA区域;原属于该区域的4/5类LSA以7类LSA的名义向骨干区域进行发送,在进入骨干区域时,由该区域的ABR兼职ASBR,进行7转5的操作。
3、注意:在华为设备中,由该NSSA区域连接骨干区域的ABR向内部发送一条7类的缺省路由;而在Cisco设备中,不会自动发布,需要管理员手动配置。
4、配置命令:[r2-ospf-1-area-0.0.0.1]nssa
5、7类LSA信息
完全NSSA(完全的非完全末梢:nssa no-summary)
1、定义:在NSSA的基础上,进一步拒绝3类LSA,由该区域连接骨干的ABR,向内部发送一条3类缺省路由。
2、注意:先将该区域配置为NSSA区域,然后仅在ABR上完成,完全NSSA配置即可。
3、配置命令:[r2-ospf-1-area-0.0.0.1]nssa no-summary
二、OSPF的扩展配置
1、认证
定义:直连的邻居或邻接关系间,进行认证配置后,5种数据包中均携带身份核实的密码,且华为设备会对更新信息进行加密--前提为认证方式选择密文认证
类型:
1)接口认证: 直连的邻居间秘钥和编号、模式必须完全一致否则无法建立邻居关系;
[r1-GigabitEthernet0/0/1]ospf authentication-mode md5 1 cipher 123456
2)区域认证:假设在R1上开启区域0的区域认证,实际就是在R1上所有宣告到区域0接口上配置了接口认证;
[r1]ospf 1
[r1-ospf-1]area 0
[r1-ospf-1-area-0.0.0.0]authentication-mode md5 1 cipher 123456
可以理解为批量的完成了接口认证;
- 3)虚链路认证:在虚链路的两端配置
- [r1-ospf-1-area-0.0.0.1]vlink-peer 3.3.3.3 md5 1 cipher 123456
2、被动接口(沉默接口)
定义:只接收不发送路由协议信息,用于路由器连接邻居或邻接的骨干链路,不得用于连接终端用户的接口;
[r1]ospf 1
[r1-ospf-1]silent-interface GigabitEthernet 0/0/2
3、加快收敛(修改计时器)
Ospf的hello time为10s或者30s dead time为hello time的4倍;
邻居间该时间必须一致,否则无法邻居关系;若hello time为10,不再建立修改;
若为30s可以结合网络的实际硬件处理能力,适当修改计时器,加快收敛速度
- 配置命令(方法):
- (1)修改本端的hello time,本端的dead time自动4倍关系匹配;对端还需要手工修改一致,否则无法建立邻居关系;
- [r1-GigabitEthernet0/0/1]ospf timer hello 10
- (2)修改本端的dead time,本端的hello time不变
- [r1-GigabitEthernet0/0/1]ospf timer dead 40
4、缺省路由
3类缺省:
是由配置特殊区域后,特殊区域连接骨干区域的ABR自动发布末梢、完全末梢、完全NSSA;普通NSSA不产生3类缺省;
5类缺省:
(1)将边界路由器上,路由表中通过其他协议产生的缺省路由(最常为静态缺省)重发布到本地的OSPF协议中
[r3-ospf-1]default-route-advertise
(2)因此若边界路由器的路由表还未拥有缺省时,配置该命令将无法发布缺省到其他邻居
(3)强制本地向所有邻居重发布缺省路由,即便本地路由表中没有缺省,也会发布
[r3-ospf-1]default-route-advertise always
7类缺省:
定义:配置特殊区域NSSA时,NSSA区域连接骨干的ABR将发布缺省路由;
由NSSA区域内部存在其他协议获取的缺省路由时,可以重发布到该NSSA区域
[r6-ospf-1-area-0.0.0.2]nssa default-route-advertise
切记:由于特殊区域会产生缺省路由指向骨干区域;故必须关注网络中ISP所在的位置,否则可能由于缺省的互指产生环路 --- ISP连接骨干以为的任何区域,那么该区域将不能配置为特殊区域;
三、OSPF的扩展知识点
1、附录E --- link-id相同的问题:
若一台ABR将两条3类LSA导入其他区域;或者一台ASBR将两条5/7类导入OSFP域,同时这两条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小的设备;
- 【2】AD(管理距离)无关的第二种情况 O IA 3类
- O IA 与 O IA路由相遇,到达相同目标的两条3类路由,这两条路由均通过非骨干传递,仅关注cost值,不关注管理距离;
若一条通过骨干区域传递,另一条同过非骨干区域传递--非骨干传递的路由无效,OSPF的区域水平分割:区域标号为A的3类LSA,不能回到区域A;先比类型- 区域cost
- 【3】OE 与OE E为5类 N 为7类 默认所有重发布进入路由条目均为类型2,类型2在路由表中cost值不会显示沿途的累加,仅显示起始度量;
- 两条均为OE2或者均为N2,起始度量相同; 关注沿途的累加度量 (OE2路由在表中度量默认不显示内部度量,仅显示起始度量)
两条均为OE2或者均为N2,起始度量不同;优先起始度量小的路径;
注:以上设计是便于管理员快速干涉选路;
- OE1路由仅比较总度量(起始度量+沿途累加),仅修改起始度量不一定能干涉选路,必须在修改后使得总度量产生区别才能干涉选路;
- 【4】总结:
- 拓扑优于路由 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类
- 重发布进入ospf的路由条目,无论5或7类LSA,均存在一个类型号;默认为类型2,类型路由仅显示起始度量;修改为类型1后将显示实际度量;
- 类型2虽然仅显示起始度量,但在选路时,实际比较的是总度量;
3、FA-转发地址(正常OSPF区域收到的5类LSA不存在FA值)
产生FA条件
【1】5类LSA ---- 假设R2为ASBR,g0/0口工作的OSPF中,g0/1口工作在非ospf协议或不同ospf进程中;若g0/1也同时宣告在和g0/0相同的OSPF进程中,同时该接口的工作方式为广播型;将在5类LSA中出现FA地址,地址为R2连接R3网段中R3的接口ip;
【2】7类LSA---必然出现FA地址,假设R9为ASBR,S0/0口工作的OSPF中,S0/1口工作在非ospf协议或不同进程中;S0/1未运行OSPF--FA地址为R9上最后宣告的环回地址(个别IOS也可能是最大环回接口ip地址),若R9没有环回接口;FA地址为R9上最后宣告的物理接口地址(个别IOS也可能是最大的物理接口ip地址)
R9的S0/1也工作OSPF协议中,S0/1接口工作方式为广播,那么FA地址为R10接口ip;
S0/1的工作方式为点到点,那么FA地址为R9的s0/1口ip
- 注意
- 在FA地址出现后,4类LSA无效;人为过滤掉4类LSA,依然可达域外;
- 当4类LSA存在,却人为过滤了到达FA地址的路由,那么将无法访问域外;
- 一旦出现FA地址,所有的选路计算均基于FA地址进行;
- 其它
- 1、针对存在FA的5/7类路由,4类LSA无意义,仅递归到FA地址;若FA地址被策略过滤导致不可达;
- 2、路由表中的度量是到FA地址的度量,不是到ASBR的度量;
-
4、NP位+E位 P位被加密,故抓包时看不见P位
正常NSSA区域内的hello包中,N=1 E=0 标识该区域转发7类LSA,不转发5类;非NSSA区域E=1 N=0 标识可以转发5类,不能转发7类;P位为1,标识该区域将执行7类转5类; P为0,不能7转5;
区域0连接到两个非骨干区域,这两个非骨干假设为区域1和区域2;区域1/2同时连接同一个外部协议,且同时进行了重发布配置;区域1为NSSA区域,区域2为非NSSA区域;那么此时的区域1,P位=0不能进行7转5;故骨干区域只能收到从区域2来的外部路由;
若NSSA和非NSSA均将同一条域外路由向内部传递,仅非NSSA区域可以实现;若区域1和区域2均为NSSA区域,那么ABR的RID大区域进行7转5,另一个区域不转,故同一条域外路由,骨干区域只能收到从一个区域传递的外部路由;若以上条件中,两个区域均为非NSSA区域,那么P位无效,故两个区域的路由均回进入骨干区域;
5、OSPF状态机
【1】点到点网络类型 down -->init -- >(前提为可以建立邻接)exstart -->exchange-->若查看邻接的DBD目录后发现不用进行LSA直接进入full 若查看后需要进行查询、应答先进入loading,在查询应答完后再进入full;
【2】MA网络类型 down -->init -- >2way-->(前提为可以建立邻接,通过DR/BDR选举后来判断)exstart -->exchange-->若查看邻接的DBD目录后发现不用进行LSA直接进入full 若查看后需要进行查询、应答先进入loading,在查询应答完后再进入full;
【3】当hello time较大时,状态机在down和init之间将出现尝试等待状态;
6、SFP算法 –OSPF防环机制
【1】在同一个区域每台路由具有一致的LSDB
【2】每台路由器以自己为根计算到达每个目标的最短路径(最小cost值)
【3】必须区域划分---优势
域间汇总减少路由条目数量
汇总路由是在所有明细路由均消失后才删除,网络更稳定
区域划分后不同类别的LSA传播范围不同,控制更新量
【4】总结(观看OSPF防环文档):
过程--基于本地LSDB(1/2类LSA)生成--生成有向图--基于有向图来进行最短路径树生成最短路径树,关注本地LINK-ID的LSA开始-->基于该LSA内提及到点到点或传输网络信息再查看link-id递归到下一条信息;基于所有点到点和传输网络信息生成最短路径树主干;然后用树中每台设备的末梢网络信息补充路由表,完成收敛;
OSPF防环文档
第六天-ospf防环.pdf