在两个网卡两个子网 Windows 7 上对第二个接口进行外部 ping 时出现问题

在两个网卡两个子网 Windows 7 上对第二个接口进行外部 ping 时出现问题

我的这个配置在 Linux 上运行良好,但 Windows 却很难运行。

Windows 7 盒子设置了两个 NIC,每个NIC 用于一个单独的子网。

  1. NIC 1 是主接口,具有默认网关和互联网访问权限。
  2. NIC 2 是没有默认网关的小型私有子网的辅助接口。

在 Windows 机器上,一切都运行正常。我可以通过预期接口 ping 并连接到相应的子网;NIC 2 子网的 ping 和连接通过 NIC 2 进行,NIC 1 上的 ping 和连接也运行正常。

问题是 Windows 没有响应 NIC 2 上的外部 ping。Windows 上的接口统计数据显示 ping 已到达,但没有响应。对 NIC 1 的外部 ping 正常。

防火墙已禁用。

任何建议都值得感激。同样的设置在 Linux 上运行没有任何问题。

Windows IP Configuration


Ethernet adapter Local Area Connection 2:

   Connection-specific DNS Suffix  . :
   Link-local IPv6 Address . . . . . : fe80::cd15:7e83:1dd8:4531%14
   IPv4 Address. . . . . . . . . . . : 192.168.1.7
   Subnet Mask . . . . . . . . . . . : 255.255.255.0
   Default Gateway . . . . . . . . . :

Ethernet adapter Local Area Connection:

   Connection-specific DNS Suffix  . : nowhere.com
   Link-local IPv6 Address . . . . . : fe80::2c63:4544:c29d:5dfd%11
   IPv4 Address. . . . . . . . . . . : 10.13.132.63
   Subnet Mask . . . . . . . . . . . : 255.255.255.0
   Default Gateway . . . . . . . . . : 10.13.132.1



    $ route print
===========================================================================
Interface List
 14...52 54 00 24 8b 8e ......Red Hat VirtIO Ethernet Adapter #2
 11...54 52 00 77 87 59 ......Red Hat VirtIO Ethernet Adapter
  1...........................Software Loopback Interface 1
 12...00 00 00 00 00 00 00 e0 Microsoft ISATAP Adapter
 13...00 00 00 00 00 00 00 e0 Teredo Tunneling Pseudo-Interface
 15...00 00 00 00 00 00 00 e0 Microsoft ISATAP Adapter #2
===========================================================================

IPv4 Route Table
===========================================================================
Active Routes:
Network Destination        Netmask          Gateway       Interface  Metric
          0.0.0.0          0.0.0.0      10.13.132.1     10.13.132.63    266
      10.13.132.0    255.255.255.0         On-link      10.13.132.63    266
     10.13.132.63  255.255.255.255         On-link      10.13.132.63    266
    10.13.132.255  255.255.255.255         On-link      10.13.132.63    266
        127.0.0.0        255.0.0.0         On-link         127.0.0.1    306
        127.0.0.1  255.255.255.255         On-link         127.0.0.1    306
  127.255.255.255  255.255.255.255         On-link         127.0.0.1    306
      192.168.1.0    255.255.255.0         On-link       192.168.1.7    266
      192.168.1.7  255.255.255.255         On-link       192.168.1.7    266
    192.168.1.255  255.255.255.255         On-link       192.168.1.7    266
        224.0.0.0        240.0.0.0         On-link         127.0.0.1    306
        224.0.0.0        240.0.0.0         On-link      10.13.132.63    266
        224.0.0.0        240.0.0.0         On-link       192.168.1.7    266
  255.255.255.255  255.255.255.255         On-link         127.0.0.1    306
  255.255.255.255  255.255.255.255         On-link      10.13.132.63    266
  255.255.255.255  255.255.255.255         On-link       192.168.1.7    266
===========================================================================
Persistent Routes:
  Network Address          Netmask  Gateway Address  Metric
          0.0.0.0          0.0.0.0      10.13.132.1  Default
===========================================================================

答案1

如果对 NIC 2 的 ping 来自不同的子网/网络,例如 10.0.0.0/8,则 ping 响应将通过 NIC 1 上的默认网关发出。这是因为 ping 响应的目标是 10.0.0.0/8 地址,根据路由表,到此类地址的流量将通过 NIC 1 发出。执行 ping 操作的计算机无法将 NIC 1 上的 IP 识别为其正在 ping 的 IP,因此它会丢弃收到的 ping 响应。

不幸的是,我目前还没有解决方案,只有一个解释。

答案2

Windows 防火墙(或其他基于软件的防火墙,如果有的话)可能会阻止第二个 NIC 上的 ping 响应。 为了测试目的,请禁用防火墙。如果问题得到解决,您可以添加适当的规则以允许从第二个接口发出 ping 响应。

我也不鼓励手动创建到第二个接口子网的静态路由。Windows 知道该子网只能通过该 NIC 访问,因为您已在 NIC 2 上指定了 IP 地址/子网掩码组合。您需要手动为 NIC2 指定路由的唯一原因是,如果存在额外的子网网络只能通过该接口访问,在这种情况下,NIC 2 网络上的某处也会有一个路由器。

恕我直言,手动执行已经自动完成的操作会增加另一个变量,使您今天正在排除故障的问题变得复杂,或者更糟的是,不必要地设置未来的问题。

答案3

我知道这是一个老帖子,但我遇到了类似的问题,根据我读过的另一个帖子,这可能与 Windows 上的 NIC 指标有关。因此,请从自动指标更改为使 NIC#2 的指标数字低于 NIC#1

相关内容