2010-08-15 34 views
8

Tôi đang sử dụng PowerDNS (2.9.22) cho khách hàng của mình. Bởi vì nó có thể lưu trữ tất cả dữ liệu vào cơ sở dữ liệu MySQL và thật dễ dàng cho khách hàng để chỉnh sửa các khu vực của họ như họ muốn.PowerDNS và CNAME đến miền bên ngoài

Bây giờ tôi có một vấn đề với CNAME:

Dưới đây là bản ghi vào cơ sở dữ liệu MySQL:

+-----------------------+-------+-----------------------+ 
| localhost.example.com | A | 127.0.0.1    | 
+-----------------------+-------+-----------------------+ 
| a.example.com   | CNAME | localhost.example.com | 
+-----------------------+-------+-----------------------+ 
| www.example.com  | CNAME | andreyzentavr.com  | 
+-----------------------+-------+-----------------------+ 

PowerDNS cấu hình là ở đây:

allow-recursion=127.0.0.1, 173.193.**.162, 173.193.**.163 
allow-recursion-override=on 
cache-ttl=20 
config-dir=/etc/powerdns 
daemon=yes 
default-soa-name=ns3.bserver.com 
disable-axfr=yes 
guardian=no 
launch=gmysql 
gmysql-host=127.0.0.1 
gmysql-port=3306 
gmysql-user=powerdns 
gmysql-dbname=powerdns 
gmysql-password=123123 
lazy-recursion=yes 
local-address=173.193.**.162, 173.193.**.163 
local-port=53 
log-dns-details=yes 
log-failed-updates=yes 
logfile=/var/log/pdns.log 
loglevel=6 
master=yes 
max-queue-length=5000 
max-tcp-connections=10 
module-dir=/usr/lib/powerdns 
query-logging=yes 
recursor=127.0.0.1:53 
setgid=pdns 
setuid=pdns 
skip-cname=no 
slave=yes 
slave-cycle-interval=600 
soa-minimum-ttl=3600 
soa-refresh-default=10800 
soa-retry-default=3600 
soa-serial-offset=0 
socket-dir=/var/run 
use-logfile=yes 
wildcards=yes 
version-string=powerdns 

khi tôi đang làm truy vấn nslookup, Tôi nhận được điều này:

server:~# nslookup 
> set q=any 
> server ns3.***.com 
Default server: ns3.***.com 
Address: 173.193.**.163#53 
> a.example.com 
Server:   ns3.***.com 
Address:  173.193.***.163#53 

a.example.com  canonical name =localhost.example.com. 
Name: localhost.example.com 
Address: 127.0.0.1 
> 
> 
> www.example.com 
Server:   ns3.***.com 
Address:  
173.193.***.163#53 

** server can't find www.example.com: NXDOMAIN 

Như bạn có thể thấy, nếu CNAME trỏ tới bản ghi nội bộ - mọi thứ đều ổn. Nhưng nếu nó trỏ đến miền bên ngoài - tôi có lỗi.

andreyzentavr.com là miền existant và các điểm đến 194.126.204.41

Có lỗi trong PowerDNS? Hoặc tôi đã cấu hình nó sai?

+0

Tôi nghĩ 'tên mặc định-soa' của bạn bao gồm tên miền bạn đang cố gắng xóa khỏi bài đăng của mình .. – sarnold

Trả lời

2

Thông thường, với DNS, nếu bạn muốn trỏ CNAME vào bản ghi bên ngoài, bạn phải thêm dấu chấm vào cuối bản ghi (sub.domain.com.). Khi bạn rời khỏi chấm cuối cùng, DNS diễn giải nó dưới dạng bản ghi tương đối (vì vậy, sub.domain.com sẽ được hiểu là sub.domain.com.domain.com, ví dụ).

Tôi giả định vì bạn có bản ghi 'A' cho localhost.example.com được thiết lập trong cơ sở dữ liệu của mình, PowerDNS thấy điều đó và biết đó là tên miền mà bạn muốn trỏ đến, mặc dù bạn không tạo ra tuyệt đối CNAME khác (localhost.example.com.)) hoặc người thân (chỉ localhost trong tên máy chủ).

+5

PowerDNS không cần khoảng thời gian ở phần cuối của bản ghi. – Habbie

6

Giải pháp là đặt con trỏ ở phía trước máy chủ có thẩm quyền và định cấu hình con trỏ để chuyển tiếp miền cụ thể tới máy chủ có thẩm quyền bằng chỉ thị chuyển tiếp khu vực chuyển tiếp. Yêu cầu phiên bản 3.2 của recursor.

Các vấn đề liên quan