我正在努力探索 DNS 上的精彩世界。
我为 example.com 创建了一个区域文件,其中包含:
@ A 1.2.3.4
* A 1.2.3.4
Run Code Online (Sandbox Code Playgroud)
但是,我也在设置我的本地 DNS,local.example.com,我创建了一个单独的区域文件,用于包含以下内容:
machine1 A 192.168.0.1
machine2 A 192.168.0.2
Run Code Online (Sandbox Code Playgroud)
当我挖掘 machine1.local.example.com 时,它返回 A 记录 192.168.0.1,太好了。
可悲的是,badmachine.local.example.com 返回 1.2.3.4,local.example.com 也是如此。
我不确定防止这种情况的最佳方法。如果我将以下内容添加到 local.example.com 空 A 记录将返回上述 2 个示例,这是我想要的行为:
@ A
* A
Run Code Online (Sandbox Code Playgroud)
我希望 any.example.com 使用通配符,除了 local.example.com 子域中的任何内容,除非指定,否则我不想给出响应。本质上,我需要一张带有一个排除项的通配符。
这是允许的吗?这是最佳实践,还是我做的事情非常错误?我正在使用带有 BIND 后端的 PowerDNS。
谢谢你的想法!
我有几个服务,最显着的是 nginx 和 ntpd,它们依赖于有效的 DNS 解析才能正常启动。现在,这些服务都没有在启动时正确启动,但在机器启动后手动干预时确实启动良好,日志中的一些消息是关于无法解析名称的。
这让我相信我与 systemd 存在竞争条件。我的服务器指向 127.0.0.1 作为其名称服务器。绑定到 localhost:53 的是 pdns-recursor。我已经将 ntp 和 nginx 设置为 WantedBy pdns-recursor 在它们的单元文件中,如下所示
[Unit]
WantedBy=pdns-recursor.service
Run Code Online (Sandbox Code Playgroud)
但是,我仍然在 nginx 和 ntp 中收到有关无法在启动时解析名称的日志消息。
如何在这些服务尝试启动之前验证 DNS 已完全启动?我正在使用 Ubuntu 16.04
Aug 09 22:35:25 host.blah ntpd[3574]: restrict: ignoring line 21, address/host 'ntp.blah' unusable.
Aug 09 22:35:26 host.blah ntpd[3574]: restrict: ignoring line 23, address/host 'ntp.blah' unusable.
Aug 09 22:35:28 host.blah ntpd[3574]: restrict: ignoring line 25, address/host 'ntp.blah' unusable.
Aug 09 22:35:29 host.blah ntpd[3574]: restrict: ignoring line 27, address/host 'ntp.blah' …Run Code Online (Sandbox Code Playgroud) 请允许我先设置场景。
我们曾经使用 Bind9,但放弃了它而转而使用 PowerDNS,因为坦率地说,Bind 很糟糕。
我们的 DNS 主机中有一个“主要”区域。 london.wibblesplat.com
还有其他区,oob.london.wibblesplat.com
非 oob 区域中的大多数地址都在192.168.0.0/16. dns-1 服务器的 IP范围内192.168.123.140。(我不确定这是否相关)。
我想向范围内的 oob.london.wibblesplat.com 区域添加一些带外 (oob) 访问 IP 172.16.254.0/24
这就是驱动 powerdns 的数据库中的内容。
powerdns=# select * from records where name like '%switch%';
id | domain_id | name | type | content | ttl | prio | change_date | ordername | auth
--------+-----------+----------------------------------------------------+------+---------------+------+------+-------------+-----------+------
190709 | 24 | renderchassis-1-switch-A1.london.wibblesplat.com | A | 172.16.254.12 | 3600 | 0 | 1328715923 | |
190710 | 24 | …Run Code Online (Sandbox Code Playgroud) 尝试将完整区域从 PowerDNS 服务器传输到 Bind9 服务器时遇到问题。奇怪的是,PowerDNS 服务器上有多个区域作为隐藏主服务器(带有 MySQL 后端),但只有一个区域无法传输到 Bind9 服务器。
两台服务器运行的是 Ubuntu 16.04 LTS。和:
Bind9 从属区域配置如下:
zone "example.net" {
type slave;
file "/var/lib/bind/slaves/db.example.net";
masters {
10.0.0.1;
};
};
Run Code Online (Sandbox Code Playgroud)
PowerDNS 的 DNS 区域是:
% sudo pdnsutil show-zone example.net
This is a Master zone
Last SOA serial number we notified: 2016050801 == 2016050801 (serial in the database)
Zone is not actively secured
Metadata items: None
No keys for zone 'example.net.'.
% sudo pdnsutil list-zone …Run Code Online (Sandbox Code Playgroud) 我最近编写了一个脚本,可以自动将新的子域记录输入到 PDS mySql 数据库中。现在,如果我使用区域管理手动输入条目,我的子域可以 100% 工作。现在,如果我使用简单的 SQL 插入字符串添加它,例如"insert into records (domain_id, name,type,content,ttl,prio) values(";它不起作用,我被告知我需要更新 SOA 序列,我这样做了,但它只是不想生效。我执行以下操作date(Ymd)."01",但这不起作用,任何建议将不胜感激
据我所知,这个问题与 PowerDNS 无关。这些服务器运行两个软件包pdns-static-3.0.1-1.i386.rpm并pdns-recursor-3.3-1.i386.rpm运行最新版本的 Amazon Linux。
亚马逊 ec2 负载均衡器分配有多个主机的 CNAME。下面是实际行为的示例。请注意主机如何始终保持相同的顺序。
[root@localhost ~]# host cache.domain.com
cache.domain.com is an alias for xxxxx.us-east-1.elb.amazonaws.com.
xxxxx.us-east-1.elb.amazonaws.com has address aaa.aaa.aaa.aaa
xxxxx.us-east-1.elb.amazonaws.com has address bbb.bbb.bbb.bbb
[root@localhost ~]# host cache.domain.com
cache.domain.com is an alias for xxxxx.us-east-1.elb.amazonaws.com.
xxxxx.us-east-1.elb.amazonaws.com has address aaa.aaa.aaa.aaa
xxxxx.us-east-1.elb.amazonaws.com has address bbb.bbb.bbb.bbb
[root@localhost ~]# host cache.domain.com
cache.domain.com is an alias for xxxxx.us-east-1.elb.amazonaws.com.
xxxxx.us-east-1.elb.amazonaws.com has address aaa.aaa.aaa.aaa
xxxxx.us-east-1.elb.amazonaws.com has address bbb.bbb.bbb.bbb
Run Code Online (Sandbox Code Playgroud)
主机的预期行为是循环赛
[root@localhost ~]# host cache.domain.com
cache.domain.com is an alias for xxxxx.us-east-1.elb.amazonaws.com.
xxxxx.us-east-1.elb.amazonaws.com has …Run Code Online (Sandbox Code Playgroud) 我在本地 ISP 环境中使用 PowerDNS Recursor。递归只允许在我们的 IP 范围内进行,但我遇到了奇怪的问题。我们自己的客户 PC 不断使用以下查询攻击我们的 DNS 服务器:
15:43:38.473842 IP [CLIENT_IP].51097 > [DNSSERVER_IP].domain: 42318+ A? qhmrazabkvghwtgv.www.dl26.com. (47)
15:43:38.474161 IP [CLIENT_IP].40825 > [DNSSERVER_IP].domain: 14848+ A? yzqxqtklodgzuv.www.dl26.com. (45)
15:43:38.474443 IP [CLIENT_IP].34094 > [DNSSERVER_IP].domain: 35692+ A? inahybijsvqt.www.sf97.net. (43)
15:43:38.474953 IP [CLIENT_IP].39432 > [DNSSERVER_IP].domain: 7105+ A? kpkfgrsxihst.www.tpa.net.cn. (45)
Run Code Online (Sandbox Code Playgroud)
远程域名几乎总是 .cn 之一,但域名的其余部分不断变化。最简单的解决方案是在 iptables 上添加基于 hashlimit 的规则,但客户端位于 NAT 之后,因此进入 DNS 的流量被标记为集中器 IP。我也尝试过使用 spywaredomains 区域,但远程域一直在变化,所以我无法真正阻止它。SPAM 域的请求数量会导致 PowerDNS Cache 过度增长,并且还会大大增加 remote_timeout 计数。有什么办法可以抵御这种流量,让 DNS 再次像魅力一样工作吗?
我在网上寻找解决方案,并发现了许多具有不同建议的线程。我发现大部分都是在解析器上使用 LUA 来返回记录。其他帖子建议使用 GEO-IP 或 Pipe 后端。我读过的所有内容都使用过
我很想知道是否可以通过 LUA 根据网络范围更改转发器,而不是使用 LUA 存储区域信息。
如果我能让类似于以下的逻辑工作,我应该已经准备好了:
if sourceip comes from (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16) {
forwarder = 192.168.0.1;
}else{
forwarder = 8.8.8.8;
}
Run Code Online (Sandbox Code Playgroud)
我没有从 pdns 中看到任何 LUA 示例来演示如何更改 PDNS 本身内的任何设置,并且我很好奇这是否可能。
我有 2 个 DNS 服务器并使用 SOA-Record 设置了一个域。现在我检查了denic并收到了2个警告:
警告 112 最小 TTL 超出范围(预期、发现)
Range[180,86400]
172800
Run Code Online (Sandbox Code Playgroud)
警告 110 重试值超出范围(预期,找到)
Range[10800.0,28800.0]
7200
Run Code Online (Sandbox Code Playgroud)
http://de.wikipedia.org/wiki/SOA_Resource_Record -> 这里使用了来自 Ripe-203 的值)使用 DENIC-Ranges 或 RIPE 哪个更好?
谢谢
domain-name-system domain-registrar powerdns windows-registry
我是 DNS 世界的新手,我正在将我们的办公室子网移动到另一个域。我们的 DNS 使用带有 MySQL 后端的 PowerDNS 解决方案。
我不确定我们域的 SOA 记录是否正确写入。假设域名是example.com,内部办公基础设施域是office.example.com,办公域名服务器是ns0.office.example.com和ns1.office.example.com,那么我们的SOA看起来像(在MySQL记录表中) :
ns0.office.example.com. hostmaster.office.example.com. 2013111504 28800 14400 2419200 86400
Run Code Online (Sandbox Code Playgroud)
刷新等的值取自旧配置,目前尚不清楚这些值是否为标准值。
问题:从我可以在互联网上找到的所有资源中,我仍然不明白 SOA 记录会影响什么。有人可以解释一下前两个值有什么影响吗?主机管理员的价值是什么?旧配置也有,但我们的子网上没有这样的主机,也没有该主机的 DNS 记录。
我正在使用 PowerDNS 实例来为我自己的域提供服务。我网络中的所有客户端都在使用这个 DNS 服务器。
如何配置 PowerDNS 以查询我的 ISP 的 DNS 服务器(对于我不知道的域)?这是正确的方法吗?
recursor=8.8.8.8:53
allow-recursion=10.0.0.0/8
Run Code Online (Sandbox Code Playgroud)
是否可以指定多个 DNS 服务器?例如 8.8.8.8 和 8.8.4.4。