
У меня есть приложение и в приложении можно создавать новые объекты. Когда создается новый объект (например, say hello), я хочу, чтобы URL hello.example.com/hi
всегда указывал на определенный IP.
Нашел три способа добиться этого. Хочу узнать, будет ли задержка в случае большого количества записей DNS и какой из подходов ниже будет работать лучше всего.
- Добавьте запись DNS *.example.com ----> IP_1
Проблема в том, что это также перенаправит нежелательные DNS наIP_1
Каждый раз при создании нового объекта запускайте скрипт и динамически добавляйте определенные DNS.
hello.example.com ----> IP_1 hi.example.com -----> IP_1 .......
Таким образом, будет много сопоставлений. У меня есть одно сомнение: если количество сопоставлений значительно увеличится, увеличится ли время поиска и вызовет ли это задержку?
Использование многоуровневого
*.object.example.com
------>IP_1
решение1
Ваши опасения по поводу обоих подходов необоснованны.
[запись DNS с подстановочными знаками] также перенаправит нежелательные DNS на IP_1
- Ну и что? Если вам нужно несколько записей DNS, это подразумевает, что вы используете службы, которые знают имя хоста (например, http, smtp). Вам все равно нужно настроить поведение, специфичное для имени хоста, для этих служб.
- Вы можете смешивать явные записи DNS с подстановочными знаками — DNS-сервер должен возвращать наиболее точное совпадение.
если количество сопоставлений значительно увеличится, увеличится ли время поиска и вызовет ли это задержку?
Только если вы используете действительно плохо написанный DNS-сервер. У Bind и powerDNS не возникнет с этим проблем.
Если вы все же решили использовать явные записи вместо подстановочных знаков (хотя, возможно, это все еще может быть хорошей идеей для подстановочных знаков), то вам следует создавать новые записи как CNAME, а не как записи A — это действительно упрощает обслуживание/миграцию.