OSPF
OSPF详解
OSPF基本配置
在端口信息都配置完毕的情况下:
ospf 进程号(如果不指定默认为1) router-id ID号
area 区域号
network 192.168.1.0 0.0.0.255 (将192.168.1.0/24网段宣告进入到区域0,network后面必须是直连路由)
- 进程号
- 不指定默认为1,范围(1-65535)
- 作用:在同一设备,区分不同路由协议,进程号不一样的两个路由之间相互隔离,多个进程之间需要想引入外部路由一样引入
- 进程号只在本机起作用,不在网络中传递
- 多进程:
- 不同路由器之间建立邻居,进程号需要相同
- 用到的场景:MPLS vpn
- 路由器类型:
- 区域内路由器
- 骨干区域路由器
- 骨干区域是允许存在ASBR的
- 区域边界路由器(ABR)
- ABR是用来连接骨干和非骨干区域,ABR可以同时属于两个及以上的区域,但其中一个必须是骨干区域。
- 自治系统边界路由器(ASBR)
- 与其他AS交换路由信息的设备称为ASBR
- ASBR并不一定位于AS的边界,他可能是区域内设备,也可能是ABR,只要一台OSPF设备引入了外部路由的信息,它就成为ASBR
- 检查:
display ospf peer brief 查看OSPF路由条目 display ip routing-table protocol ospf 查看OSPF路由条目
- 一类LSA检查:
<R1>dis ospf lsdb router 查看所有的一类的LSA
<R1>dis ospf lsdb router 1.1.1.1 之查看名字为1.1.1.1的1类LSA
- 管理员在产看设备的RIB表时,其实OSPF外部路由在Protocol字段表记为O_ASE和O_NSSA
- 设置通过公式计算接口开销所依据的带宽参考值
- 默认情况下带宽参考值为100Mbit/s
bandwidth-reference value 用来设置通过公式计算接口开销所依据的带宽参考值 undo bandwidth-reference 用来恢复带宽参考值为缺省值
- value
- 参数说明: 指定通过公式计算接口开销所依据的带宽参考值
- 取值范围:整数形式,取值范围是1~2147483648,单位是Mbit/s,缺省值是100Mbit/s
OSPF:开放式最短路径优先。协议号:89
- 开放式:公有协议,所有厂商都支持
- 最短路径优先:以最短路径,最快方式转发数据包
- 作用:动态感知全网状态,自动计算路由
- 应用:通常用于企业内部,和数据中心内部,层次化的网络结构中
- 工作在OSI模型中的第三层,数据封装在IP头部后面
- OSPF是基于链路状态的内部网关协议
优势:
- 利用
累计cost值
来计算最优路径 - 采用组播形式收发协议报文,提高效率
- 用区域的概念,降低设备压力,更加利于管理
- 支持等价路由负载分担,提高可靠性
- 支持报文认证,提高安全性
OSPF路由表是通过路由器自己计算得来的
基础概念
- 在同一区域内的所有ospf路由器,数据库是完全一样的
- 进程号:(1~65535)仅在本设备有效
- 用于OSPF在设备内部的隔离,即不同OSPF的进程学习到的路由是不一样的
- 两台设备进程号不一样也可以建立邻居
Router ID
唯一,在OSPF网络中标识一台路由器的唯一标识(1~4294967295)
- 特点:稳定,一旦确定,就不会改变,要更改只能重启OSPF进程
- OSPF协议为路由设备起的名字
- Router ID可以手动指定,也可以自动选举
- 如果没有手动配置,则路由器使用Loopback接口中最大的IP地址作为Router ID
- 如果没配置接口,则路由器使用物理接口中最大的IP地址作为Router ID
area ID
将路由设备划分成不同的组,每个组用区域号标识
-
区域号
用于标识一个网络区域,通过这样来缩减路由规模,降低路由设备分担(0~4294967295)。
- 骨干区域:0
- 非骨干区域:不为0
- 区域号表示:
- 十进制
- 点分十进制
Interface
使用哪个接口与对端建立邻居
Neighbor id
邻居的Router-id
State
邻居的状态
- full:完美的邻居–也叫邻接
cost:开销
OSPF路径会累积cost值来计算最短路径
- 每一个开启OSPF功能的物理接口都有一个cost值为1
- 路由器的开销值是指ospf路由到达目的地过程中经过的每个入接口的cost值相加
DR和BDR、DRother
这是一个接口的概念,不是路由器的概念,他是建立邻居的时候才会选举的
- DR(指定路由器)BDR(备份指定路由器)DRother(其他路由器)
- DRother之间建立to-way(邻居)关系,但他和DR/BDR建立Full(邻接)关系
- 作用:
- 减少邻接关系,降低设备负担
- 加快数据库同步
- 节约带宽
- 选举规则:
- DR的概念是接口的概念,不是全局的概念,所以优先级要在接口上配置
- 选举是非抢占式的
- 选举是基于接口的
- 优先级越高越优先,当优先级为0是则这个接口一定是DRother,即不参与选举
- DR和BDR按照router ID的大小来确定的
- 在OSPF网络中只有NBMA和BROADCAST需要选举DR和BDR
- MA多路访问网络有两种类型:广播行多路访问网络(BMA)及非广播型多路访问网络(NBMA)
- 一个网络中必须有DR,可以没有BDR
DR和BDR的优先级都是在端口配置
- DR:
[R1-G0/0/0]ospf dr-priority 100 //修改接口优先级为100 [R1-G0/0/0]ospf network-type p2p //修改接口的网络类型:点到点 [R1-G0/0/0]ospf network-type broadcast //修改接口的网络类型:广播型 <R1>reset ospf process //重启OSPF进程
OSPF路由器类型
- 区域内路由器————路由器的所有接口都属于同一个OSPF区域
- 骨干区域路由器
- 该设备至少有一个接口属于骨干区域
- 所有的ABR和位于Area0的内部设备都是骨干路由器。
- ABR(区域边界路由器)
- 该设备可以同时属于两个以上的区域,但其中一个必须是骨干区域
- ABR用来连接骨干区域和非骨干区域,它与骨干区域之间既可以是物理连接,也可以是逻辑上的连接
- ASBR(自治系统边界路由器)
- 与其他AS交换路由信息的路由器成为ASBR,具有产生外部路由能力的路由器。
- ASBR并不一定位于AS的边界,他可能是区域内设备,也可能是ABR,只要一台OSPF设备引入了外部路由信息它就成为ASBR
- import引入的就是ASBR
- 区域间路由聚合必须在ABR路由器上而外部路由聚合必须配置在ASBR路由器上
工作原理
建立OSPF邻居表–hello
- hello报文源IP:路由器物理接口IP
- hello报文目的IP:224.0.0.5,组播IP
- hello报文周期性发送,在广播型网络和P2P网络中,默认是10秒发送一次
- hello报文作用:发现,建立,维护,断开
- 邻居状态:two-way
- 如果是广播型网络,在建立好邻居后,选举DR(指定路由器)和BDR(备份指定路由器)
- 所有DR-other都与DR/BDR建立邻接关系:full:需要同步数据库
- DR-other和DR-other只建立邻居关系:two-way:不需要同步数据库
- 选举DR的作用:减少邻接关系,加快数据库同步
- 建立邻居的本质是:是邻居建立后,可以同步数据库
同步OSPF数据库–利用DD、LSR、LSU、LSACK
-
DD报文:数据库描述报文
- 第一个DD报文用来选举主从关系
- 选举主从关系的目的:保证数据库同步的youxvxing,可靠性
- 第二DD报文:携带数据库摘要信息:LSA头部信息
- 收到后续的DD报文后,就可以了解邻居数据库有哪些LSA
- 如果发现邻居的数据库中有我没有的LSA就可以通过LSR请求对方数据库中的LSA
- 收到邻居发来的LSU报文后,hi夫LSACK确认报文,告诉邻居,我收到了
- 当邻居之间数据库中的LSA完全相同时,数据库同步结束
- 第一个DD报文用来选举主从关系
-
数据库同步:其实本质上只是在做一件事,在互相传输LSA
- LSA:
- 链路状态通告:计算路由的原材料(拓扑信息+网段信息)
- 拓扑信息:我的邻居是谁,我用哪个接口连接着我的邻居
- 网段信息:我的接口IP地址段,接口掩码,接口cost值
那么邻居之间相互传输LSA的目的又是什么呢?
- 计算路由条目
- LSA:
计算OSPF路由表
五种报文 七大状态
-
Hello 报文:用于发现、建立、维护和拆除OSPF邻居
- 发送和维护邻居关系(第一个Hello报文用来建立邻居,后续Hello报文用于同步数据库)
- down:挂掉了,表示给hide设备之间的邻居状态最新的开始
- init:
- 初始化状态,收到对端的Hello报文,进入Init状态,但此时的Hello报文不包含自己的Router ID
- 接收到了邻居发来的hello报文,但是该报文中没有自己的router-id
- 单点链路故障,会卡在此状态
- two-way:
- 双向通信状态,收到的Hello报文中包含自己的Router ID,则状态为two-way此时两台设备之间为邻居状态
- 在广播网络里,我们会选举DR/BDR(DR/BDR没有抢占)
- 在这个状态下,我发送的Hello报文对端收到了
- 对端发送的Hello报文,我也收到了
-
DD:数据库描述报文
- 交互链路状态数据库摘要(用于发送OSPF数据库数据库条目(LSA头部信息)的简要信息,实现数据库同步)
- 用于描述数据摘要信息
- ExStart状态(主从关系的确定)
- 交换初始化状态。在该阶段,交互第一个DD报文,为了保证后期交换状态的稳定和可靠,所以该阶段会进行邻居路由器之间主从关系的确定
- Exchange状态
- 交换状态,交互的是大量的DD报文,我们称之为LSA头部信息
- MTU(最大传输单元)
- MTU如果值不一样,就会卡在exstart状态和exchange状态。卡在exchange状态的为slave设备
- DBD包中携带MTU值(最大传输单元),要求邻居MTU值必须相同,否则将卡在exstart或exchange状态;默认华为设备未开启MTU检测(MTU=0)
[R1-G0/0/1]ospf mtu-enable
-
LSR:链路状态请求报文
- 请求特定的链路状态信息(用于请求自己数据库中没有的链路状态通告信息)
- 请求数据库中没有的LSA(数据库信息)信息
- Loading状态(数据库同步)
- 加载状态,两边通过了交换,完成了数据库的比较,那么就会在该阶段进行加载,会对自己没有的那些数据库条目进行请求lsr,对方设备回应更新LSU包含完整的LSA,为了确保可靠传输,在双方设备收到后,会给对方回应一个LSACK报文,双发设备都经过了上面的三个报文之后,实现数据库的完全相同,就会进入到下一个状态。
-
LSU:链路状态更新报文
- 发送详细的链路状态信息(用于回应LSR报文,发送链路状态信息。)
- 根据对方的请求信息,更新LSA给对方
- Loading状态:同上
-
LSACK
- 发送确认报文(确认LSU和LSR报文)
- 收到对方更新的LSA信息之后,进行确认
- Loading状态:同上
-
全部完成后是full状态
- 完全邻接状态,表示两个设备的数据库完全相同
-
attempt:仅仅存在于NBMA网络类型中
OSPF无法建立邻居关系几种状况
- 接口要是up的状态
- OSPF没有宣告,或者宣告错了
- 两台路由器router-id相同的时候无法建立邻居
- 查看OSPF错误信息:常见错误信息
[R1]display ospf error(OSPF的报错信息) OSPF Process 1 with Router ID 1.1.1.1 OSPF error statistics General packet errors: 0 : IP: received my own packet 0 : Bad packet 0 : Bad version(考点:版本不同OSPFv2和OSPFv3) 0 : Bad checksum 0 : Bad area id (考点:区域不同) 0 : Drop on unnumbered interface 0 : Bad virtual link 0 : Bad authentication type(考点:认证不匹配) 0 : Bad authentication key 0 : Packet too small 0 : Packet size > ip length 0 : Transmit error 0 : Interface down 0 : Unknown neighbor 0 : Bad net segment 0 : Extern option mismatch 20 : Router id confusion(考点:route-id相同,当此时数值不为0的时候,表示收到了错误的报文)
- area id(区域号)不同时,无法建立邻居
- 两台OSPF路由器接口的IP地址的子网掩码必须一致(同网段)才能建立邻居
- 特殊情况:如果时P2P的情况下,是可以建立邻居关系的。在OSPF路由器可以相互PING通的情况下,PC之间也能PING通。如果OSPF路由器不能相互PING通,那么PC之间也不能相互PING通
- 两台路由的网络类型要一致,否则无法建立邻居
- 网络类型有4种:
- broadcast:数据链路协议为以太网,OSPF缺省配置为广播
- nbma:当数据链路协议是FR时,国内已经不用了,OSPF缺省配置为NBMA
- 必须在OSPF视图下执行命令peer ip-address配置NBMA网络的OSPF邻居
- p2mp:当数据链路是PPP或者HDLC时可以选用,国内不常用,点到多点
- p2p:当链路是点对点时,可以选用
- 特殊情况;
- 当一端是p2p,另外一端是广播时。可以建立邻接关系,但是无法传递路由信息。
- 当一端是p2p,另外一端是p2mp时。需要调整hello时间和dead时间。调整一致时,可以建立邻接关系,并且也可以传递路由
- 除了以上两种情况,其他所有的网络类型(广播-p2mp\广播-NBMA\P2MP\NBMA等等),都无法建立FULL状态
- 网络类型有4种:
- 两台路由器的hello时间必须一致,才能建立邻居
- 缺省情况下
- P2P、Broadcast类型接口发送Hello报文的时间间隔的值为10秒
- P2MP、NBMA类型接口发送Hello报文的时间间隔的值为30秒
- 注意
- 修改hello时间的时候,dead时间会自动更改
- 一般情况下:dead时间是hello时间的4倍,也就是40秒
- 缺省情况下
- 两台路由器的dead时间必须一致,才能建立邻居
- 两台路由器的DR优先级不能同时为0,否则无法建立邻接(FULL)关系,但是可以建立邻居(2-way)关系
- OSPF认证不匹配时,也无法建立邻居状态
- OSPF中MTU值不一致,也无法建立邻居关系。默认情况下,OSPF不检查MTU值
LSA
-
每一个LSA会有一个自动刷新时间:30分钟
-
存活时间:60分钟
-
OSPF路由怎么来的
靠LSA计算出来的
- LSA怎么来的:通过数据库同步,从邻居那里学来的。
- 而且LSA非常重要,我们要保证传递的可靠性和有序性。
-
如何保证:
- 选举主从:Master/Slave,作用:保证数据库同步的有序性准确性
- 利用router-id来选举,大的为Master
- 选举完成后小弟永远使用大哥序列号,大哥序列号永远加1
- 下一个报文是对上一个报文的确定(例:LSU给LSR,Lsack给LSU)
这样传递的目的是为了,让DD报文更有序,可靠不丢失
-
LSA
- 作用:用来计算路由的
- 如何形成的:
- network
- import-router:五类LSA
LSA(链路状态通告)七个字段,通常用其中3个字段来区分不同的LSA
- 类型,名字,通告路由
- 1类LSA:描述了设备的链路状态和开销
- 2类LSA:描述了该DR所接入的MA网络中所有与之形成邻接关系的路由器
- 3类LSA:描述区域间某个网段的路由
- 4类LSA:描述到ASBR的路由
- 5类LSA:用于描述到达OSPF域外的路由
一类LSA
- 类型(Type): Router-LSA
- 名字(Link State ID):1类LSA的名字取自-生产这条LSA的路由器的Router-id
- 通告路由器:(AdvRouter):区域内每一台路由器都会产生一个1类LSA
- 特点:每一个运行OSPF协议的路由器,都会在这台路由器所处的区域中生成一个1类的LSA
- 传递范围:只能在区域内传递
- 作用:用来计算域内路由(做自我介绍)
自我介绍,介绍什么内容:
介绍两个内容:拓扑信息+网段信息
拓扑信息:我是谁,我的邻居是谁,我用那个接口IP连接着我的邻居
网段信息:我的接口网段,我接口网段的掩码,我的接口的cost开销值
- 1类LSA的Link Type中不存在P2MP
- 点到点
LSA的头部信息:
修改到p2p模式 [R1-G0/0/1]ospf network-type P2P
Type :Router :我是一类IP Ls id :1.1.1.1:我的名字是1.1.1.1 Adv rtr :1.1.1.1:我的老爹是1.1.1.1(通告路由其-创造这条LSA的设备) Ls age :372:我的年龄是372秒 Len :60:我的长度为60字节 Options :E:我的能力:引入外部路由 seq# :8000001f:我的序列号: LSA的寿命是3600秒 1800秒就刷新一次,没刷新一次序列号加1 这叫周期性更新,还有触发式更新 序列号越大,代表LSA越新 chksum :0x4a9:我的校验和(序列号相同的情况下,校验和越大LSA越新)
- LSA链路信息
Link count: 3 我有3条链路(LSA表示了两种信息,拓扑信息和网段信息) Link ID: 2.2.2.2 我是邻居的名字 Data : 192.168.12.1 我的接口IP地址是192.168.12.1(我用这个IP连接我的邻居) Link Type: P-2-P 这是描述的拓扑信息 Metric : 1 我的cost值是1 Link ID: 192.168.12.0 我的接口的IP地址段是192.168.12.0 Data : 255.255.255.0 我的接口的IP地址段的掩码是24 Link Type: StubNet 这是描述的网段信息 Metric : 1 我的cost值是1 Priority : Low Link ID: 192.168.1.0 我的接口IP地址段是192.168.1.0 Data : 255.255.255.0 我的接口IP地址段的掩码是24 Link Type: StubNet 这是描述的网段信息 Metric : 1 我的cost值是1 Priority : Low
- 重要字段(link type):
- transnet(拓扑信息)
- link id :DR接口的IP地址
- data : 与DR接口相连的自己的IP地址
- stubnet(路由信息|应用场景)
- 环回口
- 无邻居的MA网络
- P2P网络
- sub
- P2P(拓扑信息)
- link id : 描述邻居路由器的router id
- data:与邻居路由器相连的本地接口地址
- virtual(拓扑信息)
- link id : 描述邻居路由器的router id
- data:与邻居路由器相连的本地接口地址
- transnet(拓扑信息)
二类LSA
- 类别:network-LSA
- 名字:2类LSA的名字取自,DR的接口IP地址
- 通告路由器:DR接口所在的那台路由器的Router-id
- 作用:
- 补全DR接口IP地址的掩码信息。
- 记录和DR建立邻接关系的路由器,用于描述网段内完整拓扑信息
- 最终作用:辅助1类LSA完成区域内路由的计算
- 传播范围:只能在区域内传播
三类LSA
- 类别:Network-summary-LSA
- 名字:3类LSA的名字取自区域间路由网段的名字
- 通告路由器:本区中的ABR路由器的Router-id
- 传递范围:同一条3类LSA,区域内传递,每经过一个ABR,通告路由其就会发生变化
- 作用:
- 计算域间路由
- 将区域内的1、2LSA计算出来的路由,变成3类LSA在其他区域泛洪(广播),实现区域与区域之间的通信
- 总结:
- 3类LSA在传递过程中,每经过一个ABR它的名字就会发生变化。
- 三类LSA头部信息
Type : Sum-Net 我是三类LSA Ls id : 192.168.45.0 我的名字是192.168.45.0 Adv rtr : 2.2.2.2 我是从2.2.2.2那里学来的 Ls age : 969 Len : 28 Options : E seq# : 80000006 chksum : 0xa016 Net mask : 255.255.255.0 下一跳的掩码 Tos 0 metric: 3 所 用消耗 Priority : Low
四类LSA
就是带你去找ASBR的
- 类别:ASBR-summary -LSA
- 名字(Link State ID):取自asbr的router-id
- 通告路由器:本区域的ABR设备
- 第一个四类LSA是由和ASBR在同一个区域内的那个ABR产生的
- 后续的4类LSA,是由本区域的ABR产生的
- 四类LSA由ABR产生,描述到ASBR的路由,通告给除ASBR所在区域的其他相关区域
- 传播范围:在一个区域内传播
- 特点:4类LSA在传播过程中,每经过一个ABR,通过路由器就会变成所经过的那台ABR的router-id
- Metric表示该ABR到达ASBR的OSPF开销
- Advertising Router
- 这个字段表示产生该LSA的ABR
- 4类LSA是ABR向区域内的OSPF路由器,介绍其它区域的ASBR的,AdvRouter字段就是ABR的Router ID。不同的ABR,Router ID不会相同。
- 作用:
- 配合5类LSA计算外部路由
- 将5类LSA传递到其他路由器中
- 带你去找ASBR
五类LSA
带你去往外部网段,但是去找外部网段,就需要先找到ASBR
- 类别:AS_external-LSA
- 名字:外部路由信息
- 通告路由器:ASBR
- 作用:传递外部路由信息
- 传递范围:在整个ospf网络内传播
- 特点:
- 只有ASBR可用产生5类的LSA
- 5类的LSA可用传输到ospf网络的所有的路由器(特殊区域除外)
- 5类LSA在传输过程中,不会产生任何变化
- 5类LSA不属于任何区域
- 他想去哪里就去哪里
- 配置命令:
OSPF学习路由的方式只有两种:
1.network宣告
2.import命令用来不同协议之间路由的导入
[R1]OSPF 1
[R1-OSPF-1]import-router static 引入所有静态外部路由
- 查询命令:
display ospf lsdb ase display ospf lsdb ase 192.168.3.0
- OSPF外部路由引入时会使用Metric-Type-1或Metric-Type-2类型
- 它默认为type2类型外部路由转发,当设置为type1类型路由转发时,则会优选type1
- Metric-Type-1类型(FA地址为0.0.0.0):
- 路由开销计算方法为本设备相应的开销和目的地址的开销之和(本设备到相应的ASBR的开销与ASBR到该路由目的地址的开销之和)
- Metric-Type-2类型:如果不指定默认为2类型外部路由。在计算路由的cost值时,type2仅仅关心LSA中的外部路开销
- 如果type2类型外部路由需要选路,则先比较外部路由开销,再比较内部路由开销
- 和ASBR在一个区域内的路由器,外部路由计算:
- type1:
- 开销=自身到ASBR的开销+引入时路由的开销
- 下一跳=自身到ASBR的下一跳
- type2:
- 开销=引入时路由的开销(但是并不代表域内路由器去找ASBR时,走最优路径)
- 下一跳=自身到ASBR的下一跳
- type1:
- 和ASBR不在同一个区域的路由器外部路由计算:
- type1:
- 开销=通过四类LSA计算到ASBR的开销+引入时路由的开销
- 下一跳=自身到ASBR的下一跳
- type2:
- 开销=引入时路由的开销(但是并不代表域内路由器去找ABR时,不走最优路径)
- 下一跳=自身到ASBR的下一跳
- type1:
- 外部路由选路机制(当不同区域引入相同的外部路由时):
- type1:
- 就是管理员希望按路由意义的最短路径访问外部路由
- 选择开销和值小的最优
- 如果相同,则负载分担
- type2:
- 就是管理员希望按管理意义上最短路由访问外部网络
- 引入时开销小的有限,不考虑AS内部开销
- 引入时开销相同,选择到ASBR开销小的
- 引入时开销相同,到ASBR的开销也相同,则负载分担
- type1:
- Metric-Type-1类型(FA地址为0.0.0.0):
- Forwarding Address,转发地址(防止次优路径)
- 作用:用于优化路径,如果携带转发地址,则优先查找转发地址访问外部路由而不会查找路由表下一跳地址
- 携带转发地址的条件:要求ASBR访问外部路由的出接口满足以下三个要求
- 该接口通告进OSPF
- 该接口的网络类型必须是BMA或NBMA
- 该接口不能是silent-interface(静默端口)

如图所示,AR1、AR2、AR3在同一个广播域中,AR1和AR2建立了OSPF邻居,AR2和AR3建立了RIP邻居,且AR3存在一条32位的主机路由。AR2将RIP引入OSPF,就会转发地址置位,置位的转发地址是AR3的G0/0/0接口的地址。根据上述转发地址的作用,AR1可以直接根据转发地址寻找3.3.3.3,下一跳为AR3。如果没有转发地址的存在,那么AR1去访问3.3.3.3会先寻找到AR2,由AR2在去往3.3.3.3,下一跳为AR3。这就是转发地址的作用。
四类和五类LSA的作用:用于计算外部路由
七类LSA
- 类别:NSSA:表示的是7类的LSA
- 名字(LinkState ID):这条LSA的名字,即外部路由的网段
- 通告路由器(AdvRouter):发布这条LSA的路由器,ASBR的router-id
- 作用:仅仅用于在NSSA区域中,用于表示外部路由
- 特点:
- 只有NSSA区域的ASBR可以产生7类LSA
- 7类LSA只能在NSSA区域以及totally nssa区域内部传输
- 为了将NSSA区域引入的外部路由发布到其它区域,需要把7类LSA转化为5类LSA以便在整个OSPF网络中通告
- 7类的FA默认不为0,5类的默认为零,两个FA的作用相同但是起始不一样
OSPF特殊区域(保护这个区域不受外部路由器的影响)
配置特殊区域,特殊区域内所有路由器都需要设置成特殊类型
stub区域
- 末梢区域:网络的边缘末梢,脆弱的需要保护的区域()
- 保护这个区域
- 不学习四类五类LSA
- 该区域会产生一个默认路由的3类LSA,保证和外部的通信
配置命令
[R1]ospf 1 [R1-ospf-1]area 12 [R1-ospf-1-area-0.0.0.12]stub [R2]ospf 1 [R2-ospf-1]area 12 [R2-ospf-1-area-0.0.0.12]stub
totally stub区域
- 完全的末梢区域
- 过滤三四五类LSA,生成一条3类缺省LSA
配置命令
[R1]ospf 1 [R1-ospf-1]area 12 [R1-ospf-1-area-0.0.0.12]stub [R2]ospf 1 [R2-ospf-1]area 12 [R2-ospf-1-area-0.0.0.12]stub no-summary
nssa:不那么stub区域
- 作用:
- 保护一个区域不受来自外部链路的影响
- 缩减数据库规模,缩减路由表规模,降低设备压力
- 还能引入外部路由
- 特点:
- 不学习4类、5类的LSA
- 学习1类、2类、3类和7类LSA
- NSSA区域不学习四类和五类LSA,任何人与外部通信:
- 利用区域内的ASBR设备生产一条默认的7类LSA(0.0.0.0)用于访问外部网络
- 这条默认的7类LSA计算出来的是一条OSPF外部路由,优先级为150,路由类型o_NSSA
- NSSA区域的ABR还会自动地将外部7类的LSA转成5类的LSA,传播给其他区域
- 7类的LSA只能在特殊区域nssa内部传播
- 备注:
- stub区域生产的是一条默认的3类LSA,计算出来的是OSPF内部路由,优先级为10
- O_NSSA:代表外部路由,由7类LSA计算出来的外部路由,优先级:150
- O_ASE:也表示外部路由,由5类的LSA计算出的外部路由,优先级:150
- OSPF表示内部路由,由3类的默认LSA计算,优先级为:10
- nssa区域继承了stub的优点,并且还可以引入外部路由
- 骨干区不能做成nssa区域
配置命令
[R1]ospf 1 [R1-ospf-1]area 12 [R1-ospf-1-area-0.0.0.12]nssa [R2]ospf 1 [R2-ospf-1]area 12 [R2-ospf-1-area-0.0.0.12]nssa
totally nssa区域:完全的不那么stub区域
- 作用:
- 保护一个区域不受来自外部链路的影响,也不受区域间路由的影响
- 缩减LSA的数量,减少路由表规模,降低设备负载
- 还能引入外部路由
- 特点:
- 不学习3类、4类和5类的LSA
- 学习1类、2类和7类LSA
- 特殊区域的ABR路由器需要配置nssa no-summary
- 该区域会通过ABR成产成一条默认的3类LSA和默认的7类LSA用于访问外部网络
- 该区域的ABR会自动的将外部路由的7类的LSA转成5类的LSA
- 7类的LSA只能在特殊区域NSSA内部传播,ABR设备将引入的外部路由——7类的LSA转成5类的LSA,在全网泛洪,让其他区域也学习到这条LSA,计算出来去往外部的路由
- 备注:
- totally nssa会产生两条默认的LSA,一个是3类默认,一个是7类默认
- 当两条默认的LSA同时存在的时候,使用3类的默认,3类的默认优于7类的默认为什么?
- 因为3类的默认LSA计算出来的路由是ospf的内部路由所以优先级为10
- 因为7类的默认LSA计算出来的路由是ospf的外部路由所以优先级为150
- 骨干区不能做成totally nssa区域
配置命令
[R2]ospf 1
[R2-ospf-1]area 12
[R2-ospf-1-area-0.0.0.12]nssa no-summary
区域间路由汇总
- 也叫3类LSA汇总——华为:ABR聚合
- 执行在区域间路由器上(ABR)
- 现在骨干区域数据库大,是3类LSA多,所以外部路由就多
- 数据库大,路由表就大,设备压力就大
- 所以需要ABR聚合,以起到保护骨干区域的作用
配置命令
[R2]ospf 1 [R2-ospf-1]area 12 [R2-ospf-1-area-0.0.0.12]abr-summary 192.168.0.0 255.255.0.0
外部路由汇总
- 也叫5类LSA汇总——华为:ASBR聚合
- 执行在自治系统边界路由器
- 现在骨干区域数据库大,是5类LSA多,所以外部路由就多
- 数据库大,路由表就大,设备压力就大
- 所以需要ASBR聚合,以起到保护骨干区域的作用
配置命令
[R6]ospf 1
[R6-ospf-1]asbr-summary 192.168.0.0 255.255.0.0
配置OSPF静默接口
[R1]ospf 100
[R1-ospf-100]silent g0/0/1
- OSPF静默接口设置完成后,接口的直连路由仍然存在于LSA当中,只不过该接口不接收、不发送OSPF数据报文了,进而无法与该接口直连的OSPF路由器形成邻居关系。
- 静默接口和router ID不冲突,当静默接口的路由器没有配置router ID那么静态接口的IP地址也可以作为Router ID
OSPF高级特性
快速收敛
算法上实现快速收敛
区域内
- 首次进行拓扑计算的时候使用SPF
- 拓扑发生变化,使用I-SPF
- 路由+拓扑计算
区域间
- 路由计算
- PRC(部分路由计算)
收敛速度优先级
- PRC > I-SPF > SPF
协议收敛优先级 ISIS > OSPF 区域内
- 从算法上来说
- 区域内
- 路由信息(PRC)
- 拓扑信息(I-SPF)
- 区域间
- 路由信息(PRC)
- 区域内
智能定时器
网络稳定的场景
- LSA生成(通告):时间0
- LSA接收时间:时间0
- LSA计算:时间0
网络不稳定的场景
- LSA生成
- LSA接收
- LSA计算
- 时间间隔就要长
FRR
- 场景
- 一个或多个备份路径
- 作用
- 当主路径故障时,可以实现快速收敛,立即从备份路径转发
- 原理
- 通过LFA算法,提前计算好备份下一跳,加载的FIB中,当主路径故障时,不需要OSPF重新收敛,直接通过FIB表中备份下一跳直接转发
- LFA算法:遍历所有邻居,若满足(N,D)<(N,S)+(S,D),则可以计算出lfa路径 N:候选节点(备份节点) D:目的节点 S:源节点
- 前提条件就是满足开销计算公式:COST(N,D)=(N,S)+(S,D)
BFD
概念
- 双向转发检测机制
原理
- 周期性发送检测报文,默认3倍检测周期内,收不到对方发来的检测保温,则认为链路故障,联动OSPF,实现邻居故障时快速切换。
路由控制
等价路由
- OSPF默认开启等价路由
- AR设备支持8条等价路由
- 作用
- 实现负载分担
缺省路由
自动产生
- 特殊区域
手动配置
- 一般出口设备配置
- 企业网中互联网出口
- 数据中心内部,连接数据中心外部的网络
- 命令
- always
- 强制通过缺省路由,也就是IP路由表中不需要存在缺省路由也可以通告
- always
LSA过滤
- 接口处方向
- 过滤LSA的类型
- 除了9类LSA之外的所有LSA都能过滤
3类LSA过滤
- 在那个设备上使用
- ABR路由器:因为3类LSA产出在ABR设备上
- 哪个区域:这个要确定好,忽然很容易出现错误
- 入方向/出方向
- 3类LSA过滤了,就不会有路由了,如果路由过滤了,可能存在LSA
OSPF与BGP联动
- 场景
- 当我需要割接一台路由器,去更换新设备
- 问题
- 在割接新设备时,会出现终端业务的情况,尽管有备份链路存在,在新机器启动后,会出现一段时间的断联,因为当OSPF收敛完成后,BGP并没有收敛完成,EBGP明显比IGP的收敛速度要慢,所以中间会出现一段时间的锻炼情况
- 解决方案
- 将割接设备上添加一条延长120s收敛的命令,就会将BGP收敛完成之前会一直在备用链路上运行业务,从而使也不流量不会出现中断现象
高可靠特性
NSF
不间断转发
- 控制平面中断的情况下,不影响业务的转发
- 使用的技术就是GR
- 平滑重启技术
- 原理
- 控制平面终端的这个期间,通过配置GR,控制平面保持GR的状态,从而让流量不中断
NSR
不间断路由
- 控制平面和转发平面都不中断
- 原理
- 备份原理
- 全量备份
- 业务板卡上报表项给主控制器
- 实时备份
- 业务板卡上报表项给主控制器
- 业务切换
- 业务板卡上报表项给备控制器(新主)
- 全量备份
- 备份原理
NSR>NSF
- NSR
- 控制平面和转发平面都不中断
- NSF
- 控制平面中断,但转发平面不中断
OSPFv3
引入到IS-IS
VRP平台上,当设备引入OSPF路由到IS-IS的时候,如果不指定cost
- 当IS-IS的开销风格是默认的narrow时,引入的外部路由的cost为64
- 当开销风格为wide时,引入的外部路由的cost为0