首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将CAA记录添加到dnsmasq?

如何将CAA记录添加到dnsmasq?
EN

Server Fault用户
提问于 2018-05-28 11:22:48
回答 3查看 1.9K关注 0票数 1

我正在尝试将CAA记录添加到使用dnsmasq但尚未成功的DNS服务器中。CAA帮助站点告诉我使用"--dns-rr=sitename“-option,但是我不知道把它们放在哪里。我尝试将它添加到/etc/dnsmasq.conf中,这给了我一个语法错误。我还尝试在命令行中使用它,但这只是尝试启动dnsmasq守护进程本身。

所以,问题是,我如何在dnsmasq中添加CAA记录?

EN

回答 3

Server Fault用户

回答已采纳

发布于 2018-06-03 23:21:52

您需要在配置文件中使用dns-rr关键字,或者在命令行上使用--dns-rrdns-rr|--dns-rr确实是将任意的DNS内容放入诸如AMXPTR等类型之外的方式。

注意它在手册中的使用:

- DNS -RR=,,undefined返回任意的DNS资源记录。数字是记录的类型(总是在C_IN类中)。该记录的值由十六进制数据提供,其形式可以是01: 23 :45或01 23 45或012345,也可以是这些数据的任何混合物。

当然,name是容易的部分,它将是典型的您的域名。

因此,您首先需要为CAA记录找到"RR类型编号“。如果你去DNS R类型上的IANA注册中心搜索CAA,你会发现它是257号。所以257个进入了上面的RR-number部分。

至于hex-data部分,您需要获取要发布的内容,并将其编码为十六进制数据。很多工具都可以帮助你做到这一点。

或者,如果您只是进入https://sslmate.com/caa/,在填写完所有详细信息后,您将看到它为您完成了一切,并给出了您在dnsmasq中所需使用的确切内容,如下面的示例:

--dns-rr=example.com,257,000569737375653B

票数 2
EN

Server Fault用户

发布于 2018-08-09 00:20:23

添加Patrick的答案,主要是为了澄清如何在不依赖第三方服务的情况下实际生成必要的dnsmasq配置条目。

如果您想让dnsmasq提供某些本机不支持的记录类型,您需要给出它应该放在线路上的准确的记录数据。

请注意,DNS是一种二进制协议,因此dnsmasq需要与所需记录数据对应的确切字节序列,而不是您习惯处理的友好的文本表示形式,但却不知道如何将其解释为在线路上发送的实际二进制DNS格式。

--dns-rr配置选项需要以下值:

--dns-rr=<name>,<RR-number>,[<hex data>] 返回任意的DNS资源记录。数字是记录的类型(总是在C_IN类中)。该记录的值由十六进制数据提供,其形式可以是01: 23 :45或01 23 45或012345,也可以是这些数据的任何混合物。

例如,您知道域名(您的域名),并且可以查找RR-号( 记录类型的数字表示,还是dnsmasq不知道CAA是什么)值,但是需要以某种方式生成有线数据格式,并以十六进制的方式对其进行编码,以获得对十六进制数据有效的东西。

示例:

代码语言:javascript
复制
example.com. IN CAA 0 issue "letsencrypt.org"

名称= example.com

RR-number = 257 (这是什么与CAA相对应?)

十六进制数据= CAA规范中描述的二进制格式,然后编码为十六进制字符串

您显然可以手工完成这项工作(基于规范),但是为了更方便地生成有线格式的数据,如上面所示,下面是一个示例python脚本(需要dnspython包,通常与pip一起安装):

代码语言:javascript
复制
#!/usr/bin/env python
import dns.rdata
import io
import binascii

name = "example.com"
rclass = dns.rdataclass.IN
rtype = dns.rdatatype.CAA
rdata = '0 issue "letsencrypt.org"'


rd = dns.rdata.from_text(rclass, rtype, rdata)
f = io.BytesIO()
rd.to_wire(f)
wire_data = f.getvalue()
print "dnsmasq option: --dns-rr=" + name + "," + str(rtype) + "," + binascii.hexlify(wire_data)

它的产出如下:

代码语言:javascript
复制
dnsmasq option: --dns-rr=example.com,257,000569737375656c657473656e63727970742e6f7267
票数 2
EN

Server Fault用户

发布于 2020-08-10 16:15:47

DNSMASQ在2.80版中增加了一个caa-record选项,于2018年10月发布(在最初接受的答案之后)。我加入这个答案,因为这仍然是我在Google上的"dnsmasq“的最高结果。请注意,前面的答案仍然很好,对于较早版本的DNSMASQ是有用的!

caa-record

的手动输入

代码语言:javascript
复制
--caa-record=<name>,<flags>,<tag>,<value>
    Return a CAA DNS record, as specified in RFC6844.

文件示例

代码语言:javascript
复制
caa-record=example.com,0,issue,digicert.com

参考

  • /dnsmasq/docs/dnsmasq-man
  • /dnsmasq/CHANGELOG
票数 2
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/914108

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档