นี่คือวิธีแก้ปัญหา:
Bind9 ได้รับการตั้งค่าด้วย "dns-policy default" ตามที่แสดงในส่วนตัวเลือกด้านบน สิ่งนี้สำคัญและเจ๋งมาก ความช่วยเหลือและเอกสารประกอบส่วนใหญ่ไม่ได้ระบุถึง "ค่าเริ่มต้นของนโยบาย DNS" แต่ระบุถึง "ค่าเริ่มต้นของนโยบาย DNS" ในแง่ของวิธีการก่อนหน้า เก่ากว่า และแม้กระทั่งเลิกใช้แล้ว
1.แสดงความคิดเห็นเกี่ยวกับการกำหนดค่าโซนทั้งหมดใน names.conf ยกเว้นหนึ่งรายการเช่น example.com
โซน "example.com" {
พิมพ์ต้นแบบ;
ไฟล์ "/.../example.com.outsideView/example.com.outside";
ไดเร็กทอรีคีย์ "/.../zoneFiles/outsideView/example.com.outside";
};
ก) ไฟล์ คือตำแหน่งของไฟล์โซน example.comฉันแยกมุมมองภายในและภายนอกออก และระบุให้ชัดเจนว่าไฟล์โซนใดแสดงถึงมุมมองใด ดังนั้น example.com.outside
ข) ไดเร็กทอรีคีย์ คือตำแหน่งที่จะเขียนคีย์ DNSSEC และ ที่ไหน สำเนา ของ example.com วางอยู่ สิ่งสำคัญคือต้องแยกไฟล์โซน example.com ในการกำหนดค่า bind9 ชื่อ.conf เช่น ไฟล์และไฟล์โซน, example.com, คัดลอกไปยังไดเร็กทอรีคีย์ตามที่กำหนดเป็นตัวเลือก name.conf คุณจะแก้ไขไฟล์โซน example.com ในไฟล์ได้ตามต้องการ เป็นสำเนาการทำงาน สำเนาของไฟล์โซน example.com ในไดเร็กทอรีคีย์จะถูกแก้ไขหรือ "ลงนาม" โดย DNSSEC "dnssec-policy default"
2.เมื่อตั้งค่าตัวเลือก bind9 สำหรับไฟล์คอนฟิกูเรชันโซนด้วยไฟล์และคีย์ไดเรคทอยแล้ว
ก) เริ่มการผูกใหม่ด้วย "systemctl รีสตาร์ท bind9" หรือ "rndc reload" "rndc reload" จะโหลดไฟล์การกำหนดค่าและโซนใหม่ เมื่อไม่เข้าใจการโต้ตอบของ DNSSEC กับการเชื่อมโยงและการกำหนดค่าโซน ฉันใช้ "rndc reload" เมื่อสิ่งต่าง ๆ ชัดเจน "systemctl รีสตาร์ท bind9" ก็เพียงพอแล้ว
b) เมื่อ bind9 รีสตาร์ท cd ไปยังไดเร็กทอรีคีย์สำเร็จแล้ว จะมีไฟล์โซน example.com.outside .jnl และ K.(key|state|private) ไฟล์แบบนี้:
example.com.outside
example.com.outside.jnl
Kexample.com.+013+12345.key
Kexample.com.+013+12345.state
Kexample.com.+013+12345.private
(013 - หมายเลขอัลกอริทึม 12345 - คีย์)
3)แยกระเบียน DS ออกจากคีย์ ใช้คำสั่งต่อไปนี้และบันทึกผลลัพธ์
ก) dnssec-dsfromkey Kexample.com.outside+013+12345.key > DSkeyexample.com.outside
b) DSkeyexample.com.outside จะมีบันทึก DS สำหรับโซน example.com ในไฟล์ example.com.outside ตัวอย่างเช่น cat DSkeyexample.com.outside จะสร้าง:
ตัวอย่าง.คอม. ใน ทส 12345 13 2
1234adb69784efc7528746dab15432abfd78764cd543cccd5432123abcdef123
ค) ส่งบันทึก DS ไปยัง ISP หรือป้อนบันทึก DS นี้ลงในอินเทอร์เฟซ DNSSEC ของ ISP
4)ลงนามเขต example.com (ชื่อไฟล์ example.com.outside)
โปรดจำไว้ว่า โซน example.com อยู่ในสองตำแหน่ง: ไฟล์และคัดลอกไปยังไดเร็กทอรีคีย์ example.com ที่อยู่ใน "ไฟล์" การกำหนดค่าการผูกมีไว้สำหรับการเปลี่ยนแปลงและแก้ไข ไฟล์โซน example.com ที่คัดลอกเพื่อเชื่อมโยงการกำหนดค่า "ไดเรกทอรีคีย์" ได้รับการลงนามโดย DNSSEC
ก) ในขั้นต้น ไฟล์โซนทั้งสองจะมีขนาดที่เล็กเท่ากัน กล่าวคือ เหมือนกันแน่นอน เช่น 8KB เมื่อการลงนามเกิดขึ้น ไฟล์โซนในไดเร็กทอรีคีย์จะเพิ่มขนาดเป็นสองเท่า เช่น จาก 8KB เป็น 24KB นอกจากนี้ ใช้เอดิเตอร์ เปิดไฟล์โซนที่อยู่ในไดเร็กทอรีคีย์ สังเกตข้อมูลการลงนาม การลงนามโซนคือเมื่อ DNSSEC เขียนไฟล์โซนใหม่ในไดเร็กทอรีคีย์ "dnssec-policy default" ลงนามและดูแลโซน
ข) การลงนามโซนไม่ได้เกิดขึ้นทันทีเสมอไป ใช้ "สถานะ systemctl bind9" เพื่อสังเกตการอัปเดตคีย์ถัดไปเพื่อรับข้อบ่งชี้เมื่อโซนอาจลงนาม
5)ทำการเปลี่ยนแปลง/แก้ไขไฟล์โซน
ก) ห้ามเปลี่ยนหรือแก้ไขไฟล์โซนที่ลงนามหรือไม่ได้ลงนามในไดเร็กทอรีคีย์ เปลี่ยนและแก้ไขไฟล์โซนในไฟล์และบันทึกและอย่าลืมเพิ่มหมายเลขซีเรียล จากนั้นคัดลอกหรือบันทึกการเปลี่ยนแปลงไปยังไดเร็กทอรีคีย์ ใช่ ไฟล์โซนที่ลงนามหรือไม่ได้ลงนามจะถูกเขียนทับ
b) รีสตาร์ท bind9: systemctl รีสตาร์ท bind9
6)บังคับให้เซ็นโซน. เมื่อ bind9 ทำงานและไม่มีข้อผิดพลาด แต่โซนจะไม่เซ็นชื่อ
a) ลบ/ลบไฟล์ *.jnl และเพิ่มซีเรียลของไฟล์โซนที่อยู่ในไฟล์ จากนั้นคัดลอก/บันทึกเป็นคีย์ไดเร็กทอรี จากนั้น systemctl รีสตาร์ท bind9
b) การใช้คำสั่ง rndc เพื่อบังคับให้ลงนาม ดู man rndc
rndc flush - ล้างแคชของเซิร์ฟเวอร์
rndc flushname name [มุมมอง] - ล้างชื่อที่กำหนดจากแคช DNS ของมุมมองและจากฐานข้อมูลที่อยู่เนมเซิร์ฟเวอร์ของมุมมอง แคชเซิร์ฟเวอร์ที่ไม่ดี และแคช SERVFAIL ถ้ามี
rndc flushtree name [มุมมอง] - ล้างชื่อที่กำหนดและโดเมนย่อยทั้งหมดจากแคช DNS ของมุมมอง ฐานข้อมูลที่อยู่ แคชเซิร์ฟเวอร์ที่ไม่ดี และแคช SERVFAIL
คีย์ที่มีการจัดการ (สถานะ | รีเฟรช ) [คลาส [ดู]]
c) คำสั่งด้านบนดูเหมือนจะทำงานได้ดีขึ้นเมื่อใช้ร่วมกับ rndc freeze และ rndc thaw ขั้นแรกให้ใช้ rndc freeze ออกคำสั่งด้านบน จากนั้น rndc thaw หลังจากละลาย rndc ฉันออก systemctl รีสตาร์ท bind9 ซ้ำซ้อน เพราะดูเหมือนว่าจะทำงานได้ดีขึ้น.
7)ตรวจสอบ DNSSEC โดยใช้ https://dnsviz.net/ และ https://dnssec-analyzer.verisignlabs.com/
เมื่อโซนแรกเป็น DNSSEC ให้ยกเลิกการแสดงความคิดเห็นในโซนอื่นและดำเนินการตามขั้นตอน การเขียนนั้นยาวและยากกว่าการทำตามขั้นตอนเพื่อให้ DNSSEC ทำงาน