考虑以下路由表:
Network Destination Netmask Gateway Interface Metric
0.0.0.0 0.0.0.0 192.168.8.1 192.168.8.2 2
0.0.0.0 128.0.0.0 10.20.20.1 10.20.20.35 6
为 ip "8.8.8.8" 选择了哪个路由规则?Windows 是选择第一个匹配的规则(底部规则)还是度量最低的规则(第一个)?
两者都不。IP 使用“最长前缀匹配”路由——在所有匹配的路由中,选择在其网络掩码中具有最多“1”位的路由(即最具体的路由)。
仅当具有相同网络掩码的多个路由与目标匹配时,才会比较它们的成本度量,并选择具有最低度量的路由。
因此,如果您的目的地是 8.8.8.8,那么两条路由都将匹配,但具有网络掩码 128.0.0.0 的路由将具有优先级,因为它具有更多的网络掩码 '1' 位(即更长的匹配前缀)。未使用该指标。
将选择底部规则。该指标没有重要性,因为只有这一条规则匹配。
仅当找到多个与 IP 地址匹配的规则时才会查询该度量标准,但这里只有一个匹配的规则。默认路由无法匹配任何内容,因此不计算在内。
Microsoft 的文章 Metric 解释了何时考虑指标:
但是,我对帖子中给出的示例的可行性有些怀疑。正如下面的 user1686 所指出的,这组规则可能不完整。
底部规则很奇怪,它的接口地址在与网络掩码相交时只给出零。通过这一点,它与我见过的任何其他示例不同,其中交叉点总是给出一些非零数。