Вопрос или проблема
Я ищу решение для динамической выдачи DNS-ответов в зависимости от IP-адреса клиента или номера автономной системы (AS). В моей текущей настройке используется Cloudflare как DNS-поставщик только для DNS, но из-за сетевых ограничений мне нужно направлять трафик от определенных Интернет-поставщиков (ISP).
Я исследовал управление DNS на основе геолокации, но все мои клиенты находятся в одной стране. Вместо этого я хотел бы возвращать IP-адреса на основе их номера AS, чтобы определить ISP или, если это невозможно, диапазоны исходных IP-адресов. Это позволило бы мне экспортировать диапазоны IP, связанные с каждым ISP под их соответствующим ASN.
Вопрос: Возможно ли использовать какое-либо облачное DNS-решение с необходимыми функциями, или мне нужно запускать свой собственный локальный DNS-сервер для достижения этой конфигурации?
ps: использовал искусственный интеллект, чтобы сделать вопрос более красивым, извините
Я могу ошибаться, но я не думаю, что DNS явно поддерживает ASN. Для этого вам нужны данные whois. Большинство DNS-серверов позволят использовать поведение с разделением зоны — обычно на основе IP-адреса клиента. Но запуск авторитетного публичного DNS-сервера — плохая идея, если вы точно не знаете, что делаете.
Возможно ли использовать какое-либо облачное DNS-решение
Какое-либо облачное DNS-решение? Нет. Рекомендации по продуктам здесь неуместны. Если вы хотите настраивать ответы на основе номеров ASN, то ваш выбор, вероятно, будет очень ограничен. Также имейте в виду, что место нахождения клиента не совпадает с местом нахождения DNS-сервера, который запрашивает от имени клиента.
Ответ или решение
Динамическое управление DNS-ответами на основе источника AS-номера представляет собой задачу, которая требует специального подхода, поскольку стандартные решения DNS не имеют встроенной поддержки автоматического определения ASN. Однако существуют варианты, которые могут помочь вам достичь поставленной цели.
Варианты решения
-
Запрос информации об ASN через WHOIS:
Поскольку DNS не предоставляет прямой информации об AS-номерах, вам нужно будет объединить данные WHOIS для определения соответствующего AS для каждого IP-адреса. Это можно сделать, создавая промежуточный DNS-сервер, который будет обрабатывать запросы и на основе клиентского IP-адреса запрашивать нужную информацию по WHOIS для определения ASN. -
Использование специализированных DNS-решений:
Хотя стандартные облачные DNS-сервисы, такие как Cloudflare, не поддерживают такую функциональность, существуют более специализированные решения DNS, например, Amazon Route 53 или NS1, которые позволяют настраивать DNS на основе геолокации или IP-адресов. Некоторые из них могут быть адаптированы для работы с пользовательскими скриптами или API для решения вашей задачи. Но следует учитывать, что интеграция с WhoIs может потребовать дополнительной настройки. -
Собственный DNS-сервер:
Если ваши требования довольно сложные и не могут быть выполнены с помощью существующих облачных решений, создание собственного DNS-сервера может стать наилучшим вариантом. Вы можете использовать программное обеспечение, такое как BIND или PowerDNS, и реализовать логику обработки для определения ASN после получения исходного IP-адреса клиента. Это обеспечивает максимальное управление и гибкость. -
Использование API для IP-геолокации и ASN:
Существует множество сторонних API, которые предоставляют информацию о геолокации и ASN на основе IP-адресов (например, IPinfo, MaxMind и др.). Вы можете интегрировать этот API с вашим DNS-сервером, чтобы динамически адаптировать DNS-ответы в зависимости от данных о клиентском IP-адресе. -
Механизм кэширования:
Если вы разрабатываете собственное решение, учитывайте использование кэширования для уменьшения числа запросов к WHOIS или внешним API. Это позволит снизить нагрузку и сократить задержки.
Заключение
Таким образом, хотя облачные решения DNS не предоставляют встроенной поддержки для работы с AS-номерами, вы можете либо адаптировать существующие сервисы, либо создать собственный DNS-сервер с необходимой логикой обработки. Учитывайте потребности вашего бизнеса, ожидаемую нагрузку и уровень технической поддержки, который вы готовы обеспечить, перед тем как сделать выбор.