resty-dns-client
resty-dns-client-2.2.0
$ opm get zhangbao0325/resty-dns-client
概述
包含 DNS 客户端、多个实用程序和负载均衡器的 Lua 库。
该模块目前仅限于 OpenResty,并且构建在 `lua-resty-dns` 库之上。
功能
解析 A、AAAA、CNAME 和 SRV 记录,包括端口。
解析
/etc/hosts
。解析
/resolv.conf
并应用LOCALDOMAIN
和RES_OPTIONS
变量。将 DNS 查询结果缓存到内存中。
同步请求(多个请求者的单个请求,例如,当缓存 TTL 在高负载下过期时)。
toip
对查询结果应用本地(加权)轮询方案。用于轮询和一致哈希方法的环形均衡器。
版权和许可
版权:(c) 2016-2018 Kong, Inc.
作者:Thijs Schreijer
许可证:Apache 2.0
测试
测试使用 busted
执行,但由于它们在 resty
cli 工具中运行,因此您必须使用 rbusted
脚本。
历史
版本控制严格基于 语义版本控制
2.2.0 (28-Aug-2018) 修复和新选项
新增:一个新的选项
validTtl
,如果设置,将强制覆盖接收到的任何有效答案的ttl
值。 问题 48。修复:删除多行日志条目,现在编码为单行 JSON。 问题 52。
修复:始终注入
localhost
值,即使它不在/etc/hosts
中。 问题 54。修复:为 Amazon Route 53 域名服务器添加了解决方法,该域名服务器回复
ttl=0
,而记录具有非 0 ttl。 问题 56。
2.1.0 (21-May-2018) 修复
修复:均衡器的轮询方案从随机位置开始,以防止所有工作者从相同的对等方开始。
修复:均衡器不再为没有端口的 SRV 记录返回
port = 0
,现在返回默认端口。修复:不支持地址中带有范围的 IPv6 域名服务器。此修复将简单地跳过它们,而不是在解析时抛出错误。修复了 问题 43。
次要:改进了均衡器中的日志记录。
次要:将失败的 DNS 查询的重新查询默认间隔从 1 秒放宽到 30 秒。
2.0.0 (22-Feb-2018) 主要性能改进(均衡器)和错误修复
重大变更:改进了大型均衡器的性能和内存占用。将使用 80-85% 的更少内存,而创建时间下降了 85-90%。由于
host:getPeer()
函数签名已更改,因此这是一个重大变更。更改:重大变更 仅缓存查找失败和空记录的错误已更改。
修复:不要在没有域名服务器的情况下失败初始化。
修复:正确识别
/etc/hosts
文件中方括号中的 IPv6。修复:不要将成功类型设置为我们不寻找的类型。修复了 Kong 问题 #3210。
修复:将附加部分中的记录存储在缓存中。
修复:不要用空记录覆盖客户端缓存中的陈旧数据。
1.0.0 (14-Dec-2017) 修复和 IPv6
更改:重大变更 所有 IPv6 地址现在都以方括号返回。
修复:正确识别方括号中的 IPv6 地址。
0.6.3 (27-Nov-2017) 修复和标记不健康的对等方
新增:标记地址为失败/不健康的标志,请参阅
setPeerStatus
。新增:回调以接收均衡器更新;添加到/从均衡器中删除的地址(例如,在 DNS 更新之后)。
修复:现在支持权重为 0 的 SRV 记录条目。
修复:最后一个主机名解析失败(均衡器)。
0.6.2 (04-Sep-2017) 修复和重构
修复:均衡器未为命名 SRV 条目返回主机名。请参阅 问题 #17。
修复:修复偶尔失败的测试。
重构:从记录中删除元数据,而是将其存储在自己的缓存中。
0.6.1 (28-Jul-2017) 调整随机化
更改:使用不同的随机器进行环形均衡器,以便以完全相同的状态可预测地重新创建均衡器(添加了
lrandom
库作为新的依赖项)。
0.6.0 (14-Jun-2017) 重新编写解析器核心以异步解析
新增:只要有可能,解析将异步完成。为了使这能够正常工作,引入了新的设置
staleTtl
,它决定在后台查询进行时陈旧记录将返回多长时间。更改:重大变更!以前返回和获取解析器对象的几个函数不再这样做。
修复:如果查询类型不是 A 或 AAAA,则不再将 IP 地址作为名称查找。
修复:查询后将名称规范化为小写。
修复:为主机文件条目和 IP 地址设置上次成功类型。
0.5.0 (25-Apr-2017) 实现 SEARCH 和 NDOTS
删除:重大变更!
stdError
函数已删除。新增:实现了
search
和ndots
选项。更改:
resolve
不再将空结果或 DNS 错误作为表返回,而是作为 Lua 错误(nil + error
)。更改:
toip()
和resolve()
还有一个额外的结果;历史记录。一个包含尝试的名称/类型/结果列表的表。修复:
resolv.conf
中的超时和重传选项被client
模块忽略。修复:具有 IPv6 地址的域名服务器将无法正确使用。还添加了一个标志
enable_ipv6
(默认值 ==false
)以启用 IPv6 域名服务器的使用。
0.4.1 (21-Apr-2017) 错误修复
修复:CNAME 记录缓存导致过多的 DNS 查询,请参阅 Kong 问题 #2303。
0.4.0 (30-Mar-2017) 错误修复
更改:重大变更!修改了哈希处理,现在必须是大于 0 的整数。
新增:重大变更!一个重试计数器,以便在散列重试上贯穿(更改了
getpeer
签名)。修复:未遵守 MAXNS(3),因此会从
resolv.conf
文件中解析超过 3 个域名服务器。修复了 Kong 问题 #2290。新增:两个方便的哈希函数。
性能:一些改进(为插槽列表预分配表)。
0.3.2 (6-Mar-2017) 错误修复
修复:清理禁用的地址但未删除它们,导致在重复添加/删除时出现错误。
修复:重新查询 DNS 记录时可能发生的竞争条件。
修复:当均衡器对象在运行计时器时被释放时,可能发生的内存泄漏。
0.3.1 (22-Feb-2017) 错误修复
Kubernetes DNS 为单个节点返回 SRV 记录,其中目标是相同的名称(因此导致递归循环)。现在这些条目将被删除,如果剩下的条目为空,它将使 SRV 查找失败,导致贯穿到下一个记录类型。
Kubernetes 倾向于在没有提供/设置端口的情况下返回端口 0,因此
toip()
函数现在忽略port=0
并回退到传入的端口。
0.3.0 (8-Nov-2016) 重大更新
重大变更:重命名了许多东西;方法名、模块名等,几乎破坏了一切……也以新名称发布。
功能:添加了 udp 函数
setpeername
(客户端)。修复:不要为 ttl=0 请求同步 DNS 查询(客户端)。
修复:完整的测试覆盖率和伴随修复(环形均衡器)。
功能:为失败的 DNS 查询自动重试(环形均衡器)。
功能:现在支持在不删除/重新添加的情况下更新权重(环形均衡器)。
更改:为失败的 DNS 查询配置自动重试间隔(环形均衡器)。
更改:为 ttl=0 DNS 记录配置最大生命周期间隔(环形均衡器)。
0.2.1 (24-Oct-2016) 错误修复
修复:
toip()
在仅包含 1 个条目的 SRV 记录上失败。
0.2 (18-Oct-2016) 添加了均衡器
修复:即使从缓存中提供服务,也会创建解析器对象。
更改:更改解析器顺序(SRV 现在默认情况下是第一个),用于为每个条目创建 SRV 和 A 记录的 DNS 服务器。
功能:使解析器顺序可配置。
功能:环形均衡器(实验性,尚未提供完整的测试覆盖率)。
其他:为 DNS 客户端提供了更多测试覆盖率。
0.1 (09-Sep-2016) 初始发布版本
作者
zhangbao0325
许可证
mit
版本
-
resty-dns-client-2.2.0 2019-04-16 10:15:36