《TCP/IP协议详解 卷1》--- 动态选路协议

静态选路:在配置接口时,以默认方式生成路由表项(对于直接连接的接口),并通过route命令增加表项(通常从系统自引导程序文件),或是通过ICMP重定向生成表项(通常是在默认方式出错的情况下)。

静态选路使用场景:在网络很小,且与其他网络只有单个连接点且没有多余路由时(若主路由失败,可以使用备用路由),采用这种方法是可行的。

动态选路协议,它用于路由器间的通信。

动态选路
当相邻路由器之间进行通信,以告知对方每个路由器当前所连接的网络,这时就出现了动态选路。路由器上运行的路由守护程序根据它从相邻路由器接收到的信息,更新内核中的路由表。
每个自治系统可以选择该自治系统中各个路由器之间的选路协议。这种协议称之为内部网关协议IGP(Interior Gateway Protocol)或域内选路协议(intradomain routing protocol)。最常用的IGP是选路信息协议RIP。一种新的IGP是开放最短路径优先OSPF(Open Shortest Path First)协议。它意在取代RIP。
外部网关协议EGP(Exterier Gateway Protocol)或域内选路协议的分隔选路协议用于不同自治系统之间的路由器。新EGP是当前在NSFNET骨干网和一些连接到骨干网的区域性网络上使用的是边界网关协议BGP(Border Gateway Protocol)。BGP意在取代EGP 。

RIP:选路信息协议
这里写图片描述
这里写图片描述

正常运行:
初始化:在启动一个路由守护程序时,它先判断启动了哪些接口,并在每个接口上发送一个请求报文,要求其他路由器发送完整路由表。在点对点链路中,该请求是发送给其他终点的。如果网络支持广播的话,这种请求是以广播形式发送的。目的 UDP端口号是520(这是其他路由器的路由守护程序端口号)。
这种请求报文的命令字段为1,但地址系列字段设置为0,而度量字段设置为16。这是一种要求另一端完整路由表的特殊请求报文。
• 接收到请求。如果这个请求是刚才提到的特殊请求,那么路由器就将完整的路由表发送给请求者。否则,就处理请求中的每一个表项:如果有连接到指明地址的路由,则将度量设置成我们的值,否则将度量置为16(度量为16是一种称为“无穷大”的特殊值,它意味着没有到达目的的路由)。然后发回响应。
• 接收到响应。使响应生效,可能会更新路由表。可能会增加新表项,对已有的表项进行修改,或是将已有表项删除。
• 定期选路更新。每过30秒,所有或部分路由器会将其完整路由表发送给相邻路由器。发送路由表可以是广播形式的(如在以太网上),或是发送给点对点链路的其他终点的。
• 触发更新。每当一条路由的度量发生变化时,就对它进行更新。不需要发送完整路由表,而只需要发送那些发生变化的表项。

度量:
RIP所使用的度量是以跳 ( hop )计算的。所有直接连接接口的跳数为 1。
跳数的最大值是15,这意味着RIP只能用在主机间最大跳数值为15的AS内。度量为16表示到无路由到达该IP地址。

缺陷:
没有子网地址的概念。
在路由器或链路发生故障后,需要很长的一段时间才能稳定下来。这段时间通常需要几分钟。在这段建立时间里,可能会发生路由环路。

RIP版本2
RFC 1388 [Malkin 1993a]中对RIP定义进行了扩充,通常称其结果为RIP-2。这些扩充并不改变协议本身,而是利用一些标注为“必须为0”的字段来传递一些额外的信息。如果RIP忽略这些必须为0的字段,那么,RIP和RIP-2可以互操作。
这里写图片描述
routing domain 是一个选路守护程序的标识符,它指出了这个数据报的所有者。
routing tag 是为了支持外部网关协议而存在的。它携带着一个EGP和BGP的自治系统号。
每个表项的子网掩码应用于相应的IP地址上。下一站I P地址指明发往目的IP地址的报文该发往哪里。该字段为0意味着发往目的地址的报文应该发给发送RIP报文的系统。
指定RIP报文的前20字节表项地址系列为0xffff,路由标记为2,表明为RIP- 2。

OSPF:开放最短路径优先
OSPF是除RIP外的另一个内部网关协议。它克服了RIP的所有限制。
OSPF是一个链路状态协议。路由器并不与其邻站交换距离信息。它采用的是每个路由器主动地测试与其邻站相连链路的状态,将这些信息发送给它的其他邻站,而邻站将这些信息在自治系统中传播出去。每个路由器接收这些链路状态信息,并建立起完整的路由表。

从实际角度来看,二者的不同点是链路状态协议总是比距离向量协议收敛更快。收敛的意思是在路由发生变化后,例如在路由器关闭或链路出故障后,可以稳定下来。

OSPF直接使用IP。也就是说,它并不使用UDP或TCP。对于IP首部的protocol字段,OSPF有其自己的值。
OSPF支持子网。

BGP:边界网关协议
BGP是一种不同自治系统的路由器之间进行通信的外部网关协议。

BGP系统与其他BGP系统之间交换网络可到达信息。这些信息包括数据到达这些网络所必须经过的自治系统AS中的所有路径。这些信息足以构造一幅自治系统连接图。然后,可以根据连接图删除选路环,制订选路策略。

将一个自治系统中的IP数据报分成本地流量和通过流量。在自治系统中,本地流量是起始或终止于该自治系统的流量。也就是说,其信源IP地址或信宿IP地址所指定的主机位于该自治系统中。其他的流量则称为通过流量。在Internet中使用BGP的一个目的就是减少通过流量。

可以将自治系统分为以下几种类型:
1) 残桩自治系统(stub AS),它与其他自治系统只有单个连接。 stub AS只有本地流量。
2) 多接口自治系统(multihomed AS),它与其他自治系统有多个连接,但拒绝传送通过流量。
3) 转送自治系统(transit AS),它与其他自治系统有多个连接,在一些策略准则之下,它可以传送本地流量和通过流量。

BGP允许使用基于策略的选路。指定策略允许BGP实现在存在多个可选路径时选择路径,并控制信息的重发送。

BGP与RIP和OSPF的不同之处在于BGP使用TCP作为其传输层协议。

BGP是一个距离向量协议,但是与(通告到目的地址跳数的) RIP不同的是,BGP列举了到每个目的地址的路由(自治系统到达目的地址的序列号)。这样就排除了一些距离向量协议的问题。采用16 bit数字表示自治系统标识。

BGP通过定期发送keepalive报文给其邻站来检测TCP连接对端的链路或主机失败。两个报文之间的时间间隔建议值为30秒。应用层的 keepalive报文与TCP的keepalive选项是独立的。

CIDR:无类型域间选路
每个C类网络都需要一个路由表表项。无类型域间选路(CIDR)是一个防止Internet路由表膨胀的方法,它也称为超网( supernetting)。

CIDR的基本观点是采用一种分配多个IP地址的方式,使其能够将路由表中的许多表项总和( summarization )成更少的数目。
要使用这种总和,必须满足以下三种特性:
1) 为进行选路要对多个I P地址进行总和时,这些IP地址必须具有相同的高位地址比特。
2) 路由表和选路算法必须扩展成根据32 bit IP地址和32 bit掩码做出选路决策。
3) 必须扩展选路协议使其除了32 bit地址外,还要有32 bit掩码。OSPF和RIP-2都能够携带第4版BGP所提出的32 bit掩码。
“无类型”的意思是现在的选路决策是基于整个32 bit IP地址的掩码操作,而不管其IP地址是A类、B类或是C类,都没有什么区别。

CIDR同时使用一种技术,使最佳匹配总是最长的匹配:即在32 bit掩码中,它具有最大值。

猜你喜欢

转载自blog.csdn.net/u012319493/article/details/80902712