所有(我的英语不是很抱歉。)
让我们开始吧......
我使用BIND9创建了自己的DNS服务器。
已安装: 绑定bind-utils bind-chroot
我的服务器IP是(示例IP):123.456.789.123
一切正常。 (没有cpu更多100%)但我每天都会遇到这个错误。
named[17203]: error (chase DS servers) resolving 'example.com/DS/IN': 123.456.789.123#53
我认为这意味着它无法在我的example.com中找到DS记录。 我尝试搜索这个错误,有些人说我必须关闭dnssec,但为什么? 所以,我试着找到如何修复这个错误,我在这里得到了一些非常好的解释网站。
https://www.os3.nl/2011-2012/students/maikel_de_boer/cia/dnssec
https://www.crc.id.au/configuring-dnssec-on-el6-and-bind-9/
我按照上面网站的所有说明进行操作!对我来说,我有 DNSSEC签名! 我收到了DNSKEY和RRSIG记录。
zone example.com/IN/internal: loaded serial 31125225 (DNSSEC signed)
但是我遇到了新问题!新问题是......当我使用这个命令(样本)
时dnssec-signzone -N INCREMENT example.com
它会创建签名文件,如下所示“example.com.signed”和“dsset-example.com。”
在文件“dsset-example.com”中。拥有我的example.com的DS记录。 但是当我尝试在“dsset-example.com”中使用DS记录时。 (看起来像这样)
example.com. IN DS 64621 5 1 AFF...................FF
example.com. IN DS 64621 5 2 333EFBC.................5FC5 AG....54S
并插入我的“example.com.zone”文件,当我再次尝试(辞职)dnssec-signzone时,我收到如下错误消息:
dnssec-signzone: fatal: 'example.com': found DS RRset without NS RRset
我不知道如何在没有dnssec-signzone错误的情况下将 DS记录添加到example.com.zone文件中。 我想如果我能做到这一点的错误信息:错误(追逐DS服务器)解析'example.com/DS/IN'可能会消失。
我是否必须为DS记录创建subdimain.example.com?我不确定。所以,如果你们知道如何解决这个问题,请告诉我。
非常感谢你。
my:/etc/named.conf
acl "trusted" {
127.0.0.1;
123.456.789.123;
};
options {
listen-on port 53 { any; };
listen-on-v6 port 53 { none; }; # I don't have IPv6
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
auth-nxdomain no;
allow-query { localhost; any; };
recursion no;
dnssec-enable yes;
dnssec-validation yes;
dnssec-lookaside auto;
/* Path to ISC DLV key */
bindkeys-file "/etc/named.iscdlv.key";
managed-keys-directory "/var/named/dynamic";
check-names master ignore;
};
logging {
channel default_debug {
file "data/named.run" size 5m;
severity dynamic;
print-time yes;
};
category default { default_debug; };
};
include "/etc/rndc.key";
controls {
inet 127.0.0.1 allow { localhost; }
keys { "rndc-key"; };
};
view "localhost_resolver" {
match-clients { localhost; };
match-destinations { localhost; };
recursion yes;
empty-zones-enable yes;
// all views must contain the root hints zone
include "/etc/named.root.hints";
include "/etc/named.rfc1912.zones";
};
view "internal" {
match-clients { trusted; }; # match hosts in acl "trusted" above
recursion yes; # allow recursive queries
allow-recursion { trusted; };
allow-transfer { trusted; };
notify no; # disable AA notifies
empty-zones-enable yes;
// all views must contain the root hints zone
include "/etc/named.root.hints";
include "/etc/named.domains";
};
view "external" {
match-clients { any; };
recursion no;
allow-transfer { none; };
// all views must contain the root hints zone
include "/etc/named.root.hints";
include "/etc/named.domains";
};
文件/etc/named.root.hints是:
// all views must contain the root hints zone
zone "." IN {
type hint;
file "named.ca";
};
我的/etc/named.domains文件: (替换为签名文件“example.com.signed”)
zone "example.com" IN {
type master;
file "example.com.signed";
allow-update { none; };
};
我的example.com区域文件(看起来像这样):
$TTL 3h
$ORIGIN example.com.
@ 1D IN SOA ns1.example.com. hostmaster.example.com. (
2011051202 ; serial (d. adams)
3H ; refresh
15M ; retry
1W ; expiry
1H ) ; minimum
@ 3600 IN NS ns1.example.com.
; Domain Keys
default._domainkey IN TXT ( "v=DKIM1; k=rsa; "
"p=A0GCSq................G/o+Q" )
; NS
example.com. IN NS ns1.example.com.
; DNS Records
example.com. IN A 123.456.789.123
localhost IN A 127.0.0.1
ns1 IN A 123.456.789.123
www IN A 123.456.789.123
; DNSSEC KEY FROM Kexample.com.+....key
example.com. IN DNSKEY 256 3 5 CH....................bYd+mARYse.................VCb
example.com. IN DNSKEY 257 3 5 qX....................TYPDIsfso.................cEers
这个应该有标签dnssec,但是这个网站需要超过1500的声誉来创建一个新标签。 :(
答案 0 :(得分:0)
答案是,我认为:你不能。你不应该这样做。 DS记录应该提供给您的域名注册商,他们应该发布它们。我们的想法是,DS记录建立了一个信任链,从最顶级的根域服务器,到您的注册商,再到您。没有信任链,你可能......谁知道......一些劫机者发布了一个恰好是dnssec签名的虚假区域(因此看起来像#34;合法的#34;)。