(1)路由的概念
从早期的远程登录和文件传输,到现在的电子邮件、Web浏览等,Internet已经成为众多应用的基础设施,是一组互相连接的网络。每一个单独的子网都有它自己的网络号。网络号对于特定的子网必须是唯一的。随着网络的发展,每台计算机要跟踪互联网络上其他计算机的地址是很不适宜的,必须有一些方法来减少每台计算机和其他计算机通信的信息量。因此,可以将一个互联网络分成许多分离的但互相连接的网络,使得计算机只需跟踪互联网上的一些网络,而不必跟踪每一台计算机。路由器就是负责完成这种分离网络工作的设备。
所谓路由,是指指导IP数据包发送路径的信息。在IP数据包发送过程中,信息至少会经过一个或多个中间节点。早在40多年之前就已经出现了对路由技术的讨论,但是直到20世纪80年代,路由技术才进入商业化的应用。路由技术之所以在问世之初没有被广泛使用,主要是因为20世纪80年代之前的网络结构都非常简单,路由技术没有用武之地。直到最近十几年,大规模的互联网络才逐渐流行起来,为路由技术的使用与发展提供了良好的基础和平台。
路由器是用于连接不同网络的专用计算机设备,在不同网络间转发数据单元。可以这样来打个比方:如果把Internet的传输线路看作一条信息公路的话,组成Internet的各个网络相当于分布于公路上的各个城市,它们之间传输的信息(数据)相当于公路上的车辆,而路由器就是进出这些城市的大门和公路上的驿站,它负责在公路上为车辆指引道路和在城市边缘安排车辆进出。因此,作为不同网络之间互相连接的枢纽,路由器系统构成了基于TCP/IP的国际互联网Internet的主体脉络,是Internet的骨架。在园区网、地区网乃至整个Internet研究领域中,路由器技术始终处于核心地位,其发展历程和方向,成为整个Internet研究的一个缩影。由于未来的宽带IP网络仍然使用IP来进行通信,路由器将扮演更为重要的角色。
(2)路由表的构成
路由器的一个作用就是为经过路由器的每个数据包寻找一条最佳传输路径,并将该数据有效地传送到目的站点。选择通畅快捷的近路,能大大提高通信速度,减轻网络系统通信负荷,节约网络系统资源,提高网络系统畅通率。由此可见,选择最佳路径的策略(即路由算法)是路由器的关键所在。为了完成这项工作,在路由器中保存着各种传输路径的相关数据——路由表(Routing Table),供路由选择时使用。通常情况下,路由器根据接收到的IP数据包的目的网段地址查找路由表,决定转发路径。路由表被存放在路由器的RAM上,这意味着路由器如果要维护的路由信息较多时,必须有足够的RAM,而且一旦路由器重新启动,那么原来的路由信息都会消失。
通常情况下,路由表包含了路由器进行路由选择时所需要的关键信息。这些信息构成了路由表的总体结构。路由表的构成如图3-1所示。
图3-1 路由表的构成
· 目的网络地址(Dest):用于标识IP包要到达的目的逻辑网络或子网地址。
· 掩码(Mask):与目的地址一起来标识目的主机或目的网段。将目的地址和子网掩码“逻辑与”后可得到目的主机或目的子网所在网段的网络地址。例如,目的地址为8.0.0.0、子网掩码为255.0.0.0的主机或目的子网所在网段的网络地址为8.0.0.0。掩码由若干个连续“1”构成,既可以用点分十进制表示,也可以用掩码中连续“1”的个数来表示。
· 下一跳地址(Gw):与承载路由表的路由器相邻的路由器的端口地址,有时也把下一跳地址称为路由器的网关地址。
· 发送的物理端口(Interface):学习到该路由条目的接口,也是数据包离开路由器去往目的地将经过的接口。
· 路由信息的来源(Owner):表示该路由信息是怎样学习到的。路由表可以由管理员手工建立(静态路由表),也可以由路由选择协议自动建立并维护。路由表不同的建立方式也决定了其中路由信息的不同学习方式。
· 路由优先级(Pri):决定了来自不同路由来源的路由信息的优先权。
· 度量值(Metric):用于表示每条可能路由的代价,度量值最小的路由就是最佳路由。
图3-1中的路由信息的含义为:到达子网172.16.8.0/24的下一跳地址为1.1.1.1,本地输出接口为fei_0/1.1,本条路由是由static方式产生的,路由优先级为1,Metric值为0。
无论手工或自动学习,路由表最初是如何建立起来的呢?建立起路由表后又如何进行维护呢?路由器不是即插即用设备,路由信息必须通过配置才会产生,并且路由信息必须要根据网络拓扑结构的变化做相应的调整与维护。这些都是如何实现的呢?
1.按照产生的方式分类
根据路由信息产生(或生成)的方式和特点,路由可以分为直连路由、静态路由、默认路由和动态路由几种。
(1)直连路由
所谓直连路由,是指到达与路由器直接相连网络的路径信息。直连路由是由链路层协议发现的,一般指去往路由器的接口地址所在网段的路径,该路径信息不需要网络管理员维护,也不需要路由器通过某种算法进行计算获得,只要该接口处于活动状态(Active),路由器就会把通向该网段的路由信息填写到路由表中去,如图3-2所示。
图3-2 直连路由的形成
直连路由的产生方式(Owner)为直连(Direct),路由优先级为0,拥有最高路由优先级。其Metric值为0,表示拥有最小Metric值,如图3-3所示。直连路由会随接口的状态变化在路由表中自动变化。当接口的物理层与数据链路层状态正常时,此直连路由会自动出现在路由表中。当路由器检测到此接口down掉后,此条路由会自动消失。
图3-3 直连路由在路由表中的体现
既然直连路由不能帮助路由器解决非直连网段的路由问题,那么解决非直连网络的路由问题就要通过静态路由或者动态路由来完成。
(2)静态路由
由系统管理员手工设置的路由称为静态路由。一般是在系统安装时,根据网络的配置情况预先设定的。它不会随未来网络拓扑结构的改变而自动变化。静态路由的优点是不占用网络和系统资源,并且安全可靠;缺点是当一个网络发生故障后,静态路由不会自动修正,不能自动对网络状态变化做出相应的调整,必须由管理员介入,需要手工逐条配置。静态路由是否出现在路由表中取决于下一跳是否可达,即此路由的下一跳地址所处网段对本路由器是否可达。静态路由在路由表中的产生方式(Owner)为静态(Static),路由优先级为1,其Metric值为0,如图3-4所示。
图3-4 静态路由在路由表中的体现
(3)默认路由
默认路由用来指明在路由器的路由表中不存在明确目标路由的数据包的转发路径。对于在路由表中找不到明确路由条目的所有的数据包,都将按照默认路由指定的接口或下一跳地址进行转发。
在路由表中,默认路由以到网络0.0.0.0(掩码为0.0.0.0)的路由形式出现。如果报文的目的地址不能与路由表的任何明确的目标路由条目匹配,那么该报文将选取默认路由。如果没有默认路由且报文的目的地址不在路由表中,该报文将被丢弃。同时,向源端返回一个ICMP报文,指出该目的地址或网络不可达。
默认路由在多个目标网络存在相同的下一跳网络中是非常有用的。在这种网络中,使用默认路由可以大大缩小路由表的条目数,缩短查找路由表花费的时间。
(4)动态路由
动态路由协议通过算法计算路由信息,并生成、维护和转发IP数据包需要的路由表。当网络拓扑结构改变时,动态路由协议可以自动更新路由表,并负责决定数据传输的最佳路径。动态路由协议的优点是可以自动适应网络状态的变化,自动维护路由信息而不需要网络管理员的参与;其缺点是需要占用一定的网络带宽与系统资源,安全性也不如静态路由。在有冗余连接的复杂网络环境中,适合采用动态路由协议。
2.动态路由的分类
(1)按应用范围分类
由于因特网的规模非常大,如果让所有的路由器都知道所有的网络应怎样到达,则这种路由表将非常大,并且这些路由器之间交换路由信息所需的带宽会使因特网的通信链路受限而饱和。因此,因特网将整个网络划分为许多较小的自治系统(Autonomous System, AS)。一个自治系统是一个运营商经营和管理的广域网(或城域网)。自治系统最重要的特点就是有权自主决定在本系统内应采用何种路由协议。一个自治系统内的所有网络都属于一个行政单位(如一个公司、一所大学、政府的一个部门等)来管辖。
路由协议按照在自治系统中的使用范围可以分为内部网关协议(Interior Gateway Protocol, IGP)和外部网关协议(External Gateway Protocol, EGP)。在自治系统内部使用的路由协议称为内部网关协议;在自治系统之间使用的路由协议称为外部网关协议。IGP与EGP的区分如图3-5所示。
图3-5 IGP和EGP的区分
内部网关协议是目前使用最多的路由协议,如RIP、OSPF、IGRP、EIGRP和IS-IS。使用最多的外部网关协议是BGP-4。
(2)按照算法进行分类
动态路由按照算法进行分类,可以分为距离矢量算法和链路状态算法两大类路由协议。距离矢量名称的由来是因为路由是以矢量(距离,方向)的方式被通告出去的,这里的距离是根据度量值来决定的。通俗地讲,就是往某个方向上的距离。运行距离矢量路由协议的每个路由器维护一张矢量表,表中列出了当前已知的到每个目标的最佳距离,以及所使用的线路。通过在邻居之间相互交换信息,路由器不断地更新它们内部的路由表。距离矢量路由协议包括RIP、IGRP、EIGRP和BGP。
链路状态路由选择协议又称为最短路径优先协议,它是基于Edsger Wybe Dijkstra的最短路径优先(SPF)算法而提出的。它比距离矢量路由协议复杂得多,根据路由器的链路状态信息(包括链路类型、带宽、开销等)进行最优路径的计算。链路状态路由协议包括OSPF、IS-IS等。