ospf总结

一 ospf的数据包 (五种):

hello包 – 组播收发,用于邻居、邻接关系的发现、建立、周期保活

DBD – 数据库描述包-- 本地LSDB(链路状态数据库)目录

LSR—链路状态请求 – 用于询问对端本地未知的LSA信息

LSU-- 链路状态更新 – 用于共享具体的每一条LSA信息

LSack 链路状态确认 – 确认包

OSPF的数据包是跨层封装于3层报头后方 ,协议号89

二、OSPF的状态机 – 两台OSPF路由器间不同关系的阶段

Down :一旦接收到对端的hello包进入下一个状态

Init 初始化 : 若接收到的hello包中存在本地的RID,那么进入下一个状态机

2way :双向通讯邻居关系建立的标志

条件:点到点网络直接进入下一个状态机;MA网络进行DR/BDR选举,非DR/BDR之间能进入下一个状态机;

Exstart预启动 :使用不携带数据库目录信息的DBD包,进行主从关系的选举,RID数值大为主,优先 进入下一个状态机; 主从目的主要在于信息交互的有序性,避免同时收发造成网络拥塞

exchange准交换 :使用携带数据库目录信息的DBD包,进行目录共享,需要ACK确认

loading加载 :查看完邻接的目录信息后,针对本地未知的LSA,使用LSR包进行查询,对端使用LSU 进行应答, 本地接收到LSA后使用ack进行确认 --- 获取未知的LSA信息Full 转发标志着 邻接关系已经建立。

Full:转发 邻接关系建立的标志

三、OSPF的工作过程

启动配置完成后,邻居间组播收发hello包,建立邻居关系;生成邻居表;

邻居关系建立后,将进行条件的匹配,匹配失败将维持邻居关系,仅hello包周期保活即可;

匹配成功可以建立邻接(毗邻)关系;邻接关系间将使用DBD/LSR/LSU/LSack来获取本地未知的LSA信息;获取完成后,邻接关系间数据库同步一致;--- 数据库表;

之后本地基于本地的数据库所有内容整理出有向图--->最短路径树结构--->将本地到达所有未知网段的最短路径加载于本地的路由表中;

收敛完成后,邻居间仅hello包周期保活即可;每30min邻接关系间周期比对数据库目录,

若不一致将马上使用LSU和LSACK进行不一致部分收敛;

拓扑突变 :

1)新增网段:直连新增网段设备,用LSU直接进行触发更新

2)断开网段:直连断开网段设备,用LSU直接进行触发更新

3)无法沟通:dead time 为hello time4倍;在dead time到时时将断开邻接、邻居关系,删除路由;

四、配置OSPF 路由协议

1.在交换机配置 OSPF 路由

(1)指定进程号、router-id

[Switch]ospf 1 router-id 192.168.1.1

其中 router-id 必须唯一,用设备上某个接口 IP 表示。

(2)指定 OPSF 区域号

[Switch-ospf-1]area 0

(3)指定本地直连网络及其反掩码(255.255.255.255-网络掩码 )

[Switch-ospf-1-area-0.0.0.0]network 192.168.1.0 0.0.0.255

[Switch-ospf-1-area-0.0.0.0]network 192.168.2.0 0.0.0.255

[Switch-ospf-1-area-0.0.0.0]network 192.168.3.0 0.0.0.255

2.在R配置 OSPF 路由

[r1]ospf 1 router-id 1.1.1.1 启动时,定义进程号,仅具有本地意义;建议配置RID;

RID格式为ipv4地址,且需要全网唯一; 手工配置–环回接口上取最大数值的ip地址—物理接口上最大ip地址的数值

宣告:1、区域划分 2、接口激活协议 3、传递接口信息

[r1-ospf-1]area 0

[r1-ospf-1-area-0.0.0.0]network 1.1.1.1 0.0.0.0

[r1-ospf-1-area-0.0.0.0]network 12.1.1.0 0.0.0.255

区域划分规则

1、星型结构 – 区域0为骨干 大于0为非骨干 非骨干区域必须直连骨干区域

2、ABR–区域边界路由器 两个区域间必须依靠ABR连接

启动配置完成后,邻居间使用hello包建立邻居关系,生成邻居表:

hello包 – 组播收发 周期发送 – hello time 10s 或30s dead time 为hello time 4倍

邻居间hello包中有一些参数必须完全一致,否则无法建立邻居关系;

Hello 和dead time 、区域ID、认证参数、末梢区域标记;另外在华为的设备中OSPF要求邻居间接口上配置的ip地址,其掩码长度必须一致;

[r2]display ospf peer 查看邻居表

[r2]display ospf peer brief 查看邻居关系简报

当邻居关系建立后,邻居间进行条件匹配,匹配失败,将保持为邻居关系;匹配成功,将建立为邻接关系,邻接关系将使用DBD/LSR/LSU/LSack来获取本地未知的所有LSA信息,同步生成数据库表—LSDB 链路状态数据库

[r2]display ospf lsdb 查看数据库表

数据库表同步完成后,邻接间的互动完成,仅hello包保活;之后本地基于本地的数据库表;

转换为有向图,再转换为树形结构,最终将本地到达所有未知网段的最短路径,加载于本地的路由表中:

display ip routing-table protocol ospf

默认ospf协议在华为设备中,优先级为10;度量为cost值

cost值=开销值= 参考带宽/接口带宽 默认参考带宽为100M

ospf协议将cost值之和最小定义为最佳路径,加载于本地路由表中

若接口带宽大于参考带宽,cost值为1,将可能导致选路不佳;可以修改默认的参考带宽

[r1]ospf 1

[r1-ospf-1]bandwidth-reference ?

INTEGER<1-2147483648> The reference bandwidth (Mbits/s)

[r1-ospf-1]bandwidth-reference 1000

切记:一旦修改,整个网络所有ospf路由器需要一致;

关于DBD包的扩展知识点:

  1. 、Ospf的DBD包中将携带接口的MTU值,要求邻接间的MTU必须一致,否则将卡在exstart或exchange状态机;

华为默认为开启MTU检测

[r1-GigabitEthernet0/0/1]ospf mtu-enable 在直连邻接的接口上开启,必须两端均开启

  1. DBD包中的标记位

I M MS I为1标识该DBD包为本地发出的第一个DBD M为1标识该DBD包不是本地发出的最后一个DBD包 MS 为1标识本地为主,为0代表从

  1. 隐性确认

主从被选举后,从将使用主的序列号为确认接收到了主的DBD包,即使从设备已经不需要发送DBD,依然要使用未携带信息的DBD来进行隐性确认;

邻接关系间数据库同步完成后,本地基于数据库生成---有向图 ---> 最短路径树--->将本地到达所有未知网段的最短路径加载于本地的路由表中;

默认优先级为10 ,度量为cost值;

Cost=开销=参考带宽/接口带宽 默认参考为100M 当接口带宽大于参考带宽时,cost值为1;OSPF优选整段路径cost值之和最小为最短路径

故当接口带宽大于参考带宽的网络可能导致选路不佳,建议修改参考带宽

[r1]ospf 1

[r1-ospf-1]bandwidth-reference ?

INTEGER<1-2147483648> The reference bandwidth (Mbits/s)

[r1-ospf-1]bandwidth-reference 1000 切记:全网设备参考带宽需要修改一致

[r1]display ospf routing 查看所有本地学习以及共享出去的OSPF路由

五、关于OSPF协议从邻居建立成为邻接的条件

点到点 --- 所有邻居直接建立为邻接关系

MA---由于OSPF协议需要邻接关系间进行数据库对比,故不支持接口水分割;若两两间均为邻接关系,将可能出现大量的重复更新;因此,在MA网络中ospf协议将进行DR/BDR选举,所有非DR/BDR设备间维持邻居关系,不进行数据库共享;

选举规则:1)先比较参选接口的优先级 0-255 默认为1,大优

2)若优先级相同,比较参选的RID,数值大优

若需要干涉选举,可以修改参选接口的优先级

[r1]int g0/0/1

[r1-GigabitEthernet0/0/1]ospf dr-priority 3

切记:选举是非抢占的,故修改后该网段依然维持原有角色,若希望重新选举,需要重启该网段所有设备的OSPF进程;

<r1>reset ospf process 重启ospf进程

Warning: The OSPF process will be reset. Continue? [Y/N]:y

建议直接将DR优先级修改最大,BDR次大,其他设备优先级修改为0,0标识不参选,可以不同重启任何设备的ospf进程;

六、OSPF的接口网络类型 — OSPF协议在不同的网络类型,其工作的方式不同

[r1]display ospf interface LoopBack 0

Interface: 1.1.1.1 (LoopBack0)

Cost: 0 State: P-2-P Type: P2P MTU: 1500

网络类型 ospf接口网络类型(工作方式)

1)环回 p2p 注:环回接口为虚拟接口,虽然显示工作方式为

p2p,但实际上不是真正的p2p,而是环回的

特有工作方式----无hello包收发 以32位主机路由共享

  1. 点到点(HDLC/PPP/GRE) p2p hello time10s 不进行DR/BDR选举

  1. BMA (以太网) Broadcast hello time 10s DR/BDR选举

  1. NBMA(帧中继、MGRE)

在MGRE中,由于MGRE和GRE均使用tunnel接口,故工作方式均默认为p2p

在普通的GRE中,由于GRE本身就是点到点网络类型,所有p2p工作方式正常;

而MGRE为多点的MA环境,再使用p2p公司将出现故障:

p2p工作方式仅允许存在一个邻居;华为默认仅和最先接收到的hello邻居建立;

Cisco 为循环建立邻居关系; --- 均无法在该网段正常收敛

解决方案:

修改接口的ospf工作方式:

1)修改该网段所有接口为 Broadcast

[r1]int t0/0/0

[r1-Tunnel0/0/0]ospf network-type broadcast

切记:由于p2p和 broadcast hello time均为10s,故将能建立邻居关系,但p2p不进行DR/BDR选举,所以建邻后无法正常收敛;因此该网段所有接口必须修改成一样的工作方式;

注解1:在MGRE环境中,若网络拓扑为星型;且所有接口的工作方式,均修改为broadcast;

由于分支站点之间没有伪广播,无法知道对端的存在,故DR/BDR选举将混乱;只能让中心站点成为DR,没有BDR;

  1. 修改所有接口的工作方式为p2mp

P2MP 工作方式 hello time为30,不进行dr、bdr选举

P2mp是为帧中继这种物理的NBMA网络设计,在MGRE环境中不建议使用

补充内容:关于MGRE的拓扑

  1. 星型 -- 中心站点固定ip地址,所有分支仅和中心注册

  1. 全连网状 --- 所有站点均为固定ip,所有设备均为中心,两两间均注册

  1. 部分网状 -- 部分设备为固定ip地址,存在部分中心和部分的分支

在以上三种环境中运行OSPF的方案:

  1. 星型 -- 所有接口工作方式为broadcast,仅中心站点为DR,无BDR

  1. 全连 -- 所有接口工作方式为broadcast;DR/BDR将默认自动选举成功

  1. 部分 -- 所有接口工作方式为broadcast;合理安排DR的位置

七、关于OSPF的不规则区域问题

1、远离骨干的非骨干

2、不连续骨干

解决方案:

1、tunnel 在骨干区域与非法ABR间建立一条隧道,之后将该隧道链路宣告到OSPF协议中

缺点:

1)周期的hello与更新,包括触发更新,将一致占用中间穿越区域;

2)选路不佳

2、OSPF的虚链路

由非法ABR设备,通过直连区域的合法ABR进行授权,来转发路由

由于没有新增链路,故不存在选路不佳问题

[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

[r2]display ospf vlink

缺点:虚链路上的两台ABR间的周期资源占用问题;

1)在思科中,取消两台设备的周期行为,hello、更新均收发一次;–不可靠

2)在华为中,保留周期–占资源

3、多进程双向重发布;

ospf多进程:一台路由器上的多个进程,每个进程拥有自己的数据库,独立计算路由条目,且计算所有不共享;最终将所有最佳路径加载于同一张路由表内;

路由器的一个接口只能工作在一个进程中;

可用于解决不规则区域,将不规则位置工作不同的进程中,实现分开,之后利用重发布技术来共享路由表; 解决了选路不佳和资源占用的问题

[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的数据库表

<r1>display ospf lsdb 查看OSPF数据库目录

LSDB中装载了所有可以学习到的LSA;

LSA-- 链路状态通告 一条拓扑或一条路由条目被称为一条LSA

OSPF协议的数据库是本地所有LSA的集合,不同网络环境下将产生不同类别的LSA;

LSA在共享时基于LSU数据包传递;

各种类别的LSA;

如何查看一条LSA的具体信息

<r1>display ospf lsdb router 2.2.2.2

类别 link-id

一下内容为所有类别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 校验码

传播范围 通告者 携带内容

LSA1 Router 单区域 该区域每台OSFP路由器 本地直连拓扑

LSA2 Network 单区域 该网段的DR设备 单个MA网段的拓扑

LSA3 summary 整个OSPF域 ABR 域间路由条目

LAS4asbr 注1 注2 ASBR位置验算

注1:除ASBR所在区域外的整个ospf域;ASBR所在区域通过1类告知ASBR位置

注2:ABR,和ASBR在同一区域路由器,该路由器同时连接骨干区域,是一台ABR

LAS5 ase 整个OSPF 域 ASBR 域外路由条目

Link-id 通告者

LSA1 通告者RID 该区域每台路由器

LSA2 DR接口的ip地址 该网段的DR设备

LSA3 域间路由的目标网络号 ABR,经过下一台ABR进入新的区域时,修

改为新经过的ABR

LAS4 ASBR的RID ABR,经过下一台ABR进入新的区域时,修

改为新经过的ABR

LAS5 域外路由的目标网络号 ASBR

九、OSPF优化–减少LSA的更新量

1、汇总 — 减少骨干区域的路由条目数量

2、特殊区域-- 减少非骨干区域的路由条目数量

【1】汇总–OSPF协议不支持接口汇总,在一个区域内,邻接间传递的是拓扑信息,不能进行汇总;故只能在交互路由的边界设备进行汇总

1)域间路由汇总–在区域间的ABR上,交互区域间路由条目时进行汇总配置

[r2]ospf 1

[r2-ospf-1]area 1 本地通过该区域1/2类LSA计算所得路由,可以汇总后传递给其他区域

[r2-ospf-1-area-0.0.0.1]abr-summary 3.3.0.0 255.255.252.0

2)域外路由汇总—ASBR在将外部的路由条目通过重发布协议,共享到OSPF协议中时;

可以进行汇总

[r4]ospf 1

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

【2】 特殊区域 – 用于减少各个非骨干区域的LSA数量

不能为骨干区域,不能配置虚链路

[1] 同时不能存在ASBR

1)末梢区域–拒绝4/5类的LSA;由该区域连接骨干区域的ABR向该区域发布一条3类的缺省

[r2]ospf 1

[r2-ospf-1]area 1

[r2-ospf-1-area-0.0.0.1]stub

注:该区域内的所有路由器均需配置该命令

2)完全末梢区域 在末梢区域的基础上,进一步拒绝3类的LSA;仅保留一条3类的缺省路由

先将整个区域所有路由器配置为末梢区域;然后仅再在连接骨干区域的ABR上配置完全即可

[r2]ospf 1

[r2-ospf-1]area 1

[r2-ospf-1-area-0.0.0.1]stub no-summary

[2] 存在ASBR

1)NSSA 非完全末梢区域 – 该区域将拒绝4/5类LSA,由该区域连接骨干区域的ABR向该区域发布一条7类的缺省路由;该区域内的ASBR导入域外路由时,基于7类导入,之后通过该区域连接骨干的ABR传递到骨干区域时,转换为5类进入骨干区域;

NSSA设计的重点,不是减少该区域内ASBR产生的域外路由,而是网络中其他部分的ASBR产生的域外路由;

[r2]ospf 1

[r2-ospf-1]area 1

[r2-ospf-1-area-0.0.0.1]nssa 本区域内部所有设备均需配置

2)完成NSSA — 在NSSA的基础上,进一步拒绝3类LSA的进入,由该区域连接骨干区域的ABR向该区域发布一条3类的缺省

先将该区域配置为NSSA区域,之后仅在该区域连接骨干的ABR上配置完全即可

[r2]ospf 1

[r2-ospf-1]area 1

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

切记:NSSA和完全NSSA的工作环境,需要考虑ISP(运营商)所在位置,否则可能导致环路出现

十、OSPF的扩展配置

1、认证

【1】接口认证

1)接口明文

r1(config)#interface ethernet 0/0

r1(config-if)#ip ospf authentication 开启明文认证需求,开启后本地所有ospf数据包中认证类型字段被修改,邻居间若不一致将不能建立邻居关系

r1(config-if)#ip ospf authentication-key cisco123 配置明文密码

2)接口密文

r6(config)#int s0/1

r6(config-if)#ip ospf authentication message-digest 开启秘文认证需求,开启后本地所有ospf数据包中认证类型字段被修改,邻居间若不一致将不能建立邻居关系

r6(config-if)#ip ospf message-digest-key 1 md5 cisco123

【2】区域认证

例:在R1上开启关于区域0的明文或密文认证;然后仅仅只是将R1上所有属于区域0的接口,认证类型字段修改,相当于在R1上所有区域0接口配置明文或密文认证需求;但每个接口的秘钥还是需要逐一配置;

r12(config)#router ospf 1

r12(config-router)#area 2 authentication 明文

r12(config-router)#area 2 authentication message-digest 密文

【3】虚链路认证

r1(config)#router ospf 1

r1(config-router)#area 1 virtual-link 4.4.4.4 authentication

r1(config-router)#area 1 virtual-link 4.4.4.4 authentication-key cisco

r1(config-router)#area 1 virtual-link 4.4.4.4 authentication message-digest

r1(config-router)#area 1 virtual-link 4.4.4.4 message-digest-key 1 md5 cisco123

2、被动接口

r1(config)#router ospf 1

r1(config-router)#passive-interface ethernet 0/1

3、加快收敛—邻居间直连接口hello和dead 必须完全一致

r7(config)#interface s0/1

r7(config-if)#ip ospf hello-interval 5

r7(config-if)#ip ospf dead-interval 20

注:修改本端的hello time本端的dead time自动4倍关系匹配;

4、缺省

3类缺省—通过特殊区域自动产生;

末梢、完全末梢、完全NSSA自动产生;

5类缺省—本地路由表中必须已经存在缺省路由,通过什么方式产生的无所谓;

之后,可以使用专用指令将其重发布到OSPF协议中

r9(config)#router ospf 2

r9(config-router)#default-information originate

默认进入路由为类型2,OE2;度量为1;

类型1:在内部传递时不叠加内部度量;

类型2:在内部叠加度量; 默认

若网络中存在多台边界路由器,均进行重发布行为,建议修改为类型1;

r9(config-router)#default-information originate metric-type 1

r9(config-router)#default-information originate always 强制向内网发布缺省路由信息;

7类缺省–ASBR上通过其他协议学习到的缺省导入OSPF,同时所导入区域为NSSA区域;

r12(config)#router ospf 1

r12(config-router)#area 2 nssa default-information-originate

注:若一台设备同时学习多种缺省; 内部优于外部 3类优于5/7类;

若5类和7类相遇,先比度量,小优;若度量一致那么5类优于7类;

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码
< <上一篇
下一篇>>