动态选路协议

在配置接口时,以默认方式生成路由表项(对于直接连接的接口),并通过r o u t e命令增加表项(通常从系统自引导程序文件),或是通过I C M P重定向生成表项(通常是在默认方式出错的情况下)。
在网络很小,且与其他网络只有单个连接点且没有多余路由时(若主路由失败,可以使用备用路由),采用这种方法是可行的
动态选路协议,它用于路由器间的通信。
R I P,即选路信息协议(Routing Infromation Protocol),大多数T C P / I P实现都提供这个应用广泛的协议。然后讨论两种新的选路协议, O S P F和B G P。

动态选路
相邻路由器之间进行通信,以告知对方每个路由器当前所连接的网络,这时就出现了动态选路路由器之间必须采用选路协议进行通信,这样的选路协议有很多种。路由器上有一个进程称为路由守护程序(routing daemon),它运行选路协议,并与其相邻的一些路由器进行通信。正如图 9 - 1所示,路由守护程序根据它从相邻路由器接收到的信息,更新内核中的路由表
 

动态选路并不改变我们在 9 . 2节中所描述的内核在 I P层的选路方式。这种选路方式称为选路机制( routing mechanism)
内核搜索路由表,查找主机路由、网络路由以及默认路由的方式并没有改变。仅仅是放置到路由表中的信息改变了—当路由随时间变化时,路由是由路由守护程序动态地增加或删除,而不是来自于自引导程序文件中的 r o u t e命令。
  路由守护程序将选路策略( routing policy)加入到系统中,选择路由并加入到内核的路由表中。如果守护程序发现前往同一信宿存在多条路由,那么它(以某种方法)将选择最佳路由并加入内核路由表中。如果路由守护程序发现一条链路已经断开(可能是路由器崩溃或电话线路不好),它可以删除受影响的路由或增加另一条路由以绕过该问题。
I n t e r n e t是以一组自治系统(A S, Autonomous System)的方式组织的,每个自治系统通常由单个实体管理
  每个自治系统可以选择该自治系统中各个路由器之间的选路协议。这种协议我们称之为内部网关协议I G P( Interior Gateway Protocol)或域内选路协议( intradomain routing protocol)。
最常用的 I G P是选路信息协议 R I P。一种新的 I G P是开放最短路径优先 O S P F( Open ShortestPath First)协议
新的RFC [Almquist 1993]规定,实现任何动态选路协议的路由器必须同时支持OSPF和RIP,还可以支持其他IGP协议
  外部网关协议 E G P( Exterier Gateway Protocol)或域内选路协议的分隔选路协议用于不同自治系统之间的路由器。新E G P是当前在N S F N E T骨干网和一些连接到骨干网的区域性网络上使用的是边界网关协议B G P( Border Gateway Protocol)。 B G P意在取代E G P。

Unix选路守护程序
U n i x系统上常常运行名为r o u t e d路由守护程序。几乎在所有的 T C P / I P实现中都提供该程序。该程序只使用 R I P进行通信
另一个程序是 g a t e d。 I G P和E G P都支持它。

 

RIP:选路信息协议
R I P进行了描述,这是因为它是最广为使用(也是最受攻击)的选路协议。
1 报文格式
RIP报文包含中在UDP数据报中,如图10-2所示(在第11章中对UDP进行更为详细的描述)。

图1 0 - 3给出了使用 I P地址时的 R I P报文格式。


命令字段为1表示请求, 2表示应答。还有两个舍弃不用的命令(3和4),两个非正式的命令:轮询(5)和轮询表项(6)。请求表示要求其他系统发送其全部或部分路由表。应答则包含发送者全部或部分路由表。
版本字段通常为1,而第2版R I P( 1 0 . 5节)将此字段设置为 2。紧跟在后面的2 0字节指定地址系列( address family)(对于I P地址来说,其值是 2)、 I P地址以及相应的度量。在本节的后面可以看出, R I P的度量是以跳计数的。

采用这种 2 0字节格式的 R I P报文可以通告多达 2 5条路由。上限 2 5是用来保证 R I P报文的总长度为2 0×25 + 4 = 504,小于5 1 2字节。由于每个报文最多携带 2 5个路由,因此为了发送整个路由表,经常需要多个报文。
 

2 正常运行
采用R I P协议的r o u t e d程序正常运行的结果。 R I P常用的U D P端口号是5 2 0
初始化:在启动一个路由守护程序时,它先判断启动了哪些接口,并在每个接口上发送一个请求报文,要求其他路由器发送完整路由表。在点对点链路中,该请求是发送给其他终点的。如果网络支持广播的话,这种请求是以广播形式发送的。目的 U D P端口号是5 2 0(这是其他路由器的路由守护程序端口号)。

这种请求报文的命令字段为 1,但地址系列字段设置为 0,而度量字段设置为 1 6。这是一种要求另一端完整路由表的特殊请求报文。
接收到请求:如果这个请求是刚才提到的特殊请求,那么路由器就将完整的路由表发送给请求者。否则,就处理请求中的每一个表项:如果有连接到指明地址的路由,则将度量设置成我们的值,否则将度量置为 1 6(度量为1 6是一种称为“无穷大”的特殊值,它意味着没有到达目的的路由)。然后发回响应。
接收到响应:使响应生效,可能会更新路由表。可能会增加新表项,对已有的表项进行修改,或是将已有表项删除
定期选路更新每过3 0秒,所有或部分路由器会将其完整路由表发送给相邻路由器。发送路由表可以是广播形式的(如在以太网上),或是发送给点对点链路的其他终点的。

触发更新:每当一条路由的度量发生变化时,就对它进行更新。不需要发送完整路由表,而只需要发送那些发生变化的表项。
     每条路由都有与之相关的定时器。如果运行 R I P的系统发现一条路由在 3分钟内未更新,就将该路由的度量设置成无穷大(1 6),并标注为删除。这意味着已经在 6个3 0秒更新时间里没收到通告该路由的路由器的更新了。再过 6 0秒,将从本地路由表中删除该路由,以保证该路由的失效已被传播开。
 

3 度量
R I P所使用的度量是以跳 ( h o p )计算的。所有直接连接接口的跳数为 1。考虑图 1 0 - 4所示的路由器和网络。画出的 4条虚线是广播 R I P报文

路由器 R 1通过发送广播到 N 1通告它与N 2之间的跳数是 1(发送给 N 1的广播中通告它与N 1之间的路由是无用的)。同时也通过发送广播给 N 2通告它与 N 1之间的跳数为1。同样, R 2通告它与N 2的度量为1,与N 3的度量为1

如果相邻路由器通告它与其他网络路由的跳数为 1,那么我们与那个网络的度量就是 2,这是因为为了发送报文到该网络,我们必须经过那个路由器。在我们的例子中, R 2到N 1的度量是2,与R 1到N 3的度量一样。由于每个路由器都发送其路由表给邻站,因此,可以判断在同一个自治系统 A S内到每个网络的路由。如果在该 A S内从一个路由器到一个网络有多条路由,那么路由器将选择跳数最小的路由,而忽略其他路由。跳数的最大值是 1 5,这意味着 R I P只能用在主机间最大跳数值为 1 5的A S内。度量为 1 6表到无路由到达该I P地址

4 问题

R I P没有子网地址的概念。例如,如果标准的B类地址中16 bit的主机号不为0,那么R I P无法区分非零部分是一个子网号,或者是一个主机地址。有一些实现中通过接收到的R I P信息,来使用接口的网络掩码,而这有可能出错

其次,在路由器或链路发生故障后,需要很长的一段时间才能稳定下来。这段时间通常需要几分钟。在这段建立时间里,可能会发生路由环路。在实现 R I P时,必须采用很多微妙的措施来防止路由环路的出现,并使其尽快建立。
采用跳数作为路由度量忽略了其他一些应该考虑的因素。同时,度量最大值为 1 5则限制了可以使用R I P的网络的大小
 

RIP版本2

选路域 (routing domain)是一个选路守护程序的标识符,它指出了这个数据报的所有者。在一个 U n i x实现中,它可以是选路守护程序的进程号。该域允许管理者在单个路由器上运行多个R I P实例,每个实例在一个选路域内运行。
选路标记 (routing tag)是为了支持外部网关协议而存在的。它携带着一个 E G P和B G P的自治系统号。每个表项的子网掩码应用于相应的 I P地址上。

下一站I P地址指明发往目的I P地址的报文该发往哪里。该字段为 0意味着发往目的地址的报文应该发给发送 R I P报文的系统。R I P - 2提供了一种简单的鉴别机制。可以指定 R I P报文的前 2 0字节表项地址系列为 0 x ffff,路由标记为2。表项中的其余1 6字节包含一个明文口令。
最后, R I P - 2除了广播(第 1 2章)外,还支持多播。这可以减少不收听 R I P - 2报文的主机的负载。
 

OSPF:开放最短路径优先
O S P F是除 R I P外的另一个内部网关协议。它克服了 R I P的所有限制。
与采用距离向量的 R I P协议不同的是, O S P F是一个链路状态协议。距离向量的意思是,R I P发送的报文包含一个距离向量(跳数)。每个路由器都根据它所接收到邻站的这些距离向量来更新自己的路由表。
在一个链路状态协议中,路由器并不与其邻站交换距离信息。它采用的是每个路由器主动地测试与其邻站相连链路的状态,将这些信息发送给它的其他邻站,而邻站将这些信息在自治系统中传播出去每个路由器接收这些链路状态信息,并建立起完整的路由表。
从实际角度来看,二者的不同点是链路状态协议总是比距离向量协议收敛更快。收敛的意思是在路由发生变化后,例如在路由器关闭或链路出故障后,可以稳定下来。
O S P F与R I P(以及其他选路协议)的不同点在于, O S P F直接使用I P。也就是说,它并不使用U D P或T C P。对于I P首部的p r o t o c o l字段, O S P F有其自己的值(图3 - 1)
作为一种链路状态协议而不是距离向量协议, O S P F还有着一些优于R I P的特点
1) OSPF可以对每个 I P服务类型(图 3 - 2)计算各自的路由集。这意味着对于任何目的,可以有多个路由表表项,每个表项对应着一个 I P服务类型。
2) 给每个接口指派一个无维数的费用。可以通过吞吐率、往返时间、可靠性或其他性能来进行指派。可以给每个 I P服务类型指派一个单独的费用。
3) 当对同一个目的地址存在着多个相同费用的路由时, O S P F在这些路由上平均分配流量。我们称之为流量平衡。
4) OSPF支持子网:子网掩码与每个通告路由相连。这样就允许将一个任何类型的 I P地址分割成多个不同大小的子网(我们在 3 . 7节中给出了这样的一个例子,称之为变长度子网)。到一个主机的路由是通过全 1子网掩码进行通告的。默认路由是以 I P地址为0 . 0 . 0 . 0、网络掩码为全0进行通告的。
5) 路由器之间的点对点链路不需要每端都有一个 I P地址,我们称之为无编号网络。这样可以节省I P地址—现在非常紧缺的一种资源。
6) 采用了一种简单鉴别机制。可以采用类似于 R I P - 2机制( 1 0 . 5节)的方法指定一个明文口令。
7) OSPF采用多播(第1 2章),而不是广播形式,以减少不参与 O S P F的系统负载。
随着大部分厂商支持 O S P F,在很多网络中O S P F将逐步取代R I P。

BGP:边界网关协议
B G P是一种不同自治系统的路由器之间进行通信的外部网关协议。 B G P是A R PA N E T所使用的老E G P的取代品
B G P系统与其他 B G P系统之间交换网络可到达信息。这些信息包括数据到达这些网络所必须经过的自治系统 A S中的所有路径。这些信息足以构造一幅自治系统连接图。然后,可以根据连接图删除选路环,制订选路策略
首先,我们将一个自治系统中的 I P数据报分成本地流量和通过流量。在自治系统中,本地流量是起始或终止于该自治系统的流量。也就是说,其信源 I P地址或信宿 I P地址所指定的主机位于该自治系统中。其他的流量则称为通过流量。在 I n t e r n e t中使用B G P的一个目的就是减少通过流量。
可以将自治系统分为以下几种类型:
1) 残桩自治系统(stub AS),它与其他自治系统只有单个连接。 stub AS只有本地流量。
2) 多接口自治系统 (multihomed AS),它与其他自治系统有多个连接,但拒绝传送通过流量。
3) 转送自治系统 (transit AS),它与其他自治系统有多个连接,在一些策略准则之下,它可以传送本地流量和通过流量。
可以将 I n t e r n e t的总拓扑结构看成是由一些残桩自治系统、多接口自治系统以及转送自治系统的任意互连。残桩自治系统和多接口自治系统不需要使用 B G P——它们通过运行E G P在自治系统之间交换可到达信息。
B G P允许使用基于策略的选路。由自治系统管理员制订策略,并通过配置文件将策略指定给B G P。制订策略并不是协议的一部分,但指定策略允许 B G P实现在存在多个可选路径时选择路径,并控制信息的重发送。选路策略与政治、安全或经济因素有关。
B G P与R I P和O S P F的不同之处在于B G P使用T C P作为其传输层协议。两个运行 B G P的系统之间建立一条 T C P连接,然后交换整个 B G P路由表。从这个时候开始,在路由表发生变化时,再发送更新信号。
B G P是一个距离向量协议,但是与(通告到目的地址跳数的) R I P不同的是, B G P列举了到每个目的地址的路由(自治系统到达目的地址的序列号)。这样就排除了一些距离向量协议的问题。采用16 bit 数字表示自治系统标识。
B G P通过定期发送k e e p a l i v e报文给其邻站来检测 T C P连接对端的链路或主机失败。两个报文之间的时间间隔建议值为 3 0秒。应用层的 k e e p a l i v e报文与 T C P的k e e p a l i v e选项是独立的。
 

CIDR:无类型域间选路
C I D R的基本观点是采用一种分配多个 I P地址的方式,使其能够将路由表中的许多表项总和( s u m m a r i z a t i o n )成更少的数目。
要使用这种总和,必须满足以下三种特性:
1) 为进行选路要对多个 I P地址进行总和时,这些 I P地址必须具有相同的高位地址比特
2) 路由表和选路算法必须扩展成根据 32 bit IP地址和32 bit掩码做出选路决策。
3) 必须扩展选路协议使其除了 32 bit地址外,还要有32 bit掩码。
C I D R同时还使用一种技术,使最佳匹配总是最长的匹配:即在 32 bit掩码中,它具有最大值。
“无类型”的意思是现在的选路决策是基于整个 32 bit IP地址的掩码操作,而不管其 I P地址是A类、 B类或是C类,都没有什么区别。
C I D R最初是针对新的C类地址提出的。这种变化将使 I n t e r n e t路由表增长的速度缓慢下来,但对于现存的选路则没有任何帮助。这是一个短期解决方案。作为一个长期解决方案,如果将C I D R应用于所有I P地址,并根据各洲边界和服务提供商对已经存在的 I P地址进行重新分配(且所有现有主机重新进行编址!),那么[Ford, Rekhter, and Braun 1993] 宣称,目前包含10 000网络表项的路由表将会减少成只有2 0 0个表项。
 

有两种基本的选路协议,即用于同一自治系统各路由器之间的内部网关协议(I G P)和用于不同自治系统内路由器通信的外部网关协议(E G P)。

最常用的I G P是路由信息协议( R I P),而O S P F是一个正在得到广泛使用的新 I G P。一种新近流行的E G P是边界网关协议( B G P)。在本章中,我们讨论了 R I P及其交换的报文类型。第 2版R I P是其最近的一个改进版,它支持子网,还有一些其他改进技术。同时也对 O S P F、 B G P和无类型域间选路(C I D R)进行了描述。 C I D R是一种新技术,可以减小 I n t e r n e t路由表的大小。

域间选路协议(I D R P)最开始时,是一个为了使用O S I地址而不是 I P地址,而进行修改的 B G P版本。 Intermediate System to IntermediateSystem 协议( I S - I S)是O S I的标准I G P。可以用它来选路 C L N P(无连接网络协议),这是一种与I P类似的O S I协议。 I S - I S和O S P F相似。
动态选路仍然是一个网间互连的研究热点。对使用的选路协议和运行的路由守护程序进行选择,是一项复杂的工作
 


 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值