你问得很好。为了正确回答这些问题,我们必须探索路由器及其运作方式。
路由器的填充路由表(您称之为转发表,这些术语是同义词)。路由表包含网络到接口或网络到下一跳 IP 的许多映射。
路由器可以通过多种方式了解其路由表的条目。与您的问题相关的两个是Directly Connected Routes或Static Routes。
- 直连路由是由于接口配置而学习的映射。
- 静态路由是管理员手动将特定网络的位置告知路由器的映射。
例如:
如果路由器的接口X
被配置为与IP地址125.95.39.129,用255.255.255.0掩模,路由器可以使用该技术在此交以确定该网络(或子网)该IP地址驻留在是125.95.39.0/ 24.
因此,路由器会将网络 125.95.39.0/24 映射到接口 X 的信息添加到其路由表中。
如果同一路由器现在遇到一个发往 125.95.39.129(路由器自己的接口 X IP 地址)的数据包,路由器会将数据包转发到其 CPU 进行处理。
如果同一个路由器现在遇到了一个发往网络中任何其他 IP 地址(125.95.39. 0 - .255 ) 的数据包,路由器会将数据包转发出接口X
。
现在让我们想象一个管理员为两个声明的静态路由配置路由器:
- 125.95.39.68/32 存在输出接口
Y
- 125.95.39.64/28 存在输出接口
Z
这两个网络都包含与连接到 Interface 的网络相同的网络中的 IP 地址X
。所以本质上,你有三个重叠的路线。路由表具有重叠条目是很常见的,也是完全可以接受的。
在这种情况下,路由器是否应该收到一个发往……的数据包?
... 125.95.39.55,此数据包仅匹配一条路由,将被转发出接口X
... 125.95.39.65,此数据包匹配两条路由,将被转发出接口Z
... 125.95.39.68,此数据包匹配所有三个路由,会被转发出接口Y
支配这种行为的是重叠路由的规则。在所有情况下,决定选择哪条路线的因素都遵循以下规则:
- 最具体的路线
- 最佳(最低)管理距离
- 最佳(最低)路线指标
上面第二种情况(数据包发往125.95.39.65),/28静态路由比/24直连路由更具体,所以选择/28。
在上面的第三种情况下(发往 125.95.39.68 的数据包),/32 静态路由比 /28 静态路由更具体,并且 /24 直接连接,因此选择了 /32。
如果有两条具有相同特性的路由(也就是两条 /32 路由,或两条 /24 路由等),管理距离将打破平局。管理距离是设置为“评分”的任意数字,并为不同的学习路线来源设置不同的偏好。
例如,静态路由的管理距离通常为 1,直连路由的管理距离为 0。这意味着如果 /24 静态路由以及 /24 直连路由都存在,直连路由将是首选。
指标是最终的决胜局,它是与每个路由关联的任意值,用于指定该特定路由与从相同机制学习的其他路由相比的首选程度,并且具有相同的特异性。
摘要/TLDR
你的问题的答案在上面的解释中。但总结...
.#1 - 这取决于 125.95.39.129 在路由器的转发表中的位置。又名,作为 /32 路线?作为 /24 路线?
.#2 -- 最具体的路线将始终优先
.#3 -- 最具体的路线总是优先,其次是管理距离