更新时间:2022-08-25 11:06
路由器提供了将异构网络互联的机制,实现将一个数据包从一个网络发送到另一个网络,而路由就是指导IP数据包发送的路径信息。
路由器根据所收到的数据包头的目的地址选择一个合适的路径(通过某一个网络),将数据包传送到下一个路由器,该路径上最后的路由器负责将数据包送交目的主机。
数据包在网络上传送时,每一个路由器只负责自己本站数据包通过最优的路径转发,通过多个路由器一站一站的接力,将数据包通过最佳路径转发到目的地。当然有时候由于实施一些路由策略,数据包通过的路径并不一定是最佳的路径。
路径表中保存了各种路由协议发现的路径,记载着路由器所知的所有网段的路由信息。路由器通常情况下根据IP数据包的目的网段地址,查找路径表来决定转发路径。
路由表中通常包含以下信息:
Dest:目的逻辑网络或子网地址。
Mask:目的逻辑网络或子网的掩码。
Gw:与之相邻的路由器的端口地址,即该路由的下一跳IP地址。
Interface:学习到该路由条目的接口,也是数据包离开路由器去往目的地将经过的接口。
Owner:路由来源,表示该路由信息是怎样学习到的。
Pri:路由的管理距离,即优先级,决定了来自不同路由来源的路由信息的优先权。
Metric:度量值,表示每条可能路由的代价,度量值最小的路由就是最佳路由。Metric只有当同一种动态路由协议,发现多条到达同一目的网段路由的时候,才有比较性。不同路由协议的Metric不具有可比性。
例如,上述路由表中一条10.26.33.253的路由信息,其中:
10.26.33.253为目的逻辑网络地址或子网地址,255.255.255.255为目的逻辑网络或子网的网络掩码。
10.26.245.5为下一跳逻辑地址。
gei-1/1为学习到这条路由的接口和将要进行数据的转发的接口。
OSPF为路由器学习到这条路由的方式,本例中本条路由信息是通过OSPF学习到的。
110为此路由的管理距离,14为此路由的度量值。
路由来源(Owner),表示该路由信息是怎样学习到的。
路由表中,Owner为Address表示路由来源为本机地址。
与路由器直接相连的网段生成的路由,由链路层协议发现。直连路由只能发现本接口所属网段。
当接口配置了网络协议地址,状态正常(即物理连接正常),并且可以正常检测到数据链路层协议的keepalive信息时,接口上配置的网段地址自动出现在路由表中并与接口关联;当路由器检测到此接口down掉后,此条路由会自动在路由表中消失。
直连路由产生方式Owner为Direct,路由优先级为0,拥有最高路由优先级。其Metric值为0,表示拥有最小Metric值。
系统管理员手工设置的路由称之为静态(Static)路由,一般是在系统安装时就根据网络的配置情况预先设定的,不会随未来网络拓扑结构的改变而自动改变。静态路由是否出现在路由表中取决于下一跳是否可达,即此路由的下一跳地址所处网段对本路由器是否可达。
静态路由在产生方式为Owner为Static,路由优先级为1,其Metric值为0。
在动态路由中,管理员不再需要与静态路由一样,手工对路由器上的路由表进行维护,而是在每台路由器上运行一个路由协议。这个路由协议会根据路由器上的接口的配置(如IP地址的配置)及所连接的链路的状态,生成路由表中的路由表项。
动态路由协议通过路由信息的交换生成并维护转发引擎所需的路由表,当网络拓扑结构改变时动态路由协议可以自动更新路由表,并负责决定数据传输最佳路径。常见的动态路由协议有RIP、OSPF、IS-IS、BGP等。
缺省路由是一个路由表条目,用来指明一些在下一跳没有明确地列于路由表中的数据单元应如何转发。对于在路由表中找不到明确路由条目的所有的数据包都将按照缺省路由指定的接口和下一跳地址进行转发。
缺省路由也是一种特殊的静态路由,目的地址与掩码配置为全零(0.0.0.0 0.0.0.0)。缺省路由在产生方式为Owner为Static,路由优先级为1,其Metric值为0。
由于到相同的目的地,不同的路由协议可能会发现不同的路径,但并非这些路径都是最优的。事实上,在某一时刻,到某一目的地的当前路由仅能由唯一的路由协议来决定。
因此,为了识别最优路径,各路由协议(包括静态路由)都被赋予了一个管理距离。这样,当存在多个路由信息源时,具有较小管理距离值的路由协议所发现的路由将成为最优路由,并被加入到路由表中。
如果有多条具有相同目的网段的路由,IP报文会优先选择优先级最高(即管理距离值最小)的路由进行转发。
不同路由协议对应的管理距离值:
路由的度量值(Metric)标识出了到达这条路由所指的目的地址的代价,通常路由的度量值会受到跳数、带宽、线路时延、负荷、线路可靠性、最大传输单元等因素的影响。
不同的动态路由协议会选择其中的一种或几种因素来计算度量值(如RIP用跳数来计算度量值)。该度量值只在同一种路由协议内有比较意义,不同的路由协议之间的路由度量值没有可比性,也不存在换算关系。
静态路由和直连路由的度量值为0。
用于度量值计算的常用路径特征:
跳数(hop count):数据包到达目的必须通过的路由器个数;跳数越少,该路由越优;路径常用到达目的的跳数来描述。
带宽(bandwidth):链路传输数据的能力。
时延(delay):把数据包从源地址送到目的地址所需的时间。
负荷(load):网络资源(如路由器)和链路上的活动数量。
可靠性(reliability):指每条网络链路上的差错率。
最大传输单元(MTU):指端口可以传送的最大的数据单元。
每种路由协议选择以上的一种或者几种来计算度量值。
在路由器中,路由选择的依据包括目的地址、最长匹配、管理距离(Priority)和度量值(Metric)。
默认的路由选择过程如下:
1.根据目的地址和最长匹配原则进行查找。
2.若有两条或两条以上路由符合,则查看管理距离,不同路由协议的管理距离值不同。管理距离数值越小,优先级越高。
3.当管理距离相同时,会查看度量值。度量值越小,优先级越高。
路由的最长匹配就是路由查找时,使用路由表中到达同一目的地的子网掩码最长的路由。