第5章
路 由 协 议
本章学习目标
掌握路由协议的分类、作用和工作原理;
理解路由表各项的含义;
掌握路由协议配置方法;
掌握对路由协议配置的检查与测试;
能够使用路由技术实现网络互通。
本章首先向读者介绍路由协议的作用、工作原理和类型,接着分别介绍静态路由、RIP动态路由协议和OSPF动态路由协议三种路由协议的配置方法,让读者能够自行使用路由协议实现网络互通。
5.1路由协议概述
通过网络接口层上的设备(如交换机),可以组建一个个独立的网络,这些网络各自采用不同网络号的IP地址,逻辑上是分开的。路由器(Router)用于连接多个逻辑上分开的网络,转发这些网络之间的通信数据。同时,网络接口层上的协议多种多样(如前面学习过的以太网CSMA/CD和广域网的PPP协议等),基于这些不同的协议,组建各种异构的网络,这些异构网络无法通信。而路由器为异构网络提供了互联的机制,实现了异构网络之间的数据通信。
路由信息是用于指导网络间数据(IP数据报)通信的路径信息。由于网络路径选择是一个非常复杂的问题,路由器之间往往需要通过一定的协议通信才能获取这些路由信息。路由协议是路由器事先约定好的交换路由信息的规定和标准。路由协议通过路由信息的交换生成并维护转发引擎所需的路由表。路由协议作为TCP/IP协议族中重要成员之一,其寻径过程实现的好坏将显著地影响整个Internet网络的通信效率。
1. 路由原理
路由是把数据从一个网络转发到另一个网络的过程,完成这个过程的设备就是路由器。数据在网络上以数据包为单元传送。每个数据包都携带两个逻辑地址(在Internet中这个逻辑地址就是IP地址),一个是数据的源地址,另一个是数据的目的地地址,所以每个数据包可以被独立地转发。以图5.1为例解释一下路由过程。
图5.1路由过程示意图
在图5.1中,两台路由器R1和R2使用两条链路把两个网络连接起来,它们是192.168.1.0/24和192.168.2.0/24。两台路由器互连又占用了两个网段号,它们是10.0.0.0/8和11.0.0.0/8。
假如Host1向Host2发送数据。拓扑显示,Host1和Host2不在同一个网络,数据要到达Host2有两条路可选,一条路是由路由器R1的s0/0接口和路由器R2的s0/0接口互连所形成的链路; 另一条路是由路由器R1的f0/1接口和路由器R2的f0/0接口互连所形成的链路。
Host1是看不到这个拓扑图的,它的首要任务是判断Host2是否与自己在同一个网段内。它的做法是: 用自己的IP地址和子网掩码做“与”运算,计算出自己的网络号是192.168.1.0; 再用Host2的IP地址(这个地址Host1知道)和自己的掩码进行“与”运算,计算出Host2的网络号是192.168.2.0。然后比较这两个计算结果,结果相同表示在同一网段内,结果不同则表示两者不在同一个网络中。
不同网络之间的主机通信需要借助路由器完成。路由器就像是邮局,用户把数据送到路由器后,具体怎么“邮递”就是路由器的工作,用户不必操心。因此,Host1只需将数据包送到距它最近的路由器(R1)即可,如同生活中人们只需要把信件投递到最近的邮局一样。因此,Host1需要知道路由器R1的位置。在Host1上除了配置IP地址和掩码外,还配置了另外一个参数——默认网关地址,其实就是路由器R1与Host1处于同一个网络的接口——f0/0的地址。在Host1上设置默认网关的目的就是把那些去往外网(不同于自己所在的网络)的数据发送给默认网关。为了找到路由器R1的f0/0接口的MAC地址,Host1使用了地址解析协议(ARP)。
获得了必要信息之后,Host1开始封装数据:
(1) 把f0/0接口的MAC地址封装在数据链路层的目的地址域;
(2) 把自己的MAC地址封装在数据链路层的源地址域;
(3) 把自己的IP地址封装在网络层的源地址域;
(4) 把Host2的IP地址封装在网络层的目的地址域。
之后,Host1把数据发送出去。
路由器R1收到Host1送来的数据后,把数据解开到第三层,读取数据包中的目的IP地址,然后查阅路由表决定如何转发数据。路由表是路由器转发数据的依据。如果路由表中没有任何可用的路径,路由器就会把该数据丢弃。路由表中记录有以下内容:
(1) 已知的目标网络号(目的地网络);
(2) 到达目标网络的距离;
(3) 到达目标网络应该经由自己哪一个接口;
(4) 到达目标网络的下一台路由器的地址是什么。
路由器使用最近的路径转发数据,而且只把数据交给路径中的下一台路由器,并不负责把数据送到最终目的地。
对于本例来说,路由器R1有两种选择,一种选择是经由自己的s0/0接口把数据交给路由器R2; 一种选择是经由自己的f0/1接口把数据交给路由器R2。选择路径的依据是: 经由哪一条链路到达目标网络的距离近,路由器就使用哪一条链路。这里假设经由f0/1接口的路径近。路由器R1经由f0/1接口把数据转发给路由器R2。
路由器R2收到路由器R1的数据后所做的工作跟前面的R1所做的工作一样,即查阅路由表。不同的是在自己的路由表里有一条记录,该记录表明它的f0/1接口正好和数据声称到达的网络相连,也就是说,Host2和它的f0/1接口在同一个网络中。路由器R2使用ARP获得Host2的MAC地址之后开始封装数据:
(1) 把Host2的MAC地址封装在数据链路层的目的地址域;
(2) 把自己f0/1接口的MAC地址封装在数据链路层的源地址域;
(3) 网络层的两个IP地址不变。
然后把数据传送给Host2。
至此,数据传递的一个单程完成了。
Host2回应给Host1的数据经过同样的处理过程到达目的地——Host1,只不过是数据包中的目的地IP地址是Host1的地址,先经过路由器R2再经由路由器R1,最后到达Host1。
从数据转发的过程看出,为了能够转发数据,路由器必须对整个网络拓扑有个清晰的了解,并把这些信息反映在路由表里。当网络拓扑结构发生变化时,路由器也需要及时地在路由表里反映出这些变化,这项工作由路由器的路由计算功能来完成。路由器还有一项独立于路由计算功能的工作就是交换/转发数据,即把数据从进入接口转移到外出接口的过程。路由器必须具备这两种功能。
2. 路由的分类
根据产生的方式、依据的算法和应用范围的不同,路由可进行如下分类:
1) 按产生的方式分类
路由信息根据产生的方式和特点可以分为直连路由、静态路由和动态路由。
2) 按依据的算法分类
路由协议分为距离矢量(Distance Vector)型路由协议、链路状态(Link State)型路由协议和混合(Hybrid)型路由协议。在IP协议集中,典型的距离矢量路由协议有RIP、RIPv2和IGRP; 典型的链路状态协议有OSPF。Cisco专有协议EIGRP协议属于混合型路由协议。
3) 按应用范围分类
根据路由协议运行在自治系统内还是运行在自治系统之间,路由协议又分为内部网关路由协议(Interior Gateway routing Protocol,IGP)和外部网关路由协议(Exterior Gateway routing Protocol,EGP)。在IP协议集中,属于IGP的有RIP、RIPv2、IGRP、EIGRP和OSPF; 属于EGP的是边界网关协议(Border Gateway Protocol,BGP)。
3. 路由表的形成
路由器在转发数据时,要先在路由表(Routing Table)中查找相应的路由。路由器有以下三种途径建立路由。
(1) 直连路由: 路由器自动添加和自己直接连接的网络的路由;
(2) 静态路由: 网络管理员手动输入到路由器的路由;
(3) 动态路由: 由路由协议(Routing Protocol)动态建立的路由。
4. 管理距离(AD)
管理距离用来表示路由的可信度,路由器可能从多种途径获得同一路由,例如,一个路由器要获得“10.2.0.0/24”网络的路由,可以来自RIP,也可以是静态路由。不同途径获得的路由可能采取不同的路径到达目的网络,为了区分不同路由协议的可信度,用管理距离加以表示。表5.1是通过各种路由协议获得的路由的默认管理距离。路由表中管理距离越小,说明路由的可靠程度越高; 静态路由的管理距离为1,说明手工输入的路由优先于其他路由。
atic Route)是一种特殊的路由,它是由网络管理员手工配置的路由信息。当网络的拓扑结构或链路的状态发生变化时,网络管理员需要手工去修改路由表中相关的静态路由信息。静态路由信息在默认情况下是私有的,不会传递给其他的路由器。当然,网络管理员也可以通过对路由器进行设置使之成为共享的。静态路由一般适用于比较简单的网络环境,在这样的环境中,网络管理员易于清楚地了解网络的拓扑结构,便于设置正确的路由信息。
1. 静态路由的优点
(1) 手工配置,可以对路由表查询实施精确的控制,改进网络的性能。
(2) 不需要动态路由协议参与,这将会减少路由器的开销,为重要的应用保证带宽,减少路由器之间链路上的数据传输量,因为网络在使用静态路由后,路由器之间没有必要进行路由信息的交换。
(3) 在一个支持DDR(DialonDemand Routing)的网络中,拨号链路只在需要时才拨通,因此不能为动态路由信息表提供路由信息的变更情况。在这种情况下,网络也适合使用静态路由。
(4) 网络安全保密性高。动态路由因为需要路由器之间频繁地交换各自的路由表,而对路由表的分析可以揭示网络的拓扑结构和网络地址等信息。因此,出于安全方面的考虑网络也可以采用静态路由。
2. 静态路由的缺点
大型和复杂的网络环境通常不宜采用静态路由,很明显,既然是人为的手工输入信息,那么如果网络规模过大,需要的工作量很大。一方面,网络管理员难以全面地了解整个网络的拓扑结构; 另一方面,当网络的拓扑结构和链路状态发生变化时,路由器中的静态路由信息需要大范围地调整,这一工作的难度和复杂程度非常高。
3. 默认路由
默认路由是一种特殊的路由。当路由器在查找路由表,没有找到与目标相匹配的路由表项时,默认路由则是路由器为数据指定的路由。在路由表中,默认路由是以到网络0.0.0.0/0的路由形式出现。所有的网络都会和这条路由记录符合,由于路由器在查询路由表时采用的是深度优先原则,也就是子网掩码位数长的路由记录先作转发。而默认路由的掩码为0,所以最后考虑。这样就保证了路由器将在路由表中查询不到数据包的相关路由信息时最后采用默认路由转发。默认路由可以通过静态路由手工配置,某些动态路由协议也可以自动生成默认路由,如OSPF。默认路由通常会在存根网络(Stub Network,即只有一个出口的网络)中使用。在存根网络出口上配置这样一条默认路由可以代替大量具体路由项,因此可以极大地减少路由表大小。
4. 静态路由的汇总
汇总路由指的是通过对一组子网汇总,可以使静态路由项的数目迅速减少。但是在对地址进行汇总的时候需要小心,当汇总不正确的时候,可能会有意想不到的路由行为发生。下面是一个汇总路由的例子。
……