Q:OSPF的工作过程是什么?(湖科大描述)
A:1.路由器启动后,发送问候分组,建立邻居关系。
2.路由器发送 LSA(链路状态通告),更新 LSDB。
3.路由器基于 LSDB (链路状态数据库),使用 SPF 算法计算最短路径,构建路由表。
4.当链路状态发生变化时,路由器更新 LSA,并重新计算最短路径。

Q: 请解释 RIP 的“好消息传播得快”和“坏消息传播得慢”的特点。
A: 好消息传播得快:当某个路由器发现到某个网络的距离变短时,会迅速通知邻居,邻居更新后再通知其他路由器,最终所有路由器都能快速更新到最新的最短距离。
坏消息传播得慢:当某个路由器发现到某个网络不可达时,会逐步增加距离值,并通知邻居,邻居再逐步增加距离值并通知其他路由器,直到所有路由器都更新到不可达的距离值,这个过程较慢。

Q: 静态路由算法是什么?
A: 静态路由算法是指由网络管理员手工配置每一条路由。

Q: 静态路由算法的特点是什么?
A: 静态路由算法的特点是简单和开销较小,但不能及时适应网络状态的变化。

Q: 静态路由算法适用于什么场景?
A: 静态路由算法适用于简单的小型网络。

Q: 动态路由算法是什么?
A: 动态路由算法根据网络流量负载和拓扑结构的变化来动态调整自身的路由表。

Q: 动态路由算法的特点是什么?
A: 动态路由算法能较好地适应网络状态的变化,但实现复杂,开销也大。

Q: 常用的动态路由算法可分为哪两类?
A: 常用的动态路由算法可分为两类:距离-向量路由算法和链路状态路由算法。

最常见的距离-向量路由算法是 RIP 算法, 它采用 “跳数” 作为距离的度量,在算法上基于的是BF最短路

典型的链路状态路由算法是 OSPF 算法,在算法上是基于 Dijkstra 最短路

Q: 链路状态路由算法中,每个路由器需要知道哪些信息?
A: 链路状态路由算法中,每个路由器需要知道本路由器都和哪些路由器相邻,以及相应链路的代价。

Q: 链路状态路由算法要求每个结点都具有什么?
A: 链路状态路由算法要求每个结点都具有全网拓扑结构图。

Q: 链路状态路由算法中,每个结点需要执行哪些任务?
A: 1. 主动测试所有相邻结点的状态。
2. 定期地将链路状态传播给所有其他结点。

Q: 链路状态路由算法中,每个结点如何计算到达其他结点的最短路径?
A: 每个结点都知道全网共有多少个结点、哪些结点是相连的、其代价是多少等,于是每个结点都可使用 Dijkstra 最短路径算法计算出到达其他结点的最短路径。

Q: 互联网采用的是什么类型的路由选择协议?
A: 互联网采用的是自适应的、分布式路由选择协议。

Q: 为了管理互联网的路由选择,互联网被划分为哪些系统?
A: 为了管理互联网的路由选择,互联网被划分为许多较小的自治系统 (Autonomous System, AS)。

Q: 自治系统是什么?
A: 自治系统是在单一技术管理下的一组路由器,这些路由器使用一种 AS 内部的路由选择协议和共同的度量。

Q: 自治系统对其他 AS 表现出什么?
A: 一个 AS 对其他 AS 表现出的是一个单一的和一致的路由选择策略。

Q: 互联网的路由选择协议可以分为哪两类?
A: 互联网的路由选择协议可以分为两类:内部网关协议(Interior Gateway Protocol,IGP)和外部网关协议 (External Gateway Protocol, EGP)。

Q: 内部网关协议是什么?
A: 内部网关协议即在一个自治系统内部使用的路由选择协议,它与在互联网中的其他自治系统选用什么路由选择协议无关。

Q: 目前常用的内部网关协议有哪些?
A: 目前常用的内部网关协议有 RIP 和 OSPF。

Q: 外部网关协议是什么?
A: 若源主机和目的主机处在不同的自治系统中,则当数据报传到一个自治系统的边界时,就需要使用一种协议将路由选择信息传递到另一个自治系统中。这样的协议就是外部网关协议。

Q: 目前使用最多的外部网关协议是什么?
A: 目前使用最多的外部网关协议是 BGP-4。

Q: 自治系统之间的路由选择也称为什么?
A: 自治系统之间的路由选择也称域间路由选择。

Q: 自治系统内部的路由选择也称为什么?
A: 自治系统内部的路由选择也称域内路由选择。

Q: 自治系统之间使用什么类型的路由选择协议?
A: 自治系统之间使用外部网关协议(EGP)。

Q: 自治系统内部使用什么类型的路由选择协议?
A: 自治系统内部使用内部网关协议(IGP)。

Q: 外部网关协议和内部网关协议是具体的协议吗?
A: 外部网关协议和内部网关协议只是路由选择协议的分类名称,而不是具体的路由选择协议。

Q: 为什么外部网关协议和内部网关协议名称中使用的是 “网关” 这个名词?
A: 因为在因特网早期的 RFC 文档中,没有使用 “路由器” 而使用的是 “网关” 这一名词。

Q: 当数据报传到一个自治系统的边界时,需要使用什么协议将路由选择信息传递到另一个自治系统中?
A: 当数据报传到一个自治系统的边界时,需要使用外部网关协议(EGP)将路由选择信息传递到另一个自治系统中。

Q: RIP、OSPF 和 BGP 分别属于哪一层协议?
A: 1. RIP 基于 UDP,所以 RIP 是应用层协议。
2. OSPF 基于 IP,所以 OSPF 是网络层协议。
3. BGP 基于 TCP,所以 BGP 是应用层协议。
(1)RIP 用 UDP(RIP 用到传输层),所以 RIP是应用层的协议
(2)OSPF 用 IP(RIP 用到网络层),所以 OSPF是网络层协议;(有教材认为是传输层)
(比如在考研的考纲中:OSPF 协议是不使用 UDP 数据报传送,而是直接使用 IP 数据报传送,因此 OSPF 是被划分到属于网络层协议 - 这一点考研党要以考纲为标准);
(3)BGP 用 TCP(RIP 用到传输层),所以 BGP 是应用层协议;

Q: RIP、OSPF 和 BGP 的功能是什么?
A: RIP、OSPF 和 BGP 都是用于发现和维护前往目的地的最短路径的路由选择协议。

路由信息协议(RIP)

基本概念

Q: 路由信息协议(RIP)是什么?
A: 路由信息协议(Routing Information Protocol,RIP)是一种基于距离向量的路由选择协议,使用 Dijkstra 最短路算法。

Q: RIP 要求自治系统(AS)内的每个路由器维护什么?
A: RIP 要求自治系统(AS)内的每个路由器都要维护从它自己到 AS 内每一个目的网络的距离记录(距离向量 Distance-Vector,D-V)。

Q: RIP 使用什么来衡量到达目的网络的距离?
A: RIP 使用(Hop Count)跳数来衡量到达目的网络的距离。

Q: RIP 中路由器到直连网络的距离定义为多少?
A: 路由器到直连网络的距离定义为 1。

Q: RIP 中路由器到非直连网络的距离如何定义?
A: 路由器到非直连网络的距离定义为所经过的路由数加 1。

Q: RIP 允许一条路径最多包含多少个路由器?
A: RIP 允许一条路径最多只能包含 15 个路由器。

Q: 跳数为 16 在 RIP 中表示什么?
A: 跳数为 16 表示网络不可达。

原理

Q: RIP 的基本工作原理是什么?
A: 1. RIP 会选择通过路由器数量最少的路由。
2. 当到达同一目的网络有多条距离相等的路由时,可以进行等价负载均衡,将通信量均衡地分布到多条等价的路径上。

Q: RIP 协议和哪些路由器交换信息?
A: RIP 协议仅和相邻路由器进行交换信息。

Q: RIP 中路由器之间路由表多久交换一次?
A: 路由器之间每 30 秒交换一次路由信息,接着路由器根据新信息更新路由表。若超过 180s 没收到邻居路由器的通告,则判定邻居路由器没有了,并更新自己路由表中该邻居的距离。

Q: RIP 中路由器之间交换什么信息?
A: RIP路由器之间交换的信息是自己的路由表。

三要素

Q: RIP 的三要素是什么?
A: 1. 和谁交换信息:仅和相邻路由器交换。
2. 交换什么信息:路由器自己的路由表。
3. 何时交换信息:周期性交换,即按固定的时间间隔交换路由信息。RIP 按固定的时间间隔(如 30 秒)交换路由信息。当网络拓扑发生变化时,路由器也及时向相邻路由器通告拓扑变化后的路由信息。

Q: 什么是触发更新?
A: 当网络拓扑发生变化时,路由器要及时向相邻路由器通告拓扑变化后的路由信息,这称为触发更新。

基本工作过程

Q: RIP 的基本工作过程是什么?
A: 1. 路由器刚开始工作时,只知道自己到直连网络的距离为 1。
2. 每个路由器仅和相邻路由器周期性地交换并更新路由信息。
3. 若干次交换和更新后,每个路由器都知道到达本 AS 内各网络的最短距离和下一跳地址,称为收敛。

Q: 什么是 RIP 中的收敛?
A: RIP 收敛是指所有的路由器最终都知道到达本自治系统内任何网络的最短距离和下一跳路由器的地址。

路由更新规则

Q: RIP 的路由更新规则是什么?
A: 1. 发现了新的网络,添加。
2. 到达目的网络,相同的下一跳(指都经过 C 转发),最新消息,要更新。
3. 到达目的网络,相同的下一跳(指原来路径不经过 C 转发),新路由优势,要更新。
4. 到达目的网络,不同的下一跳,RIP 距离相等,可以等价负载均衡,添加。
5. 到达目的网络,不同的下一跳,新路由劣势,不更新。

Q: RIP 的每个路由表项有哪些关键字段?
A: 每个路由表项有三个关键字段:目的网络 ,距离 ,下一跳路由器地址

时间参数

Q: RIP 的时间参数有哪些?
A: 1. 路由器每隔大约 30 秒向其所有相邻路由器发送路由更新报文。
2. 若 180 秒(默认)没有收到某条路由条目的更新报文,则把该路由条目标记为无效(即把 RIP 距离设置为 16,表示不可达)。
3. 若再过一段时间(如 120 秒),还没有收到该路由条目的更新报文,则将该路由条目从路由表中删除。

问题

Q: RIP 存在什么问题?
A: RIP 存在“坏消息传播得慢”的问题,即路由环路或 RIP 距离无穷计数问题。

Q: 如何减少“坏消息传播得慢”问题的概率或减小其危害?
A: 1. 限制最大 RIP 距离为 15(16 表示不可达)。
2. 当路由表发生变化时就立即发送路由更新报文(即“触发更新”),而不仅是周期性发送。
3. 让路由器记录收到某个特定路由信息的接口,而不让同一路由信息再通过此接口向反方向传送(即“水平分割”)。

RIP 版本和相关报文的封装

Q: RIP2 相比 RIP1 有哪些改进?
A: RIP2 可以支持变长子网掩码和 CIDR,另外还提供简单的鉴别过程并支持多播。

Q: RIP 相关报文使用什么协议进行封装?
A: RIP 相关报文使用运输层的用户数据报协议(UDP)进行封装,使用的 UDP 端口号为 520。

Q: 从封装角度看,RIP 属于哪一层协议?
A: 从封装角度看,RIP 属于 TCP/IP 体系结构的应用层。但其核心功能是路由选择,属于网际层。

Q: RIP 报文包含哪些部分,RIP 的封装格式是什么?
A: RIP 报文包含首部 + 路由部分,首部 + 路由部分塞入到 UDP 用户数据报当中,接着加上 UDP 首部称为 UDP 数据报

首部

Q: RIP 报文首部包含哪些字段?
A: RIP 报文首部包含命令、版本、以及一个必须为 0 的字段。

Q: RIP 报文首部字段的长度是多少?
A: RIP 报文首部字段的长度是 4 字节。

路由部分

Q: RIP 报文路由部分包含哪些字段?
A: RIP 报文路由部分包含地址族标识符、网络地址、子网掩码、下一跳路由器地址、距离。

Q: RIP 报文路由部分字段的长度是多少?
A: RIP 报文路由部分字段的长度是 20 字节。

报文长度限制

Q: RIP 报文长度限制是什么?
A: 一个 RIP 报文最多可以包括 25 个路由,如超过(如有 50 个多个路由,就需要拆成两个发送),必须再用一个 RIP 报文传输。

总结 RIP 报文格式

Q: 请总结 RIP 报文格式。
A: RIP 报文包含首部和路由部分,首部包含命令、版本和一个必须为 0 的字段,路由部分包含地址族标识符、网络地址、子网掩码、下一跳路由器地址、距离。
RIP 报文长度限制为 25 个路由,超过则需要拆分成多个报文发送。
RIP 是应用层协议,使用 UDP 传送数据。

优缺点

Q: RIP 的优点是什么?
A: 1. 实现简单,路由器开销小。
2. 如果一个路由器发现了 RIP 距离更短的路由,那么这种更新信息就传播得很快,即“好消息传播得快”。

Q: RIP 的缺点是什么?
A: 1. RIP 限制了最大 RIP 距离为 15,这就限制了使用 RIP 的自治系统(AS)的规模。
2. 相邻路由器之间交换的路由信息是路由器中的完整路由表,因而随着网络规模的扩大,开销也随之增大。
3. “坏消息传播得慢”,使更新过程的收敛时间过长。因此,对于规模较大的自治系统(AS),应当使用 OSPF 协议。

开放最短路径优先 (OSPF) 协议

基本特点

Q: OSPF 协议是什么?
A: 开放最短路径优先 (OSPF) 协议是使用分布式链路状态路由算法的典型代表,也是内部网关协议 (IGP) 的一种。

Q: OSPFRIP 相比有哪些主要区别?
A: 1. OSPF 向本自治系统中所有路由器发送信息,而 RIP 仅仅向自己相邻的几个路由器发送信息。
2. OSPF 发送的信息是与本路由器相邻的所有路由器的链路状态,而 RIP 发送的信息是本路由器所知道的全部信息,即整个路由表。
3. OSPF 只有当链路状态发生变化时,才用洪泛法向所有路由器发送信息,而 RIP 不管网络拓扑是否发生变化,路由器之间都要定期交换路由表的信息。
4. OSPF 是网络层协议,直接用 IP 数据报传送,而 RIP 是应用层协议,在传输层使用 UDP。

Q: OSPF 有哪些特点,OSPF的基本特征?
A: 第一个问题,对应王道书

  1. OSPF 允许对每条路由设置成不同的代价,对于不同类型的业务可计算出不同的路由。
  2. 若到同一个目的网络有多条相同代价的路径,则可将通信量分配给这几条路径。
  3. OSPF 分组具有鉴别功能,保证仅在可信赖的路由器之间交换链路状态信息。
  4. OSPF 支持可变长度的子网划分和无分类编址 CIDR。
  5. 每个链路状态都带上一个 32 位的序号,序号越大,状态就越新。
    第二个问题,对应湖科大
  • 基于链路状态管理
  • 采用最短路径算法 SPF,保证不会产生路由环路
  • OSPF 不限制网络规模,更新效率高,收敛速度快
  • 使用 IP 数据报(协议号 89)进行封装,而 RIP 使用 UDP 封装(应用层)
  • 多点接入的 OSPF 中,选举 BR 和 BDR 来维护邻居信息

Q: OSPF 协议如何实现路径负载均衡?
A: 若到同一个目的网络有多条相同代价的路径,则可将通信量分配给这几条路径。

Q: OSPF 协议如何保证链路状态信息的安全性?
A: OSPF 分组具有鉴别功能,保证仅在可信赖的路由器之间交换链路状态信息。

OSPF 协议支持可变长度的子网划分和==无分类编址 CIDR==。

链路状态序号

Q: OSPF 协议如何标识链路状态的更新时间?
A: 每个链路状态都带上一个 32 位的序号,序号越大,状态就越新。

Q: OSPF 协议使用什么算法计算路由?
A: OSPF 协议使用最短路径算法 SPF(Shortest Path First)计算路由,保证不会产生路由环路。

Q: OSPF 协议对网络规模有什么限制?
A: OSPF 协议不限制网络规模,更新效率高,收敛速度快。

OSPF 协议发送的信息是与本路由器相邻的所有路由器的链路状态。

OSPF 协议只有当链路状态发生变化时,路由器才向所有路由器泛洪发送此信息。

基本工作原理

Q: OSPF 是基于什么管理的?
A: OSPF 是基于链路状态的,而不是像 RIP 一样是基于距离向量的。

Q: OSPF 中链路状态指的是什么?
A: OSPF中链路状态指的是:本路由器都和哪些路由器相邻以及相应的链路的代价 COST(这个代价用来表示费用、距离、时延和带宽,由网络管理人员来做这个参数设置)。

Q: OSPF 的基本工作原理是什么?(王道描述)
A: 1. 各路由器之间频繁地交换链路状态信息,最终建立一个链路状态数据库,即全网的拓扑结构图。
2. 每个路由器利用链路状态数据库中的数据,使用 Dijkstra 算法计算自己到达各目的网络的最优路径,构造出自己的路由表。
3. 当链路状态发生变化时,每个路由器重新计算到达各目的网络的最优路径,构造出新的路由表。

Q: OSPF 为什么要划分区域?
A: 为了使 OSPF 能够用于规模很大的网络,OSPF 将一个自治系统再划分为若干更小的范围,称为区域。

Q: OSPF 划分区域的好处是什么?
A: 划分区域的好处是,将利用洪泛法交换链路状态信息的范围局限在每个区域而非整个自治系统,从而减少了整个网络上的通信量。

Q: OSPF 每个区域的规模应该多大?
A: 每个区域的规模不应太大,一般所包含的路由器不应超过 200 个。

Q: OSPF 每个区域都有什么?
A: 每个区域都由一个 32 比特的区域标识符,可用点分十进制表示。

Q: 主干区域的标识符是什么?
A: 主干区域的标识符为 0.0.0.0,其作用就是用来连通其他在它下面的区域。

Q: OSPF 中主干区域需要与其他自治系统交换路由信息,这样的路由器称为什么?
A: 主干区域需要与其他自治系统交换路由信息,这样的路由器称为自治系统边界路由器(AS Border Router,ASBR)。

Q: OSPF 协议中有哪些类型的路由器?
A: OSPF 协议中包含四种类别的路由器:
1.主干路由器:位于主干区域中的路由器。
2.区域边界路由器:位于两个区域之间交界的位置。
3.自治系统边界路由器:位于主干区域中,连接到其他自治系统 AS 的路由器。
4.区域内部路由器:位于划分的下层区域中的路由器。

LSA 洪泛

Q: OSPF 中的链路状态通告 (LSA) 如何进行传播?
A: OSPF 中的链路状态通告 (LSA) 被封装在链路状态更新 (Link State Update, LSU) 分组中,采用洪泛法进行发送。

Q: 洪泛法的要点是什么?
A: 洪泛法的要点是路由器将 LSU 链路状态更新 (Link State Update, LSU) 分组发送给自己所有的邻居路由器。

Q: 收到 LSU 链路状态更新 (Link State Update, LSU) 分组的路由器如何处理?
A: 收到 LSU 链路状态更新 (Link State Update, LSU) 分组的路由器会将该分组转发给自己所有的邻居路由器(但其上游路由器除外)。

Q: 洪泛法有哪些特点?
A: 洪泛法是一种可靠的传播方式,它会发送确认信息,并避免重复发送。

分组类型

Q: OSPF 有哪些分组类型?
A: OSPF 共有以下五种分组类型:

  1. HELLO 问候分组:用来发现和维持邻站的可达性。
  2. DD 数据库描述分组:向邻站给出自己的链路状态数据库中的所有链路状态项目的摘要信息。
  3. LSR 链路状态请求分组:向对方请求发送某些链路状态项目的详细信息。
  4. LSU 链路状态更新分组:用洪泛法对全网更新链路状态,它是 OSPF 最核心的部分。
  5. LSAck 链路状态确认分组:对链路更新分组的确认。

Q: OSPF 中通常传送的 OSPF 分组是什么?
A: 在网络中通常传送的 OSPF 分组大多是问候分组。

Q: OSPF 使用什么分组来维护相邻节点的信息?
A: OSPF 使用问候分组来维护相邻节点的信息。

Q: OSPF 的问候分组如何封装?
A: 问候分组封装在 IP 数据报中,发送组播地址 224.0.0.5。224.0.0.5 是个 D 类多播地址。

Q: OSPF 如何建立链路数据库(LSDB)?
A: 1. 在路由器刚开始工作时,OSPF 让每个路由器使用数据库描述分组和相邻路由器交换本数据库中已有的链路状态摘要信息。
2. 然后,路由器使用链路状态请求分组,向对方请求发送自己所缺少的某些链路状态项目的详细信息。
3. 经过一系列的这种分组交换,就建立了全网同步的链路数据库。

Q: OSPF 如何更新链路状态(LSU)?
A: 当一个路由器的链路状态发生变化时,该路由器就要使用链路状态更新分组,用洪泛法向全网更新链路状态。其他路由器在收到更新分组后要发送确认。

Q: OSPF 如何确保链路状态数据库与全网的状态保持一致?
A: OSPF 还规定每隔一段时间(如 30 分钟)要刷新一次数据库中的链路状态。

OSPF 协议每隔 30min,要刷新一次数据库中的链路状态。

OSPF 协议的收敛速度很快,不存在坏消息传的慢的问题。

优势

Q: OSPF 相比 RIP 的优势是什么?
A: 因为一个路由器的链路状态只涉及与相邻路由器的连通状态,与整个网络的规模并无直接关系,所以当互联网规模很大时,OSPF 要比 RIP 好得多。

多点接入网络中的 OSPF 路由器

邻居关系的建立

Q: 在多点接入网络中,OSPF 路由器如何建立邻居关系?
A: 为了减少洪泛发送问候分组和链路状态更新分组的数量,OSPF 采用以下措施:

  • 选举指定路由器(Designated Router,DR)和备用的指定路由器(Backup Designated Router,BDR)。
  • 所有的非 DR/BDR 只与 DR/BDR 建立邻居关系。
  • 非 DR/BDR 之间通过 DR/BDR 交换信息。

邻居关系数量

Q: 多点接入网络中的 OSPF 路由器中通过选举 DR 和 BDR 后,建立的邻居关系数量是多少?
A: 通过选举 DR 和 BDR 后,建立的邻居关系数量为 ,其中 n 是网络中路由器的数量。

Q: 多点接入网络中的 OSPF 路由器选举 DR 和 BDR 的优点是什么?
A: - 减少了洪泛发送问候分组和链路状态更新分组的数量。

  • 简化了路由器之间的邻居关系。
  • 提高了网络效率。

OSPF 的五种分组类型

问候分组 (Hello)

Q: 问候分组 (Hello) 的作用是什么?
A: 问候分组 (Hello) 用于发现和维护邻居路由器的可达性。

数据库描述分组 (Database Description)

Q: 数据库描述分组 (Database Description) 的作用是什么?
A: 数据库描述分组 (Database Description) 用于向邻居路由器告知自身链路状态数据库中所有链路状态项目的摘要信息。

Q: 链路状态请求分组 (Link State Request) 的作用是什么?
A: 链路状态请求分组 LSR (Link State Request) 用于向邻居路由器请求发送某些链路状态项目的详细信息。

Q: 链路状态更新分组 (Link State Update) 的作用是什么?
A: 链路状态更新分组 LSU (Link State Update) 用于使用洪泛法对全网更新链路状态,即使用洪泛法对整个系统更新链路状态信息。

Q: 链路状态确认分组 LSA (Link State Acknowledgement) 的作用是什么?
A: 链路状态确认分组 (Link State Acknowledgement) 用于对链路状态更新分组的确认。

边界网关协议 (BGP)

BGP 的作用

Q: BGP 的作用是什么?
A: 边界网关协议 (Border Gateway Protocol, BGP) 是不同自治系统 AS 的路由器之间交换路由信息的协议,是一种外部网关协议。

Q: BGP 常用于什么场景?
A: 边界网关协议 BGP 常用于互联网的网关之间。

BGP 的必要性

Q:为什么在 AS 之间使用 BGP 而不是 RIP 或 OSPF?
A:不同 AS 内度量路由的“代价”可能不同,因此使用统一的“代价”作为度量来寻找最佳路由是不行的。
自治系统之间的路由选择必须考虑相关策略 (政治,经济,安全等)。

BGP 的工作原理

Q: BGP 的工作原理是什么?
A:

  1. 配置 BGP 时,每个 AS 的管理员要选择至少一个路由器,作为该 AS 的“BGP 发言人”,BGP 发言人往往就是 BGP 边界路由器。
  2. 一个 BGP 发言人与其他 AS 中的 BGP 发言人要交换路由信息,就要先建立 TCP 连接,然后在此连接上交换 BGP 报文以建立 BGP 会话,再利用 BGP 会话交换路由信息。
  3. BGP 所交换的网络可达性的信息,就是到达某个网络所要经过的一系列自治系统。所有 BGP 发言人都相互交换网络可达性的信息后,各 BGP 发言人就可以找到到达各个自治系统的较好路由。

BGP 的特点

Q: BGP 有哪些特点?
A: 1. BGP 交换路由信息的结点数量级是 AS 个数的数量级,这要比这些 AS 中的网络数少很多。
2. 寻找一条较好的路径,取决于找准正确的 BGP 发言人,而每个 AS 中 BGP 发言人(或边界路由器)的数目是很少的。
3. BGP 支持 CIDR,因此 BGP 的路由表也就应当包括目的网络前缀、下一跳路由器,以及到达该目的网络所要经过的各个自治系统序列。
4. 当 BGP 刚运行时,BGP 的邻站交换整个 BGP 路由表。但以后只需要在发生变化时更新有变化的部分。

Q: BGP 的目标是什么?
A: BGP 力求寻找一条能够到达目的网络且比较好的路由,而并非要寻找一条最佳路由 (不兜圈)。

BGP 协议报文格式

Q: BGP 协议的报文格式是什么?
A: BGP 协议包含报文通用首部 + 报文主体部分,放入到 BGP 报文当中,接着加上 TCP 首部(构成 TCP 协议),接着我们进入到网络层再包裹添加上 IP 首部。

BGP 报文类型

Q: BGP 使用哪些报文?
A: BGP-4 共使用 4 种报文:

  1. 打开 (Open) 报文:用来与相邻的另一个 BGP 发言人建立关系,使通信初始化。
  2. 更新(Update)报文:用来通知某一路由的信息,以及列出要撤销的多条路由。
  3. 保活 (Keepalive) 报文:用来周期性地证实邻站的连通性。
  4. 通知(Notification)报文:用来发送检测到的差错。

BGP 邻站关系

Q: BGP 如何建立邻站关系?
A: 若一个 BGP 发言人想与另一个 AS 的 BGP 发言人建立邻站关系,则要向对方发送 Open 报文,若对方接受这种邻站关系,则用 Keepalive 报文响应。

Q: BGP 如何维持邻站关系?
A: 邻站关系一旦建立,就要继续维持这种关系。为此,这两个 BGP 发言人彼此要周期性地交换 Keepalive 报文。

BGP 路由更新

Q: BGP 如何更新路由信息?
A: Update 报文是 BGP 的核心内容,BGP 发言人可以用 Update 报文撤销它曾经通知过的路由,也可以宣布增加新的路由。

Q: 什么是路径向量?
A: 可以达到目的地的路径叫做路径向量。

Q: 路径向量在 BGP 中有什么作用?
A: BGP 发言人交换路径向量,以确定到达目的网络的最佳路径。

BGP-4 报文类型

打开 (OPEN) 报文

Q: BGP报文中的打开 (OPEN) 报文的用途是什么?
A: 打开 (OPEN) 报文用于与相邻的另一个 BGP 发言人建立关系,使通信初始化。

保活 (KEEPALIVE) 报文

Q: BGP报文中的保活 (KEEPALIVE) 报文的用途是什么?
A: 保活 (KEEPALIVE) 报文用于周期性地证实邻站的连通性。

更新 (UPDATE) 报文

Q: BGP报文中的更新 (UPDATE) 报文的用途是什么?
A: 更新 (UPDATE) 报文用于通告某一条路由的信息,以及列出要撤销的多条路由。

通知 (NOTIFICATION) 报文

Q: BGP报文中的通知 (NOTIFICATION) 报文的用途是什么?
A: 通知 (NOTIFICATION) 报文用于发送检测到的差错。

RIP、OSPF 与 BGP 的比较

协议类型

Q: RIP、OSPF 和 BGP 分别属于哪种类型的协议?
A: - RIP 和 OSPF 都是内部网关协议 (IGP),用于同一个自治系统 (AS) 内的路由器之间交换路由信息。

  • BGP 是外部网关协议 (EGP),用于不同自治系统 (AS) 之间的路由器交换路由信息。

路由算法

Q: RIP、OSPF 和 BGP 分别使用哪种路由算法?
A: - RIP 使用距离向量算法。

  • OSPF 使用链路状态算法。
  • BGP 使用路径向量算法。

传递协议

Q: RIP、OSPF 和 BGP 分别使用什么协议进行数据传输?
A: - RIP 使用 UDP 协议。

  • OSPF 直接使用 IP 数据报。
  • BGP 使用 TCP 协议。

路径选择

Q: RIP、OSPF 和 BGP 分别使用什么标准选择路径?
A: - RIP 选择跳数最少的路径。

  • OSPF 选择代价最低的路径。
  • BGP 选择较好的路径,但并非最佳路径。

交换结点

Q: RIP、OSPF 和 BGP 分别与哪些路由器交换信息?
A: - RIP 与本结点相邻的路由器交换信息。

  • OSPF 与网络中的所有路由器交换信息。
    • OSPF 形式上将自己的路由当中的列入状态发送给了邻站,实际这个邻站依旧会把这个路由状态拷贝一个副本转发给它相邻的路由器,看上去就是在进行广播路由器的链路状态
  • BGP 与本结点相邻的路由器交换信息。

交换内容

Q: RIP、OSPF 和 BGP 分别交换哪些内容?
A: - RIP 交换当前本路由器知道的全部信息,即自己的路由表。

  • OSPF 交换与本路由器相邻的所有路由器的链路状态。
  • BGP 首次交换整个路由表,非首次交换有变化的部分。

总结

Q: 请总结 RIP、OSPF 和 BGP 的主要区别。
A: - RIP 是一种简单的距离向量协议,适用于小型网络,但存在“坏消息传播得慢”的问题。

  • OSPF 是一种更复杂的链路状态协议,适用于大型网络,收敛速度快,但配置较为复杂。
  • BGP 是一种路径向量协议,用于不同自治系统之间的路由选择,考虑策略因素,但配置更加复杂。

RIP 和 OSPF 收敛速度的区别

RIP 协议的收敛过程

Q: RIP 协议的收敛过程是什么?
A: RIP 协议使用距离向量算法,当路由器收到来自邻居的路由更新信息时,会将收到的信息与自己的路由表进行比较,然后更新自己的路由表。

Q: RIP 协议收敛速度慢的原因是什么?
A: RIP 协议收敛速度慢的原因是它需要将收到的路由更新信息与自己的路由表进行比较,然后才能更新自己的路由表。这个过程需要一定的时间,尤其是在网络规模较大时,收敛速度会更慢。

OSPF 协议的收敛过程

Q: OSPF 协议的收敛过程是什么?
A: OSPF 协议使用链路状态算法,当路由器收到来自邻居的链路状态更新信息时,会将收到的信息直接添加到自己的链路状态数据库中,然后使用 Dijkstra 算法计算最短路径。

Q: OSPF 协议收敛速度快的原因是什么?
A: OSPF 协议收敛速度快的原因是它不需要将收到的链路状态更新信息与自己的路由表进行比较,而是直接添加到链路状态数据库中,然后使用 Dijkstra 算法计算最短路径。这个过程比 RIP 协议的收敛过程快得多。

总结

Q: 请总结 RIP 和 OSPF 收敛速度的区别。
A: RIP 协议的收敛速度慢,因为它需要将收到的路由更新信息与自己的路由表进行比较,然后才能更新自己的路由表。OSPF 协议的收敛速度快,因为它不需要进行比较,而是直接将收到的链路状态更新信息添加到链路状态数据库中,然后使用 Dijkstra 算法计算最短路径。

Q: 为什么 OSPF 协议的收敛速度比 RIP 协议快?
A: OSPF 协议的收敛速度比 RIP 协议快,是因为 OSPF 协议使用链路状态算法,而 RIP 协议使用距离向量算法。链路状态算法能够更快地将网络拓扑结构的变化传播到所有路由器,而距离向量算法需要通过多次迭代才能将网络拓扑结构的变化传播到所有路由器。