Якщо запустити nslookup і ввімкнути налагодження, ви побачите, що Windows завжди намагається спочатку додати свій суфікс.
C:\>nslookup
Default Server: itads.example.com
Address: 0.0.0.0
> set debug=true
> www.yahoo.com
Server: itads.example.com
Address: 0.0.0.0
------------
Got answer:
HEADER:
opcode = QUERY, id = 2, rcode = NXDOMAIN
header flags: response, auth. answer, want recursion, recursion avail.
questions = 1, answers = 0, authority records = 1, additional = 0
QUESTIONS:
www.yahoo.com.example.com, type = A, class = IN
AUTHORITY RECORDS:
-> example.com
ttl = 3600 (1 hour)
primary name server = itads.example.com
responsible mail addr = itads.example.com
serial = 12532170
refresh = 1200 (20 mins)
retry = 600 (10 mins)
expire = 1209600 (14 days)
default TTL = 3600 (1 hour)
------------
------------
Got answer:
HEADER:
opcode = QUERY, id = 3, rcode = NOERROR
header flags: response, want recursion, recursion avail.
questions = 1, answers = 4, authority records = 0, additional = 0
QUESTIONS:
www.yahoo.com, type = A, class = IN
ANSWERS:
-> www.yahoo.com
canonical name = www.wa1.b.yahoo.com
ttl = 241 (4 mins 1 sec)
-> www.wa1.b.yahoo.com
canonical name = www-real.wa1.b.yahoo.com
ttl = 30 (30 secs)
-> www-real.wa1.b.yahoo.com
internet address = 209.131.36.158
ttl = 30 (30 secs)
-> www-real.wa1.b.yahoo.com
internet address = 209.191.93.52
ttl = 30 (30 secs)
------------
Non-authoritative answer:
Name: www-real.wa1.b.yahoo.com
Addresses: 209.131.36.158, 209.191.93.52
Aliases: www.yahoo.com, www.wa1.b.yahoo.com
Як ви бачите вище, моя машина спершу спробувала пошукати www.yahoo.com.example.com, і сервер DNS відповів NXDOMAIN
(запис не знайдено). Ви можете підтвердити це, запустивши nslookup www.yahoo.com.
(зверніть увагу на крапку в кінці .com!), І ви побачите, що це вирішено нормально.
Що відбувається, що ваш зовнішній DNS-сервер відповідає, що у них є запис для "www.yahoo.com.example.com", і повертає вашу IP-адресу для кореня вашого сайту. Я не впевнений, якою послугою ви користуєтесь, але я здогадуюсь, що у вас є відображення підстановки, яке повідомляє ваш сервер відповідати на будь-який невідомий запит з дійсною відповіддю, а не повертатися NXDOMAIN
. Вам потрібно перевірити ще раз свої настройки для сервера і переконайтеся , що він встановлюється тільки відповідати на запити для записів він на самому справі має ( example.com
, www.example.com
, mail.example.com
і т.д.).
Пам'ятайте, що DNS працює, перевіряючи налаштований сервер і працюючи звідти. Запит DNS може пройти такий шлях, як наступний малюнок (звичайно, це лише приклад, це, мабуть, неправильно): Машина -> локальний маршрутизатор DNS (linkys) -> DNS провайдера -> (2-й DNS провайдера?) -> Root DNS сервера -> TLD DNS -> Ваш зовнішній DNS-сервер. Хтось на цьому шляху говорить, що www.yahoo.com.example.com
існує. Ймовірно, це ваш зовнішній DNS-сервер.
EDIT
Я подумав, що включу ще один примх про випадковість, яку ви згадуєте. Якщо це справді відбувається епізодично, у вас може бути неправильно налаштований зовнішній сервер DNS або їх провайдер може надавати службу викрадення DNS. На жаль, я бачив, що все більше і більше приватних Інтернет-провайдерів надають "послугу пошуку" для недійсних доменних імен. Оскільки майже всі кінцеві користувачі використовують свої DNS-сервери провайдерів, то тепер Інтернет-провайдери починають перенаправляти недійсні записи домену на сторінку пошуку - зазвичай це об’ява, нерелевантні посилання та невелике "Ви мали на увазі www.example.com?" з деякими результатами, які можуть бути або не пов’язані з доменним іменем. Я знаю, що Verizon і Comcast починають це робити, я вважаю, що Quest також починає. Іншою можливістю є OpenDNS, оскільки вони забезпечують той самий "пошук пов'язаного домену", якщо він не '
Моя проблема з тим, що я вважаю, що проблема полягає в тому, що ви говорите, що вона повертає адресу вашої кореневої записи, що жодне з них не зробило б, якби вони намагалися її шукати, вони дадуть вам IP-адресу одного їх веб-серверів для обробки пошуку.