默认路由列表不一致

默认路由列表不一致

机器有两个网络接口:以太网和 WiFi。主要通过以太网连接互联网,这利用了静态 IPv4 设置。当将 wifi(利用 DHCP)连接到具有另一个互联网连接的 wifi 路由器时,系统中有两个具有不同度量的默认路由(如预期的那样)。互联网通过 wifi 连接(因为度量较低),这很好。

执行 wifi 断开连接时,互联网会返回以太网并正常工作,但执行命令时netsh in ip sh ro在列表中得到两个默认路由。一个来自以太网适配器度量 256,另一个是来自(现已断开连接的)wifi 适配器的剩余默认路由,度量为 0。此路由无法 ping 通(正如预期的那样)。

Publish  Type      Met  Prefix                    Idx  Gateway/Interface Name
-------  --------  ---  ------------------------  ---  ------------------------
No       Manual    256  0.0.0.0/0                  22  10.12.70.65
No       Manual    0    0.0.0.0/0                   7  192.168.148.251

当执行时,netstat -rn只有一个默认路由,其度量为 281

IPv4 Route Table
===========================================================================
Active Routes:
Network Destination        Netmask          Gateway       Interface  Metric
          0.0.0.0          0.0.0.0      10.12.70.65      10.12.70.66    281

为什么两个列表之间存在差异?这是一个错误还是有一些隐藏的含义?(数字 281 似乎是路由度量和接口度量的减法)

更新:

命令netsh in ip sh config Wifi看起来也像这样

Configuration for interface "WiFi"
    DHCP enabled:                         Yes
    Default Gateway:                      192.168.148.251
    Gateway Metric:                       0
    InterfaceMetric:                      55
    DNS servers configured through DHCP:  192.168.148.251
    Register with which suffix:           Primary only
    WINS servers configured through DHCP: None

命令netsh in ip sh addresses WiFI

Configuration for interface "WiFi"
    DHCP enabled:                         Yes
    Default Gateway:                      192.168.148.251
    Gateway Metric:                       0
    InterfaceMetric:                      55

命令powershell "Get-NetRoute -DestinationPrefix "0.0.0.0/0" | format-list -property *"

Publish               : No
Protocol              : NetMgmt
Store                 : ActiveStore
AddressFamily         : IPv4
State                 : Alive
ifIndex               : 7
Caption               :
Description           :
ElementName           :
InstanceID            : :8:8:8:9:55A55;C<8;@B8;>B8<?;55;
AdminDistance         :
DestinationAddress    :
IsStatic              :
RouteMetric           : 0
TypeOfRoute           : 3
CompartmentId         : 1
DestinationPrefix     : 0.0.0.0/0
InterfaceAlias        : WiFi
InterfaceIndex        : 7
InterfaceMetric       : 55
NextHop               : 192.168.148.251
PreferredLifetime     : 00:59:59
ValidLifetime         : 00:59:59
PSComputerName        :
CimClass              : ROOT/StandardCimv2:MSFT_NetRoute
CimInstanceProperties : {Caption, Description, ElementName, InstanceID...}
CimSystemProperties   : Microsoft.Management.Infrastructure.CimSystemProperties

Publish               : No
Protocol              : NetMgmt
Store                 : ActiveStore
AddressFamily         : IPv4
State                 : Alive
ifIndex               : 22
Caption               :
Description           :
ElementName           :
InstanceID            : :8:8:8:9:55<<55;:8;<8A:8@?55;
AdminDistance         :
DestinationAddress    :
IsStatic              :
RouteMetric           : 256
TypeOfRoute           : 3
CompartmentId         : 1
DestinationPrefix     : 0.0.0.0/0
InterfaceAlias        : ETH0
InterfaceIndex        : 22
InterfaceMetric       : 25
NextHop               : 10.12.70.65
PreferredLifetime     : 10675199.02:48:05.4775807
ValidLifetime         : 10675199.02:48:05.4775807
PSComputerName        :
CimClass              : ROOT/StandardCimv2:MSFT_NetRoute
CimInstanceProperties : {Caption, Description, ElementName, InstanceID...}
CimSystemProperties   : Microsoft.Management.Infrastructure.CimSystemProperties

更新2:

当从 USB 插槽拔下 wifi 适配器然后重新插入时,与此适配器相关的默认路由将从所有列表中消失。

答案1

您在这里看到的是 WiFi 路由器驱动程序的行为。当未连接时,只要设备处于开机状态,它就会将度量设置为零。

我搜索了零度量的含义,它似乎取决于制造商。例如,对于某些 Cisco 设备,它意味着直接电缆连接(因此零开销)。对于其他设备,这仅意味着无效参数。

也许最符合你经历的参考资料,奇怪的是,我发现 Contiki操作系统

/* These specifiy the sink's routing metric (0) and the maximum
   routing metric. If a node has routing metric zero, it is the
   sink.

“sink”这个词似乎是指网络的边缘,也就是没有任何东西可以进一步连接。

显然,设备的驱动程序将度量设置为零,以表示设备存在,但除此之外没有其他可能的连接。Windows 似乎以类似的方式理解它。

相关内容