Rilis inisiatif PowerDNS Recursor 4.2 dan DNS flag day 2020

Setelah satu setengah tahun pembangunan disajikan rilis cache server DNS Sumber Daya PowerDNS 4.2, bertanggung jawab untuk konversi nama rekursif. PowerDNS Recursor dibangun di atas basis kode yang sama dengan Server Resmi PowerDNS, tetapi server DNS rekursif dan otoritatif PowerDNS dikembangkan melalui siklus pengembangan yang berbeda dan dirilis sebagai produk terpisah. Kode proyek didistribusikan oleh berlisensi di bawah GPLv2.

Versi baru menghilangkan semua masalah yang terkait dengan pemrosesan paket DNS dengan flag EDNS. Versi PowerDNS Recursor yang lebih lama sebelum tahun 2016 memiliki praktik mengabaikan paket dengan flag EDNS yang tidak didukung tanpa mengirimkan respons dalam format lama, membuang flag EDNS seperti yang disyaratkan oleh spesifikasi. Sebelumnya, perilaku non-standar ini didukung di BIND dalam bentuk solusi, namun dalam cakupan dilakukan pada inisiatif bulan Februari Hari bendera DNS, pengembang server DNS memutuskan untuk meninggalkan peretasan ini.

Di PowerDNS, masalah utama dalam memproses paket dengan EDNS dihilangkan pada tahun 2017 di rilis 4.1, dan di cabang 2016 yang dirilis pada tahun 4.0, muncul ketidakcocokan individu yang muncul dalam serangkaian keadaan tertentu dan, secara umum, tidak mengganggu operasi normal. operasi. Di PowerDNS Recursor 4.2, seperti pada MENGIKAT 9.14, Menghapus solusi untuk mendukung server otoritatif yang salah merespons permintaan dengan tanda EDNS. Hingga saat ini, jika setelah mengirimkan permintaan dengan flag EDNS tidak ada respon setelah jangka waktu tertentu, server DNS berasumsi bahwa flag yang diperluas tidak didukung dan mengirimkan permintaan kedua tanpa flag EDNS. Perilaku ini sekarang telah dinonaktifkan karena kode ini mengakibatkan peningkatan latensi karena transmisi ulang paket, peningkatan beban jaringan dan ambiguitas ketika tidak merespons karena kegagalan jaringan, dan mencegah penerapan fitur berbasis EDNS seperti Cookie DNS untuk melindungi dari serangan DDoS.

Diputuskan untuk mengadakan acara tersebut tahun depan Hari bendera DNS 2020dirancang untuk memusatkan perhatian keputusan masalah dengan fragmentasi IP saat memproses pesan DNS besar. Sebagai bagian dari inisiatif sudah direncanakan perbaiki ukuran buffer yang disarankan untuk EDNS menjadi 1200 byte, dan menterjemahkan memproses permintaan melalui TCP adalah fitur yang harus dimiliki di server. Sekarang dukungan untuk memproses permintaan melalui UDP diperlukan, dan TCP diinginkan, tetapi tidak diperlukan untuk pengoperasian (standar memerlukan kemampuan untuk menonaktifkan TCP). Diusulkan untuk menghapus opsi untuk menonaktifkan TCP dari standar dan menstandarkan transisi dari mengirim permintaan melalui UDP ke menggunakan TCP jika ukuran buffer EDNS yang ditetapkan tidak cukup.

Perubahan yang diusulkan sebagai bagian dari inisiatif ini akan menghilangkan kebingungan dalam memilih ukuran buffer EDNS dan memecahkan masalah fragmentasi pesan UDP besar, yang pemrosesannya sering menyebabkan hilangnya paket dan batas waktu di sisi klien. Di sisi klien, ukuran buffer EDNS akan konstan dan respons besar akan segera dikirim ke klien melalui TCP. Menghindari pengiriman pesan berukuran besar melalui UDP juga akan memungkinkan Anda memblokir serangan untuk meracuni cache DNS, berdasarkan manipulasi paket UDP yang terfragmentasi (ketika dipecah menjadi beberapa fragmen, fragmen kedua tidak menyertakan header dengan pengidentifikasi, sehingga dapat dipalsukan, yang cukup dengan mencocokkan checksum saja) .

PowerDNS Recursor 4.2 memperhitungkan masalah dengan paket UDP yang besar dan beralih menggunakan ukuran buffer EDNS (edns-outgoing-bufsize) sebesar 1232 byte, bukan batas yang digunakan sebelumnya yaitu 1680 byte, yang secara signifikan akan mengurangi kemungkinan kehilangan paket UDP . Nilai 1232 dipilih karena merupakan nilai maksimum di mana ukuran respons DNS, dengan mempertimbangkan IPv6, sesuai dengan nilai MTU minimum (1280). Nilai parameter ambang batas pemotongan, yang bertanggung jawab untuk memangkas respons ke klien, juga telah dikurangi menjadi 1232.

Perubahan lain di PowerDNS Recursor 4.2:

  • Menambahkan dukungan mekanisme XPF (X-Proxied-For), yang setara dengan DNS dari header HTTP X-Forwarded-For, memungkinkan informasi tentang alamat IP dan nomor port pemohon asli diteruskan melalui proxy perantara dan penyeimbang beban (seperti dnsdist) . Untuk mengaktifkan XPF ada opsi "xpf-izinkan-dari"Dan"xpf-rr-kode";
  • Peningkatan dukungan untuk ekstensi EDNS Subnet Klien (ECS), yang memungkinkan Anda mengirimkan kueri DNS ke server DNS otoritatif informasi tentang subnet tempat permintaan awal yang dikirimkan sepanjang rantai diracuni (data tentang subnet sumber klien diperlukan untuk pengoperasian jaringan pengiriman konten yang efektif) . Rilis baru menambahkan pengaturan untuk kontrol selektif atas penggunaan Subnet Klien EDNS: "ecs-tambah-untukΒ» dengan daftar masker jaringan yang IP-nya akan digunakan di ECS dalam permintaan keluar. Untuk alamat yang tidak termasuk dalam masker yang ditentukan, alamat umum ditentukan dalam arahan "ecs-scope-zero-address". Melalui arahan "gunakan-masuk-edns-subnetΒ» Anda dapat menentukan subnet dari mana permintaan masuk dengan nilai ECS yang terisi tidak akan diganti;
  • Untuk server yang memproses permintaan dalam jumlah besar per detik (lebih dari 100 ribu), arahan β€œbenang distributor", yang menentukan jumlah thread untuk menerima permintaan masuk dan mendistribusikannya di antara thread pekerja (hanya masuk akal saat menggunakan "pdns-mendistribusikan-kueri=ya").
  • Pengaturan tambahan file-daftar-akhiran-publik untuk menentukan file Anda sendiri daftar sufiks publik domain tempat pengguna dapat mendaftarkan subdomainnya, alih-alih daftar yang ada di PowerDNS Recursor.

Proyek PowerDNS juga mengumumkan peralihan ke siklus pengembangan enam bulan, dengan rilis besar berikutnya dari PowerDNS Recursor 4.3 diharapkan pada Januari 2020. Pembaruan untuk rilis yang signifikan akan dikembangkan sepanjang tahun, setelah itu perbaikan kerentanan akan dirilis selama enam bulan berikutnya. Dengan demikian, dukungan untuk cabang PowerDNS Recursor 4.2 akan bertahan hingga Januari 2021. Perubahan siklus pengembangan serupa telah dilakukan untuk PowerDNS Authoritative Server, yang diperkirakan akan merilis versi 4.2 dalam waktu dekat.

Fitur utama Rekursor PowerDNS:

  • Alat untuk pengumpulan statistik jarak jauh;
  • Mulai ulang secara instan;
  • Mesin bawaan untuk menghubungkan penangan dalam bahasa Lua;
  • Dukungan penuh DNSSEC dan DNS64;
  • Dukungan untuk RPZ (Zona Kebijakan Respons) dan kemampuan untuk menentukan daftar hitam;
  • Mekanisme anti-spoofing;
  • Kemampuan untuk merekam hasil resolusi sebagai file zona BIND.
  • Untuk memastikan kinerja tinggi, mekanisme multiplexing koneksi modern digunakan di FreeBSD, Linux dan Solaris (kqueue, epoll, /dev/poll), serta parser paket DNS berkinerja tinggi yang mampu memproses puluhan ribu permintaan paralel.

Sumber: opennet.ru

Tambah komentar