如果路由表目的地的度量高于另一个目的地,并且较低度量目的地不提供连接,那么它是否可以通过它进行连接?

如果路由表目的地的度量高于另一个目的地,并且较低度量目的地不提供连接,那么它是否可以通过它进行连接?

当无法通过具有较高优先级度量(度量值较低)的路由访问主机时,即使较高优先级网关仍然可访问,操作系统是否会使用具有较低优先级度量的路由,而不从路由表中删除高优先级路由?

举个例子:使用以太网电缆以高优先级(低度量)路由,以低优先级路由到无线热点,然后突然:高优先级网关可访问:与该路由失去互联网连接。

答案1

“主机无法访问”与“没有互联网连接”的情况不同,结果也不同。

操作系统可能通过定期联系指定主机(如 Windows 中的“msftncsi”服务器)进行明确的“Internet 连接”检测,并且可能根据结果​​更改路由优先级。例如,Linux 中的 NetworkManager 会自动将 20000 添加到所有不提供“Internet 访问”的默认路由的度量中,这是通过联系特定的 HTTP URL 来确定的。

但当任何其他远程主机无法访问时,操作系统没有仅凭这一点就会自动得出“没有互联网访问”的结论,并且不会尝试任何其他路线。

有一个例外,那就是当地的网关本身不可达(不响应 ARP 即邻居发现查询),在这种情况下,操作系统可能会尝试在网络上寻找相同路由的替代网关。相同的接口。这主要发生在 IPv6 中,其中多个路由器可以以不同的优先级来宣传自己。

相关内容