Score:0

เป็นไปได้ไหมที่จะมี DNS ภายในและสาธารณะที่แตกต่างกันด้วย DNSSEC

ธง in

ฉันพยายามที่จะบรรลุสิ่งต่อไปนี้:

  • เนมเซิร์ฟเวอร์สาธารณะสำหรับโดเมนของฉันซึ่งชี้ ตัวอย่าง.คอม ไปยังที่อยู่ IP สาธารณะ
  • เนมเซิร์ฟเวอร์ส่วนตัวสำหรับโดเมนเดียวกันที่ทำงานภายใน LAN ซึ่งชี้ไคลเอนต์ไปยังที่อยู่ IP ส่วนตัวบน LAN เดียวกันแทน
  • เปิดใช้งาน DNSSEC

แน่นอนว่าการบรรลุจุดแรกและจุดสุดท้ายร่วมกันนั้นค่อนข้างง่าย ดังนั้นการทำให้องค์ประกอบส่วนตัวทำงานได้นั่นคือปัญหา

ในแง่ของการตั้งค่าจริงของฉัน:

  • ฉันใช้บริการ DNS ของ Cloudflare ซึ่งฉันมีบันทึก A สำหรับโดเมนของฉันที่ชี้ไปยังที่อยู่ IP สาธารณะและเปิดใช้งาน DNSSEC
  • ที่ผู้รับจดทะเบียนของฉัน ฉันได้เพิ่มบันทึก DS ตามสิ่งที่ Cloudflare มอบให้ฉันและกำหนดค่าเนมเซิร์ฟเวอร์ของ Cloudflare ทั้งหมดนี้ใช้งานได้ดีตามที่คุณคาดหวัง
  • ภายในฉันกำลังเรียกใช้ Pi-Hole (ตั้งค่าเป็นเซิร์ฟเวอร์ DNS สำหรับไคลเอนต์บน LAN ของฉัน) ซึ่งกำหนดค่าโดยเปิดใช้งาน DNSSEC และชี้ไปที่อินสแตนซ์ CoreDNS ในเครื่องเป็นตัวแก้ไขอัปสตรีม
  • ใน CoreDNS ฉันมีโซนที่กำหนดค่าไว้สำหรับ ตัวอย่าง.คอม ซึ่งลงนามด้วยคีย์ที่สร้างโดย coredns-keygen. สิ่งนี้มีบันทึกที่ชี้ไปยังที่อยู่ IP ภายใน
  • ฉันมีบันทึก DS ที่สองที่ผู้รับจดทะเบียนของฉันตามรหัสที่ใช้ภายในโดย CoreDNS

เกิดอะไรขึ้น:

  • การตั้งค่าทั่วไปใช้สำหรับแก้ไขโดเมนที่ไม่ใช่ของฉัน
  • Pi-Hole ตอบกลับด้วย SERVFAIL และบันทึก ถูกทอดทิ้ง เมื่อฉันพยายามแก้ไขโดเมนของฉัน
  • แต่ถ้าฉันชี้ไคลเอ็นต์ไปที่ CoreDNS โดยตรง (เช่น กับ ขุด) ฉันได้รับการตอบสนองที่คาดหวังด้วยที่อยู่ IP ของ LAN
  • นอกจากนี้ ถ้าฉันปิดใช้งาน DNSSEC ใน Pi-Hole ก็ใช้งานได้ดี

ดังนั้นคำถามของฉันคือ:

  • สิ่งที่ฉันพยายามบรรลุเป็นไปได้หรือไม่?
  • ฉันเริ่มสงสัยว่าการมีระเบียน DS แยกต่างหากที่ผู้รับจดทะเบียนของฉันนั้นผิดหรือไม่ แต่ฉันไม่คิดว่าฉันจะสามารถดึงคีย์ส่วนตัวที่ Cloudflare ใช้อยู่ และไม่สามารถอัปโหลดคีย์ที่กำหนดเองได้ ดังนั้นฉันจึงไม่แน่ใจว่าจะใช้ได้อย่างไร ปุ่มเดียวกันสำหรับสาธารณะและส่วนตัว
  • มีเหตุผลใดบ้างที่ดูเหมือนว่าจะได้ผลหากฉันแนะนำลูกค้าของฉันไปที่ CoreDNS โดยตรง แต่ Pi-Hole ปฏิเสธที่จะให้ความร่วมมือ

ขอบคุณ!

Patrick Mevzek avatar
cn flag
คำถามต่อไปนี้ในคอลัมน์ที่เกี่ยวข้องอาจช่วยได้: https://serverfault.com/questions/745270/using-dnssec-with-private-tld?rq=1
Patrick Mevzek avatar
cn flag
"ฉันเริ่มสงสัยว่าการมีระเบียน DS แยกต่างหากที่ผู้รับจดทะเบียนของฉันนั้นผิดหรือไม่" DNSSEC คาดหวังให้เส้นทางที่ถูกต้องมีอยู่หนึ่งเส้นทางเพื่อพิสูจน์สายโซ่แห่งความไว้วางใจ ไม่ทั้งหมด. ดังนั้นจึงเป็นเรื่อง "ดี" ที่มี DS เพิ่มเติม คุณสามารถค้นหา TLD/โดเมนต่างๆ ได้โดยใช้การตั้งค่า "DS ที่เผยแพร่ล่วงหน้า" โดยที่ DS ถูกเผยแพร่ที่พาเรนต์ โดยไม่มี DNSKEY ที่เกี่ยวข้องเผยแพร่ที่ย่อย ใช้งานได้ตราบเท่าที่มีระเบียน DS อื่นที่มี DNSKEY ที่เหมาะสม คุณอาจต้องการ จาก Pi-Hole เพื่อดีบัก SERVFAIL เพิ่มเติม อาจเกี่ยวข้องกับ DNSSEC หรือไม่ก็ได้ หากคุณมี EDE จะช่วยได้ แต่อย่างอื่นให้ลองใช้การขุดที่มีและไม่มี `+cd`
Patrick Mevzek avatar
cn flag
ชื่อจริงน่าจะช่วยได้ ฉันเดาว่าปัญหาเกี่ยวข้องกับบันทึก `NS` ของคุณมากกว่า "ใน CoreDNS ฉันมีโซนที่กำหนดค่าสำหรับ example.com ซึ่งลงนามด้วยคีย์ที่สร้างโดย coredns-keygen" แต่อาจมีบันทึก NS ที่แตกต่างจากโซนเวอร์ชันสาธารณะหรือไม่ ซึ่งอาจทำให้เกิดข้อผิดพลาดในลายเซ็นได้ เนื่องจาก NS rrset จะไม่ตรงกันอีกต่อไป
in flag
ขอบคุณ ฉันเห็นคำถามนั้นแล้ว แต่น่าเสียดายที่ลิงก์ในคำตอบนั้นตายแล้ว นอกจากนี้ ฉันยังเป็นเจ้าของโดเมนจริงด้วย ดังนั้นน่าจะทำให้ง่ายขึ้น ดังนั้นการมีระเบียน DS หลายรายการจึงไม่เป็นไร แต่เมื่อคุณพูดว่า DNSSEC ต้องการเส้นทางเดียว สันนิษฐานว่านั่นไม่ได้หมายถึงเพียงเส้นทางเดียว ถ้าฉันพยายามขุดด้วย `+cd` ฉันจะได้รับ `NOERROR` ดังนั้นปัญหานี้จึงเกี่ยวข้องกับการตรวจสอบอย่างแน่นอน "แต่ด้วยบันทึก NS อาจแตกต่างจากโซนเวอร์ชันสาธารณะ" - อ่าใช่ฉันเพิ่งลองตั้งค่า SOA และ NS ของโซนภายในให้เหมือนกันกับสาธารณะ ยังไม่มีการเปลี่ยนแปลงใดๆ
in flag
จะพยายามและรับข้อผิดพลาดที่เป็นประโยชน์เพิ่มเติมจาก Pi-Hole จะตรวจสอบว่าฉันสามารถเปิดใช้งาน EDE ได้หรือไม่
Patrick Mevzek avatar
cn flag
"แต่เมื่อคุณพูดว่า DNSSEC ต้องการเส้นทางเดียว สันนิษฐานว่าไม่ได้หมายถึงเส้นทางเดียวเท่านั้น" ตัวแก้ไขจะใช้ DS ทั้งหมดที่เห็นและ DNSKEY ทั้งหมดที่เห็น และถ้าพบการจับคู่หนึ่งรายการ (รวมทั้งการเข้ารหัสลับและวันที่ทั้งหมดก็โอเค) จะเป็นการดีที่จะยืนยันว่าสายโซ่แห่งความไว้วางใจได้รับการตรวจสอบแล้ว (และจะดำเนินการต่อไป กับคณะผู้แทนระดับถัดไป เป็นต้น) เมื่อพบเส้นทางที่ถูกต้อง DS/DNSKEY อื่นๆ ที่ระดับเดียวกันจะไม่เกี่ยวข้อง แม้ว่าจะใช้งานได้เหมือนกันก็ตาม
Patrick Mevzek avatar
cn flag
ดู §5.3.3 ของ RFC4035 หากชัดเจนกว่าคำอธิบายของฉัน: "โปรดทราบว่า DNSKEY RR มากกว่าหนึ่งรายการจะตรงกับ เงื่อนไขในข้อ 5.3.1 ในกรณีนี้ ผู้ตรวจสอบเท่านั้นที่สามารถ ตรวจสอบว่า DNSKEY RR ใดถูกต้องโดยลองใช้สาธารณะที่ตรงกันแต่ละรายการ คีย์จนกว่าตัวตรวจสอบความถูกต้องจะประสบความสำเร็จในการตรวจสอบความถูกต้องของลายเซ็น หรือไม่มีคีย์ที่จะลอง" ดังนั้นการจับคู่เพียงครั้งเดียวก็เพียงพอแล้วที่จะมีความสำคัญ (เมื่อมี DNSKEY/DS หลายรายการ โปรดจำไว้ว่า DNSKEY ที่กำหนดแม้เพียงอันเดียวก็สามารถมีระเบียน DS ได้หลายรายการ สำหรับไดเจสต์ที่แตกต่างกัน)
in flag
ขอบคุณ นั่นสมเหตุสมผลแล้ว ฉันยังคงติดอยู่กับเรื่องนี้โชคไม่ดี ทั้งหมดที่ฉันเห็นได้จากบันทึกก็คือ Pi-Hole ส่งต่อข้อความค้นหาไปยัง CoreDNS ซึ่งตอบกลับด้วยระเบียน A จากนั้น Pi-hole จะค้นหาบันทึก DS, CoreDNS จะบันทึกการตอบสนอง 'NOERROR' แต่ Pi-Hole จะบันทึกว่า 'การตรวจสอบ mydomain.com is ABANDONED'ลองใช้ `dig` และ `drill` เพื่อสอบถามเซิร์ฟเวอร์ CoreDNS โดยตรง ทั้งหมดที่ฉันพูดได้ก็คือตามความเข้าใจที่ดีที่สุดของฉัน คำตอบดูถูกต้อง ดังนั้นฉันจึงไม่รู้ว่าเหตุใด Pi-Hole จึงละทิ้งการตรวจสอบ

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา