Есть ли у DNS какой-либо механизм для пересылки запросов от имени другого лица? Как XFF или «X-Forwarded-For» для HTTP.
В деталях:
У меня сетевая структура, как показано ниже:
(Клиенты) ------> (Маршрутизатор) -----> (модем) ----> ISP
Теперь я хочу router
для перенаправления DNS-запросов клиента на удаленный сервер за пределами локальной сети, что довольно просто. Но также я хочу, чтобы этот удаленный сервер знал, какой клиент отправил этот DNS-запрос. Можно ли использовать только iptables?
Там есть RFC 7871 который из-за недостатков в работе и конфиденциальности еще не имеет статуса стандартов. Он использует опцию EDNS, которая работает очень похоже на X-Forwarded-For с возможностью включать только столько бит адреса, сколько вы сочтете подходящим для вашего случая использования.
Сопоставление этого поля с помощью брандмауэра будет сложной задачей, поскольку оно находится в конце запроса, что означает, что смещение меняется, и пакет может быть фрагментирован так, что его нельзя будет идентифицировать без предварительной повторной сборки пакета. Судя по странице руководства на моей машине, в iptables нет специальных фильтров DNS.
Добавление поля из правила искажения в брандмауэр будет еще более сложной задачей. Таким образом, вам, скорее всего, следует искать решение прикладного уровня, а не брандмауэр, или избегать отправки пакетов через NAT.