Назад | Перейти на главную страницу

Windows 10 использует неправильную сетевую карту для доступа к определенным IP-адресам

У меня есть два сервера под управлением Windows 10 Enterprise 2016 LTSB, которые, похоже, используют неправильные сетевые адаптеры.

Сеть состоит из 2-х подсетей. Таким образом, каждый сервер имеет одну сетевую карту в «основной» сети с доступом в Интернет, 10.1.10.0/24. Затем у каждого сервера есть еще одна сетевая карта в сети «IoT» без Интернета, 192.168.2.0/24. Сетевые карты в основной сети используют DHCP; сетевые карты в сети IoT используют статические IP-адреса. Подсеть Интернета вещей - своего рода временное решение. Маршрутизатор не «знает» об этом. Я просто настроил устройства IoT и сетевые адаптеры IoT для использования другой схемы IP, но вся эта подсеть находится в том же коммутаторе, что и остальная сеть.

Естественно, я предполагал, что если я проверю связь с устройствами в сети IoT, Windows будет использовать напрямую подключенную сетевую карту. Но так бывает не всегда. Для некоторых IP-адресов Windows будет использовать IoT NIC, для других Windows будет использовать основную NIC. (Я проверил, какая сетевая карта использовалась через WireShark, но для записи каждый пинг проходит, когда я использую ping -S [address of the IoT NIC].)

C:\Users\***>ping 192.168.2.102

Pinging 192.168.2.102 with 32 bytes of data:
Request timed out.
Request timed out.
Request timed out.
Request timed out.

Ping statistics for 192.168.2.102:
    Packets: Sent = 4, Received = 0, Lost = 4 (100% loss),

C:\Users\***>ping -S 192.168.2.10 192.168.2.102

Pinging 192.168.2.102 from 192.168.2.10 with 32 bytes of data:
Reply from 192.168.2.102: bytes=32 time<1ms TTL=128
Reply from 192.168.2.102: bytes=32 time<1ms TTL=128
Reply from 192.168.2.102: bytes=32 time<1ms TTL=128
Reply from 192.168.2.102: bytes=32 time<1ms TTL=128

Ping statistics for 192.168.2.102:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 0ms, Maximum = 0ms, Average = 0ms

Что действительно странно, так это то, что Windows не использует одну и ту же сетевую карту для связи со всеми IP-адресами Интернета вещей. Каждый раз, когда сервер перезагружается, он почти вслепую пытается решить, какую сетевую карту он будет использовать для связи с каждым адресом, и будет продолжать использовать эту сетевую карту для этого адреса до следующего перезапуска сервера.

Таблица маршрутизации приведена ниже. Помните, 192.168.2.0 - это сеть IoT, а 10.1.10.0 - основная сеть.

IPv4 Route Table
===========================================================================
Active Routes:
Network Destination        Netmask          Gateway       Interface  Metric
          0.0.0.0          0.0.0.0        10.1.10.1      10.1.10.117     11
        10.1.10.0    255.255.255.0         On-link       10.1.10.117    257
      10.1.10.117  255.255.255.255         On-link       10.1.10.117    257
      10.1.10.255  255.255.255.255         On-link       10.1.10.117    257
        127.0.0.0        255.0.0.0         On-link         127.0.0.1    331
        127.0.0.1  255.255.255.255         On-link         127.0.0.1    331
  127.255.255.255  255.255.255.255         On-link         127.0.0.1    331
      169.254.0.0    255.255.255.0         On-link       169.254.0.2    266
      169.254.0.2  255.255.255.255         On-link       169.254.0.2    266
    169.254.0.255  255.255.255.255         On-link       169.254.0.2    266
      192.168.2.0    255.255.255.0         On-link      192.168.2.10    266
     192.168.2.10  255.255.255.255         On-link      192.168.2.10    266
    192.168.2.255  255.255.255.255         On-link      192.168.2.10    266
        224.0.0.0        240.0.0.0         On-link         127.0.0.1    331
        224.0.0.0        240.0.0.0         On-link       10.1.10.117    257
        224.0.0.0        240.0.0.0         On-link       169.254.0.2    266
        224.0.0.0        240.0.0.0         On-link      192.168.2.10    266
  255.255.255.255  255.255.255.255         On-link         127.0.0.1    331
  255.255.255.255  255.255.255.255         On-link       10.1.10.117    257
  255.255.255.255  255.255.255.255         On-link       169.254.0.2    266
  255.255.255.255  255.255.255.255         On-link      192.168.2.10    266

Вот несколько вещей, на которые я до сих пор смотрел:

Ни один из них пока не дал ответа. Я попытался отключить SMB MultiPath, но это не помогло даже после перезапуска серверов. Изменение показателей, похоже, тоже ничего не дало.

На данный момент я могу предположить, что Windows выполняет некоторую незаметную балансировку нагрузки, чтобы отправлять трафик не на тот сетевой адаптер. Но зачем ему это делать, если маршрут к 192.168.2.0/24 явно проходит через один интерфейс? Чтобы было ясно, маршрутизатор, подключенный к основной сетевой карте, не имеет маршрута для 192.168.2.0/24.

Почему Windows выбирает неправильную сетевую карту и как это исправить?