路由间的通信-动态选路协议

1,338 阅读6分钟

动态选路协议,是在路由器间路由信息交换使用的协议,它分为内部网关协议(内网使用)和外部网关协议(外网使用)两大类。每一类又含有多种具体的的协议。

内部网关协议IGP(Interior Gateway Protocol)

自治系统中各个路由器之间的选路协议

RIP:选路信息协议

RIP(Routing Infromation Protocol)基于UDP协议,常用端口号为520。

RIP是一种__距离向量协议__,所使用的度量是以跳(hop)计算的,直接连接接口的跳数为1。开始时每个路由器维护的路由表(只记载相邻的接口跳数),然后通过广播将路由表传播开去,从而使每个路由表都拥有全部的路由信息。

RIP的报文如下:

  • 命令:代表RIP报文的含义。1-请求、2-应答、5-轮询...
  • 地址系列:即通信用的地址类型,对于IP是2
  • 度量:代表传送的地址主机距离该路由器的跳数。度量值范围在1-16,只能表示15跳范围内的值,超出了都用16表示为无穷大。

运行过程

初始化:

向每个接口上发送一个请求报文,要求其他路由器发送完整路由表。

触发更新 每当一条路由的度量发生变化时,就对它进行更新。不需要发送完整路由表,而只需要发送那些发生变化的表项。

定期选路更新:

每过30秒,所有或部分路由器会将其完整路由表发送给相邻路由器。

每条路由都有与之相关的定时器。如果运行 RIP的系统发现一条路由在3分钟内未更新,就将该路由的度量设置成无穷大(16),并标注为删除。再过60秒,将从本地路由表中删除该路由。(由此可知,从失效到删除一共进行了两次传播,一次是设置为无穷大,一次是路由项被删除)

OSPF:开放最短路径优先

OSPF是一个__链路状态协议__,它直接基于__IP协议__实现。它采用的是每个路由器__主动测试__与其邻站相连链路的状态,将这些信息发送给它的其他邻站,而邻站将这些信息在自治系统中传播出去。每个路由器接收这些链路状态信息,并建立起完整的路由表。

由于OSPF是链路状态协议,所以它比起RIP在发生故障时能够更快的稳定下来(收敛性强)。

外部网关协议EGP(Exterier Gateway Protocol)

不同自治系统之间的路由器的选路协议

Internet的总拓扑结构由以下几种自治系统组成:

  1. 残桩自治系统(stubAS),它与其他自治系统只有单个连接。stubAS只有本地流量。
  2. 多接口自治系统(multihomedAS),它与其他自治系统有多个连接,但拒绝传送通过流量。
  3. 转送自治系统(transitAS),它与其他自治系统有多个连接,在一些策略准则之下,它可以传送本地流量和通过流量。

残桩自治系统和多接口自治系统通过运行EGP(与外部网关协议同名,但应该清楚它指的是外部网关协议大类型下的明确的协议。已经过时,现在改为使用BGP协议)在自治系统之间交换可到达信息

BGP:边界网关协议

BGP是基于__TCP__的协议,两个运行BGP的系统之间建立一条TCP连接,然后交换整个BGP路由表。从这个时候开始,在路由表发生变化时,再发送更新信号。

BGP允许使用基于策略的选路。由自治系统管理员制订策略,并通过配置文件将策略指定给BGP。制订策略并不是协议的一部分,但指定策略允许BGP实现在存在多个可选路径时选择路径,并控制信息的重发送。

BGP是一个__距离向量协议__,但是与(通告到目的地址跳数的)RIP不同的是, BGP列举了到每个目的地址的路由(自治系统到达目的地址的序列号,这些信息包括数据到达这些网络所必须经过的自治系统 AS中的所有路径)。

RIPv2

准确来说RIPv2不仅能用于外部网关协议,而且也能用于内部网关协议。看了开头的RIP报文,相信大家都会觉得很多不用的空间被浪费掉很可惜。因此RIPv2将这些空间利用起来。传递更多的信息。RIPv2是兼容RIP协议的,如果路由器忽略RIPv2的特有字段,那么就可以将RIPv2看成RIP报文。但前提是RIPv2没有启用报文认证。以下是它的报文:

相比RIP报文它增加的字段说明如下:

  • 路由标记:是为了支持外部网关协议而存在的。它携带着一个EGP和BGP的自治系统号。
  • 选路域:是一个选路守护程序的标识符,它指出了这个数据报的所有者。该域允许管理者在单个路由器上运行多个RIP实例,每个实例在一个选路域内运行。
  • 下一站IP地址:指明发往目的IP地址的报文该发往哪里(转发地址)。该字段为0意味着发往目的地址的报文应该发给发送RIP报文的系统。
  • 子网掩码:目的IP地址的掩码,有了它可以判断目的IP地址是否在子网中。

虽然比起一代,表示距离的范围仍然没有改变,并且由于运行机制相同,仍然无法解决,路由错误时,更新缓慢的问题。但是从它的报文中可以看出它具有如下的优点:

  1. 支持最优下一跳地址
  2. 支持组播方式更新,减少不必要的传播消耗
  3. 具有路由标记,能用于外部网关
  4. 携带子网掩码,能够确定目的地址是否为子网,从而进行优化操作

此外它还有一个隐藏的功能,那就是路由认证功能。需要认证报文的路由器生成认证口令,对有权限的路由器发放口令,路由器通过RIPv2通信时将口令携带发送。具体发送报文为:将RIP报文的前20字节表项地址系列置为0xffff,路由标记设为2,表项中其余16字节携带口令。

总结

最后用一张表格归纳下,这四个协议

公众号二分之一程序员,专注计算机基础的学习,欢迎关注 :)