什么是路由器

首先在了解路由前,我们先了解一下路由器
路由器是一个工作在网络层三层的一个设备,扶着将数据报文在IP网段之间进行转发,每个路由器都包含一个路由表(Routing Table),用于存储路由信息

路由器

H3C路由产品

什么是路由

路由
路由(Route)是用来指导路由器如何进行数据报文发送的路径信息,每条路由都包含有目的地址下一跳出接口到目的地址的开销代价等,数据包在网络上的传输就好像是体育运动中的接力赛一样,每一个路由器只负责将数据包在本站通过最优的路径转发,通过多个路由器一站一站地接力将数据包通过最优路径转发到目的地。

路由表的构成

路由表

华三设备上的路由表

目的地址/子网掩码

Destination/Mask
用来标识IP数据报文的目的地址或者目的网络

出接口

Interface
用来指明IP包将从该路由器的哪个接口转发出去

下一跳地址

Next-hop
IP包从接口发出后达到的下一个IP地址,如果下一跳地址配置了出接口,那么下一跳IP地址就是出接口的地址

度量值

Metric
用来指明IP包需要花费多少的代价才能到达目标地址,这里的代价可以是开销,也可以是跳数等,根据路由协议来定义

主机路由

掩码长度为32位的路由都是,用于匹配单一的IP地址

子网路由

掩码长度小于32但是大于0,表明此路由匹配一个子网
其中,默认路由的掩码长度为0,表示匹配全部IP地址,通常用于对接外部网络

路由器下一跳操作

流程
当路由器收到一个数据包的时候,将数据包的目的 IP 地址提取出来,然后与路由表中路由项包含的目的地址进行比较,如果与某路由项中的目的地址相同,则认为与此路由项匹配;如果没有路由项能够匹配,则丢弃该数据包,其中如果下一跳地址在直连接口上,如果在,直接按照下一跳进行转发。

路由器查表规则

多路由项相同情况

查表
路由表查表会查找子网掩码最长的优先匹配,这就是最长匹配原则
上图中,路由器接收到目的地址为 40.0.0.2 的数据包,经查找整个路由表,发现与路由40.0.0.0/24和40.0.0.0/8都能匹配。但根据最长匹配的原则,路由器会选择路由项40.0.0.0/24,根据该路由项转发数据包

下一跳未在直连链路

查表
如果所匹配的路由项的下一跳地址不在直连链路上,路由器还需要对路由表进行迭代查找,找出最终的下一跳来。
如上图中,路由器接收到目的地址为 50.0.0.2 的数据包后,经查找路由表,发现与路由表中的路由项 50.0.0.0/24 能匹配。但此路由项的下一跳 40.0.0.2 不在直连链路上,所以路由器还需要在路由表中查找到达 40.0.0.2 的下一跳。经过查找,到达 40.0.0.2 的下一跳是 20.0.0.2,此地址在直连链路上,则路由器按照该路由项转发数据包

没有匹配项

查表
如果路由表中没有路由能够匹配数据包,则丢弃,如果路由表中有默认路由那么久会按照默认路由进行转发,由交上层处理
如上图中,路由器收到目的地址为 30.0.0.2 的数据包后,查找路由表,发现没有子网或主机路由匹配此地址,所以按照默认路由转发

路由来源

一般路由来源有三种:
直连路由静态路由动态路由

直连路由

直连(Direct)路由
开销小,配置简单,只需双方接口配置在同一网段即可,无需人工维护

静态路由

静态(Static)路由
没有开销,通过手动添加路由项,需要人工维护,适用于简单的网络

动态路由

动态路由
开销大,配置复杂程度根据协议来定义但一般都比较复杂,通过路由协议自行学习查找到路由(OSPF、IS-IS、BGP等),无需人工维护,适合复杂的网络结构

度量值的概念

路由度量值(Metric)
用来标识这条路由到达目的地址的代价,也称路由权值,各路由协议定义度量值的方法不同,通常会考虑以下几个:
跳数
链路带宽
链路延时
链路使用率
链路可信度
链路 MTU

路由优先级

Preference(优先级)用来确定不同类型的路由来源优先级
Preference越小,优先级越高,优先级最高的将被路由添加至路由表
比较

常见路由默认优先级

默认优先级

路由环路概念

路由环路
路由环路会造成数据转发死循环,如上图所示
路由环路的主要生成原因是配置了错误的静态路由或网络规划错误,例如下一跳互相指向对方,就会导致三层环路的产生

基础查表维护命令

/*查看路由表*/
[Router] display ip routing-table
/*查看符合指定目的地址的路由信息*/
[Router] display ip routing-table [ip-address] [ masklength | mask ]
/*查看路由表的统计信息*/
[Router] display ip routing-table statistics