Вчера я заметил, что клиент (у которого достаточно знаний в области сетевых технологий, чтобы быть опасным) испортил одну из своих записей сервера имен. Недавно мы переехали к другому провайдеру колокации, и ns2.his-domain.com указывал на сеть в недавно освобожденном кабинете. Я проинструктировал его: «перейдите к своему регистратору и измените IP-адрес, на который указывает этот сервер имен, потому что до этого момента у вас будет только один рабочий сервер имен для всех доменов ваших клиентов».
Из-за разницы часовых поясов - он живет в Европе, а я в США - мы не могли разговаривать вживую.
Этим утром я обнаружил, что он использовал дробовик для решения этой проблемы. Он не только изменил ns2.his-domain.com так, чтобы он указывал на правильный IP-адрес, но и приступил к созданию дополнительных записей хоста - на уровне регистратора, используя их веб-инструменты для создания серверов имен - для каждый имя хоста, которое он когда-либо использовал в прошлом, и некоторые, которые, как он думал, могут понадобиться в будущем, все они указывают на один и тот же IP-адрес.
ns3.his-domain.com, ns4.his-domain.com, www.his-domain.com, ftp.his-domain.com, kirk.his-domain.com, spock.his-domain.com, scotty. his-domain.com и т. д. - все это теперь можно искать с помощью Whois, минуя наш локальный сервер имен, загромождая корневое пространство имен. Он создал около двадцати записей о хостах в реестре домена, и все они указывают на один и тот же IP-адрес.
Я чувствую, что это очень и очень плохо. Это разрушает фундаментальную структуру DNS, которая должна быть иерархической!
Каковы последствия этого? Есть ли что-нибудь в стандартах - в RFC или где-либо еще - что запрещает это и описывает, что может произойти в результате?
Пример (имя изменено в защиту виноватых :)
$ whois spock.his-domain.com
Whois Server Version 2.0
Server Name: SPOCK.HIS-DOMAIN.COM
IP Address: 22.33.44.55
Registrar: COMPUTER SERVICES LANGENBACH GMBH DBA JOKER.COM
Whois Server: whois.joker.com
Referral URL: http://www.joker.com
Пара вещей:
Я не думаю, что это очень, очень плохо с точки зрения того, что ничего не произойдет, кроме того факта, что его пространство имен не будет разрешено правильно и последовательно, пока это не будет исправлено.
Что касается иерархии, это не изменилось. Его пространство имен и записи DNS по-прежнему находятся на одном уровне иерархии. Создание нескольких серверов имен не меняет место его пространства имен в иерархии.
Серверы gTLD не заботятся о том, сколько у него серверов имен. Они будут искать NS для его пространства имен и направлять DNS-запросы для его пространства имен на все перечисленные серверы имен. Поскольку серверы gTLD не выполняют рекурсию, это не создает дополнительной нагрузки на них. DNS-клиент (DNS-сервер от имени клиента) спросит сервер gTLD, ответственный за соответствующий домен gTLD (.com, .edu и т. Д.), Где найти его пространство имен, и сервер gTLD направит их на серверы имен. перечисленные. Затем DNS-клиент запросит один из перечисленных серверов имен.
Я не считаю это серьезной проблемой, за исключением нестабильного разрешения имен и неудач. Чтобы исправить это, просто снова войдите на сайт своего регистратора и удалите ошибочные записи.
Насколько мне известно, ничто в стандартах не запрещает делать то, что он сделал, но это определенно не "правильно" - записи, созданные у вашего регистратора, должны использоваться только для склеивания NS, и включение других записей может привести к чрезмерным нагрузка на корневые серверы.
В этом случае я считаю, что серверы верхнего уровня (.com) вернут имеющуюся у них запись A, а не направят запрос на сервер имен вашего клиента - это определенно не то, что они хотят, поэтому ошибочные записи следует удалить.
Если кто-то может указать на конкретный документ RFC / STD, который запрещает или осуждает такое поведение, было бы неплохо иметь возможность процитировать и это :-)