@ সোভেনের উত্তর, সম্পাদনা সহ, ইতিমধ্যে সঠিক তবে কেবল জিনিসগুলিকে সরাসরি বাক্য বলার জন্য।
টিএল; ডিআর হ্যাঁ আন্ডারস্কোর CNAME
উভয় পক্ষের একটি রেকর্ডে বৈধ , এটির জন্য নীচে পড়ুন।
আরএফসি 1034 এবং অন্যরা "ডোমেন নাম" এর উপর ভিত্তি করে রেকর্ডগুলি সংজ্ঞায়িত করে যা কোনও অক্ষর সহ লেবেল, তাই সহ _
।
তবে কিছু রেকর্ডের মালিকের নাম এবং / অথবা সংস্থান ডেটা (আরডিটিএ) এর জন্য কঠোর নিয়ম রয়েছে। কেবলমাত্র একটি হোস্টনাম গ্রহণ করা হবে এবং প্রকৃতপক্ষে নিয়মগুলি এখনই রয়েছে (তারা অতীতে স্বচ্ছন্দ ছিল যেখানে কোনও হোস্টনাম একটি অঙ্ক দিয়ে শুরু করতে পারেনি) যে কোনও ASCII চিঠি (কোনও ক্ষেত্রে সংবেদনশীলতা নেই), কোনও এএসসিআইআই ডিজিট এবং হাইফেন ব্যবহার করতে পারেন , আরও কিছু অতিরিক্ত অবস্থানের নিয়ম: শুরু বা শেষের কোনও হাইফেন এবং 3 এবং 4 পজিশনে কোনও ডাবল হাইফেন নেই (কারণ কেবলমাত্র আইনের অনুমতিপ্রাপ্ত আইডিএনগুলির জন্য "সংরক্ষণ" xn--
)।
উদাহরণস্বরূপ, কোনও A
বা AAAA
রেকর্ডের মালিকের নাম একটি হোস্টনাম, কোনও ডোমেন নাম নয়। এই
test.example.com A 192.0.2.1
সমস্ত কেন নয় তা বৈধ:
_test.example.com A 192.0.2.1
-test.example.com A 192.0.2.1
test-.example.com A 192.0.2.1
named-checkzone
প্রোগ্রামের সাহায্যে জিনিসগুলি পরীক্ষা করা সহজ ( bind
নেমসার্ভার সফ্টওয়্যারের অংশ তবে পৃথকভাবে ব্যবহার ও ইনস্টল করা হতে পারে এবং অন্যের নেমসার্ভারগুলিতে একই রকম চেকিং সরঞ্জাম থাকতে পারে এবং সম্ভবত এটির জন্য অনলাইন ইন্টারফেসও থাকতে পারে), কেবল একটি ফাইলের মধ্যে রেকর্ড রাখুন এবং রান করুন এটা:
$ cat z1.txt
test.example.com. 1 IN A 192.0.2.1
_test.example.com. 1 IN A 192.0.2.1
-test.example.com. 1 IN A 192.0.2.1
test-.example.com. 1 IN A 192.0.2.1
$ /usr/local/sbin/named-checkzone example.com z1.txt
z1.txt:2: _test.example.com: bad owner name (check-names)
z1.txt:3: -test.example.com: bad owner name (check-names)
z1.txt:4: test-.example.com: bad owner name (check-names)
( IN
টিটির আগে সংখ্যাটি টিটিএল, এটি আমাদের সমস্যার সাথে এখানে সম্পর্কিত নয়, তবে কেবল একটি রেকর্ডের সিনট্যাক্স বৈধতা পাস করার জন্য প্রয়োজন)।
অন্যান্য রেকর্ডগুলির জন্য, এটি বিপরীত: কারণ NS
মালিকের উপর কোনও বিধিনিষেধ নেই, তবে "টার্গেট" এর উপর নিষেধাজ্ঞাগুলি হ'ল ডেটা। ডেটাটি কেবল একটি ডোমেন নাম হতে পারে, কোনও ডোমেন নাম নয়, কারণ আপনাকে ডিএনএস কোয়েরিগুলিতে প্রতিক্রিয়া জানানো শারীরিক হোস্ট এমন অনুমোদনযোগ্য নেমসার্ভারগুলিতে নির্দেশ করতে হবে।
এখন সম্পর্কে CNAME
, বিভাগে FC.6 বিভাগে আরএফসি 1034 সম্পর্কিত প্রাসঙ্গিক উদ্ধৃতি এখানে:
"মালিক: এটি ডোমেন নাম যেখানে আরআর পাওয়া যায়।" যার অর্থ ডিফল্টরূপে কোনও নাম, কেবল একটি হোস্টনাম নয় (সিএনএম রেকর্ডের উত্স হিসাবে)
"আরডিটিএ: যা কোনও ধরণের এবং কখনও কখনও শ্রেণি নির্ভর ডেটা যা সংস্থানটি বর্ণনা করে:"
"সিএনএম একটি ডোমেন নাম।"
সুতরাং কোনও CNAME
(এর বামে কী রয়েছে) এর মালিক এবং এর সাথে সংযুক্ত উত্সের ডেটা, এর গন্তব্য / লক্ষ্য (এটির ডানদিকে যা রয়েছে) কেবল ডোমেন নাম এবং কেবল হোস্টনাম নয়। মূলত যে কোনও অক্ষর, তাই _
উভয় পক্ষেই অনুমোদিত।
আবার, এর সাথে পরীক্ষা করা সহজ named-checkzone
:
$ cat z2.txt
_foo 1 CNAME _bar
$ /usr/local/sbin/named-checkzone example.com z2.txt
zone example.com/IN: has 0 SOA records
zone example.com/IN: has no NS records
zone example.com/IN: not loaded due to errors.
এ সম্পর্কে যে কোনও ত্রুটি নেই CNAME
(অন্য ত্রুটিগুলি আমার জাল অঞ্চলে যেহেতু আমি কোনও জোন রাখিনি SOA
বা NS
সত্য অঞ্চলের মতো রেকর্ডও রাখেনি )