第七章 路由协议
本章旨在将详细介绍路由控制以及实现路由控制功能的相关协议
7.1 路由控制的定义
在互联网这片汪洋大海中,数据就好似一叶扁舟,没有灯塔的指引,是难以寻得目的地的。这种进行正确方向引导的转发数据的处理,就叫做路由控制或路由。
路由器根据路由控制表转发数据包,具体则是依赖于数据包中目标主机的IP地址与路由器控制表比较得出下一个应该接收的路由器。所以,路由控制表的正确性,就相当重要了。
那么,是谁,又是怎样制作和管理路由控制表的呢?实际上,路由控制表分为静态和动态两种类型。
静态路由指事先设置好路由器和主机中的路由信息且固定住的一种方法。
动态路由则是指让路由协议在运行过程中自动设置路由控制信息的一种方法。
两种方法自然是各有利弊。静态路由需要手动设置,有多少个设置多少个,每新增一个,就需要将该信息追加设置在所有路由器上。不仅给管理者带来很大负担,且一旦有一个路由器故障,那么需要经由该路由器的数据都无法到达目标主机。
而是用动态路由呢,管理员需要先设置好路由器协议,设定复杂度与路由协议类型相关。如有有新网络入网,那么在需要在新增加网络的路由器上设置一个动态路由即可。对于路由器数量较多的网络,采用动态路由会减轻管理员的很多负担。而且,一旦有一个路由器故障,只要存在一个可绕路径,数据包就可以继续转发,路由器的设置也会重置。路由器会通过定期与其他路由交换必要的控制信息(会给网络带来一定程度的负担),来实现路径的备选。
实际上,静态路由与动态路由可以结合起来使用,这样效果往往更佳。
那么动态路由是如何实现动态呢?如下图所示,每个路由会给相邻路由器发送自己已知的网络连接信息,而这些信息也会传递给其他路由器,直至整个网络都了解时,路由制作表也就制作完成了。此时,就可以正确转发IP数据包了。
在此图中,能够运行的前提是该网络拓扑中没有循环(有循环需要另做处理)。
7.2 路由控制范围
要对所有的网络统一管理,是不可能的事儿。因为,人们根据路由控制的范围常使用IGP(Interior Gateway Protocol)
和EGP(Exterior Gateway Protocol)
两种类型的路由协议。
接入互联网的各种组织机构,不仅包括语言不通的,甚至还有宗教信仰全然不同的组织。其中没有管理者,也没有被管理者,每个组织之间保持着平等的关系。
接下来要讲的概念叫做自治系统(AS:Autonomous System)或者路由选择域(Routing Domain),其是指制定自己的路由策略,并以此为准再一个或多个网络群体中采用的小型单位
。这里举个例子说明会更加简单,比如一个公司,在架构网络的时候需要对公司以外的人士屏蔽企业内部的网络细节,也不必对这些细节上的更新请求做出回应。如下图所示。
区域网络,ISP(互联网服务提供商)等都是典型的例子。接入自治系统必须根据管理员的指示进行路由控制设定。
而自治系统内部动态路由采用的就是IGP(域内路由协议),自治系统之间的路由控制采用的则是EGP(域间路由协议)。
接下里就来了解一下IGP和EGP协议。
其实IGP起到的作用,和我们此前网络层中所讲的内容大体相似,还可以使用RIP(Routing Information Protocol,路由信息协议)
、RIP2
、OSPF(Open Shortest Path First,开放式最短路由优先)
等众多协议。
而EGP,就想根据IP地址中的网络部分在网络之间进行路由选择、根据主机部分在链路内部进行主机识别一样,EGP可以在区域网络之间(或ISP之间)进行路由选择,可以根据IGP在区域网络内部(或ISP内部)进行主机识别。
路由协议可以被分为EGP和IGP两个层次,没有EGP就不会有世界上各个不同组织之间的通信,而没有IGP就不会有组织内部的通信。
7.3 路由算法
书中给出了两种最具代表性的算法(肯定指的是动态路由),距离向量(Distance-Vector)
算法和链路状态(Link-State)
算法。
距离向量算法(DV),指根据距离和方向决定目标网络或者目标主机位置的一种方法,如下图所示
这个算法较为简单,需要路由器之间互换目标网络的方向以及其距离的相关信息,但也正是因为只有距离和方向信息,所以当网络构造变得分外复杂时,获得稳定的路由信息之前需要消耗一定时间,也很容易发生路由循环问题。
链路状态算法建立在路由器了解网络整体连接状态的基础上生成路由控制表的一种方法。在该方法中,每个路由器都必须保持同样的信息才能进行正确的路由选择。
距离向量算法中每个路由器掌握的信息不相同,通往每个网络的距离也是根据路由器的不同而不同,该算法的另一个缺点就是不太容易判断每个路由器上的信息是否正确。
链路状态算法中,对于每台路由器,网络拓扑是完全一样的,因此只要某一台路由器和其他路由器保持同样的路由控制信息,就一位置该路由器上的路由信息是正确的。只要路由器能尽快的与其他路由器同步路由信息,就可以使路由信息达到一个稳定的状态。即使网络结构复杂,每个路由器也都可以保持正确的路由信息,进行正确的路由选择。
而代价就是,如何从网络代理获取路由信息表。这一过程的复杂程度与网络结构的复杂程度呈正比,管理和处理代理信息需要高速CPU处理能力和大量内存。
下表中列出了几种主要的路由协议,由于EGP(是一种特定协议,二分此前所提的EGP)不支持CIDR(无类别域间路由),现在已经不再用做互联网的对外连接协议。在之后的篇章内将详细介绍RIP、RIP2、OSPF、BGP等协议的基础知识。
本篇小结
作为第七章开篇内容,本篇所介绍的多为一些概念性的内容。
路由控制分为两大类:
- 静态路由,路由信息固定,需要手动设置
- 动态路由,路由器动态获取,需要算法,根据算法令路由器的信息互通有无
而两者往往是结合使用。
一个较为重要的概念是自治系统,通常为区域网络和ISP,自治系统内使用IGP(域内路由协议),自治系统间使用EGP(域间路由系统)。
路由算法中最具代表性的有两种:
- 距离向量算法(DV),通过到达其他网络的距离和方向作为交换信息
- 链路状态算法,令每个路由器都知晓网络拓扑和网络信息
之后要介绍的主要路由协议有RIP等,请听下回分解。