Если пользователю в корпоративной сети необходим доступ к некоторому ресурсу на другом компьютере, то обычно пользователь указывает NetBIOS название удаленной системы для установления соединения. Эта техника хорошо работает в корпоративных сетях потому, что Active Directory предоставляет информацию о существующем сервере DNS. Это значит, что пользователи могут подключиться к удаленной системе по NetBIOS имени и операционная система Windows запросит сервер DNS для определения IP адреса, связанного с названием компьютера. Это замечательно для корпоративных сетей, но сопоставление названий всегда было проблемой для специальных или домашних сетей. В большинстве случаев либо невозможно, либо непрактично добавлять сервер DNS в домашнюю сеть или специальную сеть. В результате этого сопоставление имен становиться невозможным. В операционных системах Windows Vista и Longhorn Server это было изменено с помощью новой технологии под названием link local multicast name resolution (распознавание имен при локальных широковещательных соединениях). В этой статье я покажу вам, как все это работает.
Перед тем, как я погружусь в обсуждение сопоставления имен, некоторые из вас могут удивляться, почему мы не можем просто использовать WINS для сопоставления названий в сетях. Если предположить, что все ваши компьютеры в сети работают по протоколу IPv4, то в этом случае WINS сделает за нас всю работу. Но проблема заключается в том, что в операционных системах Windows Vista и Longhorn Server компания Microsoft перешла на протокол IPv6. Это значит, что больше не безопасно предполагать, что все компьютеры в вашей домашней сети будут работать по протоколу IPv4.
Перед тем, как я начну рассказ о том, как работает сопоставление названий, я хочу уточнить, что сопоставление названий при локальных широковещательных соединениях не является заменой DNS. Хотя верно, что обе технологии спроектированы для предоставления служб по сопоставлению имен IP адресам, все же LLMNR намного более ограничено в своих возможностях, чем DNS.
Чтобы лучше понять, в чем тут дело, на минуту представьте себе, как работает DNS. Если одному компьютеру необходимо узнать IP адрес другого компьютера по его названию, то он посылает запрос на сервер DNS. Сервер DNS пытается сопоставить запрос с информацией, которая храниться на нем. Если сервер DNS не находит записей, соответствующих имени запрашиваемого компьютера, то запрос передается на сервер DNS более высокого уровня. Там происходит то же самое. Сервер DNS пытается найти запись об имени компьютера и в случае неудачи передает запрос следующему серверу DNS. Так может продолжаться до тех пор, пока запрос не достигнет сервера DNS, который отвечает за домен запрашиваемого компьютера.
Как вы можете увидеть, DNS по своей природе имеет иерархическую структуру. Из-за огромного количества компьютеров в интернете, невозможно обеспечить, чтобы один сервер DNS знал все. Поэтому, сервера DNS распределены таким образом, который позволяет им содержать информацию, касающуюся определенных доменов, а также передавать все остальные запросы серверам DNS более высокого уровня.
Помня все это, давайте обратим наше внимание на LLMNR. Самое большое ограничение у технологии LLMNR заключается в том, что она не маршрутизируема. Процесс сопоставления названий (name resolution) может быть использован для компьютеров, которые находятся в общей подсети. Компьютеры, которые располагаются за маршрутизатором, недоступны для процесса сопоставления имен.
Причина, по которой компания Microsoft сделала технологию LLMNR не маршрутизируемой, заключается в огромном количестве компьютеров в интернете. Я уже говорил, что в результате того, что в интернет находится огромное количество компьютеров, ни один сервер DNS не способен хранить информацию обо всех из них. А технология LLMNR даже не имеет базы данных для сопоставления имен, на которую можно было бы положиться. Вместо этого, компьютеры в локальной подсети транслируют свои имена. Можете себе представить, что случиться, если все эти трансляции пересекут маршрутизатор? Широковещательный трафик будет настолько велик, что процесс сопоставления имен будет покруче любой атаки типа отказ в обслуживании (denial of service attack).
Поэтому, DNS – это по-прежнему предпочтительный способ для сопоставления имен для операционных систем Windows Vista и Longhorn Server. Обе эти операционные системы спроектированы так, что сперва они пытаются воспользоваться DNS для сопоставления названий. Технологию LLMNR они используют лишь в том случае, если компьютер определяет, что он не может использовать DNS для распознавания имен.
Теперь, когда я рассказал о том, что представляет собой технология LLMNR и чего она не может, я хочу потратить немного времени и рассказать о том, как она работает. Обычно, процесс сопоставления названия IP адресу начинается в том момент, когда одному компьютеру необходимо подключится к другому компьютеру в сети. Этот компьютер должен определить по названию компьютеру его IP адрес. Поэтому он проверяет свою конфигурацию TCP/IP для получения IP адреса сервера DNS.
Поэтому, потенциально может произойти несколько возможных вариантов. Первый заключается в том, что этот компьютер обращается к серверу DNS, а сервер DNS производит сопоставление названия компьютера IP адресу. Т.к. цель этой статьи заключается в том, чтобы показать, как работает технология LLMNR, то мы предположим, что попытка определения IP адреса с помощью DNS окончилась неудачей.
Существует несколько причин, по которым это могло произойти. Например, представьте, что у вас есть ноутбук, который настроен для работы в корпоративной сети. Вы принесли ваш ноутбук домой однажды вечером, чтобы продолжить свою работу там. После того, как вы сделали все, что вам необходимо, вы решили распечатать ваш документ. У вас имеется небольшая беспроводная сеть дома, поэтому вы пытаетесь подключиться к компьютеру, к которому подключен принтер. В результате того, что ноутбук настроен для работы в корпоративной сети, у него указан адрес DNS сервера, который используется в вашей компании (предполагается, что IP адресе DNS сервера не определяется с помощью сервера DHCP). Но сейчас вы подключаете ваш ноутбук не корпоративной сети, а к домашней, поэтому, ноутбук не может найти заданный DNS сервер. Это приводит к тому, что сопоставление названия с помощью DNS оканчивается неудачей.
Теперь, когда сопоставление названия с помощью DNS провалилось, компьютер посылает широковещательный запрос по протоколу UDP. Все остальные устройства в сети получат этот запрос. Предположим, что эти компьютеры работают под управлением операционной системы Windows Vista или Longhorn Server (и при этом у них включено LLMNR), тогда они сравнят название, переданное в запросе, со своим собственным названием. Если запрашиваемому компьютеру не запрещено отвечать на широковещательные запросы, то он пошлет однонаправленное сообщение (unicast message) компьютеру, который послал запрос. Это сообщение будет содержать IP адрес компьютера.
Технология LLMNR также поддерживает обратные маршрутные запросы (reverse mapping queries). Это означает, что компьютер может послать запрос по определенному IP адресу, а компьютер по этому адресу пришлет свое название.
Я уже привел вам один пример, когда технология LLMNR может быть использована в случае с ноутбуком, который подключается к беспроводной домашней сети, но я также хочу предоставить вам еще пару примеров использования этой технологии.
Может быть самый очевидный пример будет таким. Несколько пользователей из вашей компании хотят встретиться за пределами офиса для совместной работы над каким-либо проектом. При этом они формируют специальную сеть, которая может обладать, а может и не обладать выходом в интернет. Предположим, что сервер DNS недоступен, тогда на помощь приходит технология LLMNR, которая предоставляет службы по сопоставлению названий компьютеров их IP адресам для компьютеров, находящихся в этой специальной сети.
Менее очевидный пример использования технологии LLMNR может заключаться, когда возникли неполадки с маршрутизатором. Например, представьте, что сервер DNS вашей компании находится в главном офисе, и к нему направляются DNS запросы из дочерних офисов по каналу WAN. Если возникли неполадки с маршрутизатором, то запросы DNS не будут проходить до тех пор, пока не будут устранены неполадки на маршрутизаторе. Однако, пользователи в различных дочерних офисах могут по-прежнему использовать ресурсы внутри своего собственного офиса благодаря технологии LLMNR.
Как вы могли увидеть, технология LLMNR не является заменой технологии сопоставления имен с помощью DNS. Однако она является альтернативной службой по сопоставлению имен, которую можно использовать в том случае, когда не доступен сервер DNS.
www.windowsnetworking.com
Tags: dns, Windows Vista