[网络]OSPF理论

特性:

  • 分类:无类,链路状态协议
  • 封装:ip(89)
  • 更新目标地址:224.0.0.5、224.0.0.6、支持单播
  • 更新方式:定时、完整
  • 定时更新:30分钟
  • 老化时间:60分钟
  • 度量:10的8次方/沿途路由入接口带宽(bps),只计算数据出接口度量。
  • OSPF区域内路由算法为链路状态,区域间路由算法为距离矢量。

链路状态协议的优点:

  • 对于网络,链路状态协议了解更多。
  • 每一个路由器对整个拓扑都有全面了解。

OSPF包头信息:

  • 版本:V2(IPV4)、V3(IPV6)
  • 类型:标识报文类型

Router ID:唯一标识一台路由器(Router-id为IPV4地址格式,仅作为名称使用)

  • 建议手动指定为loopback口地址。
  • 选举router-id方法:
  1. 手动指定
  2. 最大的环回口地址
  3. 做大接口地址

OSPF计时器:

Hello时间Down时间
10S40S
30S120S

形成邻居条件:

  1. 区域相同
  2. 接口MTU需要相同
  3. Hello时间 down时间相同
  4. 特殊区域
  5. Router-ID不能相同

OSPF区域分两种:

  1. 骨干区域(area0)
  2. 常规区域
    常规区域必须和骨干区域相连,并且所有区域间的路由必须从骨干区域学习,常规区域不能直接互传。
    区域之间使用距离矢量算法(防环)
    Area-ID:区域ID
    ABR:区域边界路由器
    ASBR:自治系统边界路由器
    链路状态通告:LSA
    LSA透传(沿途不变),通过SPF算法,计算路由表

选举DR、BDR

Router priority:选择DR(指定路由器)、BDR(备份指定路由器)
目的:减少冗余的更新、加快收敛速度。

仅在MA网络选择DR、BDR

二层:
P2P(点到点)
MA(多接入):

  1. 广播
  2. NBMA
选举依据:根据Hello包中的
  1. 优先级(默认为1)优先级为0则不参与选举。
  2. 优先级相同,router-id越大越优
所有路由器和DR、BDR形成邻接关系,交互LSA。DR-other之间形成邻居关系,不交互LSA。
非抢占:网络中选举DR、BDR后,在接入优先级大的路由器后,DR不会变化。
DR、BDR发送224.0.0.5、监听224.0.0.6。DR-other发送224.0.0.6、监听224.0.0.5。
修改优先级:
Router(config-if)#ip ospf priority 值

OSPF 5种报文:

Hello:邻居建立,发送初始参数
Database description(DBD):摘要信息(建立邻居时)
Link-state request:请求摘要信息中本地没有的信息
Link-state Update:发送路由更新
Link-state Acknowledgement:确认报文

OSPF邻居状态变迁(双向同时)建立状态的报文都是单播,邻居建立后发送的保持Hello为组播:

  • Down状态:
    宣告后进入,无任何建立状态
  • Init状态:
    初始状态,收到hello(组播:224.0.0.5)后从down进入初始状态,收到hello后,单播回复包含对方router id的报文。
  • Two-way状态:
    双向状态,互相交换hello后进入(收到包含自己router id进入),有需要时选举DR、BDR,wait时间(宣告后计时:选举DR、BDR时间,与down时间相等,hello:10,down:40,wait:40)
  • Exstart状态:
    选完DR、BDR后进入,R1、R2发送router ID(DBD报文),选举链路上主从关系,router ID大为主,主先发送后续包。(比较MTU,一致则继续,不一致则卡在Exstart)
  • Exchange状态:
  1. R1(大)发送DBD
  2. R2发送隐式确认(code)
  • Loading状态:
  1. R2发送LSR,请求DBD摘要里本地没有的路由信息。
  2. R1发送LSU回复update信息给R2。
  3. R2发送ACK确认
  • Full状态:
    Loading完成的状态
  • Attempt:
    仅存在于NBMA网络中,此状态用于邻居建立前将发送hello间隔变和DR、BDR选举时间为120s,避免浪费带宽,建立邻居后为30s。

配置:

Route(config)#router ospf 进程号
Route(config-router)#router-id 1.1.1.1
Route(config-router)#network 网络号 通配符 area 区域号
Route#show ip ospf neighbor Router-ID
Route(config-if)#ip ospf pro 优先级(默认1,0不参与选举)
Route(config-if)#neighbor 邻居地址  指定单播邻居
  • 接口下:
Route(config-if)#ip ospf 进程号 area 区域号
  • 修改网络类型:
Route(config-if)#ip ospf network point-to-point

LSDB:

LSA描述链路状态信息

  1. 通过Hello消息发现、维持邻居
  2. 建立邻接关系
  3. 与形成邻接关系的路由器之间交换LSA
  4. 使用LSA构建LSDB
  5. 根据LSDB,使用SPF算法计算,生成路由表

修改cost:

Router(config-if)#ip ospf cost 值(1-65535)
  • 修改参考带宽:
Router(config-router)#auto-cost reference-bandwidth

ospf三张表:

  • 邻居表:
    包含邻居名单
  • 拓扑表:
    LSDB
    包含所有路由器及所连接的网络
  • 路由表:
    到达目的地的最佳路径表

OSPF区域概念:

  • 划分区域的好处:
    减少路由器存储LSA的数量。
    避免网络变化导致的全网LSA更新,重新SPF计算。
    区域汇总避免路由表太大问题。
  • 划分区域的注意事项:
    ABR负责将两个区域的路由信息做双向传递。
    非骨干必须和骨干相连。
    通常一个区域的路由器不超过50台。

LSA学习:

LSA组成Link-State Database

LSA头部信息:

每个LSA都有一个序号
序号为4字节数字,从0x80000001到0x7FFFFFFFF
如果遇到两个相同的LSA,序号高的为最新的
收到LSA后的过程:

如何确定本地有没有一条LSA:
  • 类型
  • LSA的名称(link-id)
  • 通告路由器的router-id
    三个要素都相同说明本地存在该LSA。
如何判断一条LSA是不是最新的:

LSA序号是否相同。LSA序号高的会被加入LSDB,如果收到一条序列号低的,则不会记录,会把序列号高的发送给对方。
age时间:经过一台路由器+1,时间有短的会被记录,执行spf算法。

OSPF网络类型:

类型默认对应二层类型DR/BDR建立邻居更新地址Hello时间描述
点到点PPP、HDLC、FR点到点子接口不选举自动224.0.0.510/40stub
广播多路访问以太网选举自动224.0.0.5 .6、单播10/40transit
NBMAFR主接口和FR多点子接口选举手动单播30/120transit
点到多点不选举自动224.0.0.5(仅hello)30/120transit
点到多点非广播不选举手动单播30/120stub
loopbackloopback/////

点到多点类型会将宣告的接口生成32为的主机路由传递给邻居。
环回口网络类型,环回口路由永远通告为/32,不论接口地址掩码为多少(可以修改环回口网络类型修改)

修改OSPF网络类型:Router(config)#ip ospf network 网络类型

Hello dead时间不同不能建立邻居。
相同网络描述的情况下,hello dead时间相同,可以建立邻居,可互相学到路由。网络描述不同,可以建立邻居,无法学到路由。
点到点与点到多点不能建立邻居关系原因:点到点Hello时间:10 40 点到多点:Hello时间:30 120

帧中继网络选择网络类型:默认NBMA

hub、spoke网络:
  • R1多点子接口使用默认NBMA网络,如果R1不是DR,R2和R3无法互相学到路由。所以hub点一定要为DR。
  • R2、R3互相学到的路由都指向自己的物理接口,但是R2、R3之和R1建立PVC,只有到达R1的DLCI,导致
优化hub、spoke网络类型:
  • 将网络类型改为p-to-mp
  • 不需要手动指定邻居。
  • 不选择DR,避免手动修改。
  • hub产生32位路由,不需要手动添加映射,简化配置。
  • 手动映射需要加broadcast否则不能自动建立邻居,需要改为p-to-mp no broadcast手动指定邻居。

LSA分类:

Route#show ip ospf database

ADV router:通告路由器
Link ID:链路状态ID

1类 router LSA:

范围:只在本区域内传递,不穿越ABR(区域边界路由器)。
起源:每个运行OSPF的路由器。
内容:路由信息和拓扑信息。
Link-ID:Router-ID

Route#show ip ospf network Link-ID

  • stub network:
    描述路由信息(前缀/掩码/cost)
  • transit network:MA网络
    描述不完整的路由和拓扑信息。
    包含本地连接DR的状态。
    表示本地用23.1.1.3连接的DR(23.1.1.2)的地址。
    需要结合二类LSA描述完整的路由和拓扑。
  • another router:P-TO-P网络

    描述拓扑信息。
    表示本地接口 ip12.1.1.1连接对方2.2.2.2(router-id)
2类 network link LSA:

范围:只在本区域内泛洪,不穿越ABR
起源:MA、NBMA网络的DR会产生。
内容:所有连接的路由器和本网络的掩码。
Link-ID:DR接口IP地址

Route#show ip ospf network X.X.X.X


attached router:Router-id 描述网络拓扑信息
联合一类LSA共同描述网络拓扑和路由。

3类 summary net LSA

范围:整个AS
起源:起源于ABR,将本区域的一类二类转换为三类。经过一个ABR,adv路由器会发生改变。
内容:只含有路由(前缀、掩码、cost),不包含拓扑
Link-ID:路由信息的前缀

Route#show ip ospf database summary Link-ID


默认不自动汇总,类型三通告每个子网,范围广,所以需要手动汇总。(ABR汇总)
查看区域的ABR:

R2#show ip ospf border-routers
5类 External LSA(外部LSA)

范围:整个AS
起源:ASBR,通告路由器永远不变。ABR将五类原封不动通告给其他区域。
内容:自制系统外部的网络
Link-ID:路由信息的前缀

Route#show ip ospf external X.X.X.X


ASBR从AS外部引入路由信息(重分布)产生五类。
由于通告路由器永远不变,其他区域无法找到ASBR,所以需要四类描述ASBR位置。
不执行自动汇总,范围广,需要手动汇总。(ASBR汇总)
查看区域的ASBR:

R2#show ip ospf border-routers
4类 summary ASB LSA 用于描述ASBR位置

范围:除ASBR所在区域外的整个自治系统
起源:ABR,每经过ABR,通告路由器发生改变
内容:在自治系统中的其他区域通告ASBR的位置
Link-ID:ASBR的router-id

Route#show ip ospf database asbr-summary Link-ID

7类 AS External LSA:

范围:只存在与次末节区域
与五类相同

R4#show ip ospf database nssa-external 55.1.1.1

NSSA区域中的ASBR将外部路由引入到OSPF中,ASBR像次末节区域中发送7类LSA描述外部路由,ABR将7类LSA转为5类LSA像其他区域通告。

OSPF路由类型:

O OSPF域内路由
O IA OSPF区域间路由
O E1 AS外部,基础值之上累加接口cost。引入后,基础值默认等于20,OSPF向距离矢量协议(RIP、EIGRP)重分布时,不自动添加种子度量,默认无穷大,必须手动添加否则不加表。
O E2 AS外部,cost为基础值,不累加
优先级:O>O IA>O E1>O E2(先比类型,在比cost)

  • 如何选择使用O E1还是O E2?
    如果重分布时想考虑本地网络开销,则选择O E1。
    如果不考虑本地网络的cost,则选择O E2
    如果网络双出口,一主一备,则选择O E2,主种子度量小,备种子度量大。
    如果内网网络接口复杂,需要考虑内网cost,则选择O E1。

所有IGP:

Connect(0)<static(1)<eigrp(内)(90)<OSPF(110)<IS-IS(115)<RIP(120)<EIGRP(外)(170)
比较过程:
AD:越小越优
metric:越小越优
负载均衡(等价)

LSA超载保护:

当邻居传递过多LSA到本地时,DOWN邻居。
产出阈值后会DOWN所有邻居。

  • 配置:
R1(config-router)#max-lsa 100 ?
  <1-100>       报log的百分比
  ignore-count  DNWN邻居重复的次数(默认5次,到达5次邻居永远不会建立)
  ignore-time   DOWN邻居的时间(默认5min)
  reset-time    计数器不到5次时,重设计数器时间
  warning-only  仅警告,不DOWN邻居

OSPF passive-interface(被动接口):

不收不发,passive的接口不能建立OSPF邻居。

  • 配置:
Router(config-router)#passive-interface 接口 | default(default会passive所有接口)

OSPF负载均衡:

负载均衡的路径必须等价
默认4条、最大可配置16条
改变最大支持的负载均衡链路数量:

Route(config-router)#maximum-paths <0-16>

可更改特殊链路的开销实现负载均衡:

Router(config-if)#ip ospf cost <1-65535>

OSPF汇总(只有ABR可以做汇总)、缺省路由下发:

汇总范围内所有明细消失,汇总才会消失
汇总的metric是所有明细中最小的
只能为本路由器连接的区域进行汇总
ABR、ASBR配置区域间汇总后,本地产生Null0接口,防止环路。

配置:
  • area区域间汇总针对三类操作,执行一转三的路由器做汇总。
Router(config-router)#area 源区域 range 55.1.0.0 255.255.252.0
  • AS之间的汇总产生五类(ASBR和NSSA区域的ASBR产生)LSA的路由器上做汇总。
Router(config-router)#summary-address 77.1.0.0 255.255.252.0
  • 下发默认路由,不加always必须本地存在默认路由,才下发默认,需要在ASBR上配置(5类 LSA OE2 cost 1):
Router(config-router)#default-information originate always

OSPF stub区域:

  • 虚链路不能穿越末节区域。
  • 末节区域不能承载ASBR(因为末节区域不能进去5类)。
  • stub区域:
  1. 5不能进入(减少路由条目),stub区域所有设备都需要配置stub,配置成stub区域的ABR自动下发默认路由(三类)。
Route(config-router)#area 区域号 stub
Route(config-router)#area 区域号 default-cost 值(cost默认为1,可选)
  • Totally stub:
    思科私有,其他厂商也有该特性:不允许3、4、5进入,自动下发默认路由(三类)。
    完全末节ABR配置stub no summery,其他路由器配置stub。
Route(config-router)#area 区域号 stub no-summary

NSSA区域:

CISCO私有,和stub一样为边缘区域。区别为NSSA区域可以存在ASBR,产生7类(和5类功能相同)在本区域扩散,本区域ABR将七类转化成五类发给其他区域。
nssa区域产生ON 1、ON2路由,与O E1、O E2相同。
存在7类 LSA,描述本区域引入的外部路由。

NSSA(次末节):支持ASBR存在,不自动下发默认路由
Route(config-router)#area 1 nssa

下发缺省(七类):

Route(config-router)#area 1 nssa default-information-originate
Totally NSSA(完全次末节):不允许 3、4、5,ABR会向此区域下发缺省路由(三类)。
Route(config-router)#area 1 nssa no-summary
Route(config-router)#area 1 nssa default-information-originate no-summary 下发缺省
查看:
Route#show ip ospf datebase nssa-external
Forward address:
  • 两种产生条件:
  1. NSSA、Totally NSSA区域的ABR产生5类LSA时带Forward address,描述真正的ASBR(因为NSSA区域中的ABR不是真正的ASBR)。
  2. R1和R7之间链路使能RIP(R1所在区域可以为普通区域、NSSA、Totally NSSA)R1(ASBR)接口再使能OSPF(并且没有passive R1的e0/1),Forward address永远为是R1接口地址,防止次优路径。

    Forward address必须通过OSPF可达才能加表。
Forward address地址选举条件:

选取最后宣告进OSPF的loopback口地址,如果不存在loopback口,选取最后启用OSPF的物理接口地址。
可通过命令配置ASBR,7转5时不带Forward address。

R1(config-router)#area 1 nssa translate type7 suppress-fa

cost计算时参考的不是去往ASBR距离,是去往FA地址的距离。

OSPF虚链路:

  • 虚链路OSPF类型点到点
  • 虚链路连接两个不连续的区域0(骨干)
  • 虚链路解决非骨干不和骨干相连
  • 虚链路建立时发送Hello,之后按需更新,不发Hello,虚链路学到的路由不老化(DNA (DO NOT AGE))。
  • 虚链路metric计算:两台建立虚链路路由器之间的加上各自通告的。
  • 虚链路无法穿越stub区域
  • 建立虚链路的两台路由器必须互相可达。
  • 源自于骨干,非骨干区域不能将3类通告给骨干。
  • 配置:
Route(config-router)#area 虚链路穿越的区域 virtual-link 对方ABR的route-ID 双向都要做
  • 开启虚链路认证:
Route(config-router)#area 虚链路穿越的区域 virtual-link 对方ABR的route-ID authentication message-digest
Route(config-router)#area 虚链路穿越的区域 virtual-link 对方ABR的route-ID authentication message-digest message-digest-key 1 md5 cisco

源自于非骨干传到骨干,骨干再次下放到非骨干,下发之前先校验执行下发的路由器中有没有这条路由的一类LSA,如果有,则不发送,目的是防环。

R2和R4建立虚链路, R4会变成区域0,R3的ABR为R2和R4,R3到R5的路由下一跳R4,R3到R1的路由下一跳R2,R2给R4的路由R4不会给R3,相反如此。

OSPF认证:

OSPF明文认证:
R1(config-if)#ip ospf authentication(开启认证)
R1(config-if)#ip ospf authentication-key 密码
  • 在区域下开启认证:
R1(config-router)#area 0 authentication(等于在所有area0接口下开启)
OSPF MD5认证:
  • Key ID和Key都需要相同
R1(config-if)#ip ospf authentication message-digest(开启MD5认证)
R1(config-if)#ip ospf message-digest-key 1 md5 密码
  • 在区域下开启认证:
R1(config-router)#area 0 authentication message-digest(等于在所有area0接口下开启)
  • 明文验证排错:
R1#debug ip ospf adj
设备更换key:

两台设备更换key时,不必因为key不同出现瞬即down邻居,可以在接口下添加新key,设备会使用两个key同时发报文,两台设备用新key建立邻居后,就会使用新key,如果不匹配,则会一直使用两个key发送报文。

OSPF V3(ipv6 OSPF)


V2基于子网连接 V3 基于Link连接,可以AB之间建立,不受其他干扰

OSPFv3 LSA:

Router-ID依然为IPV4地址表达
OI 区域间
ON1 ON2 区域外

  • LSA类型:
    重新定义8、9类。
  1. 2类只描述拓扑,描述路由为9类LSA。
配置:
  • Router(config)#ipv6 ospf 100 area 0
  • IPV6 OSPF V3认证:
    接口下配置:
Route(config-if)#ipv6 ospf authentication ipsec spi 256 sha1 0 12345678
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hanziqing

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值