
——路由基本概念
路由是指导报文转发的路径信息,通过路由可以确认转发IP报文的路径。路由设备是依据路由转发报文到目的网段的网络设备,最常见的路由设备: 路由器。路由设备维护着一张路由表,保存着路由信息。

路由转发:网关以及中间节点(路由器)根据收到的IP报文其目的地址选择一条合适的路径,并将报文转发到下一个路由器。在路径中的最后一跳路由器二层寻址将报文转发给目的主机。
路由表:中间节点选择路径所依赖的表项。路由条目包含明确的出接口以及下一跳,这两项信息指导IP报文转发到相应的下一跳设备上。
路由中包含以下信息:
- 目的网络:标识目的网段
- 掩码:与目的地址共同标识一个网段
- 出接口:数据包被路由后离开本路由器的接口
- 下一跳: 路由器转发到达目的网段的数据包所使用的下一跳地址
——路由条目生成
路由信息获取方式:路由器依据路由表进行路由转发,为实现路由转发,路由器需要发现路由,有三种常见的路由获取方式,分别是直连路由、静态路由、动态路由。
——最优路由条目优选
路由表中各内容含义:
Destination/Mask:表示此路由的目的网络地址与网络掩码。将目的地址和子网掩码“逻辑与”后可得到目的主机或路由器所在网段的地址。
Proto(Protocol): 该路由的协议类型,也即路由器是通过什么协议获知该路由的。
Pre(Preference):表示此路由的路由协议优先级。针对同一目的地,可能存在不同下一跳、出接口等多条路由,这些不同的路由可能是由不同的路由协议发现的,也可以是手工配置的静态路由。优先级最高(数值最小)者将成为当前的最优路由。
Cost:路由开销。当到达同一目的地的多条路由具有相同的路由优先级时,路由开销最小的将成为当前的最优路由。
NextHop:表示对于本路由器而言,到达该路由指向的目的网络的下一跳地址。该字段指明了数据转发的下一个设备
nterface: 表示此路由的出接口。指明数据将从本路由器的哪个接口转发出去
路由优先级的概念就是比较这些路由的优先级,数值越小代表优先级高,会被添加进路由表。OSPF拥有更优的优先级,通过OSPF学习到的路由被添加到路由表中。

Cost开销/度量 是路由优选的依据之一,优先级相同会比较度量值。Cost表示到达这条路由所指目的地址的代价。一些常用的度量值有:跳数、带宽、时延、代价、负载、可靠性等。度量值数值越小越优先,度量值最小路由将会被添加到路由表中。
——路由转发
最长匹配原则:当路由器收到一个IP数据包时,会将数据包的目的IP地址与自己本地路由表中的所有路由表项进行逐位Bit-By-Bit)比对,直到找到匹配度最长的条目,这就是最长前缀匹配机制。
IP路由表小结
- 当路由器从多种不同的途径获知到达同一个目的网段的路由(这些路由的目的网络地址及网络掩码均相同时,会选择路由优先级值最小的路由,如果这些路由学习自相同的路由协议,则优选度量值最优的。总之最优的路由加入路由表。
- 当路由器收到一个数据包时,会在自己的路由表中查询数据包的目的IP地址。如果能够找到匹配的路由表项,则依据表项所指示的出接口及下一跳来转发数据,如果没有匹配的表项,则丢弃该数据包。
- 路由器的行为是逐跳的,数据包从源到目的地沿路径每个路由器都必须有关于目标网段的路由,否则就会造成丢包。
- 数据通信往往是双向的,因此要关注流量的往返(往返路由)。
