我已经环顾networking寻找一个解决scheme,并已发现许多不同的build议的线程。 我发现的大多数已经在parsing器上使用LUA来返回logging。 其他职位build议使用GEO-IP或pipe道后端。 我读过的所有内容都使用过
我很想知道是否有可能通过LUA根据networking范围更改转发器,而不是使用LUA来存储区域信息。
如果我能得到类似于下面的逻辑工作,我应该全部设置:
if sourceip comes from (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16) { forwarder = 192.168.0.1; }else{ forwarder = 8.8.8.8; }
我没有看到来自pdns的任何LUA示例,这些示例演示了如何更改PDNS本身内的任何设置,并且好奇如果这甚至是可能的。
PowerDNS Server和Recursor都不能像BIND那样支持水平分割设置。
你可以通过例如在recursor中运行Lua代码来解决这个问题,直接提供你想要为特定子网服务的答案,但是你已经发现你不能操纵查询将从Lua转发到哪里。
PowerDNS系列代码中新增加了一个DNS负载均衡器,它可以在Lua中进行编程,使您可以根据DNS协议允许的任何事情发送查询,以完成不同的名称服务器。 请参阅http://dnsdist.org/和https://github.com/PowerDNS/pdns/blob/master/pdns/README-dnsdist.md 。 Split Horizon示例将分割recursion和非recursion查询,但您可以根据源地址(例如,通过addPoolRule(netmask,pool))来分割它。
顺便说一句。 当你全部用大写字母写的时候,Lua人不喜欢它。 请参阅http://www.lua.org/about.html “名称是什么”;-)