动态选路协议

一. 内部网关协议IGP(Interior Gateway Protocol)或域内选路协议(intradomain routing protocol):

每个自治系统内部的各个路由之间的选路协议。

常见的有RIP、OSPF

二. RIP(Routing Information Protocol:选路信息协议)

1.RIP报文包含在UDP数据报中。

2.RIP协议的routed程序正常运行的基本原理:

2.1 每个路由守护程序启动时,要从别人那里获得路由信息,于是它在每个接口上就发送一个请求报文(接口和IP对应,一个主机可以有多个接口,即可以有多个IP),该请求询问“你有哪些路由信息,告诉我吧”(当然各个路由器会将修改后的信息发送回来,比如增加跳数等)。在点对点链路中,请求报文是发送给其他终点的。如果网络支持广播的话,请求是以广播形式发送的(注意路由器不转发广播,切分了广播域)。目的UDP端口号是520(这是其他路由器的路由守护进程的端口号)。

 

2.2 一个路由器接收到请求时,如果是2.1描述中的请求,那么路由就将完整的路由表发送给请求者。如果是其他的请求,就处理请求中的每一个表项:如果自己有这个表项的信息,就填写自己的跳数,如果没有,就将度量置为16(表示“无穷大”,即不可达)。然后发回响应。

 

2.3 如果接收到响应。更新路由表。可能会添加新项,可能会修改项(RIP按跳数度量,如果收到的路由中的跳数小于现有的记录里的,就替换成新的),或是删除已有项。

 

2.4 定期更新路由表。每过30秒,所有或部分路由器将会将其完整的路由表发送给相邻的路由器。发送可以使广播形式,或是发送给点对点链路的其他终点的。

 

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

 

每条路由都有与之相关的定时器,如果运行RIP的系统发现一条路由在3分钟内未更新,就将该路由的度量设置成无穷大(16),并标注为删除。再过60s,将从本地路由表中删除该路由,以确保该路由的失效已被传播开。

 

3. RIP的缺陷:

3.1 RIP没有子网的概念

3.2 在路由器或链路发生故障后,需要很长一段时间才能稳定下来。

3.3  采用跳数作为度量忽略了一些其他应该考虑的因素。同时,度量最大值为15则限制了可以使用RIP的网络的大小

 

三. RIP-2

RIP的扩充版本,这些扩充并不改变协议本身,而是利用RIP中必须标注为0的一些字段来传递一些额外的信息。其中选路标记是为了支持外部网关协议而存在的,它携带一个EGP和BGP的自治系统号。增加了子网掩码字段。提供了一种简单的鉴别机制。RIP-2除了支持广播外,还支持多播。

 

四. OSPF(开发最短路径优先)

OSPF是除了RIP之外的另外一个内部网关协议。它克服了RIP的所有限制。与采用距离向量的RIP协议不同的是,OSPF是一个链路状态协议。距离向量的意思是,RIP发送的报文包含一个距离向量(跳数)。每个路由器都根据它所接受到的邻站的这些距离来更新自己的路由表。

 

在一个链路状态协议中,路由器并不与其邻站交换距离信息。它采用的是每个路由器主动地测试与其邻站相连链路的状态,将这些信息发送给它的其他邻站,而邻站将这些信息在自治系统中传播开去。每个路由器接收到这些链路状态信息,并建立起完整的路由表。

 

从实际角度看,两者的不同点是链路状态信息总是比距离向量协议收敛更快。

 

OSPF直接使用IP,而RIP使用UDP。对于IP首部的protocol字段,OSPF有自己的值。

 

另外,作为一种链路状态协议而不是距离状态协议,OSPF还有一些优于RIP的特点:

1) OSPF可以对每个IP服务类型计算各自的路由集。这意味着对于任何目的,可以有多个表项,每个表项对应一个IP服务类型。

2) 给每个接口指派一个无维数的费用。

3) 当对同一个目的地址存在多个费用相同的路由时,OSPF在这些路由上平均分配流量。称之为流量平衡。

4) OSPF支持子网

5) 路由之间的点对点链路不需要每端都有一个IP地址,我们称之为无编号网络。

6) 采用了一种简单的鉴别机制。类似于RIP-2。(可以通过设置协议的头,使得内容字段携带一个明文口令)

7) OSPF采用多播,而不是广播形式,以减少不参与OSPF的系统负载。

 

五. BGP(边界网关协议)

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

 

一个自制系统里的流量可以分成本地流量和通过流量:

本地流量: 起始或终止于该自治系统的流量。(即发送或用户是这个自治系统内的用户)

通过流量: 起始和终止都不在该自制系统的流量。(“我只是路过,并不是你里面的用户发出或想要接收的数据”)

 

BGP允许使用基于策略的选路(管理员制定策略,通过配置文件告诉BGP)

 

BGP与RIP和OSPF的不同之处在于BGP使用TCP作为其传输层协议(需要建立连接才能交换数据)。

 

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

猜你喜欢

转载自codepeak.iteye.com/blog/777933