Skip to content

Latest commit

 

History

History
36 lines (25 loc) · 3.03 KB

File metadata and controls

36 lines (25 loc) · 3.03 KB

Разработать сервис обратного днс

Сервис решает задачу получения списка доменов по IP адресу.

Работа DNS сервера настроена таким образом, что он на запрос fqdn он возвращает IP адрес, связанный с этим fqdn. Нам нужно решить обратную задачу. для этого надо хранить у себя в базе список fqdn и регулярно опрашивать dns серверы на предмет какие ip адреса им соответсвуют. ответы сохранять и при поступление запроса к сервису - какие fqdn соответсвуют данному IP, возвращать список из базы

Сервис должен решать следующие задачи:

  • предоставлять REST интерфейс для получения списока fqdn, сохранять его в базе, в одном запросе может приходить до 100к fqdn
  • регулярно обновлять IP адреса загруженных доменов через внешние DNS, частота обновления определяется ttl dns записи
  • предоставлять REST интерфес для получения списка доменов для одного или несколькиз IP адресов. число ip в одном запросе до 10к, ответ должен группировать fqdn для ip. тоесть на вход приходит: ["10.1.1.1", "10.1.1.2"] в ответе должно быть:
{
    "10.1.1.1": ["ya.ru", "vk.com", "video.vk.com","ds01.msk.video.vk.com" "dzen.ru"],
    "10.1.1.2": ["google.ru", "youtube.com", "youtube.com", "news.google.com"],
}

Что нужно сделать

  • реализовать сервис с API для внешних потребителей
  • реализовать сервис с для поддержания базы данных в актуальном состоянии

Нефункциональные требования

  • записей в базе может быть десятки миллиардов
  • нужно получать только A типы dns записей
  • словарь для перебора имен загружается разово в базу ( механизм обновления так же через базу )
  • данные в базе не удаляются и не обновляются, все исторические данные храним, если данные dns изменились, создаем новую запись в базе, старую помечаем как не историческую ( не активную )

Тестовые данные

Для тестов можно использовать список доменов вот отсюда https://github.com/fgont/domain-list