GVKun编程网logo

domain-name-system – 我可以将区域的一部分委托给另一台服务器吗?

28

在本文中,我们将给您介绍关于domain-name-system–我可以将区域的一部分委托给另一台服务器吗?的详细内容,此外,我们还将为您提供关于domain-name-system–BIND9服务器

在本文中,我们将给您介绍关于domain-name-system – 我可以将区域的一部分委托给另一台服务器吗?的详细内容,此外,我们还将为您提供关于domain-name-system – BIND9服务器类型、domain-name-system – BIND:如何将子区域委托给其他DNS服务器?、domain-name-system – NAT后面的DNS服务器、domain-name-system – SPF记录的一部分的知识。

本文目录一览:

domain-name-system – 我可以将区域的一部分委托给另一台服务器吗?

domain-name-system – 我可以将区域的一部分委托给另一台服务器吗?

我想我想知道类似于 Can I create DNS records for some hosts,delegate other queries in the same domain to another DNS server?的东西,但我希望我能用BIND得到一个不同的答案.

基本上,我已经将home.mydomain.tld作为公共A记录,这是动态更新的.我想知道是否有一些方法可以简单地在家庭网络中为该域提供本地服务而不会覆盖它.真的,只是当地的AAAA记录.希望A记录来自我的路由器的DNS / DHCP服务器;知道IPv6还不够智能.

如果没有,我想我可以偶尔半自动填充A记录,但如果可以避免这样做我想尝试.

解决方法

听起来你有home.mydomain.tld作为公共区域,你想为PC.home.mydomain.tld,TV.home.mydomain.tld,refrigerator.home.mydomain.tld等创建内部记录?

关于我可以想到的唯一一个不讨厌的方法,如果不踩到home.mydomain.tld域就可以创建x.home.mydomain.tld并将所有内容放在该区域下,该区域由本地名称服务器提供.

您可以为上面的每个PC,电视,冰箱等创建一个单独的区域,并让您的本地名称服务器仅对这些单独的位具有权威性,但这意味着大量的一次性区域文件(YUCK!).

另请注意,您创建的任何本地区域都会踩到并覆盖任何外部DNS服务器的区域:pc.home.mydomain.tld的A记录不可能来自一个NS,而AAAA记录来自另一个NS:DNS委托并按区域名称声明权限,该权限适用于该区域内的所有记录类型.如果名称服务器被告知它对某些内容具有权威性并且无法找到该记录,则它不会将查询转发到DNS树中,它只会返回NXDOMAIN.

domain-name-system – BIND9服务器类型

domain-name-system – BIND9服务器类型

我使用BIND9在我的服务器上配置DNS,一切似乎都有效,但我对我的配置文件有疑问.

我最终在/etc/bind/named.conf.local中使用了这个配置

zone "example.com" {
  type master;
  file "/etc/bind/db.example.com";
  allow-transfer { 192.168.1.1; };
};
zone "1.168.192.in-addr.arpa" {
  type master;
  notify no;
  file "/etc/bind/db.192";
  allow-transfer { 192.168.1.1; };
};
forwarders {
  10.253.22.140;
  10.253.22.141;
};

我已经了解了不同类型的DNS服务器,如主要主服务器等.前两个部分(区域和区域)对应于主DNS服务器配置. “经典”查找的第一个记录,第二个反向记录.最后一部分(转发器)是缓存服务器的配置,包含ISP的DNS服务器IP.所以所有名称都解决了,因为这个服务器将被缓存.

简单的问题:我是对的?我的描述有意义吗?或者一台服务器只能是主服务器还是缓存?

解决方法

单个Bind安装可以处理所有角色,主要,辅助,缓存.
配置中的fowarders行意味着当服务器不知道您的查询的答案时(来自缓存或自己的区域文件),它将为您查询其中一个转发器,而不是从“.”开始执行区域查找. (根).

默认情况下,绑定缓存所有DNS请求.

domain-name-system – BIND:如何将子区域委托给其他DNS服务器?

domain-name-system – BIND:如何将子区域委托给其他DNS服务器?

我正在从BIND9 DNS服务器服务的工作组迁移到基于 Windows Server 2008 R2的AD域,我希望继续使用BIND服务器,直到AD基础结构准备就绪.

在设置AD期间,通过dcpromo,我收到警告,我应该确保我们当前的DNS服务器将AD域名委托给AD服务器.

假设我的AD域是mydomain.lan,而我的常规BIND域是example.com.我将我的BIND服务器设置为lan.的授权,但是想委托mydomain.lan.到AD服务器的IP.

我的named.conf.local包含:

zone "lan" {
        type master;
        file "zone.lan";
};

而zone.lan包含:

$ORIGIN lan.
$TTL 1H ; 1 hour
@                       IN SOA  dns.example.com. hostmaster.example.com. (
                                201008137  ; serial
                                28800      ; refresh (8 hours)
                                14400      ; retry (4 hours)
                                2419200    ; expire (4 weeks)
                                86400      ; minimum (1 day)
                                )
                        IN NS   dns.example.com.

$ORIGIN mydomain.lan.
@                       IN NS   dc1.mydomain.lan.
dc1                     IN A    10.10.0.200 ; 'glue' record

当我在dns.example.com上查询“lan”时,我可以得到预期的答案,但是当我查询“mydomain.lan”或“dc1.mydomain.lan”时,我得到一个NXDOMAIN响应.到目前为止我所有的尝试都失败了.

如何正确创建和委派子区?

更新:更多信息

$dig mydomain.lan @dns.example.com NS +norecurse

; <<>> DiG 9.7.0-P1 <<>> @dns.example.com mydomain.lan NS +norecurse
; (3 servers found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY,status: NOERROR,id: 23380
;; flags: qr ra; QUERY: 1,ANSWER: 0,AUTHORITY: 1,ADDITIONAL: 1

;; QUESTION SECTION:
;mydomain.lan.          IN  NS

;; AUTHORITY SECTION:
mydomain.lan.       3600    IN  NS  dc1.mydomain.lan.

;; ADDITIONAL SECTION:
dc1.mydomain.lan.   3600    IN  A   10.10.0.200

;; Query time: 0 msec
;; SERVER: ::1#53(::1)
;; WHEN: Sun Aug 15 00:41:05 2010
;; MSG SIZE  rcvd: 64

$dig @dc1.mydomain.lan dc1.mydomain.lan
dig: Couldn't get address for 'dc1.mydomain.lan': not found

$dig @10.10.0.200 dc1.mydomain.lan

; <<>> DiG 9.7.0-P1 <<>> @10.10.0.200 dc1.mydomain.lan
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY,id: 21348
;; flags: qr aa rd ra; QUERY: 1,ANSWER: 1,AUTHORITY: 0,ADDITIONAL: 0

;; QUESTION SECTION:
;dc1.mydomain.lan.      IN  A

;; ANSWER SECTION:
dc1.mydomain.lan.   1200    IN  A   10.10.0.200

;; Query time: 6 msec
;; SERVER: 10.10.0.200#53(10.10.0.200)
;; WHEN: Sun Aug 15 00:55:11 2010
;; MSG SIZE  rcvd: 50

$dig @10.10.0.200 mydomain.lan

; <<>> DiG 9.7.0-P1 <<>> @10.10.0.200 mydomain.lan
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY,id: 24664
;; flags: qr aa rd ra; QUERY: 1,ADDITIONAL: 0

;; QUESTION SECTION:
;mydomain.lan.          IN  A

;; ANSWER SECTION:
mydomain.lan.       600 IN  A   10.10.0.200

;; Query time: 0 msec
;; SERVER: 10.10.0.200#53(10.10.0.200)
;; WHEN: Sun Aug 15 01:04:39 2010
;; MSG SIZE  rcvd: 46

解决方法

问题出在你的named.conf中.我猜你已经在named.conf中定义了转发器.对于服务器具有权威性的任何区域,您需要关闭转发.使用上面的示例,您应该将其更改为如下所示:
zone "lan" {
    type master;
    file "zone.lan";
    forwarders { };
};

一旦你这样做它应该工作.

domain-name-system – NAT后面的DNS服务器

domain-name-system – NAT后面的DNS服务器

我有一个位于NAT防火墙后面的Bind 9 DNS服务器,假设面向IP的Internet是1.2.3.4

传出流量没有限制,端口53(TCP / UDP)从1.2.3.4转发到内部DNS服务器(10.0.0.1). VPS或内部Bind 9服务器上没有IP表规则.

从位于互联网上其他位置的远程Linux VPS,nslookup工作正常

# nslookup foo.example.com 1.2.3.4
Server:    1.2.3.4
Address:   1.2.3.4#53

Name:      foo.example.com
Addresss:  9.9.9.9

但是,在远程VPS上使用host命令时,我收到以下输出:

# host foo.example.com 1.2.3.4
;; reply from unexpected source: 1.2.3.4#13731,expected 1.2.3.4#53
;; reply from unexpected source: 1.2.3.4#13731,expected 1.2.3.4#53
;; connection timed out; no servers Could be reached.

从VPS,我可以建立到1.2.3.4:53的连接(使用telnet)

从内部DNS服务器(10.0.0.1),主机命令似乎没问题:

# host foo.example.com 127.0.0.1
Using domain server:
Name: 127.0.0.1
Address: 127.0.0.1#53
Aliases:

foo.example.com has address 9.9.9.9

有关为什么我的VPS上的主机命令抱怨从另一个端口返回的回复的任何建议,我该怎么做才能解决这个问题?

更多信息:

从网络外部的Windows主机

>nslookup foo.example.com 1.2.3.4
DNS request timeout
    timeout was 2 seconds
Server: UnKNown
Address: 1.2.3.4

DNS request timed out.
    timeout was 2 seconds
DNS request timed out.
    timeout was 2 seconds
DNS request timed out.
    timeout was 2 seconds
DNS request timed out.
    timeout was 2 seconds
*** Request to UnKNown timed-out

这是来自Ubuntu 12.04 LTS的默认安装绑定,配置了大约11个区域.

$named -v
BIND 9.8.1-P1

TCP从内部DNS服务器转储(过滤)

20:36:29.175701 IP pc.external.com.57226 > dns.example.com.domain: 1+ PTR? 4.3.2.1.in-addr.arpa. (45)
20:36:29.175948 IP dns.example.com.domain > pc.external.com.57226: 1 Refused- 0/0/0 (45)
20:36:31.179786 IP pc.external.com.57227 > dns.example.com.domain: 2+[|domain]
20:36:31.179960 IP dns.example.com.domain > pc.external.com.57227: 2 Refused-[|domain]
20:36:33.180653 IP pc.external.com.57228 > dns.example.com.domain: 3+[|domain]
20:36:33.180906 IP dns.example.com.domain > pc.external.com.57228: 3 Refused-[|domain]
20:36:35.185182 IP pc.external.com.57229 > dns.example.com.domain: 4+ A? foo.example.com. (45)
20:36:35.185362 IP dns.example.com.domain > pc.external.com.57229: 4*- 1/1/1 (95)
20:36:37.182844 IP pc.external.com.57230 > dns.example.com.domain: 5+ AAAA? foo.example.com. (45)
20:36:37.182991 IP dns.example.com.domain > pc.external.com.57230: 5*- 0/1/0 (119)

在查询期间从客户端转储TCP

21:24:52.054374 IP pc.external.com.43845 > dns.example.com.53: 6142+ A? foo.example.com. (45)
21:24:52.104694 IP dns.example.com.29242 > pc.external.com.43845: UDP,length 95

解决方法

总结先前在评论中写的内容并进一步解释:

看起来有点像UDP的NAT规则被破坏了.指示是来自意外来源的错误消息回复:1.2.3.4#13731,预期1.2.3.4#53以及从客户端获取的跟踪,其中响应看起来像dns.example.com.29242> pc.external.com.43845:UDP,长度95.响应数据包的源端口应该是53,它在从DNS服务器获取的转储中是正确的(为了显示目的,解析到域).

虽然一些(特别是历史性的)解析器可能接受来自不同端口/ IP的DNS响应,但大多数不会 – 主要是出于安全原因阻止DNS spoofing and cache poisoning attacks.

无论如何,对于无连接的UDP NAT流量,您的路由器应保留先前收到的UDP DNS查询数据包中的状态数据,并将响应数据包的IP:端口元组重新映射回1.2.3.4:53 – 它显然不是.它可能是配置错误或路由器处理UDP状态表以获取端口转发情况的方式中的错误 – 所以最好的办法是打开一个包含制造商客户支持的案例(将代码升级到最新/最大事先 – 这样的问题可能以前被其他用户注意到,因此可能已经被修复了).

domain-name-system – SPF记录的一部分

domain-name-system – SPF记录的一部分

我只想澄清SPF记录的一部分,因为我知道这是如何工作的,但我不确定.

example.com的spf记录

v=spf1 +a -all

我目前的理解是,如果服务器有一个有效的记录,它将被接受.

例如:

A: example.com 123.456.789.12

由于a,上面的IP地址将成为example.com的有效发件人.

但是我不确定子域以及它是如何工作的.

A: server-1.example.com 123.456.789.13
A: server-2.example.com 123.456.789.14

由于SPF记录的一部分,这些IP地址是否也可以作为example.com发送?

谢谢

解决方法

要提供有关如何将a机制与当前SPF记录以外的FQDN一起使用的有效示例,可以使用以下几个选项:

域名作为参数的机制(以及它如何扩展):

v=spf1 a:server-1.example.com a:server-2.example.com -all
v=spf1 123.456.789.13         123.456.789.14         -all

具有CIDR前缀作为参数的机制(以及它如何扩展):

v=spf1 a/24              -all
v=spf1 123.456.789.12/24 -all

您可以使用特定的FQDN进行查找(server-1.example.com),然后信任该主机的已注册IP地址,也可以对当前的FQDN执行查找 – 即,查找当前FQDN的域名我们目前正在执行SPF检查.然后,您可以添加前缀以指定生成的IP地址周围的整个网段.

鉴于问题中的详细信息,上述两个示例都适用于您的域名,但我建议您使用第一个选项.

还有一件事:

a与a相同

限定符是默认限定符,不需要.

关于domain-name-system – 我可以将区域的一部分委托给另一台服务器吗?的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于domain-name-system – BIND9服务器类型、domain-name-system – BIND:如何将子区域委托给其他DNS服务器?、domain-name-system – NAT后面的DNS服务器、domain-name-system – SPF记录的一部分等相关知识的信息别忘了在本站进行查找喔。

本文标签: