Я пытаюсь заставить pnds-recursor преобразовывать имя хоста в другую запись A, когда запрос поступает из внутренней сети (так как тогда он будет маршрутизироваться через VPN).
Для этого я ' Мы настроили скрипт LUA, который реализует функцию предварительного разрешения:
pdnslog("pdns-recursor Lua script starting!", pdns.loglevels.Warning)
function preresolve(dq)
if dq.qtype == pdns.A
then
if dq.qname:equal("<host.to.resolve>")
then
dq.rcode=0 -- make it a normal answer
netMask = newNMG()
netMask:addMask("172.28.0.0/14")
netMask:addMask("xxxx:xxx:5:f1:0:0:0:0/64")
if netMask:match(dq.remoteaddr)
then
dq:addAnswer(pdns.A, "<internal IP>")
else
dq:addAnswer(pdns.A, "<public IP>")
end
return true
end
end
return false
end
Теперь странная вещь: для некоторых клиентов, которые приходят из 192.168.23.x, это работает, для других он возвращает внутренний IP, хотя удаленный IP-адрес клиента не входит в указанные выше диапазоны.
Кто-нибудь знает, почему он не работает должным образом?
Спасибо