2010-08-15 16 views
8

पर PowerDNS और CNAME मैं अपने ग्राहकों के लिए PowerDNS (2.9.22) का उपयोग कर रहा हूं। चूंकि यह सभी डेटा को MySQL डेटाबेस में संग्रहीत कर सकता है और क्लाइंट के लिए अपने क्षेत्र को संपादित करने के लिए यह आसान है।बाहरी डोमेन

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

PowerDNS config यहाँ है:

यहाँ MySQL डेटाबेस में रिकॉर्ड कर रहे हैं:

अब मैं CNAME उपलब्ध साथ एक समस्या है

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 

जब मैं nslookup क्वेरी कर रहा हूँ, मुझे यह मिला:

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 

जैसा कि आप देख सकते हैं, यदि CNAME आंतरिक रिकॉर्ड को इंगित करता है - सब कुछ ठीक हो जाता है। लेकिन अगर यह बाहरी डोमेन को इंगित करता है - मुझे एक त्रुटि है।

andreyzentavr.com विद्यमान डोमेन और 194.126.204.41

को अंक यह PowerDNS में बग है है? या मैंने इसे गलत तरीके से कॉन्फ़िगर किया?

+0

मुझे लगता है कि आपके 'डिफ़ॉल्ट-सोमा-नाम' में वह डोमेन नाम शामिल है जिसे आप अपनी पोस्ट से निकालने का प्रयास कर रहे थे .. – sarnold

उत्तर

2

आमतौर पर, DNS के साथ, यदि आप किसी बाहरी रिकॉर्ड में CNAME को इंगित करना चाहते हैं, तो आपको रिकॉर्ड (sub.domain.com.) के अंत में एक अवधि जोड़नी होगी। जब आप अंतिम बिंदु को छोड़ देते हैं, तो DNS इसे एक सापेक्ष रिकॉर्ड के रूप में व्याख्या करता है (इसलिए sub.domain.com को उदाहरण के लिए sub.domain.com.domain.com के रूप में व्याख्या किया जाएगा)।

मुझे लगता है के बाद से आप localhost.example.com अपने डेटाबेस में स्थापित करने के लिए एक 'ए' रिकॉर्ड है, PowerDNS कि देखता है और जानता है कि आप जिस डोमेन को इंगित करने के मतलब है, भले ही आप अन्य CNAME पूर्ण नहीं किया (localhost.example.com.) या रिश्तेदार (मेजबाननाम में केवल localhost)।

+5

पावर डीएनएस को वास्तव में रिकॉर्ड के अंत में अवधि की आवश्यकता नहीं है। – Habbie

6

समाधान आधिकारिक सर्वर के सामने रिकर्सर डालना है और फॉरवर्ड-ज़ोन-रिकर्स निर्देश का उपयोग करके आधिकारिक सर्वर को विशिष्ट डोमेन अग्रेषित करने के लिए रिकर्सर को कॉन्फ़िगर करना है। रिकर्सर के संस्करण 3.2 की आवश्यकता है।

संबंधित मुद्दे