Resolve windows name что это

Resolve-Dns Name

Performs a DNS name query resolution for the specified name.

Syntax

Description

The Resolve-DnsName cmdlet performs a DNS query for the specified name. This cmdlet is functionally similar to the nslookup tool which allows users to query for names.

Examples

EXAMPLE 1

This example resolves a name using the default options.

EXAMPLE 2

This example resolves a name against the DNS server at 10.0.0.1.

EXAMPLE 3

This example queries for A type records for name www.bing.com.

EXAMPLE 4

This example resolves a name using only DNS. LLMNR and NetBIOS queries are not issued.

Parameters

Resolves this query using only the local cache.

Type: SwitchParameter
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Resolves this query using only the DNS protocol.

Type: SwitchParameter
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Sets the DNSSEC checking-disabled bit for this query.

Type: SwitchParameter
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Sets the DNSSEC OK bit for this query.

Type: SwitchParameter
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Allows falling back to the LLMNR protocol when resolving this query with DNS fails.

Type: SwitchParameter
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Resolves this query using only the LLMNR or NetBIOS protocols.

Type: SwitchParameter
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Resolves this query using only the LLMNR protocol.

Type: SwitchParameter
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Specifies the name to be resolved.

Type: String
Position: 0
Default value: None
Accept pipeline input: True
Accept wildcard characters: False

Allows fallback to the NetBIOS protocol when resolving this query with DNS fails.

Type: SwitchParameter
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Skips the hosts file when resolving this query.

Type: SwitchParameter
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Specifies not to use IDN encoding logic for the query.

Type: SwitchParameter
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Instructs the server not to use recursion when resolving this query.

Type: SwitchParameter
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Uses shorter timeouts for this query.

Type: SwitchParameter
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Specifies the IP addresses or host names of the DNS servers to be queried. By default the interface DNS servers are queried if this parameter is not supplied.

Type: String [ ]
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Uses only TCP for this query.

Type: SwitchParameter
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Specifies the DNS query type that is to be issued. By default the type is A_AAAA, the A and AAAA types will both be queried. The acceptable values for this parameter are:

— A_AAAA = 0, the DNS query type is A_AAAA.

— A = 1, the DNS query type is IPv4 server Address.

— AAAA = 28, the DNS query type is IPv6 server address.

Читайте также:  Как проверить лицензионность windows

— NS = 2, the DNS query type is name server.

— MX = 15, the DNS query type is mail routing information.

— MD = 3, the DNS query type is mail destination.

— MF = 4, the DNS query type is mail forwarder.

— CNAME = 5, the DNS query type is canonical name.

— SOA = 6, the DNS query type is start of authority zone.

— MB = 7, the DNS query type is mailbox domain name.

— MG = 8, the DNS query type is mail group member.

— MR = 9, the DNS query type is mail rename name.

— NULL = 10, the DNS query type is null resource record.

— WKS = 11, the DNS query type is well known service.

— PTR = 12, the DNS query type is domain name pointer.

— HINFO = 13, the DNS query type is host information.

— MINFO = 14, the DNS query type is mailbox information.

— TXT = 16, the DNS query type is text strings.

— RP = 17, the DNS query type is responsible person.

— AFSDB = 18, the DNS query type is AFS database servers.

— X25 = 19, the DNS query type is packet switched wide area network.

— ISDN = 20, the DNS query type is Integrated Services Digital Network.

— RT = 21, the DNS query type is DNS route through.

— SRV = 33, the DNS query type is server selection.

— DNAME = 39, the DNS query type is domain aliases.

— OPT = 41, the DNS query type is DNS option.

— DS = 43, the DNS query type is delegation signer.

— RRSIG = 46, the DNS query type is DNSSEC signature.

— NSEC = 47, the DNS query type is next-secure record.

— DNSKEY = 48, the DNS query type is DNS key record.

— DHCID = 49, the DNS query type is Dynamic Host Configuration Protocol information.

— NSEC3 = 50, the DNS query type is NSEC record version 3.

— NSEC3PARAM = 51, the DNS query type is NSEC3 parameters.

— ANY = 255, the DNS query type is wildcard match.

— ALL = 255, the DNS query type is wildcard match.

Type: RecordType
Accepted values: UNKNOWN, A_AAAA, A, NS, MD, MF, CNAME, SOA, MB, MG, MR, NULL, WKS, PTR, HINFO, MINFO, MX, TXT, RP, AFSDB, X25, ISDN, RT, AAAA, SRV, DNAME, OPT, DS, RRSIG, NSEC, DNSKEY, DHCID, NSEC3, NSEC3PARAM, ANY, ALL, WINS
Position: 1
Default value: None
Accept pipeline input: True
Accept wildcard characters: False

Inputs

None

Outputs

Microsoft.DnsClient.Commands.DnsRecord

The DnsRecord object contains all of the records returned from the wire for the specified DNS query.

Одминский блог

Блог о технологиях, технократии и методиках борьбы с граблями

Ускоряем разрешение доменных имен через resolve.conf

Системный файл /etc/resolv.conf является файлом конфигурации процедур сервера доменных имен. В этом файле хранится информация об используемых DNS серверах, и этот файл перечитывается при вызове процедуры разрешения имен. В файл можно поместить информацию о трех DNS серверах, причем алгорит действия будет таким, что запрос всегда уходит на стоящий первым в списке сервер. В случае если он не отвечает в течении некоторого времени (по умолчанию 5 секунд), то запрос отправляется на вторичный сервер DNS, если он не отвечает, то запрос переходит к третичному серверу DNS. То есть по умолчанию система всегда использует первый из списка сервер, и обращается ко второму и третьему только в случае, если первичный сервер не отвечает.

Но в версии BIND 8.2 были добавлено некоторое количество новых опций, с помощью которых мы можем несколько ускорить работу разрешения доменных имен для нашего сервера:

Читайте также:  Как установить виртуальный windows virtualbox

Опиция timeout позволяет задавать время таймаута для присутствия в очереди запросов. По умолчанию этот параметр равен 5 секундам (максимально 30), так что если мы хотим ускорить отработку запроса, то выставляем этот параметр например на 2 секунды:
options timeout:2

Опция rotate позволяет использовать из списка доменных серверов все адреса, а не только первый, который может быть перегружен многочисленными запросами. Причем вторичный и третичный сервера используются только в случае отказа в обслуживании первого сервера. Поэтому с помощью этой опции мы можем разгрузить первичный сервер и отправить часть запросов на остальные сервера, указанные в resolve.conf
options rotate

Единственно что следует помнить о том что мы используем эту опцию, ибо в случае отладки, например почтового демона, мы никогда не будем знать какой из доменных серверов дал нам ответ на наш запрос. Еще один момент заключается в том, что данная опция будет полезна не всем программам, ибо часть из них, например ping, одноразово инициализирует резолвер и после разрешения имени выходит. Тогда как почтовые демоны, отправляющие многочисленные запросы разрешения доменных имен, будут использовать этот функционал.

Опираясь на все вышесказанное, resolve.conf будет иметь следующий вид:

nameserver 1.1.1.1
nameserver 2.2.2.2
nameserver 3.3.3.3
option rotate
option timeout:2

sergey vasin

The IT blog

Используем встроенную функцию PowerShell в Windows 8 вместо NSLookup – Hey, Scripting Guy! Blog

Резюме: Microsoft Scripting Guy, Ed Wilson продолжает разговор об использовании Windows PowerShell для диагностики DNS.

Microsoft Scripting Guy, Ed Wilson на связи. Вчера я рассказывал об использовании PowerShell для диагностики клиентских настроек DNS. В частности я говорил об определении текущего сервера DNS и клиентском DNS-кеше.

Сегодня мы рассмотрим еще пару функций.

Разрешаем DNS имена

Для того, чтобы выполнить подключение, мне нужно разрешить имя хоста в IP-адрес. Хотя, если быть точным, не мне, а моему компьютеру. Но если имя не будет разрешено должным образом, мое приложение не будет работать. Зачастую, во время путешествий короткий звонок в техподдержку превращается в долгий и мучительный звонок в техподдержку.

Поэтому я предпочитаю выполнить весь процесс траблшутинга самостоятельно, чтобы я мог сказать техподдержке, что им нужно сделать, чтобы решить моб проблему. Один из промежуточных шагов диагностики – это использование старой доброй утилиты NSLookup. Некоторое время назад я использовал специальную графическую утилиту NSLookup. Но это было довольно давно. Когда я начал заниматься консалтингом и мне пришлось работать с разными системами, я начал изучать использование NSLookup в командной строке, поскольку это была единственная утилита, в наличии которой я мог быть уверен. Однако использование NSLookup – это не самая веселая вещь.

«NSLookup» в PowerShell

К счастью мне не обязательно больше использовать NSLookup, поскольку Windows 8, Windows Server 2012 и даже Microsoft Surface обладают встроенным модулем DNSClient. Этот модуль содержит функцию Resolve-DNSName. Она работает просто замечательно (несмотря на тот факт, что сообщество полагает, что она должна называться Get-DNSName).

В наиболее простой форме использования, я просто указываю имя для разрешения в качестве аргумента Resolve-DNSName.

Переходим на systemd-resolved

Установка и первичная настройка systemd-resolved

Для работы с systemd-resolved вам понадобится демон systemd-resolved. В Ubuntu он уже входит в пакет systemd (в 16.04 точно), а вот в Centos 7 его придется доустановить:

yum install systemd-resolved

Так же необходимо убедиться в наличии библиотеки libnss_resolve.so — без нее приложения не смогут связываться с резолвером.

В Centos эта библиотека входит в пакет systemd-resolved, а в ubuntu придется выполнить:

apt install libnss-resolve

Следующим шагом будет правка файла /etc/nsswitch.conf. Находим строчку, начинающуюся с «hosts:» и приводим к виду:

hosts: files resolve

Поясним. Эта строка отвечает за последовательность обращений приложения к системным компонентам с целью резолвинга интересующего приложение имени. В данном случае сначала программа заглянет в файл /etc/hosts и, если не обнаружит там возможностей по разыменованию (совпадения по имени), обратиться уже к демону systemd-resolved с просьбой сделать это для себя любимой. Ранее в этой строке у вас скорее всего было упоминание слова «dns», заставляющее приложение самостоятельно обращаться к DNS серверам с целью резолвинга. Мы удалили эту возможность за более ненадобностью. К тому же этот способ значительно медленнее, чем обращение напрямую к локально установленному демону systemd-resolved, который, к слову, еще и поддерживает кэширование полученных записей. Конечно же, самое первое обращение всё равно будет сопровождаться запросом systemd-resolved к DNS серверам, но потом накопленный кэш существенно ускорит эти операции. Небольшое замечание: конечно же, приложение само не делает никаких обращений — оно просто не умеет. Всё это делается по средствам библиотечных вызовов. Именно поэтому мы доустанавливали библиотеки в начале статьи и именно поэтому использование systemd-resolved эффективнее, потому что библиотечные вызовы быстрее, чем обращения, производимые с использованием стека TCP/IP.

Читайте также:  Windows starter 32 bit iso

Открытым остался вопрос о том, как сообщить systemd-resolved IP-адреса DNS серверов, к которым следует обращаться для разыменования запросов приложений. Можно определить DNS сервера в файле /etc/systemd/resolved.conf, можно их определить в файлах «.network» демона systemd-networkd, а можно, пользуясь DHCP с привлечением того же systemd-networkd получать эти адреса автоматически от сервера DHCP. Но для этого у вас должен быть запущен и настроен systemd-networkd. Если его нет, или вы не хотите его использовать, то единственным вариантом остается /etc/systemd/resolved.conf.

Для целей совместимости с приложениями, которые по каким-либо причинам не используют библиотечные вызовы, а обращаются к DNS серверам напрямую, получая их IP-адреса из /etc/resolv.conf, следует создать символическую ссылку:

ln -svi /run/systemd/resolve/resolv.conf /etc/resolv.conf
ls -la /etc/resolv.conf
lrwxrwxrwx 1 root root 32 дек 13 09:11 /etc/resolv.conf -> /run/systemd/resolve/resolv.conf

Нам остается только запустить сервис и наслаждаться резолвингом с помощью systemd-resolved:

systemdctl enable systemd-resolved
systemdctl start systemd-resolved

LLMNR в systemd-resolved

Отдельного упоминания заслуживает поддержка в systemd-resolved протокола LLMNR (Link-Local Multicast Name Resolution). Этот протокол позволяет узлам в одной сети (широковещательном домене) обращаться друг к другу по имени хоста, не прибегая к услугам DNS вообще. Работает это следующим образом: какая-нибудь программа пытается обратиться к хосту в своей сети по имени, используя, как мы уже упоминали, библиотечные вызовы; локальный DNS-резолвер, как например герой нашей статьи — systemd-resolved, сначала попытается найти запрашиваемый хост в своей сети, делая групповой запрос на адрес 224.0.0.252 для ipv4 и FF02::1:3 для ipv6; если в сети есть хосты с поддержкой LLMNR и среди них окажется тот, имя которого будет соответствовать запрашиваемому, systemd-resolved незамедлительно вернет запрашивающей программе IP-адрес интересующего ее хоста. Однако стоит заметить, что для работы этого протокола очень важно правильно конфигурировать hostname на каждом компьютере в сети. Вы должны использовать короткую нотацию — не FQDN. В linux имя хоста указывается в /etc/hostname. Вы также можете использоать команду ‘hostnamectl set-hostname NAME’ для горячего изменения hostname компьютера. Ну и конечно же, LLMNR должен быть включен в вашем systemd-resolved. Это можно проверить по выводу команды ss:

ss -ntpul | grep 5355
udp UNCONN 0 0 *:5355 *:* users:((«systemd-resolve»,pid=15784,fd=12))
udp UNCONN 0 0 . 5355 . * users:((«systemd-resolve»,pid=15784,fd=11))
tcp LISTEN 0 128 *:5355 *:* users:((«systemd-resolve»,pid=15784,fd=14))
tcp LISTEN 0 128 . 5355 . * users:((«systemd-resolve»,pid=15784,fd=15))

Да, стандартный порт LLMNR — 5355 для TCP и UDP. Если вы обнаружили, что LLMNR порт никем не слушается, проверьте настройки в файле /etc/systemd/resolved.conf — LLMNR должен быть выставлен в «yes».

В завершении статьи небольшое отступление, советы по использованию:

  • Используйте systemd-resolved в паре с systemd-networkd. У вас появится возможность автоматически получать настройки DNS с DHCP сервера
  • Удалите другие локальные кэширующие DNS заглушки — они больше не нужны. К ним относятся dnsmasq и прочие
Оцените статью