OSPF、BGP、ISIS

本文详细介绍了OSPF、BGP和ISIS三种常见的路由协议,比较了它们在内部网关和外部网关协议中的角色,涵盖了协议的工作原理、路由选择算法、邻居建立过程、区域划分、安全性以及各自适用的网络规模。
摘要由CSDN通过智能技术生成

前序

OSPF、BGP和ISIS都是常见的路协议,用于在计算机网络中进行路由选择。它们有以下区别:

OSPF链路状态路由协议,用于在同一个自治系统(AS)内部进行内部网关协议(IGP)路由选择。OSPF使用Dijkstra算法计算最短路径,并通过洪泛算法将链路状态信息传播到整个网络。OSPF适用于中小型网络,具有快速收敛和可扩展性的优点。

BGP路径矢量路由协议,用于在不同自治系统之间进行外部网关协议(EGP)路由选择。BGP使用路径属性和策略来选择最佳路径,并通过BGP会话交换路由信息。BGP适用于大型网络,具有高度可靠性和灵活性的优点。

ISIS链路状态路由协议,类似于OSPF,用于在同一个自治系统内部进行内部网关协议(IGP)路由选择。ISIS使用SPF(Shortest Path First)算法计算最短路径,并通过洪泛算法传播链路状态信息。ISIS适用于大型网络,具有高度可扩展性和快速收敛的优点。

第一章 OSPF

OSPF定义

OSPF(Open Shortest Path First)是一种内部网关协议(IGP),用于在自治系统(AS)内部的路由器之间交换路由信息。

OSPF版本

    OSPFv1(夭折在实验室)
    OSPFv2 --- IP v4
    OSPFv3 --- IP v6

OSPFv2用IP报文直接封装协议报文,协议号为89。
OSPFv3用IPv6报文直接封装协议报文,协议号为89,在IPv6 Next Header里标识。

OSPF网络类型

点到点、点到多点、广播、非广播多路访问、虚链路

OSPF工作过程

启动协议后,本地基于224.0.0.5组播发送hello包,若收到邻居的hello包有自己的RID信息,则建立邻居关系,生成邻居表;邻居关系建立起后,用DBD包进行条件匹配——(建立起邻接关系的条件),条件匹配失败,则停留于邻居关系,仅hello包周期保活即可;若匹配成功,则建立邻接关系,首先用类似HELLO包的DBD包进行主从关系选举;之后邻接关系将使用DBD、LSR、LSU、LSack来获取未知的LSA,当收集齐所有的LSA后,本地生成LSDB——链路状态数据库表,再本地基于LSDB计算到达所有未知网段的最佳路径;生成路由表、收敛完成,之后每隔10s/30s发生hello包进行周期保活

OSPF五种报文:

OSPF分为5种报文:Hello报文、DD报文、LSR报文、LSU报文和LSAck报文。

1:Hello报文

Hello报文是最常用的一种报文,其作用为建立和维护邻接关系,周期性的在使能了OSPF的接口上发送。报文内容包括一些定时器的数值、DR、BDR以及自己已知的邻居。

2:DD报文

两台路由器在邻接关系初始化时,用DD报文来描述自己的LSDB,进行数据库的同步。报文内容包括LSDB中每一条LSA的Header(LSA的Header可以唯一标识一条LSA)。

3:LSR报文

两台路由器互相交换过DD报文之后,知道对端的路由器有哪些LSA是本地的LSDB所缺少的和哪些LSA是已经失效的,这时需要发送LSR报文(Link State Request Packet)向对方请求所需的LSA。内容包括所需要的LSA的摘要。

4:LSU报文

用来向对端Router发送其所需要的LSA或者泛洪自己更新的LSA,内容是多条LSA(全部内容)的集合。LSU报文(Link State Update Packet)在支持组播和广播的链路上是以组播形式将LSA泛洪出去。为了实现Flooding的可靠性传输,需要LSAck报文对其进行确认。对没有收到确认报文的LSA进行重传,重传的LSA是直接发送到邻居的。

5:LSAck报文

用来对接收到的LSU报文进行确认。内容是需要确认的LSA的Header(一个LSAck报文可对多个LSA进行确认)。LSAck报文根据不同的链路以单播或组播的形式发送。

OSPF邻居建立过程(七种状态)

Down、Init、Two-way、Exstart、Exchange、Loading、Full

down

协议刚启动,一旦本地发出hello包将进入下一个状态

init

两边都发出hello包进入init状态,若收到的hello包中存在自己的router-id将进入下一个状态

2-way

双向通讯状态 — 邻居关系建立的标志之后将进行条件匹配,匹配成功将进入下一个状态,匹配不成功继续保持邻居关系

exstart

预启动状态,使用类似hello的DBD进行主从关系的选举,再选举DR/BDR,非DR/BDR将无法进入下一个状态

exchange

准交换状态,使用真正的DBD包进行数据库目录的共享,需要ACK的确认

loading

加载状态,使用LSR/LSU/LSack来获取未知的LSA信息

full

转发,邻接状态建立的标志

OSPF的LSA类型

OSPFv3常用的LSA共有8种,分别为:

1.Router-LSA(Type1)

设备会为每个运行OSPFv3接口所在的区域产生一个LSA,描述了设备的链路状态和开销,在所属的区域内传播。

2.Network-LSA(Type2)

由DR产生,描述本链路的链路状态,在所属的区域内传播。

3.Inter-Area-Prefix-LSA(Type3)

由ABR产生,描述区域内某个网段的路由,并通告给其他相关区域。

4.Inter-Area-Router-LSA(Type4)

由ABR产生,描述到ASBR的路由,通告给除ASBR所在区域的其他相关区域。

5.AS-external-LSA(Type5)

由ASBR产生,描述到AS外部的路由,通告到所有的区域(除了Stub区域和NSSA区域)。

6.NSSA LSA(Type7)

由ASBR产生,描述到AS外部的路由,仅在NSSA区域内传播。

7.Link-LSA(Type8)

每个设备都会为每个链路产生一个Link-LSA,描述到此Link上的link-local地址、IPV6前缀地址,并提供将会在Network-LSA中设置的链路选项,它仅在此链路内传播。

8.Intra-Area-Prefix-LSA(Type9)

每个设备及DR都会产生一个或多个此类LSA,在所属的区域内传播。1.设备产生的此类LSA,描述与Router-LSA相关联的IPv6前缀地址。2.DR产生的此类LSA,描述与Network-LSA相关联的IPv6前缀地址。

OSPF区域划分:

OSPF有以下几种区域类型:
标准区域:最通用的区域类型,携带区域内路由、区域间路由和外部路由。
骨干区域:连接所有其他OSPF区域的中央区域。
普通区域:可以是标准区域或骨干区域。
STUB区域:不携带区域外路由信息,只有默认路由。
完全STUB区域:不携带区域外路由信息,只有默认路由,同时也不携带区域汇总路由。
NSSA区域:类似于STUB区域,但可以携带一个或多个区域外路由。
完全NSSA区域:类似于完全STUB区域,但可以携带一个或多个区域外路由

OSPF为什么要划分区域?

减少路由表大小
限制LSA的扩散
加快收敛
增强稳定性

OSPF邻居建立失败的原因

邻居建立和Hello包有关,所以我们要看看Hello包里有什么东东会影响邻居建立。

a、Route ID一致。Route ID是唯一的,所以Route ID一致会导致邻居建立不成功;两台设备进行ospf邻居建立,当设备Router-ID一致时,会认为对方为自己发送的报文,不接受ospf邻居建立。
b、area ID不一致。两台设备的相连接口如果处于不同区域内,会导致ospf邻居建立失败。
c、认证方式不一致。如果在两台设备接口上配置不同的ospf认证,由于认证失败,会导致ospf邻居建立不起来。
d、掩码不一致。MA网络中需要选DR,BDR,当掩码不一致时,无法选出DR,BDR,从而导致ospf邻居建立失败。
e、**Hello time和Dead time不一致。**两台设备配置hello/dead时间不一致,会导致ospf邻居建立失败。
f、接口加入了静默接口。在端口上配置静默端口命令,端口对于报文,不收不发,没有报文的交流,自然也就无法建立ospf邻居关系。
g、接口链路故障,或者接口没有启用OSPF,导致接口收不到对端发送的Hello报文。
h、网络类型不一致(比如一边是P2P对等网络,一边是Broadcast广播;hello报文里没有网络类型这个字段,但是两边网络类型不一致有可能Hello time一致,也会有影响,有一种特例,如果Hello time时间一致,则可以建立邻居,但是接口类型不一致会导致学不到路由信息)
i、区域类型不一致(特殊区域和非特殊区域)。两端区域类型要保持一致,否则可能会造成没邻居 或有邻居没路由,14.1.1.1 NSSA 区域,14.1.1.4 普通区域,无法建立邻居。
j、MTU值不一致。华为设备默认不开启MTU值检测,但是在遇到华为与其他厂商设备对接建立ospf时,必须在两台设备上同时开始MTU检测,或同时关闭MTU检测,否则会导致ospf邻居建立失败。

DR和BDR

在OSPF中,DR(Designated Router)和BDR(Backup Designated Router)是用来优化网络拓扑的。
DR和BDR的作用如下:
1.减少链路状态广播:在OSPF网络中,每个路由器都会向相邻的路由器发送链路状态更新信息。当网络规模较大时,这些广播会占用大量的带宽和处理资源。通过选举DR和BDR,只有DR和BDR才会发送链路状态更新信息,其他路由器只需将信息转发给DR和BDR,从而减少了广播的数量。
2.提高网络稳定性:DR和BDR的选举过程是基于优先级的,优先级高的路由器更有可能成为DR或BDR。选举出的DR和BDR负责维护邻居关系和数据库同步,当其他路由器发生变化时,只需通知DR和BDR即可,减少了网络中的控制消息传播,提高了网络的稳定性。
3.加快收敛时间:当网络中某个链路发生故障时,DR和BDR会立即通知其他路由器,并更新链路状态数据库。其他路由器只需更新自己的数据库,而不需要重新计算整个网络的路由信息,从而加快了网络的收敛时间。
总结:
DR和BDR的作用:减少邻接关系;降低OSPF协议流量。
DR和BDR的选举:DR/BDR的选举是基于接口的:接口的DR优先级越大越优先,接口的DR优先级相等时,Router ID越大越优先。

第二章 BGP

BGP定义

BGP(Border Gateway Protocol)是一种自治系统(AS)之间交换路由信息的协议。它用于在互联网中实现路由选择和路径控制。

BGP具有以下特点:

  1. BGP是一种路径矢量协议,它使用AS路径来选择最佳路径。
  2. BGP支持多种路由策略,可以根据需求进行灵活的路由控制。
  3. BGP具有较高的可靠性和稳定性,能够适应复杂的网络环境。

BGP与其他路由协议有什么区别?

与其他内部网关协议(IGP)相比,BGP是一种外部网关协议(EGP),用于自治系统之间的路由交换。与IGP相比,BGP更加复杂,具有更强大的路由控制能力。

BGP的路由选择算法是什么?

BGP使用路径矢量算法来选择最佳路径。它根据AS路径长度、AS路径的可达性和其他因素来选择最佳路径。

BGP的常见问题有哪些?

BGP常见的问题包括路由循环、路由泄露、路由振荡等。这些问题可能导致网络不稳定或无法正常工作。

如何解决BGP的路由循环问题?

解决BGP路由循环问题的方法包括使用AS路径过滤、使用BGP属性(如MED、本地优先级)进行路由选择、使用BGP路由策略等。

BGP的安全性如何保证?

为了确保BGP的安全性,可以采取以下措施:

  1. 使用BGP MD5认证来验证邻居之间的身份。
  2. 使用路由策略来限制和过滤路由信息。
  3. 使用防火墙和访问控制列表(ACL)来保护BGP会话。

BGP四种状态

Idle状态:	 BGP进程启动时的初始状态,等待BGP Start事件的发生。
Connect状态:	 BGP进程正在尝试与对等体建立TCP连接。
OpenSent状态:	 BGP进程已经向对等体发送了一个打开消息,等待对等体的回复。
Established状态:  BGP进程已经与对等体建立了连接,并且已经交换了路由信息。

第三章 ISIS协议

ISIS定义

ISIS(Intermediate System to Intermediate System)是一种用于路由选择的内部网关协议(IGP),它是OSI参考模型中的第二层和第三层之间的协议。ISIS协议最初是为ISO的OSI网络设计的,后来也被广泛应用于TCP/IP网络中。

ISIS算法

ISIS协议使用链路状态路由算法,通过交换链路状态信息来计算最短路径,并选择最佳的路由。它支持分层的、可扩展的网络拓扑结构,并具有高度的可靠性和稳定性。

ISIS应用

ISIS协议主要用于大型企业网络和互联网服务提供商(ISP)的骨干网络中,用于实现内部路由和自治系统之间的路由交换。它可以在不同的网络设备之间进行通信,如路由器和交换机。

ISIS协议具有以下特点:

  • 支持IPv4和IPv6地址族。
  • 使用TLV(Type-Length-Value)格式来传输信息。
  • 支持多个区域,每个区域内部使用SPF(Shortest Path First)算法计算最短路径。
  • 支持等级制度,通过等级来控制信息传播范围。
  • 支持快速收敛和负载均衡。

ISIS两种层次结构:Level 1和Level 2。

Level 1用于连接一个自治系统(AS)内的所有路由器,而Level 2用于连接不同自治系统之间的路由器。

ISIS协议的LEVEL1、LEVEL2、LEVEL1-2的区别:

  1. LEVEL1:Level 1区域是一个自治系统(AS)内的所有路由器的集合。在Level 1区域内,路由器只交换Level1链路状态信息(LSA)。Level 1区域内的路由器只能了解到AS内的路由信息,无法了解到其他AS的路由信息。
  2. LEVEL2:Level 2区域是连接不同自治系统之间的路由器的集合。在Level 2区域内,路由器交换Level 2 LSA和Level 1 LSA。Level 2区域内的路由器可以了解到其他AS的路由信息。
  3. LEVEL1-2:Level 1-2区域是连接Level 1和Level 2区域的路由器的集合。在Level 1-2区域内,路由器交换Level 1和Level 2 LSA。Level 1-2区域内的路由器可以了解到AS内和其他AS的路由信息。
  • 17
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值