Как заставить win устанавливать smb-соединение только по одному из двух возможных маршрутов?
Дано: две машины с win сервер с двумя возможными путями коммуникации
1) напрямую кабелем с подсетью 192.168.99.0/24
2) через маршрутизатор с подсетью 172.16.1.0/24
Когда одна машина пытается подключиться к другой через smb по адресу в сети 192.168.99.0/24 - на самом деле устанавливается и соединение в сети 172.16.1.0/24.
Обе машины в домене, netbios полностью отключен, DNS ничего не знает о сети 192.168.99.0/24.
В net stat следующая картина:
TCP 172.16.1.17:49224 %servername%:microsoft-ds ESTABLISHED
TCP 172.16.1.17:49225 %servername%:microsoft-ds ESTABLISHED
TCP 172.16.1.17:49226 %servername%:microsoft-ds ESTABLISHED
TCP 192.168.99.3:49219 192.168.99.1:microsoft-ds ESTABLISHED
TCP 192.168.99.3:49220 192.168.99.1:microsoft-ds ESTABLISHED
TCP 192.168.99.3:49221 192.168.99.1:microsoft-ds ESTABLISHED
TCP 192.168.99.3:49222 192.168.99.1:microsoft-ds ESTABLISHED
Почему win так делает, и как этого избежать?
UPD:
%servername% резольвится, разумеется, как адрес из сети 172.16.1.0/24.
Все соединения имеют вид 172.16.1.0/24 -> 172.16.1.0/24 и 192.168.99.0/24 -> 192.168.99.0/24; соединений вида 172.16.1.0/24 -> 192.168.99.0/24 или в обратную сторону нет. То есть тут не проблемы маршрутизации.
Win каким-то образом определяет, что целевой сервер доступен ещё и по другому адресу, нежели тот, что прямо указывается как целевой адрес smb-соединения. Каким образом?
Ваши два сервера ничего не знают о друг друга (netbios off), всё что они знают так это то что отдаёт им DNS сервер а как я понял отдаёт он им 172ю подсесть.
Используйте для smb заместь имён, конкретные адреса 192й подсети или указатель в hosts явную привязку к адресам из 192й подсети.