หลังจากหนึ่งปีครึ่งของการพัฒนา
เวอร์ชันใหม่ขจัดปัญหาทั้งหมดที่เกี่ยวข้องกับการประมวลผลแพ็กเก็ต DNS ด้วยแฟล็ก EDNS PowerDNS Recursor เวอร์ชันเก่าก่อนปี 2016 มีวิธีปฏิบัติในการเพิกเฉยต่อแพ็กเก็ตที่มีแฟล็ก EDNS ที่ไม่รองรับ โดยไม่ส่งการตอบกลับในรูปแบบเก่า โดยละทิ้งแฟล็ก EDNS ตามที่กำหนดในข้อกำหนด ก่อนหน้านี้ การทำงานที่ไม่ได้มาตรฐานนี้ได้รับการสนับสนุนใน BIND ในรูปแบบของวิธีแก้ปัญหา แต่อยู่ภายในขอบเขตของ
ใน PowerDNS ปัญหาหลักในการประมวลผลแพ็กเก็ตด้วย EDNS ได้รับการแก้ไขในปี 2017 ในรุ่น 4.1 และในสาขา 2016 ที่เปิดตัวในปี 4.0 ความเข้ากันไม่ได้แต่ละรายการเกิดขึ้นภายใต้สถานการณ์บางชุดและโดยทั่วไปแล้ว จะไม่รบกวนการทำงานปกติ การดำเนินการ. ใน PowerDNS Recursor 4.2 เช่นเดียวกับใน
มีมติให้จัดงานในปีหน้า
การเปลี่ยนแปลงที่เสนอโดยเป็นส่วนหนึ่งของโครงการริเริ่มจะช่วยลดความสับสนในการเลือกขนาดบัฟเฟอร์ EDNS และแก้ปัญหาการกระจายตัวของข้อความ UDP ขนาดใหญ่ ซึ่งการประมวลผลมักจะนำไปสู่การสูญเสียแพ็กเก็ตและการหมดเวลาในฝั่งไคลเอ็นต์ ในฝั่งไคลเอ็นต์ ขนาดบัฟเฟอร์ EDNS จะคงที่และการตอบกลับจำนวนมากจะถูกส่งไปยังไคลเอ็นต์ผ่าน TCP ทันที การหลีกเลี่ยงการส่งข้อความขนาดใหญ่ผ่าน UDP จะทำให้คุณสามารถบล็อกได้
PowerDNS Recursor 4.2 คำนึงถึงปัญหาเกี่ยวกับแพ็กเก็ต UDP ขนาดใหญ่ และเปลี่ยนไปใช้ขนาดบัฟเฟอร์ EDNS (edns-outgoing-bufsize) ที่ 1232 ไบต์ แทนที่จะเป็นขีดจำกัดที่ใช้ก่อนหน้านี้ที่ 1680 ไบต์ ซึ่งจะช่วยลดโอกาสที่จะสูญเสียแพ็กเก็ต UDP ได้อย่างมาก . เลือกค่า 1232 เนื่องจากเป็นขนาดสูงสุดที่ขนาดของการตอบสนอง DNS เมื่อคำนึงถึง IPv6 จะพอดีกับค่า MTU ขั้นต่ำ (1280) ค่าของพารามิเตอร์ truncation-threshold ซึ่งรับผิดชอบในการตัดการตอบสนองไปยังไคลเอ็นต์ ก็ลดลงเหลือ 1232 เช่นกัน
การเปลี่ยนแปลงอื่นๆ ใน PowerDNS Recursor 4.2:
- เพิ่มการรองรับกลไก
XPF (X-Proxied-For) ซึ่งเทียบเท่ากับ DNS ของส่วนหัว X-Forwarded-For HTTP ช่วยให้ข้อมูลเกี่ยวกับที่อยู่ IP และหมายเลขพอร์ตของผู้ร้องขอดั้งเดิมได้รับการส่งต่อผ่านพร็อกซีระดับกลางและโหลดบาลานเซอร์ (เช่น dnsdist) . หากต้องการเปิดใช้งาน XPF มีตัวเลือกต่างๆ "xpf-allow-จาก "และ"xpf-rr-รหัส "; - ปรับปรุงการรองรับส่วนขยาย EDNS
ซับเน็ตไคลเอ็นต์ (ECS) ซึ่งช่วยให้คุณสามารถส่งการสืบค้น DNS ไปยังเซิร์ฟเวอร์ DNS ที่เชื่อถือได้ข้อมูลเกี่ยวกับเครือข่ายย่อยที่คำขอเริ่มต้นที่ส่งไปตามสายโซ่ถูกวางยา (ข้อมูลเกี่ยวกับเครือข่ายย่อยต้นทางของไคลเอนต์จำเป็นสำหรับการทำงานที่มีประสิทธิภาพของเครือข่ายการจัดส่งเนื้อหา) . รุ่นใหม่เพิ่มการตั้งค่าสำหรับการควบคุมแบบเลือกผ่านการใช้เครือข่ายย่อยไคลเอนต์ EDNS: “ecs-add-for » พร้อมรายการเน็ตเวิร์กมาสก์ที่จะใช้ IP ใน ECS ในคำขอขาออก สำหรับที่อยู่ที่ไม่อยู่ในมาสก์ที่ระบุ ให้ระบุที่อยู่ทั่วไปในคำสั่ง "ecs-ขอบเขต-ศูนย์-ที่อยู่ ". ผ่านคำสั่ง "ใช้ขาเข้า edns-subnet » คุณสามารถกำหนดเครือข่ายย่อยที่จะไม่ถูกแทนที่คำขอขาเข้าที่มีค่า ECS ที่กรอก - สำหรับเซิร์ฟเวอร์ที่ประมวลผลคำขอจำนวนมากต่อวินาที (มากกว่า 100) คำสั่ง “
ผู้จัดจำหน่าย-เธรด " ซึ่งกำหนดจำนวนเธรดสำหรับรับคำขอที่เข้ามาและกระจายระหว่างเธรดของผู้ปฏิบัติงาน (เหมาะสมเมื่อใช้ "pdns-distributes-queries=ใช่ «) - เพิ่มการตั้งค่า
ไฟล์รายการต่อท้ายสาธารณะ เพื่อกำหนดไฟล์ของคุณเองด้วยรายการคำต่อท้ายสาธารณะ โดเมนที่ผู้ใช้สามารถลงทะเบียนโดเมนย่อยของตนได้ แทนที่จะเป็นรายการที่สร้างไว้ใน PowerDNS Recursor
โครงการ PowerDNS ยังประกาศการย้ายไปสู่รอบการพัฒนาหกเดือน โดยคาดว่าจะมีการเปิดตัว PowerDNS Recursor 4.3 รุ่นใหญ่ครั้งต่อไปในเดือนมกราคม 2020 การอัปเดตสำหรับการเผยแพร่ที่สำคัญจะได้รับการพัฒนาตลอดทั้งปี หลังจากนั้นจะมีการเปิดตัวการแก้ไขช่องโหว่ต่อไปอีกหกเดือน ดังนั้นการสนับสนุนสาขา PowerDNS Recursor 4.2 จะคงอยู่จนถึงเดือนมกราคม 2021 มีการเปลี่ยนแปลงวงจรการพัฒนาที่คล้ายกันสำหรับ PowerDNS Authoritative Server ซึ่งคาดว่าจะเปิดตัว 4.2 ในอนาคตอันใกล้นี้
คุณสมบัติหลักของ PowerDNS Recursor:
- เครื่องมือสำหรับการรวบรวมสถิติระยะไกล
- รีสตาร์ททันที
- เอ็นจิ้นในตัวสำหรับเชื่อมต่อตัวจัดการในภาษา Lua
- รองรับ DNSSEC เต็มรูปแบบและ
DNS64 ; - รองรับ RPZ (Response Policy Zones) และความสามารถในการกำหนดบัญชีดำ
- กลไกป้องกันการปลอมแปลง
- ความสามารถในการบันทึกผลลัพธ์ความละเอียดเป็นไฟล์โซน BIND
- เพื่อให้มั่นใจว่ามีประสิทธิภาพสูง จึงมีการใช้กลไกการเชื่อมต่อแบบมัลติเพล็กซ์ที่ทันสมัยใน FreeBSD, Linux และ Solaris (kqueue, epoll, /dev/poll) รวมถึงตัวแยกวิเคราะห์แพ็กเก็ต DNS ประสิทธิภาพสูงที่สามารถประมวลผลคำขอแบบขนานนับหมื่นรายการ
ที่มา: opennet.ru