我们刚刚使用 Bind 9.10 的最新稳定版本设置了递归 DNS 服务器
我们发现递归 DNS 查找非常慢。1 - 3 秒之间的任何时间。一旦在缓存中查找,DNS 就会按预期在几毫秒内解析。
我们正在使用 ROOT 提示进行递归查找,这似乎是缓慢的来源。如果我们配置转发器,DNS 解析将归结为 100 - 300 毫秒的合理递归时间。
对于我们正在设置的服务,我不想依赖转发器,我更喜欢使用 root 提示。
这是来自我们的named.conf文件的主要配置。任何有助于提高性能的指针都会很棒。
options{
allow-recursion { any; };
allow-query-cache { any; };
allow-query { any; };
listen-on port 53 { any; };
listen-on-v6 port 53 { any; };
dnssec-enable yes;
dnssec-validation yes;
dnssec-lookaside auto;
zone-statistics yes;
max-cache-ttl 3600;
max-ncache-ttl 3600;
/* Path to ISC DLV key */
bindkeys-file "/etc/named.iscdlv.key";
managed-keys-directory "/var/named/dynamic";
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file …Run Code Online (Sandbox Code Playgroud) domain-name-system performance bind slow-connection recursive
我有两个测试服务器主从:
主人正在更新奴隶,但速度很慢。如何加快速度。
大师 (192.168.0.122) /etc/named.conf
zone "domain.com." {
type master;
file "caching-example/domain.com.db";
//allow-update { key rndc-key;};
notify yes;
also-notify { 192.168.0.66; };
allow-transfer { 192.168.0.66; };
};
Run Code Online (Sandbox Code Playgroud)
从 (192.168.0.66) /etc/named.conf
zone "domain.com" {
type slave;
file "caching-example/domain.com.db";
//allow-update { key rndc-key; };
//allow-transfer { none; };
allow-notify { 192.168.0.122; };
masters { 192.168.0.122; };
}
Run Code Online (Sandbox Code Playgroud)
主 /var/named/caching-example/domain.com.db 区域
$TTL 3600
$ORIGIN domain.com.
@ IN SOA darkstar.example.net. root.example.net. (
2012033101 ; Serial
3600 ; Refresh
1800 ; Retry
604800 ; Expire …Run Code Online (Sandbox Code Playgroud) 有没有办法在我的 BIND DNS 服务器上获取 A 和 CNAME 记录的完整列表?
我可以访问区域文件。但是在我的服务器上有很多区域文件,手动浏览所有这些文件需要很长时间。是否有列出此信息的命令,还是我必须自己编写脚本?
我设置了托管我们域的 BIND DNS,我也将它用于内部 DNS。我为内部和外部主机设置了不同的视图,它工作正常。我的问题是哪个是管理 BIND 服务器的最佳网络界面,它允许我使用 named.config 中的视图?我尝试过 MyDNS、SMBIND 和 ProBIND,但似乎没有一个完全符合我的要求。
在BIND 9( named) 中,有没有办法A根据提问者的IP地址返回不同的记录?
当收到对某个DNS名称的查询时,我想返回IP从外部世界收到的查询的外部地址,以及IP从内部子网收到的查询的内部地址。
更新:
视图似乎工作正常,但300区域文件中有关于记录。
如果我只想以DNS不同的方式返回单个记录,是否应该复制整个文件(并从现在开始管理两个文件)?
所以,我在我的时间设置了一些 Win Servs,并且当有一个路由器将我的内部网络与外部网络分开时,我总是做 .local 事情。现在我是第一次设置 *nix 框,这个概念仍然适用吗?我是否仍然希望我的 FQDN ( /etc/hostname) 为我的网络内的所有机器(混合:linux 服务器、win 工作站)显示 .local 或 .com。
这个问题是在每一步都让 Active Directory 牵着我的手的背景下出现的,现在我正在手动设置 DNS 机器。
这是快速而肮脏的:在具有在视图之间共享的动态区域的 BIND9 上,如果我从落入与 nsupdate 相同视图的客户端查询该记录,则执行 nsupdate、更新/创建/删除记录将正常工作从。
从一种观点认为,查询是不一样的使用的nsupdate将抛出NXDOMAIN(如果将一个新的记录),或将显示在改变/更新直到某个时间任意长度的情况下,旧的记录信息的一个我(说15分钟)过去了,或者我强行做$ rndc freeze && rndc thaw。 $ rndc sync似乎根本没有做任何事情来解决这个问题——我希望这只是一个日志文件的事情,因为日志刷新被记录为刷新大约 15 分钟。
如果这还不清楚,这里有一些伪代码让我们开始:
绑定视图
view "cdn-redir" {
match-clients { 10.1.1.0/24; 10.1.2.0/24; };
include "cdn-zone.db";
include "dynamic-zone.db";
};
view "default" {
match-clients { any; };
include "dynamic-zone.db";
};
Run Code Online (Sandbox Code Playgroud)
示例命令行
user@ns:~$ nsupdate -k rndc.key
> server localhost
> zone example.com.
> update add foohost.example.com. 600 A 10.5.6.7
> send
> quit
user@ns:~$ dig foohost.example.com (resolv.conf points to 127.0.0.1)
[ responds …Run Code Online (Sandbox Code Playgroud) 今天我注意到 Apache 网络服务器上异常高的请求率以及相当高的传入网络流量。在检查 Apache 的 mod_status 页面后,我发现有问题的 URL 来自 path www.server.com/www/wp-includes/js/tinymce/plugins/wpautoresize/。事实上,我在那里发现了几个被黑(混淆)的 PHP 脚本。
还注意到 www-data 用户执行的奇怪过程:
www-data 7300 10.8 0.1 2122900 18768 ? Ssl Jul11 121:47 /usr/bin/host
Run Code Online (Sandbox Code Playgroud)
检查/proc/7300/cmdline发现这确实是原始/usr/bin/host二进制文件。netstat -anp显示它打开了许多 HTTP 连接,因此该二进制文件以某种方式被滥用。debsums确认二进制校验和没有问题。由于该过程是在 www-data 用户下运行的,我没有理由相信服务器本身受到了威胁。
这个二进制文件是如何被滥用的?
编辑:这不是广泛的“如何处理受损服务器”问题。而是关于一种特定类型的滥用的问题(并且已经是一个答案),它在技术上是如何完成的,因为这个特殊案例在它的工作方式上非常有创意。似乎这已经流行了好几年了(旧线程和 2012 年的问题),我本周遇到了它。
我的 dns 服务器设置有问题。我的绑定服务器主要是一个缓存服务器,但也为一些内部域提供服务。它只在我的专用网络上侦听,并且只提供来自那里的请求。
今天我想启用绑定来验证 DNSSEC 但不知何故它没有正确执行。如果我在绑定 linux 机器上解析主机名,那么无效的 DNSSEC 就会完美地显示出来。但是,如果我尝试在网络中的另一台机器上再次使用相同的 dig 命令解析相同的域,DNSSEC 检查不会失败并且域得到很好的解析。我想要它做的是将正确的 SERVFAIL 发送到网络中的其他 DNS 客户端。
以下是您可能需要的所有信息(绑定版本、配置等)。我将附加我在最后所做的挖掘。
操作系统版本
root@thor:/etc/bind# lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description: Debian GNU/Linux 8.5 (jessie)
Release: 8.5
Codename: jessie
root@thor:/etc/bind# uname -a
Linux thor.home.intranet 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt25-2 (2016-04-08) x86_64 GNU/Linux
Run Code Online (Sandbox Code Playgroud)
绑定版本
BIND 9.9.5-9+deb8u6-Debian (Extended Support Version)
Run Code Online (Sandbox Code Playgroud)
命名文件
include "/etc/bind/named.conf.options";
include "/etc/bind/named.conf.local";
include "/etc/bind/named.conf.default-zones";
Run Code Online (Sandbox Code Playgroud)
命名.conf.options
options {
directory "/var/cache/bind";
forwarders {
208.67.222.222; # resolver1.opendns.com
208.67.220.220; # resolver2.opendns.com
# 8.8.8.8; …Run Code Online (Sandbox Code Playgroud) 组织为其域提供 DNSSEC 支持。他们有一个 BIND9 作为运行的权威名称服务器,它也管理密钥。但是决定删除 DNSSEC。删除其中的密钥材料/var/lib/bind/pri并重新启动服务器是否就足够了,或者是否应该执行一些步骤来删除它?