实验过了,备考期间都没看理论,导致基本忘光了,开始嘎嘎补,有错误喊我。
OSPF是啥?
OSPF(开放最短路径优先),是一种动态路由协议。属于内部网关协议-IGP的一种,用于AS(自治系统)内的互联互通。
动态路由协议的分类
从路由协议的工作范围可分为:
IGP(内部网关协议):用于AS(自治系统)内的互联互通 EGP(外部网关协议):用于AS(自治系统)间的互联互通
从协议算法可分为:
1、距离矢量路由协议:RIP,IGRP 2、链路状态路由协议:OSPF,ISIS 3、混合型路由协议:EIGRP 4、路径矢量路由协议:BGP
链路状态路由协议:能够把网络的拓扑结构完整的绘制出来
距离矢量路由协议:仅知道目的网络的存在,开销和下一跳信息,其他的都无法感知到。
什么是AS?
由一个组织/机构统一进行管理,并运行相同的IGP协议的一组设备的集合。
内部网关协议(IGP):OSPFv2、OSPFv3(IPV6)、ISIS、RIPv1、RIPv2、EIGRP等
外部网关协议(EGP):BGP
概述
OSPFv2仅支持(IPV4)、OSPFv3仅支持(IPV6),不会向下兼容。
运行OSPF路由器之间交互的是LSA(链路状态)信息,而不是直接交互路由。LSA信息是OSPF正常进行拓扑及路由计算的关键信息。
OSPF是典型的链路状态路由协议,是目前广泛使用的IGP协议之一。
通过SPF(最短路径优先)形成无环且最短路径的拓扑。通过开销计算最短的路。逻辑上阻塞端口。
优点:
1.基于SPF算法,以“累计链路开销”作为选路参考值 2.采用组播形式收发部分协议报文 3.支持区域划分 4.支持对等价路由进行负载分担 5.支持报文认证,用于认证安全邻居关系
网络的组成
1、路由器 2、路由器之间的链路 3、路由器所连接的网段
链路属性/链路状态信息LSA
运行链路状态路由协议的路由器之间会先建立一个邻居关系,然后彼此之间开始交互LSA(链路状态通告)
1、直连的接口上的邻居 2、直连的接口的开销 3、直连的接口的地址/掩码(网段) 4、链路的类型 (描述路由器自身)
代码语言:javascript复制* Link ID: 2.2.2.2 邻居的router id
Data : 12.1.1.1 与邻居相连的接口地址
Link Type: P-2-P 链路类型
Metric : 1 到达该邻居的开销值
* Link ID: 12.1.1.0 直连网络地址
Data : 255.255.255.0 掩码
Link Type: StubNet 描述自身直连的链路类型
Metric : 1 自身到达该直连网络的开销
Priority : Low
LSA:一段状态链路信息,不是报文。
链路状态数据库LSDB
每台路由器都会产生LSAs,路由器将接收的LSAs放入到自己的LSDB(链路状态数据库),路由器通告LSDB(链路状态数据库),掌握了全网的拓扑。
路由器将LSA存放在LSDB(链路状态数据库)中 LSDB(链路状态数据库)汇总了网络中 路由器对于自己接口 的描述 LSDB(链路状态数据库)包含全网拓扑的描述
最短路径优先SPF 算法
每台路由器基于LSDB(链路状态数据库),使用SPF(最短路径优先)算法进行路径计算。每台路由器都计算出一个以自己为根,无环的,拥有最短路径的树。即路由器知道了到达网络各个地方的优选路径。
路由表生成
然后,路由器将计算出来的优选路径,加载进自己的路由器
链路状态路由协议总结
1、路由器之间建立邻居关系 2、路由器之间交互LSA(链路状态信息)并加入到自身的LSDB(链路状态数据库)中 3、进行路径计算 4、生成路由表项
OSPF 区域
大型网络单区的弊端
1、设备数量多,产生的LSA(链路状态信息)多,导致LSDB过大,消耗更多设备资源 2、SPF算法,导致树的规模大,计算路由消耗资源,网络收敛慢。 3、如果网络不稳定,导致全网路由器的LSDB都会不稳定,故障域大,故障排除难度高 4、单区域OSPF协议无法执行路由的汇总,导致路由表过大。
OSPF协议通过区域将网络换分成2层的结构,区域号通常用点分十进制表示。
1、骨干区域area 0 有且只有一个 必须连续 2、非骨干区域 area n 可以有多个 3、非骨干区域必须和骨干区域直接相连
不同区域的LSA是不相同的,区分区域的目的是为了减少1,2类lsa的交互,减小设备压力。跨区域传播lsa必须要3类LSA。
OSPF router id
作用:唯一的标识一台OSPF的路由器
router id 格式:点分十进制的格式,一般由项目管理员规划并手动配置 建议 使用路由器上的loopback接口的ip地址 充当router id loopback接口:由管理员手动配置的测试接口,只要路由器开机他就永远存在,不会存在物理故障,通常用于OSPF的router id ,如果没有loopback接口 管理员可以自行规划 保证全网唯一即可。
系统自动生成router id方式:
默认情况华为路由器启动后,会自动生成一个全局的router id
全局router id 默认使用设备上第一个配置的IP地址 作为全局的router id
如果配置ospf协议没有手动配置router id 则默认使用全局router id 作为ospf的 router id
ospf router id 更改后要生效 需要重新启动OSPF进程 导致网络震荡 甚至是中断 谨慎变更router id (reset ospf process
)
OSPF度量值metric (开销值Cost)
越小越优先 相同负载均衡
COST(开销)分为两种: 1、OSPF的链路开销 2、OSPF的路径开销,即路由器自身到目的网络沿途路径出接口链路开销之和
链路开销默认计算方式:100M/接口带宽 =COST
通过接口命令 ospf cost人工设置链路开销 优先于自动计算的开销值 链路两端开销值建议配置一致,防止来回路径不一致。
OSPF三大表项
OSPF三大表项-邻居表
display ospf perr brief
查看邻居表简略信息
display ospf peer
查看邻居表详细信息
OSPF三大表项-LSDB表
所有收集到的的链路状态信息(LSA)放到链路状态数据库(LSDB)中
display ospf lsdb
查看LSDB表 链路状态数据库
区域内唯一识别一条LSA的三要素 由产生该LSA的设备决定,用于描述链路状态信息。 LSA TYPE LSA的类型 LS id LSA的名称 Advrouter 哪台设备产生的
OSPF三大表项-OSPF路由表
display ospf routing
查看OSPF路由表
OSPF协议报文格式和网络类型 OSPF报文发送形式
广播型(Broadcast):当链路层协议是Ethernet(以太网)、FDDI(光纤分布式数据接口)时,缺省情况下,OSPF认为网络类型是Broadcast。在该类型的网络中,通常以组播形式发送Hello报文、LSU报文和LSAck报文。其中,224.0.0.5的组播地址为OSPF路由器的预留IP组播地址;224.0.0.6的组播地址为OSPF DR的预留IP组播地址。以单播形式发送DD报文和LSR报文。
点到点(P2P)型:当链路层协议是PPP、HDLC时,缺省情况下,OSPF认为网络类型是P2P。在该类型网络中,以组播形式(224.0.0.5)发送协议报文(Hello报文、DD报文、LSR报文、LSU报文、LSAck报文)。
点到多点型(P2MP):没有一种链路层协议会被缺省认为是point-to-multipoint型。点到多点必须是由其他的网络类型强制更改的。常用做法是将非全连通的NBMA改为点到多点的网络。在该类型网络中以组播形式(224.0.0.5)发送Hello报文,以单薄形式发送其他协议报文(DD报文、LSR报文、LSU报文、LSAck报文)。
非广播多路访问网络型(NBMA ):当链路层协议是ATM(异步传输模式)、FR(帧中继网络)、X.25(分组交换数据网)时,缺省情况下,OSPF认为网路类型是non-broadcast multiple access network 。在该类型的网络中,以单播形式发送协议报文(Hello报文、DD报文、LSR报文、LSU报文、LSAck报文),单播需要明确目的IP,即需要手动配置邻居。
OSPF报文
OSPF一共定义了5种类型的报文,不同类型的OSPF报文有相同的头部格式。 OSPF报文直接采用IP封装,在报文的IP头部中,协议号为89。
Type | 报文名称 | 报文功能 |
---|---|---|
1 | Hello报文(Hello) | 用于建立和维护邻居关系建立:在使能OSPF后,会发送Hello报文,两端设备进行协商。维护:Hello报文会周期性发送维护邻居关系 |
2 | DD报文(Database Description) | 用于邻居之间交互链路状态信息的摘要三个bit 一个序列号i bit:表示是不是第一个DD报文,置0不是,置1是m bit:表示后续是否还有携带内容的DD报文,置0否,置1是ms bit:表示是否为主设备,置0否,置1是序列号:随机产生的值 |
3 | LSR报文(Link State Request) | 用于向对端请求,本端缺少的链路状态信息 |
4 | LSU报文(Link State Update) | 回应对端请求,发送完整的链路状态信息给对端。 |
5 | LSAck报文(Link State Ack) | 收到完整的链路状态信息后,向对端回复确认 |
OSPF头部报文 只要是ospf报文该头部固定存在
代码语言:javascript复制OSPF Header ospf头部,只要是ospf报文该头部固定存在
Version: 2 版本号 2 ipv4 3 ipv6
Message Type: Hello Packet (1) 代表ospf协议报文类型 1 hello 2 DBD 3 LSR 4 LSU 5 LSACK
Packet Length: 44 ospf报文整体头部长度 ospf头部 ospf报文载荷
Source OSPF Router: 1.1.1.1 发送该报文的路由器的router id
Area ID: 0.0.0.0 (Backbone) 发送该报文的接口所属区域
Checksum: 0xfa9c [correct] 校验和
Auth Type: Null (0) 认证方式 0代表空认证 1代表明文认证 2代表MD5认证
Auth Data (none): 0000000000000000 携带的认证信息 没做认证0填充
Hello报文
Hello报文作用:
用于建立和维护邻居关系 建立:在使能OSPF后,会发送Hello报文,两端设备进行协商。 维护:Hello报文会周期性发送维护邻居关系
在以太网链路上,缺省是,OSPF采用组播发送Hello报文(目的地址为224.0.0.5)
hello报文中进行DR BDR选举 先比优先级 相同比Router id 大的为DR
Hello报文在P2P(点到点型),Broadcast(广播型)链路上每隔10s周期性发送,目的地址是224.0.0.5,邻居失效时间为40s,默认为Hello发送周期的4倍。
Hello报文在P2MP(点到多点型),NBMA(非广播多路访问网络型)链路上每隔30s周期性发送,其中P2MP的目的地址是224.0.0.5 ,NBMA(非广播多路访问网络型)的目的地址是手动指定(单播地址),邻居失效时间为120s,默认为Hello周期的4倍。
hello报文头部
代码语言:javascript复制OSPF Hello Packet hello报文头部
Network Mask: 255.255.255.0 发送该报文接口的子网掩码
Hello Interval [sec]: 10 hello报文发送间隔
Options: 0x02, (E) External Routing 可选项 Ebit:描述对5类LSA是否需要同步 Nbit:描述对7类LSA是否需要同步
Router Priority: 1 发送该hello报文接口的优先级,用于选举DR/BDR
Router Dead Interval [sec]: 40 邻居失效时间 一般为发送时间的4倍
Designated Router: 0.0.0.0 本链路上DR路由器接口的地址 P2P/P2MP值为0.0.0.0
Backup Designated Router: 0.0.0.0 本链路上BDR路由器接口的地址 P2P/P2MP值为0.0.0.0
hello报文影响邻居关系建立的因素
卡在2-Way
1、Route ID冲突 2、区域ID不一致 3、认证有问题 方式或密码错误 4、Hello报文间隔不一致,死亡时间不一致 (发送时间在点到点和广播中每隔10秒,死亡时间为4倍40秒 目的地址224.0.0.5) 5、Options 字段要一致 Ebit位=1 Nbit=0时 普通区域 Ebit位=0 Nbit=0时 末节区域/完全末节区域 Ebit位=0 Nbit=1时 NSSA区域/完全NSSA区域 6、广播型链路中接口优先级全为0 都为DRother 不选举DR BDR 7、报文的源地址是否处在一个网段 8、子网掩码是否一致
Options
卡在ExStart/Exchange
1、MTU不匹配 2、链路类型不一样
静默端口Silent-interface
启用后接口将被禁止收发Hello报文
LSA同步
LSA是OSPF进行路由计算难道关键依据。 OSPF的LSU报文可以携带多种不同类型的LSA 各种类型的LSA拥有相同的报文头部
LS Age(链路状态老化时间):此字段表示LSA已经生存的时间,单位为秒。 Options(可选项):每一个Bit都对应了OSPF所支持的某种特性。 LS Type(链路状态类型):表示本LSA的类型。 Link State ID(链路状态ID):不通的LSA,对该字段的定义不同。 Advertising Router(通告路由器):产生该LSA的路由器的Router ID。 LS Sequence Number(链路状态序列号):当LSA每次有新的实例产生时,序列号就会增加。 LS Checksum(校验和):用于保证数据完整性和准确性。 Length(字长):包含LSA头部在内的LSA总长度值。
LS Type(链路状态类型)、LS ID(链路状态ID)、Adv Router(通告路由器)三个参数唯一的标识了一个LSA
LS Age(链路状态老化时间)、LS Seq(链路状态序列号)、LS Checksum(校验和)用于判断LSA的新旧。
LSA同步用于交换缺少的LSA实现LSDB全同步,并且让相同的LSA实现新旧程度一致。
LSA摘要/LSA头部的作用:
1、唯一的识别一条LSA,解决LSA有没有的问题 2、解决LSA的新旧程度的问题
LSDB的同步:
1、交换彼此缺少的LSA 2、新的同步掉旧的
为什么要实现可靠的LSDB同步:
因为DD报文中携带的本LSDB中所有LSA摘要信息,根据摘要信息的可靠性,才能决定后续LSDB是否完全同步一致。而OSPF封装在IP报文中没有可靠的回馈机制,所以通过主从以及序列号的变化来确保交互的可靠性。
LSA新旧判断机制
1、比较seq,seq越大代表LSA越新; 2、seq相同,则比较校验和,校验和越大越优; 3、校验和相同,则比较ls age 如果ls age 等于 3600s,则认为是最新的LSA,此时收到该LSA的设备会删除该LSA ls age=3600s的作用,用于删除一条LSA; 4、如果LS age不等于3600s,则比较两个LS age 的差值,相差大于900s,则ls age小的是最新的LSA; 5、如果相差小于900s,则认为新旧程度一致; 6、如果LSA3600s没有得到更新,则从LSDB数据库中删除。
LSA更新机制
1、周期性更新:OSPF路由器对自身产生的LSA有周期性更新的责任,每隔30分钟更新一次自己产生的LSA,seq 1,校验和重新计算 ls age 置为0,并且泛洪给其他邻居。 2、触发更新:当LSA的链路状态取值发生变更时,立刻产生新的LSA,seq 1,开销值重新计算,ls age 置为0,并且泛洪给其他邻居。
评价LSA新旧程度
先比seq,再比校验和,最后比LS AGE DD报文,携带LSA头部信息,LSU携带LSA头部以及具体的链路状态信息,完整版的LSA LSR只携带三要素,LSACK,通过携带LSA头部,通告对方收到了你的LSA
代码语言:javascript复制Type : Router 描述LSA的类型
Ls id : 2.2.2.2 LSA的名称,取值和LS Type相关,1类LSA由路由器自身的router id充当
Adv rtr : 2.2.2.2 描述产生该LSA路由器的router id
以上3个参数用于在同一个区域中唯一标识出一条LSA
--------------------------------------------------------------
Ls age : 59 表示这条LSA的存货时间,产生LSA的路由器每隔30分钟周期性更新一次自身的LSA并泛洪,如果某条LSA存活时间超过3600s,则从LSDB中删除。
如果LSA的状态发生变化,需要立即更新该LSA,并泛洪。
Len : 60
Options : E
seq# : 80000003 表示这条LSA更新次数,初始序列号为0X80000001,最大的序列号为0X7FFFFFFF
chksum : 0xb8d 校验和
OSPF的邻居邻接之间的关系
OSPF工作过程
OSPF完成邻接关系有四个步骤,建立邻居关系,协商主从、交互LSDB信息,同步LSDB。
邻居关系
邻居:互相发现 two-way
如果广播型网络中,路由器接口优先级全为0,此时会卡在two-way状态。
two-way状态仅仅是双向发现,邻居建立,不会同步LSDB数据库 如果邻居都不是DRother,才会进行LSDB同步,建立邻接关系 如果邻居都是DRother,则全部维持two-way状态。
双方发送Hello报文的过程,此过程中,会涉及到init状态和2-way状态以及双向2-way状态。
每10S发送一次HELLO报文,用于维护邻居关系,如果4倍HELLO时间没有收到邻居的HELLO报文,则认为邻居失效。
同时在发送Hello报文的程中会选举DR和BDR以及Drother
两台路由器 当一台路由器开启OSPF 并把接口加入到OSPF中,此时开始发送Hello报文,发送的报文是:SIP AR5 DIP 224.0.0.5 HELLO ROUTE ID 5.5.5.5(224.0.0.5是因为无法确认对方是否开启OSPF,所以发送特定组播) 此时AR6(接口被加入到OSPF)从down状态进入init状态(down状态:没有接收到hello报文,inti状态:接收到对方hello报文,但是没从对方的报文中看到自己的router id) 此时AR6开始发送报文:SIP AR6 DIP 225.0.0.5 hello router ID 5.5.5.5 nei 5.5.5.5(因为ar5和ar6之间还没建立联系,所以目标IP还是组播地址,因为ar5给ar6发送过自己的route id 所以ar6回报文的时候会携带ar5的router id) Ar5收到AR6的报文,进入2-WAY双向发现状态,发送报文SIP AR5 DIP 224.0.0.5 router ID 5.5.5.5 nei 6.6.6.6 (双向确认,给ar6发送 意味着ar5知道AR6的router ID) Ar6收到AR5的报文,ar6进入2-way 双向发现状态,邻居关系建立
邻接关系
此过程是互相交互LSA的过程,会接触exstart状态、exchange状态和loading状态最后会到达full状态。
首个进入two-way状态的路由器会主动发送DD报文进行主从选举,实现可靠的LSDB同步
协商过程:
Exstart主从选举 master/slave
Exstart状态下,AR5会发送dd报文,但是此时不携带任何摘要信息,只携带随机序列号,以及自己的router ID。AR6也会发送同样的报文(谁先到2-WAY状态谁先发dd报文)
两个报文相比较routerID 大小(因为routerID 全网唯一),谁大谁成为主路由器。进入下一个状态
Exchange状态,交互摘要信息(若后期链路状态发生改变,直接发DD报文)
从路由器AR5先发送DD报文 携带主路由器的随机序列号信息 以及自己的LSA1摘要信息:DD Seq=y lsa1
AR6收到AR5的DD报文,回复DD报文:DD Seq=y 1 LSA2(序列号要采用 1确认。保证LSDB不会有任何丢失和缺少 )
以此类推(从路由器不会 1确认,只会确认主路由器发送过来的序列号)
当主路由器LSDB信息全部同步完毕后:回复:DD seq=y 1 1 null(空数据告知对方已经传输完毕)
从路由器传输完毕也会回复一个想同类型的DD报文 (从总是做最后的确认)
双方进行比对LSDB。进入下一个状态
Loading状态:开始双方请求和更改摘要信息的完整版(后期摘要发生变更,直接发送lsr和lsu)
一方根据LSDB缺少的信息,发送lsr信息
另一方收到LSR信息,发送LSU信息给对方补充。
当都发送完毕后,双方发送LSACK确认LSDB信息传输完毕。
保证LSA新旧程度一致,为的是能够让LSDB保持一个最新的讯息。
Full状态:建立邻接关系 LSDB数据库完成同步。
DD报文的MTU取值会影响邻接关系的建立
默认情况下,华为设备DD报文携带的MTU值=0,默认情况下,华为对接口的MTU不做要求。不比较MTU大小但是思科设备DD报文中携带的MTU为1500,要求邻居之间MTU值保持一致。
实现LSDB同步的意义
因为DD报文中携带的本LSDB中所有的LSA摘要信息,根据摘要信息的可靠性,才能决定后续LSDB是否完全同步一致。 而OSPF封装在IP报文中没有可靠的回馈机制,所以通过主从以及序列号的变化来确保交互的可靠性。 OSPF可靠性的表现: 通过三次握手建立邻居关系,避免单项邻居。 LSDB主从选举,通过序列号进行LSDB的同步采用隐式确认机制。
DR BDR
在broadcast和nbma的链路上需要进行DR/BDR的选举,其他链路类型无需做DR/BDR的选举。
ospf默认网络类型如何确定
1、如果接口是PPP /HDLC,则默认为p2p链路 2、如果接口是以太网接口,则默认是广播型线路 3、如果接口是FR、ATM,则认为是NBMA(非广播多路访问) 4、没有任何一种链路类型被认为是P2MP点到多点,需要由管理员手动配置
DR BDR 基于接口划分
DR/BDR 某某接口属于DR/BDR 基于接口 DR和BDR选举 通过hello报文完成 在two-way之前 主从选举 通过DD报文完成
广播型链路/非广播多路访问 DR和链路上所有路由器建立full邻居 BDR和链路上所有路由器进阿里full邻居 drother之间仅建立two-way邻居
P2P/P2MP 无需DR/BDR选举,直接建立FULL邻居
DR:指定路由器
DR路由器会监听两个地址,224.0.0.5 224.0.0.6
DRother,只会从224.0.0.5 收到LSA,从224.0.0.6发新学习到的LSA
DRother之间只建立邻居关系2-way 所有的DRother只和DR建立邻接关系full
如何选举DR:
通过接口的优先级选举DR,取值范围0-255 优先级越大,优先成为DR 如果优先级相同,则比较router id大的成为DR 如果修改优先级为0,则该设备直接成为DRother (如果两个接口都为0 会卡在2-way)
为了避免单点故障,所以会选举BDR作为备份,次优的优先级,成为BDR 如果BDR失效,则由其他DRother之间选举产生
DR/BDR默认不具备抢占性
DR/BDR的选举特点
1、每条广播链路/NBMA链路都会进行独立的选举 2、每条广播链路/NBMA链路DR有且只有一个,必须选举出DR 3、每条广播链路/NBMA链路BDR有且只有一个,不必须选举出BDR(默认会进行BDR的选举) 4、BDR是DR的备份路由器,DR失效,BDR成为DR,重新选举BDR 5、BDR失效,重新选BDR 6、DR和BDR没有抢占性 7、优先级等于0的路由器(为DRother),不参与DR和BDR选举
DR/BDR监听 组播地址
Drother产生的LSU通过224.0.0.6发送给DR,BDR,DR通过224.0.0.5发送给其他的DRother和BDR,DROTHER通过224.0.0.6发送ACK确认,BDR通过组播224.0.0.5向DR确认。
BDR产生的LSU通过224.0.0.5发送给drother和DR,DR通过224.0.0.5发送ack,drother通过224.0.0.6发送ack。
DR产生的LSU通过224.0.0.5 发送drother和BDR,BDR通过224.0.0.5发生ack , drother通过224.0.0.6发送ack。
DR和BDR同时监听224.0.0.5和224.0.0.6 2个组播地址,drother只监听在224.0.0.5。|
Broadcast广播型链路:每有一条广播型链路,就有一条二类LSA 可改成链路类型P2P就只有一类LSA
OSPF路由器类型
1、区域内路由器IR 2、区域边界路由器ABR 3、骨干路由器BR 4、自治系统边界路由器ASBR
LSA网络类型
1类LSA 路由器LSA(Router LSA):每个设备都会产生,描述区域内的拓扑和路由信息,描述了设备的链路状态和开销,该LSA只能在接口所属的区域内泛洪
2类LSA 网络LSA(Network LSA):由DR产生,用于描述广播型链路。在一个区域内,描述广播型链路中路由器的邻接关系的路由器。该LSA只能在接口所属区域内泛洪
3类LSA 网络汇总LSA(Network Summary LsA):由ABR(区域边界路由器)产生,描述区域内某个网段的路由,该类LSA主要用于区域间路由的传递。
4类LSA ASBR汇总LSA(ASBR Summary LSA):由ABR产生,描述到ASBR的路由,通告给除ASBR所在区域的其他相关区域。
5类LSA AS外部LSA(AS External LSA):由ASBR产生,用于描述到达OSPF域外的路由
7类LSA 非完全末悄区域LSA(NSSA LSA):由ASBR产生,用于描述到达OSPF域外的路由。NSSA LSA与AS外部LSA功能类似,但是泛洪范围不同。NSSA LSA只能在始发的NSSA内泛洪,并且不能直接进入Area0。NSSA的ABR会将7类LSA转换成5类LSA注入到Area0
1类LSA Router LSA
Router LSA(1类LSA):每台OSPF路由器都会产生。用于描述自身设备的链路状态和开销值,只会在该接口所在区域泛洪,不会跨区域传播。描述了所有加入了OSPF进程的直连路由信息。
V(Virtual Link 虚链路):如果产生此LSA的路由器是虚链路的端点,则置为1。 E(External):如果产生此LSA的路由器是ASBR,则置为1。 B(Border):如果产生此LSA的路由器是ABR,则置为1。 links:LSA中的Link(链路)数量。Router LSA使用Link来承载路由器直连接口信息。
概念:
- 只能在本区域内泛洪,加入在什么区域中,只在本区域中泛洪。
- 只会产生1条1类LSA,来描述你加入接口的信息。
- 区域内所有的路由器加入邻居,都会产生一条1类LSA。所以当区域内所有路由器同步完成后,都会产生1条1类LSA,就不止1条了。但是同一个设备只会自己产生一条自己的1类LSA。其他的都是别人产生的LSA同步过来的。
- 不同进程,不同区域,都会产生一条1类LSA。非区域0中的LSDB也会产生一条1类LSA,但不会通告给区域0。
一类LSA router LSA:
每台运行了OSPF的路由器都会产生一条一类LSA,用于描述加入OSPF进程中的直连链路状态,仅在链路所在的区域内泛洪。每台路由器在同一个区域下只产生一条一类LSA。
查看简要信息 display ospf lsdb
查看详细信息 display ospf lsdb router
查同区域下的其他路由器产生的一类LSA display ospf lsbd router 2.2.2.2
loopback接口在本路由器的开销是0
一类LSA数据结构:每条链路状态信息由4个参数负责描述 Link id、Data、Link Type、Metric
一类LSA一共有4种链路类型(link type)来描述直连链路状态。
1、Stubnet 用于描述路由器自身直连的网络信息 (路由信息) 2、P-2-P 用于描述p2p链路和p2mp链路上的邻居 (拓扑信息) 3、transnet 用于描述广播型、NBMA型链路上的邻居 (拓扑信息) 4、Vlink 用于描述虚链路上的邻居,类似P2P (拓扑信息) 每种链路类型,分别由link id、data、 metric 来具体描述
代码语言:javascript复制Type : Router 描述LSA的类型
Ls id : 2.2.2.2 LSA的名称,由路由器自身的router id充当
Adv rtr : 2.2.2.2 描述产生该LSA路由器的router id
Ls age : 59 存活多少秒
Len : 60 LSA的长度
Options : E
seq# : 80000003 序列号
chksum : 0xb8d 校验和
Link count: 4
* Link ID: 14.1.1.1 伪节点router id由DR的接口地址充当
Data : 14.1.1.1 与伪节点相连的接口地址
Link Type: TransNet 描述链路上广播型链路和NBMA链路的邻居
Metric : 1 到达该伪节点的开销值
由于link type为TransNet,所以描述的是广播型链路,且这条信息应该是描述对方邻居的信息,但是由于link ID和对方接口IP都是本设备上的。我们因此判断,此时在这条广播型链路中,有一台伪节点充当互联设备,到达该伪节点开销为1。而又因为linkID是自身设备,根据原理判断,此时本设备为这条广播型链路的DR。我们想要查询这条广播型链路的其他设备。需要查询二类LSA。
* Link ID: 2.2.2.2 邻居的router id
Data : 12.1.1.1 和邻居相连的接口的地址
Link Type: P-2-P 描述p2p链路上的邻居
Metric : 48 自身到该邻居的开销值
* Link ID: 12.1.1.0 直连的网络号
Data : 255.255.255.0 子网掩码
Link Type: StubNet 路由器直连链路的链路状态信息
Metric : 48 自身到达该直连链路的开销值
Priority : Low
Link ID:可以是邻居routerID或是网段,取决于link type Data:可以是接口IP地址或者子网掩码,取决于link type Link Type:直连链路的类型 Metric:自身到达该直连链路的开销 Priority:本地优先级(仅本地有效,跟收敛相关)
Vlink 虚链路(在ABR上建立)
VLINK虚链路的作用
1、修复不连续的区域0 2、让非骨干区域与骨干区域逻辑上直连 3、路径优化 4、虚链路永远属于区域0 5、作为区域0的备用链路
虚链路物理接口经过的区域叫中转区域
经过的开销为虚链路物理路径的真实开销 虚链路无法直接修改开销值 要想修改必须修改物理经过区域的开销值
VLINK配置限制
1、区域0不能配置虚链路 (在非骨干区域配置虚链路 配置命令见IP命令 hello报文为单播) 2、Vlink只能经过一个区域 3、特殊区域不能创建虚链路(STUB,NSSA)
ABR
1.连接2个区域以上的路由器,并且至少有一个活动的接口属于区域0。 2.存在vlink的路由器也是ABR。路由器类型通过TYPE-1的FLAGS字段进行描述 3.ABR通过TYPE-1的LSA,告知直连区域自身是该区域的ABR 4.ABR同区域的所有路由器根据区域内的SPF树计算自身到ABR的开销 5.ABR产生3类LSA,描述区域间的路由6.路由器根据3类LSA结合自身到ABR的路由,计算区域间路由 7.ABR将直连区域的区域内路由(TYPE-1,TYPE-2计算出的路由)转换成其他区域的3类LSA 8.ABR将区域0中3类转换成非骨干区域的3类,ADV ROUTER会改变,COST重新计算 9.非骨干区域的3类不会传回到骨干区域,区域间的水平分割 10.ABR在区域0存在活动的FULL邻居时,不会用非骨干区域的3类进行路由计算
虚链路存在环路风险
1、通过虚链路学习到的1类2类3类4类LSA所计算出的路由 不会转换成虚链路所在区域的3类和4类LSA,目的是防环 2、无法在虚链路所在的区域对区域0的路由进行路由汇总 (当中转区域的ABR汇总了区域0的路由 ABR虚链路所在区域不执行汇总 ) 3、存在虚链路的ABR,得到一条非自身产生的3类LSA,那么该LSA在自身区域0中存在,此时要求3类LSA,也必须在虚链路所经过的区域内他的LSDB数据库中存在。如果不存在,则不使用该3类LSA计算路由。(虚链路物理上是经过中转区域的,如果中转区域没有去区域0的路由,那么在数据传输时到达不了目的地)如果虚链路通过1类2类LSA计算路由,在Vlink所在区域没有对应的3类LSA,也不会计算经过虚链路泛洪来的1类和2类LSA。 4、存在虚链路的ABR,通过虚链路传来的1类和3类LSA和虚链路所经过的其他区域传来的3类LSA,在满足条件3的情况下,优选开销小的计算区域间路由
2类LSA Network LSA (即是路由信息,也是拓扑信息)
Network LSA(2类LSA):由DR产生,描述本网段的链路状态,在所属的区域内传播。记录了该网段所有与DR建立了邻居关系的OSPF路由器,同时携带了该网段的网络掩码。
- 由DR产生的LSA
- 每有一条广播型链路就会有一条2类LSA
- 2类LSA即是路由信息,也是拓扑信息
- 2类LSA规定建立邻居必须要求宣告接口IP掩码一致
- 在本区域内泛洪
Type : Network 二类LSA,由DR产生
Ls id : 100.1.1.4 DR接口的IP地址充当/伪节点的router id
Adv rtr : 4.4.4.4 DR的router id
Ls age : 1454
Len : 36
Options : E
seq# : 80000008
chksum : 0x5e52
Net mask : 255.255.255.0 DR接口的子网掩码
Priority : Low
Attached Router 4.4.4.4 拓扑信息 伪节点链接的实节点的router id
Attached Router 2.2.2.2 拓扑信息
Attached Router 3.3.3.3 拓扑信息
只要有一个一类LSA transnet就对应一个二类LSA 只要有一条二类LSA就有一条路由信息 通过Ls id和Net mask计算出
到伪接口的开销为1 从伪节点出去开销为0,LOOPBACK接口出方向开销值为0
3类LSA Sum-Net (路由信息)
由ABR产生,用于向一个区域通告到达另一个区域的路由。
问题展现:
1.当网络规模变大后,lsdb会变得非常臃肿,也会增加设备cpu损耗。当网络拓扑发生变动时,会引发网络震荡,所有的路由都会重新计算。收敛过慢。
2.无法进行路由汇总
解决方式:
划分多区域进行网络优化 减小LSDB数据库 降低网络设备性能消耗 但是1、2类LSA无法跨区域传播,所以,此时ABR成为生成3类LSA的重要角色。 3类LSA负责跨区域传播lsa
3类SLA是路由信息
代码语言:javascript复制Type : Sum-Net 三类LSA,由ABR产生,只在区域内泛洪
Ls id : 14.1.1.0 区域间路由的网络号
Adv rtr : 1.1.1.1 ABR的router id
Ls age : 289
Len : 28
Options : E
seq# : 80000002
chksum : 0x87bf
Net mask : 255.255.255.0 区域间路由的子网掩码
Tos 0 metric: 1 ABR到达该路由的开销值
Priority : Low
ABR特点:
1、将直连区域内的路由转化为3类LSA在其他直连直连区域泛洪 2、骨干区域的3类LSA可以转化成非骨干区域的三类LSA(其他区域传递给骨干区域的3类LSA被传递到ABR,再由ABR解析计算,传递给本非骨干区域中。实现多区域路由互通。此时Adv router 会由之前的其他区域的ABR变成本区域ABR的路由器。) 3、非骨干区域的3类LSA不能再次传回骨干区域 4、ABR只有在区域0没有full邻居时才使用非骨干区域的3类LSA计算区域间路由 5、ABR如果连接多个其他区域,也是直接把三类传递过去,并不是3类只进入区域0,再由区域0传递给其他区域。
ABR接收的3类LSA不会再次传出去
ABR产生3类LSA的条件
1、1类或者3类LSA在ABR上计算出来的路由。并且在全局路由表中不存在,不管是active,inactive,都会转换成3类LSA 2、OSPF协议认为自己对该路由不可达,则不产生3类LSA
华为设备机制 一个路由器有一个区域0有一个其他区域 就会显示一个假ABR 真ABR有一个接口在区域0
区域间路由计算的规则
cost=ABR到该路由的开销值 自身到达该ABR的开销值 下一跳=自身到产生该三类LSA的ABR的下一跳。 R2,如何知道R1是ABR,ABR通过一类LSA的flag位B bit置位为1表明自己是ABR
Vbit代表是否存在虚链路,V=1时存在 0不存在 Ebit代表是否为ASBR 1 是,0不是 Bbit代表是否为ABR 1 是,0不是
区域间路由防环
OSPF要求所有的非骨干区域必须与Areao直接相连,区域间路由需经由Area0中转。 区域间的路由传递不能发生在两个非骨干区域之间,这使得OSPF的区域架构在逻辑上形成了一个类似星型的拓扑。
OSPF如何避免区域间路由环路
OSPF划分了骨干区域和非骨干区域,所有非骨干区城域均直接和骨干区域相连,且骨干区域只有一个;非骨干区城之间的通信都要通过骨干区域中转;并规定从骨干区城传来的三类LSA不再传回骨干区域。
一类LSA 二类LSA 优先与区域0 3类LSA
骨干区域3类LSA优先非骨干区域3类LSA
ABR不会将描述到达某个区域内网段路由的3类LSA再注入回该区域
ABR只在区域0没有full邻居才用非骨干区域的3类LSA计算路由
四类五类LSA Sum-Asbr、External (路由信息)
1.外部路由引入路由后以5类LSA在区域内泛洪。 2.不在单独区域内泛洪,在所有网络中泛洪。
5类LSA External
查看命令 dis ospf lsdb ase 6.6.6.0
Type : External 5类LSA,由ASBR产生
Ls id : 6.6.6.0 外部路由的网络号
Adv rtr : 5.5.5.5 ASBR的router id 我相去外部 需要先到达该ASBR
Ls age : 168
Len : 36
Options : E 是否允许外部路由
seq# : 80000001
chksum : 0x8f1b
Net mask : 255.255.255.0 外部路由的掩码
TOS 0 Metric: 1 外部路由引入时默认开销值
E type : 2 外部路由开销类型,默认类型2 在1类LSA flag中
Forwarding Address : 0.0.0.0 转发地址,外部路由路径优化
Tag : 1 外部路由标记,默认为1,方便对外部路由做标识
Priority : Low
type-cos 2 :路由表中不显示路由在AS内部路径的开销值 (只会显示默认开销 不显示实际开销) type-cos 1 :路由表中显示引入时的开销和AS内部路径开销之和
外部路由计算
1、与ASBR同区域的路由器如何进行路由计算 外部路由开销=自身到达该ASBR的开销 外部路由引入时的开销
外部路由下一跳=自身到达ASBR的下一跳
2、与ASBR不同区域的路由器如何进行路由计算 自身到达该ABR的开销(SPF) (ABR到ASBR的开销,4类LSA) 引入时的开销值
4类LSA Sum-Asbr
ASBR同区域的ABR产生,负责生成4类LSA,用于通告给其他区域如何到达ASBR。
本质与3类差不多,但仅仅负责通告其他区域,ASBR在哪里,标记ASBR。
在路由表中会出现两个具备ASBR信息的路由信息。
但是一个是通过3类宣告的,只告诉你如何去ASBR,另一个是通过4类宣告的,你的路由信息不是仅仅要去asbr,而是通过asbr要转发出去。
有外部路由引入,自动生成4类LSA。
四类LSA就是为了描述一台ASBR路由器的。
区域内有多个ABR则都产生4类
代码语言:javascript复制Type : Sum-Asbr 4类LSA,和ASBR所在区域的ABR产生,在产生的区域内泛洪
Ls id : 5.5.5.5 ASBR的router id
Adv rtr : 3.3.3.3 ASBR所在区域ABR的router id
Ls age : 165
Len : 28
Options : E
seq# : 80000003
chksum : 0x2c0c
Tos 0 metric: 2 ABR到ASBR的开销值
5类LSA的选路机制
cost type2 选路
1、引入时开销小的路径优先使用,不关心AS内部路径好坏。
2、引入时开销一样,则比较到达ASBR的开销值,越小越优
3、引入时开销一样,到达ASBR的开销值也一样,则负载分担。
cost type1选路
1、引入开销 AS内部开销最小的优先 2、引入开销 AS内部开销相同,则负载分担
类型1的开销计算方式优先于类型2的开销计算方式 cost type1的选路体现路由意义上的最佳路径 cost type2的选路体现了管理员的选路意志
1类2类LSA优于区域0的3类LSA–优先于非区域0的3类LSA–优先于外部路由–外部路由类型1的开销计算优于类型2的开销计算
4类LSA防环以及选路机制
1、如果通过非骨干的1类LSA能计算到ASBR的开销值,也能通过骨干区域的1类LSA计算去往该ASBR的开销,并且开销相同,则优先使用非骨干区域的1类LSA;如果开销值不同,则使用开销值小的。
2、如果通过不同的非骨干区域都能计算出到达该ASBR的开销,并且开销相同时,则优选非骨干区域号大的1类LSA进行传递。如果开销不同,则选开销小的。 所以通过多个区域的1类LSA能够访问ASBR则优先选择区域号大的1类LSA。如果开销不同,则选择开销小的
3、如果区域0中引入外部路由,ABR优先使用区域0中的1类LSA计算外部路由,优于4类LSA。当ABR,区域0有活动邻居时,不会使用非骨干区域的4类LSA计算外部路由。
4、如果非骨干区域引入外部路由时,ABR通过1 类LAS和4类LSA都能计算到去往该ASBR的路由时,选择到ASBR开销小的路径。 如果1类和4类到达该ASBR开销相同,则优先选择1类。不会负载分担。
5、ABR通过优先使用区域0的4类LSA计算外部路由,区域0的4类LSA优于非骨干的4类LSA。
4类LSA和5类LSA都可以单独出现,例如在一个只有一个骨干区域的ospf网络中引入外部路由,就不会产生4类LSA。 空引入外部路由时,可以产生4类LSA但不会产生5类LSA ABR产生4类泛洪五类 ASBR泛洪5类
特殊区域
传输区域和末端区域
OSPF的区域可分为两种类型:
传输区域(Transit Area)︰除了承载本区域发起的流量和访问本区域的流量外,还承载了源lP和目的IP都不属于本区域的流量,即“穿越型流量”,如本例中的Area 0。
末端区域(Stub Area):只承载本区域发起的流量和访问本区域的流量,如本例中的Area i和Area 2。
Stub区域
为了减少在此区域过量的LSDB泛洪,照顾老旧且性能较差的设备。在不需要进行中转服务的区域设置。 在不影响IP可达的情况下,尽量减少LSA泛洪。
当末端区域设备性能不够,通过特殊区域可以精简LSA
hello报文中 ,option字段Ebit字段和Nbit都是用于描述区域类型的 Ebit代表是否进行5类LSA的同步,1代表需要同步,0代表不同步 Nbit代表是否进行7类LSA同步,1代表需要同步,0代表不同步
当hello报文中 option E=1,N=0 普通区域 option E=0,N=0 末节区域/完全末节 option E=0,N=1 NSSA/完全NSSA
非完全末节区域
设置末节区域的区域内,ABR不会向自己区域内泛洪自己收到的的外部路由(4,5类路由)。ABR会向本末节区域内泛洪一条“3类默认LSA”,全部指向ABR,用于区域内设备访问外部路由。
当末节区域通过这条“3类默认LSA”访问到末节区域的ABR时,ABR自身拥有外部路由的LSA。再进行转发。
stub区域特点
1、stub区域的ABR不在stub区域泛洪5类LSA(不泛洪=无法学到5类LSA不会产生路由) 2、stub区域的ABR不在stub区域产生4类LSA 3、stub区域的ABR,在stub区域产生区域间的3类LSA,用于访问区域间的路由 4、stub区域的ABR,在stub区域产生缺省的3类LSA用于访问外部路由 5、default- cost 10 修改3类LSA默认路由 去往外部路由的开销值 (需要进入到stub区域ospf区域内修改) 6、外部路由存在次优路径
(当stub区域内到ABR的开销都一样 那么负载分担 但是外部存在次优路径)
7、stub区域存在多个abr时,在区域0存在邻居,则不会计算彼此缺省的LSA,区域0所有邻居失效,才会计算其他ABR产生的缺省LSA
非完全末节区域建立邻居的过程
属于末节区域的ABR在建立邻居过程中,DD报文向区域内其他设备交互lsdb摘要信息时就不通告5类LSA。 所以其他设备在后期进行LSA和LSU时就不会交互5类LSA。
末节区域的注意事项
1.骨干区域不能配置stub区域(传输区域本身就不能配置) 2.stub区域必须所有设备都要配置stub 3.stub区域不可以引入也不能接受外部路由(stbu区域本身无法产生外部路由) 4.stub区域无法作为Vlink的穿越区域。(5类LSA无法穿越stub区域)
totally stub区域 完全末节
在末节区域的基础上,再解决掉3类LSA泛洪,完全由1,2类LSA在本区域泛洪,超过本区域的LSA都通过默认3类LSA交给ABR传递。
totally stub 特点
1、完全stub区域的ABR不在stub区域泛洪5类LSA(不泛洪=无法学到5类LSA不会产生路由) 2、完全stub区域的ABR不在stub区域产生4类LSA 3、完全stub区域的ABR,在stub区域不产生区域间的3类LSA 4、完全stub区域的ABR,在stub区域只产生缺省的3类LSA用于访问外部路由 5、default- cost 10 修改3类LSA默认路由开销值 6、区域间路由和外部路由都存在次优路径 7、stub区域存在多个abr时,在区域0存在邻居,则不会计算彼此缺省的LSA,区域0所有邻居失效,才会计算其他ABR产生的缺省LSA
完全末节区域和末节区域的区别
完全末节区域是区域间路由和外部路由存在次优路径的区别 末节区域只会在外部路由存在次优路径
NSSA区域与Totally NSSA区域 (7类LSA)
由于stub区域无法引入外部路由,而现实中可能会出现stub区域又得引入外部路由的需求,此时NSSA区域应运而生。
NSSA区域
末梢区域,既可以引入外部路由,又可以防止其他区域的4,5类lsa泛洪的外部路由进入。
1.由于NSSA区域是在stub区域的基础上可以引入外部路由到区域内,但此区域无法泛洪5类LSA。所以5类LSA被套壳为7类LSA。仅可以在末梢区域内泛洪。 2.7类LSA就是5类LSA,只不过为了能在NSSA区域泛洪而认为定义的。(7类LSA只在NASS区域内泛洪) 3.ABR收到7类LSA,将7类LSA转化为5类LSA在其他区域传播。 4.7类LSA由末梢区域中的ASBR产生 5.NSSA区域的ABR会把7类LSA转化成5类LSA,所以NSSA区域的ABR也是ASBR. 6.当NSSA区域存在多个ABR设备时,默认情况下由RouterID大的设备执行7类转5类LSA。(可以指定某一台设备执行7转5的操作)
代码语言:javascript复制Type : NSSA NSSA 七类LSA,由NSSA区域的ASBR产生,只能在NSSA区域内泛洪
Ls id : 192.168.1.0 外部路由的网络号
Adv rtr : 7.7.7.7 ASBR的router id
Ls age : 39
Len : 36
Options : NP 可以执行7类转5类的操作 heelo报文N LSA报文P
seq# : 80000001
chksum : 0x58cd
Net mask : 255.255.255.0 外部路由子网掩码
TOS 0 Metric: 1 引入时的开销
E type : 2 开销类型
Forwarding Address : 7.7.7.7 转发地址
Tag : 1 路由标记
7类LSA数据传递的过程
如图所示:
- R5所在的AREA 2区域属于末梢区域,R5引入了一个外部路由。
- R5产生一个7类LSA再末梢区域内泛洪。
- AREA 2的R3接收到这个7类LSA后,转化成5类LSA传递到骨干区域中进行泛洪。
- 其他区域,例如AREA 1区域的R2收到这个5类LSA后生成4类LSA给自己的非骨干区域泛洪。
- AREA 1区域的R4收到这个4类LSA后,既可以和末梢区域的引入外部路由进行通信。
NSSA区域特点
1、NSSA区域的ABR不在NSSA区域泛洪5类LSA(不泛洪=无法学到5类LSA不会产生路由) 2、NSSA区域的ABR不在NSSA区域产生4类LSA 3、NSSA区域的ABR,在NSSA区域产生区域间的3类LSA,用于访问区域间的路由 4、NSSA区域的ABR,在NSSA区域产生缺省的7类LSA用于访问外部路由 5、default- cost 10 修改7类LSA默认路由 去往外部路由的开销值 (需要进入到NSSA区域ospf区域内修改) 6、外部路由存在次优路径 7、NSSA区域存在多个abr时,在区域0存在邻居,则不会计算彼此缺省的LSA,区域0所有邻居失效,才会计算其他ABR产生的缺省LSA 8、当一个NSSA区域中 存在多个ABR 默认情况下使用router id 大的ABR执行7转5的操作 也可手动指定设置 进入区域 nssa translator-akways 9、NSSA区域的即是ABR又是ASBR路由器 引入外部路由成为7类LSA时,NP=0不执行7转5
Totally NSSA区域
精简掉OSPF全区域的3,4,5类路由。只有本区域的1类2类和nssa区域的默认3类LSA
完全nssa区域的特点与完全stub区域类似。
Totally NSSA区域特点
1、完全NSSA区域的ABR不在NSSA区域泛洪5类LSA(不泛洪=无法学到5类LSA不会产生路由) 2、完全NSSA区域的ABR不在NSSA区域产生4类LSA 3、完全NSSA区域的ABR,在NSSA区域产生区域间的3类LSA,用于访问区域间的路由 4、完全NSSA区域的ABR,在NSSA区域产生缺省的7类LSA用于访问外部路由 5、default- cost 10 修改7类LSA默认路由 去往外部路由的开销值 (需要进入到NSSA区域ospf区域内修改) 6、外部路由存在次优路径 7、完全NSSA区域存在多个abr时,在区域0存在邻居,则不会计算彼此缺省的LSA,区域0所有邻居失效,才会计算其他ABR产生的缺省LSA 8、当一个完全NSSA区域中 存在多个ABR 默认情况下使用router id 大的ABR执行7转5的操作 也可手动指定设置 进入区域 nssa translator-akways 9、完全NSSA区域的即是ABR又是ASBR路由器 引入外部路由成为7类LSA时,NP=0不执行7转5
NSSA区域的特殊情况 NSSA区域主要的作用是为了引入外部路由再由NSSA区域中的ABR执行7类LSA转5类LSA,那么是否存在无法执行7转5的LSA呢?
- 执行查询 dis OSPF lsdb nssa X.X.X.X(代表查询某条7类LSA) 当展示出的信息中Option字段显示None时,此条7类LSA无法转化成5类。
OSPF路由汇总
路由汇总又被称为路由聚合,即是将一组前缀相同的路由汇聚成一条路由,从而达到减小路由表规模以及优化设备资源利用率的目的,我们把汇聚之前的这组路由称为精细路由或明细路由,把汇聚之后的这条路由称为汇总路由或聚合路由。
OSPF区域间路由汇总
1、区域间路由汇总 ABR上执行对直连区域的路由进行汇总 2、汇总后的路由默认继承明细路由中开销大的。 汇总时可以配置开销 3、不要在所有的ABR上执行相同的路由汇总,会导致被汇总起来的明细路由之间无法互相访问 4、同一个区域存在多个ABR时,都要执行汇总的配置,汇总后,网络号和掩码必须保持一致 5、所有明细路由失效后,汇总路由才会失效
OSPF外部路由汇总
1、在ASBR上执行汇总 2、在执行7转5的ABR进行汇总 ,非7转5的ABR也可以汇总,但不生效,作为汇总备份使用
OSPF报文认证
在OSPF头部报文中
OSPF支持报文认证功能,只有通过认证的OSPF报文才能被接收。 路由器支持两种OSPF报文认证方式,当两种认证方式都存在时,优先使用接口认证方式:。
区域认证方式:一个OSPF区域中所有的路由器在该区域下的认证模式和口令必须一致。 接口认证方式:相邻路由器直连接口下的认证模式和口令必须一致。
路由协议的报文认证作用:
防止协议报文被伪造或者篡改。但是不对报文做加密
OSPF认证机制
1、明文认证 2、MD5认证 3、null认证
OSPF接口认证:仅对该接口所在链路上的OSPF报文进行认证 OSPF区域认证:对路由器属于某个区域的所有接口启用接口认证
接口和区域可以混合使用 但是认证模式和口令必须一致 接口认证优先于区域认证
如果做了area0的认证,并存在vlink,要注意vlink上也做区域0的认证
如果骨干区域配置了认证 那么配置vlink的区域也需要配置认证 vlink-peer 1.1.1.1 md5
OSPF的路由计算
OSPF的SPF计算
SPF算法:第一步计算SPF树,第二部将直连网络挂载SPF树上
SPF(最短路径优先)自动计算出无环且最段路径的拓扑 逻辑上阻塞一条链路
SPF算法只算自身区域的路由
OSPF邻居建立条件补充 广播型链路和 NBMA链路要求子网掩码必须一致,接口地址在同一个网段才能建立邻居关系
路由器将自己作为最短路径树的树根,根据Router-LSA(一类)和Network-LSA(二类)中的拓扑信息,依次将Cost值最小的路由器添加到SPF树中。
路由器以RouterID或者DR标识
广播网络中DR和其所连接路由器的cost值为0.
SPF树中只有单向的最短路径,保证了OSPF区域内路由计算不会出现环路
注意,spf计算是计算最优路径,次优路径不会丢弃,只会隐藏。
首要原则:
- 计算spf,首先登录设备查询一类,二类LSA。
- 先构建拓扑信息,再构建路由信息(先画树干,再画树叶)
查询一类LSA信息中的拓扑信息
登录某一台设备,通过dis ospf lsdb router 查询lsa信息
观察 Link Type 字段信息,筛选 P-2-P,TransNet的一类LSA信息。
- P-2-P类型的LSA会标记出邻居的router ID,也会标记出自身与该邻居相连的接口IP,又因为P-2-P类型和开销值告知我们点到点链路中邻居的位置,从而我们可以通过此条LSA构建出拓扑信息。
- TransNet类型的LSA代表的是广播型链路,此链路中一定会存在一个伪节点,而此条LSA中的Router ID恰好代表了伪节点的routerID,也是此广播型链路中DR的存在。又根据data字段我们可以得知这段互联链路中本设备的接口IP地址。从而方便我们构建拓扑。
※ 查询本设备内所有的P-2-P,TransNet的信息,且以本设备为根构建出了拓扑信息,此时,本设备的拓扑信息已经查询完毕。按照OSPF lsdb的工作原理我们得知,已经完成邻接建立的、同区域的lsdb是全同步的状态。所以当我们查询到其他设备的routerID时,肯定是对方同步过自身的LSA信息。想要构建spf,我们就需要到下一个节点去查询他设备下的产生的lsa信息。
查询已构建出的设备lsa信息,通过dis OSPF lsdb router X.X.X.X查询
(因为lsdb全同步,可以在一台设备中通过命令 routerID直接查询其他设备的LSA信息)
- 继续观察观察 Link Type 字段信息,筛选 P-2-P,TransNet的一类LSA信息。
- 构建拓扑的方式与上述方法一致。
查询二类LSA信息中的拓扑信息
※ 我们在构建spf树的过程中,link type 的TransNet信息其实代表了广播型链路的伪节点信息。真正的拓扑环境可能会被伪节点阻止。所以我们要通过2类LSA来和伪节点来解决伪节点后的设备拓扑信息。
可以通过dis OSPF lsdb network 查询2类LSA
继续通过2类LSA可以查询到伪节点后面是否还连接着其他的设备。
因为lsdb全同步的关系我们可以利用1类和2类lsa查验拓扑。
当拓扑闭环后,我们可以得到一个带有接口IP,开销值,routerID的拓扑图。
构建拓扑中的路由信息
通过挨个查询设备中一类LSA中link type 为StubNet的lsa信息,为拓扑增加路由信息。
伪节点查询的2类LSA信息,即是拓扑信息,也是路由信息。所以关注2类LSA中的Ls id和Net mask信息来确定伪节点中的路由信息。
OSPF跨区域路由计算
1. 3类LSA通过ABR在所有区域内泛洪,同步LSDB表。
2. 若某一个区域内的某设备想要跨区域访问路由,首先需要先查询自身LSDB表中的三类LSA,此条3类LSA由这台设备所在区域的ABR发出,且标记有开销值,所以,跨区域访问路由首先要经过本区域的ABR(骨干区域直接访问目标区域的ABR)。
- ABR接收到跨区域访问请求,通过查询自身从骨干区域接收到的3类LSA,得知目标网段所在区域的ABR,经由骨干区域转发到目标ABR。再由ABR进行转发。
总结:A区域a设备-A区域ABR-骨干区域-B区域ABR-B区域b设备
跨区域开销值计算:cost=ABR到该路由的开销值 自身到达该ABR的开销值下一跳
未经允许禁止转载!