文章目录
路由的基本概念
背景:网段间通信
路由
- 路由是指导报文转发的路径信息,通过路由可以确认转发IP报文的路径。
- 理由设备是依据路由转发报文到目的网段的网络设备、最常见的路由设备:路由器
- 路由设备维护着一张路由表,保存着路由信息
路由信息介绍
-
路由中包含以下信息:
-
目的网络:标识目的网段
-
掩码:与目的地址共同标识一个网段
-
出接口:数据包被路由后离开本路由器的接口
-
下一跳:路由器转发到达目的网段的数据包所使用的下一跳地址
-
-
这些信息标识了目的网段、明确了转发IP报文的路径。
路由表
- 路由器通过各种方式发现路由
- 路由器选择最优的路由条目放入路由表中
- 路由表指导设备对IP报文的转发
- 路由器通过对路由表的管理实现对路径信息的管理
路由条目生成
路由信息获取方式
- 路由器根据路由表进行路由转发,为实现路由转发,路由器需要发现路由,以下为常见的路由获取方式
直连路由
- 直连路由指向本地直连网络的路由,由设备自动生成
- 当路由器为路由转发的最后一跳路由器时,IP报文匹配直连路由,路由器转发IP报文到目的主机
- 使用直连路由在进行路由转发时,报文的目的IP和路由器接口IP在一个网段之中。
- 并不是所有接口生成的直连路由都会出现在路由表中,直连路由出现在路由表中的前提是该接口的物理状态、协议状态都为UP
查看IP路由表
display ip routing-table
路由表中各个内容的含义
- Destination/Mask:表示此路由的目的网络地址与网络掩码。讲目的地址和子网掩码“逻辑与”后可得到目的主机或路由器所在网段的地址。例如:目的地址为1.1.1.1,掩码为255.255.255.0的主机或路由器所在网段的地址为1.1.1.0
- Proto:该路由的协议类型,也即路由器是通过什么协议获知该路由的
- Pre:表示此路由的路由协议优先级。针对同一目的地,可能存在不同下一跳、出接口等多条路由,这些不同的路由可能是由不同的路由协议发现的,也可以是手工配置的静态路由。优先级最高(数值最小)者将成为当前的最优路由。
- Cost:路由开销,当到达同一目的地的多条路由具有相同的路由优先级时,路由开销最小的将成为当前的最优路由。
- NextHop:表示对于本路由器而言,到达该路由指向的目的网络的下一跳地址。该字段指明了数据转发带的下一个设备。
- Interface:表示此路由的出接口。指明数据将从本路由器的那个接口转发出去。
最优路由条目优选
路由优先级
- 当路由器从多种不同的途径获知到达同一个目的网段的路由(这些路由的目的网络地址及网络掩码均相同)时,路由器会比较这些路由的优先级,优选优先级值最小的路由
- 路由来源的优先级值越小代表加入路由表的优先级越高。
- 拥有最高优先级的路由将被添加进路由表。
比较过程
- RTA通过动态路由协议OSPF和手动配置的方式都发现了到达10.0.0.0/30的路由,此时会比较这两条路由的优先级,优选优先级值最小的路由。
- 每一种路由协议都有相应的优先级。
- OSPF拥有更优的优先级,因此通过OSPF学习到的路由被添加到路由表中
常见默认数值
度量值
当路由器通过某种路由协议发现了多条到达同一个目的网络的路由时(拥有相同的路由优先级),度量值将作为路由优选的依据之一。
路由度量值表示到达这条路由所指目的地址的代价。
一些常用的度量值有:跳数、带宽、时延、代价、负载、可靠性等
度量值数值越小越优先,度量值最小路由将会被添加到路由表中。
度量值很多时候被称为开销(Cost)。
比较过程
- RTA通过动态路由协议OSPF学习到了两条目的地为10.0.0.0/30的路由,学习自同一路由协议、优先级相同,因此需要继续比较度量值。
- 两条路由拥有不同的度量值,下一跳为30.1.1.2的OSPF的路由条目拥有更小的度量值,因此被加入到路由表中
最长匹配原则
当路由器收到一个IP数据包时,会将数据包的目的IP地址与自己本地路由表中的所有路由表项进行逐位对比,直到找到匹配度最长的条目,这就是最长前缀匹配机制。
实例:
路由转发流程
IP路由表小结
- 当路由器从多种不同的途径获知到达同一目的网段的路由(这些路由的目的网络地址及网络掩码均相同)时,会选择路由优先级值最小的路由;如果这些路由学习自相同的路由协议,则优选度量值最优的。总之,最优的路由加入路由表
- 当路由器收到一个数据包时,会在自己的路由表中查询数据包的目的IP地址。如果能够找到匹配的路由表项,则依据表项所指示的出接口及下一跳来转发数据;如果没有匹配的表项,则丢弃该数据包。
- 路由器的行为是逐跳的,数据包从源到目的地沿路径每个路由器都必须有关于目标网段的路由,否则就会造成丢包
到一个数据包时,会在自己的路由表中查询数据包的目的IP地址。如果能够找到匹配的路由表项,则依据表项所指示的出接口及下一跳来转发数据;如果没有匹配的表项,则丢弃该数据包。 - 路由器的行为是逐跳的,数据包从源到目的地沿路径每个路由器都必须有关于目标网段的路由,否则就会造成丢包
- 数据通信往往是双向的,因此要关注流量的往返(往返路由)