海运的博客

PDNS实现智能DNS

发布时间:May 16, 2014 // 分类:DNS // No Comments

PDNS默认不支持bind view功能,通过PowerDNS Recursor加载Lua脚本判断再递归查询PowerDNS实现智能DNS。

#关闭数据包缓存,测试时开启查询时直接读缓存不经过lua preresolve()
disable-packetcache=yes
forward-zones=com=108.61.242.102
local-address=0.0.0.0
lua-dns-script=/tmp/b.lua
#转发所有域到pdns server
forward-zones=.=127.0.0.1:54

lua:

function preresolve ( remoteip, domain, qtype )
    pdnslog("a test message.. received query "..domain.." from "..remoteip.." on "..getlocaladdress());
    ret={}
    if qtype ~= pdns.A then return -1, ret end --非A记录查询跳过,后端查询
    local ips = {"192.168.1.1/32", "10.1.0.0/16", "127.0.0.0/24"}
    if matchnetmask(remoteip, ips) and domain == "www.example.com."
        then
            ret[1]= {qtype=pdns.A, content="85.17.220.215", ttl=86400}
            setvariable()
            return 0, ret
        else
            setvariable()
            return -1, ret 
        end
    end

标签:none

发表评论

分类
最新文章
最近回复
  • crowjin: 你确定这能过滤??不是所有请求都返回空地址::?
  • : linux系统上单个网卡多条宽带拨号获取公网IP,外网可以访问这些IP,有偿! Q:25299...
  • 硅谷少年: 非常有用,感谢分享
  • spartan2: https://dashboard.hcaptcha.com/welcome_accessib...
  • 海运: 应该能,在购买页面先手工跳过cf机器验证,后续一定时间内不更换ip应该不会再次验证。
  • spartan: 大佬斯巴达开启了CF的机器识别验证,请问插件能自动跳过吗? 另外这个脚本有没有简单使用说明,新...
  • vincent: 膜拜大佬
  • 海运: proxy-header或proxy_protocol
  • liangjw: 如果是 内部调用 或者 中间存在 代理 而上一个代理又在内网 ,那怎么处理来自代理私有IP?
  • chainofhonor: 感谢,用dnsmasq设置自动判断BIOS和UEFI成功了