我已经设置了 powerdns 服务器,我对基本功能感到满意。
我域中的用户无法访问 example.com,除非他们使用 www.example.com
当我使用 host 命令时
host example.com 127.0.0.1
我明白了
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.10.rc1.el6_3.6 <<>> @localhost example.com
; (2 servers found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 45277
;; flags: qr aa rd; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0
;; WARNING: recursion requested but not available
;; QUESTION SECTION:
;example.com.INA
;; AUTHORITY SECTION:
example.com.300INSOAdns.example.com. hostmaster.example.com. 1 86400 86400 604800 300
;; Query time: 2 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Tue Jan 29 11:06:15 2013
;; MSG SIZE rcvd: 80
仅当我使用 www.example.com 或 ftp.example.com 时,查询才不返回服务器 IP,有没有解决方法?
谢谢
答案1
好的,我找到了一个解决方案,如果您使用一个不错的 UI(例如(PowerDNS Webinterface))来管理您的 powerDNS 服务器,您需要创建一个指向您的 IP 地址的“空” A 记录
例子
- 添加新记录。
- 在值部分“留空”下,这将类似于@根区域文件,并使其指向您的 DNS IP 地址。
答案2
您需要的是根区域记录。它通常表示@
并且必须是主机记录,不能使用 CNAME
@
引用区域名称本身,因此如果您需要解析,则需要区域根目录中example.com
命名的记录@
example.com
答案3
您没有指定使用了哪个 PowerDNS 后端。
这里几个人提到的 @ 语法只适用于使用 BIND 样式区域文件的绑定后端。
例如,如果您使用 gmysql 作为后端,则需要创建一个名为“example.com”的记录以及您希望它指向的 IP 地址作为内容。