12.18 Примеры
12.18 Примеры
Некоторые реализации программы nslookup позволяют рассмотреть сообщения более подробно. Ниже приводится результат запуска nslookup на хосте Йельского университета и указывается вывод детальной отладочной информации с помощью команды set d2.
Запрос требовал трансляции имени www.microsoft.com в адрес, а в ответе было получено два адреса. Дело в том, что два различных компьютера работают как сервер WWW компании Microsoft и разделяют между собой трафик от клиентов. Если клиент не получает ответа по первому адресу (возможно, при сильной загруженности этой системы), он может обратиться ко второму компьютеру.
> nslookup
Server: DEPT-GW.cs.YALE.EDU Address: 128.36.0.36
> set d2
> www.microsoft.com.
Server: DEPT-GW.cs.YALE.EDU Address: 128.36.0.36
res_mkquery(0, www.microsoft.com, 1, 1)
------
SendRequest(), len 35
HEADER:
opcode = QUERY, id = 5, rcode = NOERROR
header flags: query, want recursion
questions = 1, answers = 0, auth. records = 0, additional = 0
QUESTIONS:
www.microsoft.com, type = A, class = IN
------
------
Got answer (67 bytes):
HEADER:
opcode = QUERY, id = 5, rcode = NOERROR
header flags: response, auth. answer, want recursion,
recursion avail.
questions = 1, answers = 2, auth. records = 0, additional = 0
QUESTIONS:
www.microsoft.com, type = A, class = IN
ANSWERS:
-> www.microsoft.com
type = A, class = IN, ttl = 86400, dlen = 4
inet address = 198.105.232.5
-> www.microsoft.com
type = A, class = IN, ttl = 86400, dlen = 4
inet address = 198.105.232.6
Ответ локального сервера не содержит авторитетных записей и дополнительных сведений. Однако этот сервер получал авторитетность и дополнительную информацию от запрашиваемых им серверов и кешировал такие сведения.
При повторном запросе ответ придет из кеша локального сервера. Так как информация не авторитетна, локальный сервер предоставляет в ответе имена и адреса авторитетных серверов для microsoft.com.
> www.microsoft.com.
Server: DEPT-GW.cs.YALE.EDU
Address: 128.36.0.36
res_mkquery(0, www.microsoft.com, 1, 1)
------
SendRequest(), len 35
HEADER:
opcode = QUERY, id = 8, rcode = NOERROR
header flags: query, want recursion
questions = 1, answers = 0, auth. records = 0, additional = 0
QUESTIONS:
www.microsoft.com, type = A, class = IN
------
------
Got answer (194 bytes):
HEADER:
opcode = QUERY, id = 8, rcode = NOERROR
header flags: response, want recursion, recursion avail,
questions = 1, answers = 2, auth. records = 3, additional = 3
QUESTIONS:
www.microsoft.com, type = A, class = IN
ANSWERS:
-> www.microsoft.com
type = A, class = IN, ttl = 86392, dlen = 4
inet address = 198.105.232.5
-> www.microsoft.com
type = A, class = IN, ttl = 86392, dlen = 4
inet address = 198.105.232.6
AUTHORITY RECORDS:
-> MICROSOFT.COM
type = NS, class = IN, ttl = 172792, dlen = 7
nameserver = ATBD.MICROSOFT.COM
-> MICROSOFT.COM
type = NS, class = IN, ttl = 172792, dlen = 16
nameserver = DNS1.NWNET.NET
-> MICROSOFT.COM
type = NS, class = IN, ttl = 172792, dlen = 7
nameserver = DNS2.NWNET.NET
ADDITIONAL RECORDS:
-> ATBD.MICROSOFT. COM
type = A, class = IN, ttl = 187111, dlen = 4
inet address = 131.107.1.7
-> DNS1.NWNET.NET
type = A, class = IN, ttl = 505653, dlen = 4
inet address = 192.220.250.1
-> DNS2.NWNET.NET
type = A, class = IN, ttl = 505653, dlen = 4
inet address = 192.220.251.1
Отметим, что в обоих запросах о www.microsoft.com. введена конечная точка. Если она опущена, запрос первоначально будет послан с добавленным в конец именем локального домена.
Это демонстрирует запуск запроса на компьютере Йельского университета, подключенном к cs.yale.edu. В следующем примере показаны происходящие при этом события. Запрос был отклонен, но далее автоматически переделан для исключения дополнительных обозначений в конце имени.
> www.microsoft.com
Server: DEPT-GW.CS.YALE.EDU
Address: 128.36.0.36
res_mkquery(0, www.microsoft.com.CS.YALE.EDU, 1, 1)
------
SendRequest(), len 47
HEADER:
opcode = QUERY, id = 6, rcode = NOERROR
header flags: query, want recursion
questions = 1, answers = 0, auth. records = 0, additional = 0
QUESTIONS :
www.microsoft.com.CS.YALE.EDU, type = A, class = IN
...