У меня есть два сервера под управлением 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.