Продолжаю цикл публикаций из раздела FAQ.
Сегодня остановимся на проблемах разрешения имен компьютеров в локальной сети.
Код: Выделить всё
Вопросы такого рода можно сформулировать следующим абзацем:
У меня две подсети 192.168.1.1/24 и 192.168.2.1/24. Все воткнуто в микротик, по IP компьютеры вижу из обеих, но по имени обратиться к ним не могу. Или например, вот так: вчера обращался к компьютеру по имени, а сегодня не могу. Это все из-за микротика!!! Или так: у меня медиаплеер не видит в сети сервер NAS по имени, а по IP видит, мне сказали, что микротик поможет, я его купил, но ничего не работает.
Итак,
для разрешения локальный имен в локальной (не доменной сети) используется протокол NetBios (
https://support.microsoft.com/ru-ru/kb/119493). Работу именно этого протокола мы наблюдаем в "Сетевом окружении" в Windows.
При попытке выполнить команду
ping nashamasha, Windows (именно Windows) не обращается к DNS вообще для получения IP адреса компа
nashamasha, а прибегает к протоколу NetBios, который броадкастом рассылает запрос по всей подсети, авось
nashamasha ответит и сообщит свой IP. Если компьютер ответил, то имя успешно разрешается соответствующим IP. Более того, при разрешении имен, у которых нету домена (то есть точка и чего-то-чего-то), Windows, по-умолчанию, не обращается к серверу DNS вообще. И поэтому, если вы добавляете в микротик статические записи, когда имя хоста состоит из одного слова, то ничего не работает в Windows сетях. Майкрософт "точку и чего-то-чего-то" называет "
расширением имени домена".
Майкрософт, прекрасно понимая, что такой подход не всегда удобен, придумала файл HOSTS (С:\Windows\system32\drivers\etc). В который можно вручную внести необходимые записи доменов (имен) и их IP.
https://support.microsoft.com/ru-ru/kb/972034https://ru.wikipedia.org/wiki/HostsТаким образом, вы можете внести в файл HOST имена и IP всех локальных компьютеров. Что гарантирует к ним доступ по имени. Эта схема имеет право на жизнь, но в реализации очень сложна. Когда компьютеров много это очень трудоемкая операция, а кроме того, это все требует закрепления фиксированных IP за каждым компьютером и в случае его изменения, придется вручную ходить и править файл HOSTS на каждом компьютере. Кроме того, файл HOSTS вирусы часто используют для подмены домена и многие антивирусные программы норовят этот файл восстановить до исходного состояния и блокируют к нему доступ. То есть, все это не очень удобно, но, повторюсь, применимо при крайней необходимости.
В любом случае, для одноранговых, не доменных сетей - это отличное решение, позволяющее видеть компы по именам в сети (Точнее в Сетевом окружении Windows) не имея никаких дополнительных устройств и серверов.
У протокола NetBios есть одно неудобное ограничение: он рассылает броадкаст запросы в рамках одной ПОДСЕТИ!!! И только. Поэтому когда была одна подсеть то все работает, а как только появляется еще одна подсеть, то уже компы из разных подсетей по имени не видят друг друга. И несмотря на то, что микротик смаршрутизировал эти подсети одним легким движением, по имени к ним обратиться нельзя.
Понимая проблемность такого решения Майкрософт, разрабатывает службу WINS, которая также является подсистемой NetBios и увеличивает шансы разрешения имени в разы, и по скорости почти мгновенно, но.... WINS существует только в Windows Server и самое главное, клиенты сети должны в принципе уметь регистрировать себя в службе WINS и для разрешения имен, должны уметь к ней обращаться. И это умеют делать все Windows устройства. Но подавляющее большинство НЕ Windows устройств понятия не имеют про WINS, увы. Некоторые Linux версии для совместимости имеет поддержку WINS тоже, но это десктопные версии. Линукс, которые встраивают в устройства, очень куцая и до сих пор, часто, не на очень свежем ядре, она ничего не знает про WINS.
Более подробнее про службу WINS читайте здесь
https://technet.microsoft.com/ru-ru/library/cc725802(v=ws.11).aspxОбратите внимание, что в этой статье честно написано, что к DNS серверу Windows обращается только для разрешения имени, в котором имеется точка (или имя больше 15 символов).
Исходя из вышеизложенного, создавая статически записи в Микротик для локальных устройств, добавляйте расширение к доменному имени. Иначе ничего работать не будет. При обращении к устройству по имени, придется указывать и его расширение. Кстати, осторожно выбирайте расширение доменного имени. Тут тоже есть ограничения.
https://technet.microsoft.com/ru-ru/library/cc626155(v=ws.10).aspxhttps://ru.wikipedia.org/wiki/.local