IP 路由和路由表
路由
路由是网络中的基本概念,网络的基本功能就是使得处于网络中两个 IP 地址能够互相通信。
当路由器收到一个 IP 数据包时,路由器会解析出 IP 数据包中的目的 IP 地址,然后根据目的 IP 地址查找路由表,依据最长掩码匹配原则,找到对应的路由条目,根据路由条目中的下一跳或者出接口将报文转发出去,这就是路由。
路由表
简单点说,路由表就是路由器用于指导数据包如何转发的表项,记录了去往目的 IP 的下一跳去哪里
IP 路由表包含的七大要素
IP 路由表中包含了目的网络 / 掩码,协议类型,优先级,开销,标志,下一跳,出接口这个七大要素。
下面来看下一个真实的路由表:
通过命令 display ip routing-table
来查询该设备的路由表,可以看到该设备共有 12 条路由条目。
每个路由条目必须包括下面几个信息元素:
目的网络 / 掩码
目的网络 / 掩码也被称为路由前缀,这是路由条目所关联的目的网络地址及网络掩码。
一条完整的路由前缀由:网络地址 + 前缀长度(或者网络掩码) 构成,两者缺一不可。
例如 192.168.1.0/24 与 192.168.1.0/25 ,虽然网络地址相同,都是 192.168.1.0,但是两者绝对是两条不同的路由,因为它们的前缀长度不相同。
当路由器收到一个 IP 数据包时,路由器会解析出 IP 数据包中的目的 IP 地址,然后根据目的 IP 地址查找路由表,依据最长掩码匹配原则,找到对应的路由条目。
最长掩码匹配原则匹配的就是目的网络 / 掩码。
比如:路由器收到一个目的 IP 地址为 10.1.1.1 的数据包,此时查找路由表,有两个路由条目,一个路由条目的 A 的目的网络 / 掩码是 10.1.1.0/24,另一条路由条目 B 的目的网络 / 掩码是 10.1.1.0/28,那么这个数据包匹配的是哪一个路由条目呢?
正确答案:是匹配路由条目 B,因为 B 的掩码长。
协议类型
协议类型
指该路由条目是通过什么路由协议学习过来的。
例如是直连的,或是静态的,或者是通过 OSPF、IS-IS、EIGRP、BGP 等动态路由学习到的。
1、直连路由
指和路由器的接口直接的地址生成的路由。
如下图中,协议类型是 direct 的就是直接直连地址生成的路由。
2、静态路由
静态路由是指通过静态路由协议生成的路由。
与动态路由不同,静态路由是固定的,即使网络状况已经改变或是重新被组态也不会改变。
3、动态路由
动态路由协议主要有 RIP、OSPF、ISIS、BGP。
RIP 和 BGP 是基于距离矢量的路由协议。
OSPF 和 ISIS 都是基于链路状态的路由协议。
优先级
路由表中去往同一目的地的路由可能通过多种路由协议生成。
举个例子:去往目的 IP 为 192.168.2.1 的通过静态路由生成了,也通过 OSPF 路由生成了。那么这时什么样的路由会加入到路由表中呢 ?
这时就和路由协议的优先级有关系了。
每种协议类型对应不同的优先级,优先级值越小则路由越优
。
常用路由协议和优先级的关系表如下图。
当一台路由器同时从多种不同的路由协议学习到去往同一个目的地的路由时,它将优选路由协议优先级值最小的那条路由。
因此,本例中,正确的是通过 OSPF 学习到路由加入到路由表中(OSPF 的路由优先级比静态路由优先级小)。
开销
路由的度量值,经常也使用 metric 来描述。
直连及静态路由的 Cost 为 0。
cost 与 metric 的区别
成本(cost)通常是指从某个接口发送流量的“开销”,是路由器在选择路径时的一个考虑因素。
度量(metric)是路由器在选择路径时所使用的综合评估值,是路由器根据诸如成本、带宽、延迟和负载等因素计算出的一个值。
cost 是 metric 的一个计算组成部分,Metric 是一个更广泛的概念,包括 cost 在内的多种因素。路由器根据 metric 的值来选择最优路径。
通过动态路由协议学习到的 Cost 则根据实际情况而定。不同的路由协议计算 Cost 的方法不同
。
例如上图中,R1 去往 PC2 的路由条目通过 OSPF 路由协议学习到,开销为 3。
标志(路由标志)
R 表示该路由是迭代路由。
D 表示该路由下发到 FIB(Forwarding Information Base,转发信息表 )。
RIB 负责存储、提供路由信息,而 FIB 负责根据路由信息进行包转发。
迭代路由
路由必须有直连的下一跳才能够指导转发,但是路由生成时下一跳可能不是直连的,因此需要计算出一个直连的下一跳和对应的出接口,这个过程就叫做路由迭代。
BGP 路由、静态路由和 UNR (User Network Route,用户网络路由)路由的下一跳都有可能不是直连的,都需要进行路由迭代。
例如,BGP 路由的下一跳一般是非直连的对端 loopback 地址,不能指导转发,需要进行迭代。即根据以 BGP 学习到的下一跳为目的地址在 IP 路由表中查找,当找到一条具有直连的下一跳、出接口信息的路由后(一般为一条 IGP 路由),将其下一跳、出接口信息填入这条 BGP 路由的 IP 路由表中并生成对应的 FIB 表项。
下一跳
去往目标网络的下一跳 IP 地址。
出接口
去往目标网络从本设备的哪个接口出去。
—END—
注:在原文中补充了注解。
via: 详解 IP 路由表七大要素:路由前缀、协议类型、优先级、开销、下一跳、出接口 原创 网工阿成 网络工程师笔记 2021 年 09 月 01 日 08:00