Если добавить запись поддомена с подстановочными знаками в зону DNS, например:
*. Example.com. 3600 IN A
Какая часть запроса, скажем, somerandomsubdomain.example.com
, должна быть кэширована?
После некоторого исследования я обнаружил, что example.com
будет кэшироваться в разных точках, и, таким образом, мой DNS-сервер может напрямую запрашивать DNS-сервер example.com
для последующего другого случая. example.com
.
Но серверы / маршрутизаторы / ОС при кэшировании также кешируют, что *. example.com
является записью с подстановочным знаком и, следовательно, все будущие запросы для других случайных поддоменов example.com
разрешить немедленно?
Расширение подстановочных знаков происходит только на авторитетных серверах имен, поэтому сама запись с подстановочными знаками никогда не будет кэшироваться. (Во-первых, вам нужно иметь под рукой все обычные записи, чтобы знать, к каким именам на самом деле применяется подстановочный знак.)
Однако можно ожидать кэширования различных записей, полученных в результате расширения подстановочного знака.
Например, если был сделан запрос для foo.example.com. IN A
, и было обнаружено, что это соответствует подстановочному знаку *. Example.com. 3600 IN A 192.0.2.1
полученный ответ foo.example.com. 3600 IN A 192.0.2.1
можно (вероятно, будет) кэшировать.
Серверы могут кэшировать только часть подстановочных знаков, если они могут выполнять передачу зон. Что они имеют тенденцию делать только в том случае, если они принадлежат к одной организации (или различным организациям, работающим в тесном сотрудничестве).
Если они не используют зональные передачи, они выполняют прямой поиск (ваш маршрутизатор наверняка будет делать только это). В этом случае они получат только ответ, который будет выглядеть точно так же, как если бы запись была явно определена, например:
notdefined.example.com 60168 IN A <someip>
Даже если они получат такой ответ, как
*.example.com 60168 IN A <someip>
, им все равно придется искать друг друга запись для example.com, поскольку любая явно определенная запись имеет приоритет над записью с подстановочными знаками. То есть:
*.example.com. 3600 IN A <Some IP>
www.example.com. 3600 IN A <Some IP2>
ftp.example.com. 3600 IN A <Some IP3>