Я ищу решение уровня DNS, которое перенаправляет пользователя на определенный IP-адрес при первом посещении, а затем направляет его на правильный IP-адрес при последующих посещениях.
Таким образом, идея состоит в том, например, что если пользователь посещает «malicioussite.com», в первый раз, когда он пытается разрешить это DNS-имя, оно преобразуется в IP-адрес внутреннего веб-сервера, показывая им предупреждение.
При последующих решениях пользователи получат фактический IP-адрес, чтобы они могли посетить сайт.
Как этого добиться? Я действительно гибкий в выборе того, что я могу использовать, если это на уровне DNS.
Так не пойдет.
И то, и другое, потому что DNS не отслеживает, кто какой адрес разрешил. и потому что ваши DNS-серверы вряд ли будут опрошены при втором посещении. Вместо этого старый ответ будет сохранен (кэширован).
Это невозможно на уровне DNS, потому что DNS не отслеживает, кто какой адрес разрешил.
Я не знаю какого-либо готового программного обеспечения DNS, которое могло бы это сделать, однако у вас есть вариант, если вы можете написать логику для этого самостоятельно. PowerDNS имеет бэкэнд канала, который отправляет запросы по каналу в предоставленную вами программу. Он предоставит удаленный адрес, чтобы вы могли теоретически отслеживать, какие запросы вы видели раньше, и действовать в соответствии с ними.
http://doc.powerdns.com/backends-detail.html#pipebackend-protocol
Тем не менее, если это внутренняя служба, то, вероятно, было бы намного проще просто использовать прозрачную прокси-систему, которая позволяет вам захватывать запросы и обслуживать ваш собственный контент для вашего предупреждения.