安装powerdns
官方的LUA解释:https://doc.powerdns.com/authoritative/lua-records/index.html
在 PowerDNS4.2或更高版本中,新增了 Lua 记录功能。其 Lua 记录的最主要的功能是可以配置宕机自动切换记录。由于 Lua 记录可以使用 Lua 编程语言执行任意代码,相对危险,所以 PowerDNS 默认关闭了这个功能,需要在配置文件中开启:
编辑/usr/local/powerdns/etc/pdns.conf中直接加入以下内容
enable-lua-records=yes
配置如下记录,将返回动态的可用 A 记录。如果两个 IP 的端口都可用(这里是 443 端口),则随机返回一个 IP 地址,若有一个不可用,则只返回可用 IP 的地址,否则同时返回两个 IP:
www.example.com:

  • lua: A "ifportup(443, {'192.5.2.20', '192.5.2.22'})"
    配置如下记录,就可以自动对指定 URL 进行状态检查,默认返回第一组 IP 地址,若第一组 IP 地址不可用,则返回第二组:
    www.example.com:
  • lua: A "ifurlup('https://www.example.com/', {{'192.5.2.21', '192.1.32.12'}, {'202.51.100.25'}})"
    Lua记录还可以与 GeoIP 功能共同使用,且可以与其他类型的记录共存。另外,状态检查并非与请求同步,而是在后台周期性的检查是否可用,所以使用状态检查不会增加 DNS 请求的延迟。

由于DNS查询需要快速回答,因此不会同步检查服务器可用性。在后台,一个过程会定期确定可用性规则中提到的IP地址是否实际上可用。

另一个例子:

www IN LUA A "pickclosest({'192.0.2.1','192.0.2.2','198.51.100.1'})"
这使用GeoIP后端来查找请求者的地理位置和列出的IP地址的指示。它将返回最接近的地址之一。

pickclosest ifportup可以组合如下:

www IN LUA A ("ifportup(443, {'192.0.2.1', '192.0.2.2', '198.51.100.1'}"
", {selector='pickclosest'}) ")
这将从可行的IP地址中选择最接近用户的IP地址。

分类: powerdns 标签: 暂无标签

评论

暂无评论数据

暂无评论数据

目录