自治系统内部的路由选择
路由信息协议(RIP)
路由信息协议(Routing Information Protocol,RIP)是内部网关协议(IGP)中最先得到广泛应用的协议。RIP是一种分布式的基于距离向量的路由选择协议,其最大优点就是简单。
该协议的规定及工作原理:
- 网络中的每个路由器都要维护从它自身到其他每个目的网络的距离记录。
- 距离也称跳数(Hop Count),规定从一个路由器到直接连接网络的距离(跳数)为1。而每经过一个路由器,距离(跳数)加1。
- RIP认为好的路由就是它通过的路由器的数目少,即优先选择跳数少的路径。
- RIP 允许一条路径最多只能包含15个路由器(即最多允许15跳)。因此距离等于16时,它表示网络不可达。可见RIP只适用于小型互联网。距离向量路由可能会出现环路的情况,规定路径上的最高跳数的目的是为了防止数据报不断循环在环路上,减少网络拥塞的可能性。
- RIP默认在任意两个使用RIP的路由器之间每30秒广播一次RIP路由更新信息,以便自动建立并维护路由表(动态维护)。
- 在RIP中不支持子网掩码的RIP广播,所以RIP中每个网络的子网掩码必须相同。
RIP协议缺点:
- RIP限制了网络的规模,它能使用的最大距离为15(16表示不可达)。
- 路由器之间交换的是路由器中的完整路由表,因此网络规模越大,开销也越大。
- 网络出现故障时,会出现慢收敛现象(即需要较长时间才能将此信息传送到所有路由器),俗称“坏消息传得慢”,使更新过程的收敛时间长
RIP协议特点:
- 仅和相邻路由器交换信息。
- 路由器交换的信息是当前路由器所知道的全部信息,即自己的路由表。
- 按固定的时间间隔交换路由信息,如每隔30秒。
毒性逆转
当一个路由器检测到某个邻居路由器不可达时,它会向邻居路由器发送一个距离值为无穷大的路由更新消息,以表明该路由不可达。
然而,在毒性逆转中,路由器会将这个不可达的路由信息发送回给原来的邻居路由器,但是将距离值设置为无穷大。这样做的目的是告诉邻居路由器,如果它要发送数据到这个不可达的路由,它应该通过其他路径而不是通过当前路由器。
例如,假设路由器 A 通过路由器 B 到达目的地 D,但是路由器 B 告诸路由器 A 目的地 D 不可达。在普通的距离向量路由选择算法中,路由器 A 会将目的地 D 的距离值设置为无穷大,并向其他邻居路由器发送更新消息。而在毒性逆转中,路由器 A 会将目的地 D 的距离值设置为无穷大,并将这个更新消息发送回给路由器 B。这样一来,路由器 B 就知道了目的地 D 不可达,并且不会再将数据发送给路由器 A。
毒性逆转的作用是通过明确标记不可达路径来防止路由环路的产生。具体来说,当节点通过某条链路学到某目的地的路由后,它会向相邻节点通告该目的地的距离为无穷大,以避免对方将该信息再次传播回来,从而有效避免路由振荡和环路问题。
开放最短路径优先(OSPF)协议
开放最短路径优先(OSPF)协议是使用分布式链路状态路由算法的典型代表,也是内部网关协议(IGP)的一种。
当网络规模扩大时,路由器的路由表成比例地增大。这会消耗路由器缓冲区空间,还需要用更多CPU时间,用更多的带宽来交换路由状态信息。因此路由选择必须按照层次的方式进行。
如图,每个链路状态分组仅在它所属的区域内泛洪,从而限制了链路状态分组泛洪的范围和数量
Backbone 指的是主干区域(Backbone Area),通常被标记为 Area 0。它是 OSPF 路由体系的核心部分,负责连接并协调多个非主干区域的通信。
如果是跨区域通信,需要以下流程:
- 链路状态分组首先路由到边界路由器
- 由边界路由器路由到backbone
- 由backbone路由到目标区域,再在目标区域内由边界路由器路由到目标子网路由器
层次路由与自治系统
层次路由方法
- 因特网将整个互联网划分为较小的自治系统(一个自治系统中包含很多局域网),每个自治系统内部有自己的路由选择协议。
- 如果两个自治系统需要通信,则需要自治系统之间的协议来屏蔽掉这些差异,在下一个部分会介绍响应的路由协议。
自治系统(Autonomous System,AS):
单一技术管理下的一组路由器,这些路由器使用一种AS内部的路由选择协议和共同的度量来确定分组在该AS内的路由,同时还使用一种AS之间的路由选择协议来确定分组在AS之间的路由。
注:
:
一个自治系统内的所有网络都由一个行政单位管辖,一个自治系统的所有路由器在本自治系统内都必须是连通的。
OPSF协议就是一种层次路由协议
边界网关协议(BGP)
边界网关协议(Border Gateway Protocol,BGP)是不同自治系统的路由器之间交换路由信息的协议,是一种外部网关协议,基于距离矢量(DV)算法。边界网关协议常用于互联网的网关之间。
- eBGP:AS区域之间的路由选择协议
- iGBP:AS区域内部的路由选择协议
如图,1c,2a,2c,3a分别为所属AS区域的网关,一方面参与AS区域内部的路由选择运算,收集内部AS子网可达信息
另一方面将子网可达信息传递给相邻的AS区域
例如2c和3a,2c可以告诉它自己所属区域AS2的子网可达信息,也可以告诉3a通过1c—2a传递过来的AS1子网可达信息
BGP路径选择
热土豆路由选择
热土豆路由选择算法 (Hot Potato Routing) 是一种简单的、分布式的路由算法,主要用于局域网环境,特别是那些具有广播能力的网络,例如以太网。它的核心思想是尽快将数据包“扔出去”,而不是选择最佳路径。
当一个节点需要发送数据包到另一个节点时,它会检查其直接相连的邻居节点。如果其中一个邻居节点更接近目标节点(这个“接近”通常是指物理距离或跳数,但并不一定精确计算),则立即将数据包转发给该邻居。否则,它会随机选择一个邻居节点转发数据包。
它不尝试寻找最佳路径,而是优先选择任何一个看起来更近的节点,尽力让数据包尽快离开自己。 就好比烫手的山芋,尽快扔给别人
如图,2d通过iBGP获取到信息,了解到可以通过2a或者2c网关到达X
由于2d和2c与2d直接相连,直接将分组转给2a和2c中能离开本地网络开销最小的那一个,即使是选择另一个到达X的跳数更多(201<263,即选择2a)
也就是说热土豆路由选择是一种局部最优,不考虑全局最优的路由选择策略
热土豆路由选择的准则:
- 一个节点拥有多个可能的出口(通常通往不同的外部网络或自治系统)。
- 节点会基于转发数据包的代价(例如链路延迟、跳数、距离等)来选择出口。
- 选择的出口是:
离开本地网络代价最小的出口
。