อย่าเพิ่มจุดต่อท้ายชื่อ RR ใช้สิ่งนี้:
เซิร์ฟเวอร์ my.dns.server
โซนexample.com
คีย์ example.com บางคีย์ข้อมูล
อัปเดต ลบ example.com 604800 A
อัปเดต เพิ่ม example.com 604800 A 192.0.2.1
ส่ง
ฉันเพิ่งทดสอบด้วยระเบียน A และ MX; มันใช้งานได้สำหรับฉัน, เซิร์ฟเวอร์คือ PowerDNS, ไคลเอ็นต์คือ ISC nsupdate จาก bind-tools, การตรวจสอบสิทธิ์ผ่าน TSIG, ชื่อคีย์เท่ากับชื่อโซนเพื่อความเรียบง่าย
ฉันมีความประทับใจที่คุณไม่เข้าใจอย่างถ่องแท้ $ORIGIN
และ @
ทำงาน ดังนั้นนี่คือคำอธิบายเล็กน้อย สำหรับคำอธิบายที่สมบูรณ์โปรดดู RFC1035.
บนเส้นลวดเหล่านี้ไม่เคยปรากฏ เป็นเพียง "น้ำตาลไวยากรณ์" ที่ทำให้การพิมพ์และการอ่านไฟล์โซนของคุณสั้นลง ตัวอย่างสามตัวอย่างต่อไปนี้กำหนดโซนที่เหมือนกัน (ฉันขี้เกียจกรอกบันทึก SOA ค่าที่แน่นอนไม่สำคัญสำหรับเรื่องของเรา):
$ORIGIN example.com
@ 604800 ใน SOA ns1 ....
604800 ใน NS ns1
ns1 3600 ใน 192.0.2.1
@ 3600 ใน 192.0.2.5
$ORIGIN .
example.com 604800 ใน SOA ns1.example.com ....
$ORIGIN ดอทคอม
ตัวอย่าง 604800 ใน NS ns1.example
$ORIGIN ns1.example.com.
@ 3600 ใน 192.0.2.1
ตัวอย่าง.คอม. 3600 ใน 192.0.2.5
ตัวอย่าง.คอม. 604800 ใน SOA ns1.example.com ....
ตัวอย่าง.คอม. 604800 ใน NS ns1.example.com
ns1.example.com. 3600 ใน 192.0.2.1
ตัวอย่าง.คอม. 3600 ใน 192.0.2.5
ในตัวอย่างแรก ฉันไม่ได้ระบุชื่อ RR ในบรรทัดที่สาม (สวพ.FM91
ร.ร.หลัง สพธอ
RR) ดังนั้น parser จะนำมาจากบรรทัดก่อนหน้า พฤติกรรมนี้เป็นเหตุผลที่ชัดเจนสำหรับ @
การมีอยู่ของไวยากรณ์: คุณไม่สามารถปล่อยให้ฟิลด์ชื่อ RR ว่างได้ เนื่องจากจะใช้ชื่อเรกคอร์ดก่อนหน้า ถ้าฉันข้าม @
ในบันทึกที่แล้ว ฉันจะกำหนดวินาที ก
บันทึกสำหรับ ns1
. ดังนั้นในการกำหนดเรคคอร์ดด้วยชื่อเท่ากับต้นกำเนิดที่ตั้งไว้ในปัจจุบัน (จะเป็น "เอเพ็กซ์" หากต้นกำเนิดตั้งเป็นชื่อโซน) คุณไม่สามารถใช้ "ชื่อว่าง" ได้ เพราะจะเป็นการเรียกใช้พฤติกรรม "ใช้เวลาก่อนหน้า" นี้คุณต้องสะกดชื่อเต็มของเรคคอร์ดอย่างชัดเจนโดยมีจุดต่อท้าย เพื่อไม่ให้ชื่อเรคคอร์ดต่อท้าย (เหมือนที่เขียนไว้ในตัวอย่างอื่นๆ) เปลี่ยนต้นทาง หรือใช้สัญลักษณ์พิเศษ @
ซึ่งบอกโปรแกรมแยกวิเคราะห์: "อย่าทำซ้ำชื่อก่อนหน้า ต้นกำเนิดมาเปล่า" ดังนั้นบรรทัดสุดท้ายในตัวอย่างแรกจึงกำหนด ตัวอย่าง.คอม.
.
ตัวอย่างที่สองเป็นเพียงการสาธิตวิธีการ $ORIGIN
และ @
ทำงานด้วยกัน.
ตัวอย่างที่สามไม่ใช้น้ำตาล นี่เป็นข้อมูลสัมบูรณ์จริงที่โซนมีอยู่ในแต่ละตัวอย่างทั้งสามนี้
ดังนั้นบันทึกของคุณอาจแสดงในไฟล์โซนเป็น ตัวอย่าง.คอม
หลังจาก $ORIGIN .
, หรือ ตัวอย่าง.คอม.
ที่ไหนก็ได้หรือ @
หลังจาก $ORIGIN example.com
, หรือแม้กระทั่ง ตัวอย่าง
หลังจาก $ORIGIN ดอทคอม
มันไม่สำคัญ กรณีเหล่านี้เท่าเทียมกันหมด คุณอาจคาดหวังที่จะเห็นรูปแบบ "@" แต่ BIND อาจตัดสินใจสะกดเป็นรูปแบบใดรูปแบบหนึ่ง ดังนั้นโปรดเตรียมพร้อมที่จะจดจำสิ่งเหล่านี้ทั้งหมด และคุณไม่สามารถบังคับให้ใช้รุ่นใดรุ่นหนึ่งได้ ขออภัย
ข้อแม้อีกประการหนึ่งคือคุณสามารถอ่านไฟล์โซนหลังจากอัปเดตโดยไม่ต้องหยุดการทำงานก่อน สังเกตไฟล์ "jnl" ถัดจากไฟล์โซน เป็นวารสารที่เก็บข้อมูลที่อัปเดตของคุณเป็นครั้งแรก ก็ต่อเมื่อคุณทำ rndc ตรึง example.com
ข้อมูลจะถูกเขียนลงในไฟล์โซน (แต่โซนนั้นจะถูกล็อกสำหรับการอัปเดต หากต้องการปลดล็อก คุณต้องทำ ละลาย
การดำเนินการหรือโหลดเซิร์ฟเวอร์ใหม่) วิธีที่ถูกต้องในการตรวจสอบว่าโซนได้รับการอัปเดตหรือไม่คือทำแบบสอบถาม DNS จริงด้วย ขุด
หรือ เจ้าภาพ
หรือ nslookup
แล้วแต่คุณชอบ:
โฮสต์ -v example.com