OSPF协议

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

一、OSPF协议

OSPF:开放式最短路径优先协议;

无类别链路状态IGP协议;触发更新+周期更新(30min)

组播更新:224.0.0.5 通用地址 224.0.0.6 DR/BDR专用地址

基于拓扑进行收敛,更新量巨大-----结构的部署----1、区域划分 2、IP地址规划

一、OSPF的5种数据包类型:

一、 OSPF的数据包类型
1、 hello – 发现、建立、周期保活邻居关系(会建立表来区分邻接关系) 周期为10s;dead time 为 hello的4倍;
2、 DBD 数据库描述(目录)
3、 LSR链路状态请求(问)
4、 LSU链路状态更新(给)
5、 LSack 链路状态确认(确认)

数据包结构:跨层封装于3层报头,协议号89;

OSPF的状态机

Down:一旦本地发出ospf的hello包进入下一个状态

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

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

条件匹配:点到点直接进入下一状态;MA网络进行DR/BDR选举(40s),非DR/BDR间不进入下一状态

Exstart预启动:使用类似hello 的DBD包来进行主从关系选举,RID数值大为主,优先进入

下一状态;

Exchange准交换:使用真实的DBD包来共享数据库目录;

Loading加载:从邻接处使用LSR/LSU/LSack来获取本地没有的LSA信息;hello是用来发现本地直连未知网段的;

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

OSPF的工作过程

启动配置完成后,邻居间组播(224.0.0.5)使用hello包,建立邻居关系,生成邻居表;

邻居表生成后,基于邻居表中的各个邻居,进行条件的匹配;匹配失败将维持邻居关系,

仅hello包周期保活即可;

条件匹配成功者间将建立邻接关系,邻接关系间将使用DBD来共享本地的数据库摘要;邻接关系间可以通过识别摘要,来请求本地未知的LSA信息;请求时使用LSR,对端使用LSU来分享这些LSA信息; 当获取到网络中所有的LSA后,本地数据库建立完成,LSDB同步结束;数据库表可查看;

默认OSPF协议通过本地的数据库,启用SPF最短路径选路规则,计算本地到达所有未知网段的最佳路径,然后将其加载于路由表中;

收敛完成—hello包周期保活 邻接关系间每30min周期进行DBD的比对,若一致继续保持安静;

结构突变

【1】新增网段—直连新增网段的设备,使用DBD包来告知本地所有邻居;

【2】断开网段—直连断开网段的设备,使用DBD包来告知本地所有邻居;

【3】无法沟通—dead time到时时,断开邻居关系,是否能够重建关注hello包;

名词注解:

LSA:链路状态通告,在不同环境下产生不同类别的LSA;可以是拓扑也或者是路由条目;

LSDB:链路状态数据库—所有LSA的集合

LSA洪泛,LSDB同步-----OSPF收敛的称呼

配置

R1(config)#router ospf 1 启动时需要配置进程号,仅具有本地意义;

R1(config-router)#router-id 1.1.1.1 配置RID; 手工–环回最大地址–物理最大地址-无法启动

宣告:1、激活–收发ospf信息 2、通告直连接口的拓扑 3、区域划分

R1(config-router)#network 12.1.1.1 0.0.0.0 a 0

R1(config-router)#network 1.1.1.1 0.0.0.0 a 0

                    必须携带反掩码

注:区域之间的路由器(即ABR),宣告时应该精确宣告,用反掩码0.0.0.0宣告最好

区域划分的规则:

星型结构—骨干区域0;非骨干大于0;非骨干必须直连骨干区域;

必须存在ABR–区域边界路由器

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

R2#show ip ospf neighbor

Neighbor ID Pri State Dead Time Address Interface

1.1.1.1 0 FULL/ - 00:00:32 12.1.1.1 Serial1/0

3.3.3.3 0 FULL/ - 00:00:37 23.1.1.2 Serial1/1

邻居的RID 优先级 状态机 下一跳 出接口

邻居关系的建立依赖hello包;

邻接关系的建立依赖hello包和条件匹配;
*表示邻居间hello包中必须完全一致的参数:

                                   1. Hello dead time

                                   2.区域ID;

                                   3. 认证参数;

                                   4.特殊区域标记

【2】邻居关系建立后,邻居间进行条件的匹配;若匹配失败,将保持为邻居关系,仅hello包周期保活;若匹配成功,将入邻接关系的建立;先使用类hello 的DBD进行主从关系选举;

主RID数值大,优先级共享真实的DBD包,分析本地的数据库目录,便于邻居对比,之后通过LSR/LSU/LSack来获取未知的LSA信息;

这些LSA被保存在本地的LSDB中,通过数据库表呈现;

R2#show ip ospf database

DBD包–数据库描述表–lsdb的目录;

隐性确认–使用序列号进行确认

从设备复制主设备的序列号,来对DBD包进行确认

标记位 I位-为1 标识本地发出的第一个DBD包

        M位为1     标识不是本地的最后一个   

      MS位为1    标识本地为主

MTU–在exchange状态时收发的dbd包中携带本地接口的MTU值;邻居间该值必须一致,否则将卡在exchange状态;

注:MTU为最大传输单元,因为OSPF更新量大,如果 MTU不一致,可能会导致拆分传输,这样会多加报头,造成更新量加大!!所以OSPF要求MTU一致,降低更新量!!

【3】当LSDB同步完成,本地将使用spf选路规则,计算本地到达所有未知网段的最短路径,然后将其加载到路由表中;

1、字母O - OSPF, IA - OSPF inter area

   N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2

   E1 - OSPF external type 1, E2 - OSPF external type 2

O 本地区域的路由;本地通过该区域的拓扑信息计算所得

O IA 域间路由,其他区域的路由;是ABR共享到本区域的路由

O E1/2 域外路由,其他协议或进程的路由条目;是ASBR重发布到OSPF的路由

O N1/2 域外路由,其他协议或进程的路由条目;是ASBR重发布到OSPF的路由,同时本地

处于NSSA区域

管理距离–默认110

度量为cost值=开销值=参考带宽/接口带宽

默认参考带宽为100M;优先cost值之和最小的路径;

注:当接口带宽大于参考带宽时,度量值为1;可能导致选路不佳;可以修改所有OSPF设备的参考带宽;

R1(config)#router ospf 1

R1(config-router)#auto-cost reference-bandwidth ?

<1-4294967> The reference bandwidth in terms of Mbits per second

R1(config-router)#auto-cost reference-bandwidth 1000

【4】成为邻接关系的条件–关系到网络类型

点到点和MA;

点到点网络中所有邻居直接建立为邻接关系;

MA网络中需要进行DR/BDR选举,非DR/BDR间不建立邻接关系,保持为邻居关系;

OSPF水平分割–在区域间进行

DR/BDR选举规则:

先必须优先级,默认1;数值大优 若优先级为0,标识不参选

优先级一致比较RID,数值到优

干涉选举:

DR优先级最大,bdr次大,其余不修改

R1(config)#interface fastEthernet 0/0 参选接口上修改优先级

R1(config-if)#ip ospf priority 3

注:OSPF选举非抢占,修改优先级后,必须重启所有设备进程

DR优先级最大,bdr次大,其他设备修改为0;不需要重启进程

切记:不得将所有参选接口修改为0;至少存在DR;

【5】OSPF网络类型 ----ospf的接口网络类型 —

OSPF协议在不同的网络类型下,不同的工作方式

R1#show ip ospf interface loopback 0

Loopback0 is up, line protocol is up

Internet Address 1.1.1.1/24, Area 0

Process ID 1, Router ID 1.1.1.1, Network Type LOOPBACK, Cost: 1

Loopback interface is treated as a stub Host

网络类型 ----------------------- OSPF的接口网络类型 --------------- 工作方式

环回-LOOPBACK ------------- LOOPBACK -------------------------- 无hello包,主机路由发送

点到点–PPP/HDLC/GRE ---- POINT_TO_POINT – hello time10s,自动建邻,不选DR/BDR

BMA–以太网 ------------------ BROADCAST ----------- hello time10s;自动建邻,选DR/BDR

NBMA–帧中继、MGRE----- POINT_TO_MULTIPOINT – hello time30s;自动建邻,不选DR

注意:在MGRE环境中运行OSPF,因为OSPF协议在tunnel接口默认的工作方式为点到点,这种方式只能建立一个邻居,故多点端将出现邻居关系翻滚;

解决方法:修改接口的工作方式

注意:无论你选择改成那个工作方式,都应该将所有节点都修改

r1(config-if)#ip ospf network ?

broadcast --------------------------- Specify OSPF broadcast multi-access network

non-broadcast --------------------- Specify OSPF NBMA network

point-to-multipoint ----------------- Specify OSPF point-to-multipoint network

point-to-point ---------------------- Specify OSPF point-to-point network

修改为 broadcast ,所有节点必须全部修改,否则无法建立邻居关系,后者无法正常收敛,卡在exstart状态机;

在星型或部分网状建议使用 point-to-multipoint工作方式,如果使用broadcast将出现DR位置问题;

解决----DR固定在一个点;

在全连网状结构中,一般选择broadcast,建议不使用点到多点;因为将全网邻接关系,重复更新,broadcast会选DR不会存在重复更新;

注:NHRP服务器可以多台,用于备份服务器;开启全连网状,不是增加NHRP服务器的数量,而是在没有邻居关系的设备间,互相配置伪广播;

二、LAS优化、特殊区域

1.解决OSPF的不规则区域

OSPF协议的规则区域-星型结构,非骨干区域必须同时工作骨干区域;否则该非骨干区域的ABR不能进行区域间路由共享;

远离了骨干的非骨干区域

不连续骨干

解决方法:

tunnel 在两台ABR上建立隧道,然后将其宣告到OSPF协议中;

缺点:对周期、触发更新和保活流量对中间区域存在资源占用

选路不佳;

OSPF虚链路–在两台ABR上进行虚链路的建立,之后让骨干区域ABR对非法ABR进行授权;使得非法ABR可以进行路由共享;

过程:两台ABR使用hello包建立邻居关系,生成邻居表;然后非法ABR将数据库共享给合法ABR,由合法ABR进行审核,通过后对其授权;因为在两台ABR间没有建立实际的网段链路,故不存在选路不佳问题;未避免周期的保活和更新信息对中间区域的资源占用,取消了该机制;----导致虚链路不可靠,不稳定;

r2(config)#router ospf 1

r2(config-router)# area 1 virtual-link 4.4.4.4

          中间穿越区域          对端ABR的RID

多进程双向重发布

多进程—一台设备上同时运行多个OSPF进程时,不同进程存在各自的RID和数据库;当从各自邻居处学习到了信息后,存储在自己的数据库中,数据不共享;仅将计算所得路由加载到同一张路由表中; 若将一个接口同时宣告于多个进程,仅最先宣告进行工作;

注:在一个路由器上运行多个OSPF进程相当于在一个路由器上起多个不同的协议

(2)双向重发布–两种协议或两个进程间,进行路由条目的双向共享;

解决不规则区域时,将处于不规则点的ABR不同接口宣告到不同进程,最后使用双向重发布来实现路由共享—选路正常,无周期信息,可靠和稳定的;

r4(config)#router ospf 1

r4(config-router)#redistribute ospf 2 subnets

r4(config-router)#exit

r4(config)#router ospf 2

r4(config-router)#redistribute ospf 1 subnets

【2】OSPF的数据库表

r1#show ip ospf database 查看数据库表的摘要

数据表为LSDB,是各种类别的LSA信息集合;LSA在不同条件下产生,路由信息或者拓扑信息;使用不同的类别来区分了不同条件的LSA信息;

具体查看某条LSA信息

r1#show ip ospf database router 1.1.1.1
类别名 link-id

所有类别的LSA信息,均存在以下参数

LS age: 328 老化时间,1800s周期更新归0,触发更新归0;最大老化3609s

Options: (No TOS-capability, DC)

LS Type: Router Links LSA类别名,此处为1类;

Link State ID: 1.1.1.1 link-id条目在目录中的番号

Advertising Router: 1.1.1.1 通告者的RID–该LSA的更新源设备的名字

LS Seq Number: 80000005 棒棒糖序列号规则

Checksum: 0x63FA

Length: 60

各种类别的LSA:

名称 --------------------------- 范围 -----------------------通告者 ------------------- 携带的信息

LSA1 router --------------- 设备所在区域 ---------- 该区域的每台设备 ------- 本地直连拓扑

LSA2 network ------------------ 设备所在区域 ------------ DR ---------------- MA网段部分的拓扑

LSA3Summary ---------------- 整个OSPF域 ------------ ABR ---------------- O IA 域间路由

                                    (注意区域水平分割)

LSA4 asbr-summary ---------- ASBR所在区域外的 ----- ABR ----------- ASBR位置

                                        整个OSPF域  

LSA5External ----------------- 整个OSPF域 --------------- ASBR ---------- O E1/2 域外路由

LSA7nssa-external ---------- 单个NSSA区域 ----------- ASBR ----------- O N1/2域外路由

=====================================================================

名称 ----------------------------------- link-id ------------------------------------------------ 通告者ID

LSA1 router -------------------------- 通告者的RID ----------------------------- 该区域的每台设备

LSA2 network ------------------------ DR的接口ip ------------------------------- DR的RID

LSA3Summary ---- O IA 路由条目的网络号 – ABR-----经过下一台ABR时,修改为新的ABR RID

LSA4LSA4 asbr-summary ----- ASBR RID--------- ABR(与ASBR在同一区域)经过下一台ABR时,修改为 新的ABR RID

LSA5External ----------------------- O E1/2 路由条目的网络号 -------------- ASBR-默认在传播过程中不修改

LSA7nssa-external ---------------- O N1/2路由条目的网络号 ---------------- ASBR-在传递出该NSSA区域后,被新的ASBR转换为5类

【3】OSPF的LSA更新量优化

汇总—减少骨干区域的LSA–OSPF不支持区域内部的接口汇总,因为内部传递拓扑
{1}域间路由汇总

注:汇总非骨干区域的路由到骨干区域,来减少骨干区域的路由

在ABR上配置,配置完成后本地生成空接口防环路由

r3(config)#router ospf 1

r3(config-router)#area 1 range 4.4.4.0 255.255.254.0

切记:ABR必须是工作在被汇总路由的区域内;只能将本地通过1/2类LSA计算所得路由进行汇总

{2}域外路由汇总

注:汇总其他协议的路由到骨干区域,减少骨干区域的路由;ASBR上有多个OSPF进程也相当于不同协议。

在ASBR上的OSPF协议配置;自动产生空接口防环路由

r4(config)#router ospf 1

r4(config-router)#summary-address 99.1.0.0 255.255.252.0

特殊区域–减少非骨干区域的LSA --所有特殊区域配置
注:需要该区域每台设备均配置,不能是骨干区域,不能存在虚链路;

{1}同时不能存在ASBR

《1》末梢区域–该区域拒绝4/5的LSA;

r5(config)#router ospf 1

r5(config-router)#area 2 stub

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

仅在ABR上定义完全即可,区域中其他路由器配置末梢区域就行了;

r1(config)#router ospf 1

r1(config-router)#area 2 stub no-summary

{2}同时存在ASBR

《1》NSSA 非完全末梢区域;该区域拒绝4/5的LSA;为避免环路产生,不自动产生缺省;在管理员确定了网络无环的情况下手工添加缺省路由;本区域的ASBR产生的域外路由使用7类标记,离开本区域进入骨干时,转换回5类,进行转换的ABR成为新的ASBR;

NSSA的意义在于拒绝从网络中其他区域的ASBR产生的4/5类LSA信息;

r4(config)#router ospf 1

r4(config-router)#area 1 nssa

《2》完全NSSA—在NSSA区域的基础,进一步拒绝3类LSA;自动产生3类缺省;

 但使用时,应该考虑是否会产生环路;

仅在ABR上定义完全即可,区域中其他路由器配置nssa就行了;

r3(config)#router ospf 1

r3(config-router)#area 1 nssa no-summary

切记:使用特殊区域时,ISP连接在哪个非骨干,该区域不做特殊配置;连接到域外协议时,OSPF中与该域外协议所相连的非骨干区域也不能做特殊区域配置;否则可能导致环路;

三、 扩展配置

1、 成为邻接关系的条件
网络类型相关
1) 点到点网络 – 在一个网段内仅支持存在两个节点
2) MA网络—多路访问网络—一个网段内的节点数量不限制
在点到点网络中,邻居关系必然成为邻接关系;
在MA网络中,若不限制邻接关系,将指数性增加重复更新;
需要进行DR/BDR选举;所有的非DR/BDR设备间仅建立邻居关系,不建立邻接关系;
选举规则:
先比较接口优先级,0-255;默认为1,数值越大越优;
若优先级相同,比较参选接口所在设备的RID,数值大优;
通过修改参选接口的优先级,可以起到干涉选举效果
[r2]interface GigabitEthernet 0/0/0
[r2-GigabitEthernet0/0/0]ospf dr-priority 2
DR/BDR选举非抢占;故修改优先级后,必须重启ospf的进程,才能重新选举
reset ospf process
Warning: The OSPF process will be reset. Continue? [Y/N]:y
若将接口优先级需改为0,标志着设备放弃选举;故在一个网段中至少必须存在DR;

2、 OSPF的认证 —邻居间用于安全的保障
[r1-GigabitEthernet0/0/1]ospf authentication-mode md5 1 cipher 123456
在直连邻居的接口上配置
邻居间秘钥的编号及密码必须完全一致

3、 OSPF的区域汇总—在ABR上将区域A的路由计算好后,传递到区域B时,方可进行汇总计算配置
[r2]ospf 1
[r2-ospf-1]area 0
[r2-ospf-1-area-0.0.0.0]abr-summary 1.1.0.0 255.255.252.0
在R2这台ABR上,把R2通过区域0学习到的拓扑计算所得路由,汇总成1.1.0.0/22共享到其他的区域;

4、 OSPF的沉默接口 —用于连接PC等终端设备的接口,不再发生路由协议的信息;
不得用于连接邻居的接口,否则无法正常收敛

[r1]ospf 1
[r1-ospf-1]silent-interface GigabitEthernet 0/0/2

5、 加快收敛 修改接口的计时器,hello time10s,dead time为hello time的4倍;
修改时需维持原有倍数关系,且ospf要求邻居间的hello time和dead time必须完全一致,否则无法正常建立邻居关系;修改本端的hello time,本端的dead time自动4倍关系匹配;且不建议修改过小
[r1-GigabitEthernet0/0/1]ospf timer hello 5

6、 缺省路由—在边界路由器上,配置缺省信息后,将向内网发布缺省路由,使得内部设备自动产生缺省指向边界路由器的位置;若边界路由器本地需要缺省指向ISP,需要手工配置了;
[r3]ospf 1
[r3-ospf-1]default-route-advertise always

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值