Выпуск DNS-сСрвСра BIND 9.20.0, ΠΏΠ΅Ρ€Π΅Π²Π΅Π΄Ρ‘Π½Π½Ρ‹ΠΉ Π½Π° libuv ΠΈ Π½ΠΎΠ²Ρ‹ΠΉ бэкСнд для Π‘Π”

ПослС Π΄Π²ΡƒΡ… с ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½ΠΎΠΉ Π»Π΅Ρ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ консорциум ISC прСдставил ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ Ρ€Π΅Π»ΠΈΠ· Π½ΠΎΠ²ΠΎΠΉ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΈ DNS-сСрвСра BIND 9.20, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²ΠΎΠ±Ρ€Π°Π» Π² сСбя измСнСния, Ρ€Π°Π·Π²ΠΈΠ²Π°Π²ΡˆΠΈΠ΅ΡΡ Π² ΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠ΅ BIND 9.19. ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π²Π΅Ρ‚ΠΊΠΈ 9.20 Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡ‚ΡŒΡΡ Π² Ρ€Π°ΠΌΠΊΠ°Ρ… Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½ΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π° сопровоТдСния Π΄ΠΎ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ ΠΊΠ²Π°Ρ€Ρ‚Π°Π»Π° 2028 Π³ΠΎΠ΄Π°. ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π²Π΅Ρ‚ΠΊΠΈ 9.18 прСкратится Π²ΠΎ 2 ΠΊΠ²Π°Ρ€Ρ‚Π°Π»Π΅ 2025 Π³ΠΎΠ΄Π°. Для развития Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΠΉ вСрсии BIND Π±ΡƒΠ΄Π΅Ρ‚ сформирована ΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Π°Ρ Π²Π΅Ρ‚ΠΊΠ° BIND 9.21.0. Код ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° написан Π½Π° языкС Π‘ΠΈ ΠΈ распространяСтся ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠ΅ΠΉ MPL 2.0.

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ измСнСния:

  • Π―Π΄Ρ€ΠΎ прилоТСния, ΡΠ²ΡΠ·Ρ‹Π²Π°ΡŽΡ‰Π΅Π΅ всС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹, ΠΏΠ΅Ρ€Π΅Π²Π΅Π΄Π΅Π½ΠΎ Π½Π° использованиС Ρ†ΠΈΠΊΠ»Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ событий Π² Π½Π΅Π±Π»ΠΎΠΊΠΈΡ€ΡƒΡŽΡ‰Π΅ΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅, Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π½Π° основС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ libuv, примСняСмой Π² Ρ‚Π°ΠΊΠΈΡ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ…, ΠΊΠ°ΠΊ Node.js, Knot DNS, H2O, Luvit ΠΈ MoarVM. Π’ Π²Π΅Ρ‚ΠΊΠ΅ 9.16 Π½Π° libuv Π±Ρ‹Π» ΠΏΠ΅Ρ€Π΅Π²Π΅Π΄Ρ‘Π½ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ сСтСвых соСдинСний Π² BIND, Π° Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΈ части, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ для взаимодСйствия Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΡ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² инфраструктуры, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ выполняСмыС Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠΎΡ‚ΠΎΠΊΠ°Ρ… Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ (threadpool), ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ для Π²Π΅Ρ€ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ DNSSEC, трансфСра Π·ΠΎΠ½, поддСрТания ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° Π·ΠΎΠ½ ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ RPZ (Response Policy Zone). Для сборки BIND Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ трСбуСтся ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ выпуск libuv 1.34.0.
  • ΠŸΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ Π½ΠΎΠ²Ρ‹ΠΉ бэкСнд для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π‘Π” — «QP trie», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΡ€ΠΈΡˆΡ‘Π» Π½Π° смСну RBTDB (Red-Black Tree Database) ΠΈ задСйствован ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ для хранСния кэша ΠΈ Π±Π°Π·Ρ‹ DNS-Π·ΠΎΠ½. Для ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π² QP trie задСйствована Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° liburcu с Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ Π² пространствС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ структур, Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΡ… Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ, благодаря ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡŽ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° синхронизации RCU (read-copy-update) ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° бСзопасного освобоТдСния памяти QSBR (Quiescent-State-Based Reclamation).
  • ЗадСйствован ΠΎΠ±Π½ΠΎΠ²Π»Ρ‘Π½Π½Ρ‹ΠΉ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ сТатия Π΄ΠΎΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΈΠΌΡ‘Π½, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΠΉ Π±ΠΎΠ»Π΅Π΅ ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚Π½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ кодирования ΠΈΠΌΡ‘Π½ с большим числом ΠΌΠ΅Ρ‚ΠΎΠΊ.
  • Π Π°ΡΡˆΠΈΡ€Π΅Π½Ρ‹ возмоТности DNSSEC: «dnssec-policy» Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ для управлСния подписанными Π·ΠΎΠ½Π°ΠΌΠΈ (опция auto-dnssec ΡƒΠ΄Π°Π»Π΅Π½Π°); ΠΏΡ€ΠΈ использовании «inline-signing» Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° RFC 8901 (DNSSEC multi-signer model 2); Π²ΠΎΠ·ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° PKCS#11 Π½Π° Π±Π°Π·Π΅ OpenSSL 3.0.0 Engine API; Π² «dnssec-policy» Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° HSM (Hardware Security Module).
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π²Ρ‚ΠΎΡ€ΠΎΠΉ вСрсии ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° Π·ΠΎΠ½ (Catalog Zone, RFC 9432), ΡƒΠΏΡ€ΠΎΡ‰Π°ΡŽΡ‰Π΅Π³ΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅ Π²Ρ‚ΠΎΡ€ΠΈΡ‡Π½Ρ‹Ρ… DNS-сСрвСров Π·Π° счёт Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ вмСсто опрСдСлСния Π½Π° Π²Ρ‚ΠΎΡ€ΠΈΡ‡Π½ΠΎΠΌ сСрвСрС ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… записСй для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π²Ρ‚ΠΎΡ€ΠΈΡ‡Π½ΠΎΠΉ Π·ΠΎΠ½Ρ‹, ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½Ρ‹ΠΌ ΠΈ Π²Ρ‚ΠΎΡ€ΠΈΡ‡Π½Ρ‹ΠΌ сСрвСрами организуСтся ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° Π²Ρ‚ΠΎΡ€ΠΈΡ‡Π½Ρ‹Ρ… Π·ΠΎΠ½. ПослС настройки ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° ΠΏΠΎ Π°Π½Π°Π»ΠΎΠ³ΠΈΠΈ с ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ΠΉ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… Π·ΠΎΠ½, Π·Π°Π²ΠΎΠ΄ΠΈΠΌΡ‹Π΅ Π½Π° ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½ΠΎΠΌ сСрвСрС Π·ΠΎΠ½Ρ‹, ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Π½Ρ‹Π΅ ΠΊΠ°ΠΊ входящиС Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³, автоматичСски ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ Π½Π° Π²Ρ‚ΠΎΡ€ΠΈΡ‡Π½ΠΎΠΌ сСрвСрС Π±Π΅Π· нСобходимости ΠΏΡ€Π°Π²ΠΊΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ.
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹Ρ… ошибок (Extended DNS Errors, RFC 8914), ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π΅Π³ΠΎ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π΅ ошибки, возникшСй ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ DNS-запроса.
  • РСализация Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ «DNS ΠΏΠΎΠ²Π΅Ρ€Ρ… HTTPS» (DoH, DNS over HTTPS) ΠΈ DNS ΠΏΠΎΠ²Π΅Ρ€Ρ… TLS (DoT, DNS over TLS), примСняСмых для ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ запросов ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ² ΠΊ Ρ€Π΅Π·ΠΎΠ»Π²Π΅Ρ€Ρƒ ΠΈ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΎΠ±ΠΌΠ΅Π½Π° Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ сСрвСрами, ΠΏΠ΅Ρ€Π΅Π²Π΅Π΄Π΅Π½Π° Π½Π° использованиС ΡƒΠ½ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ транспорта.
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ использования ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° PROXYv2 со всСми транспортами, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹ΠΌΠΈ Π² BIND. ΠŸΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» PROXY позволяСт ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ соСдинСнии для сохранСния свСдСний ΠΎΠ± исходном IP-адрСсС ΠΈ Π½ΠΎΠΌΠ΅Ρ€Π΅ ΠΏΠΎΡ€Ρ‚Π° ΠΏΡ€ΠΈ пробросС DNS-запросов Ρ‡Π΅Ρ€Π΅Π· Π΄Ρ€ΡƒΠ³ΠΈΠ΅ бэкСнды, балансировщики Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΈ прокси-сСрвСры.
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Ρ€Π΅ΠΆΠΈΠΌΠ° USDT (User Statically Defined Tracing), Π΄Π°ΡŽΡ‰Π΅Π³ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ трассировку прилоТСния ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ perf, Π½Π΅ создавая Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Π½Π°ΠΊΠ»Π°Π΄Π½Ρ‹Π΅ расходы, ΠΊΠΎΠ³Π΄Π° трассировка ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½Π°.
  • Π’ собираСмой статистикС Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ отраТСния ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ Π½Π΅Π·Π°Π²Π΅Ρ€ΡˆΡ‘Π½Π½Ρ‹Ρ… входящих опСрациях ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π·ΠΎΠ½.
  • ΠŸΡ€ΠΎΠ²Π΅Π΄Π΅Π½Π° Ρ€Π°Π±ΠΎΡ‚Π° ΠΏΠΎ ΡΠΎΠΊΡ€Π°Ρ‰Π΅Π½ΠΈΡŽ Π·Π°Π΄Π΅Ρ€ΠΆΠ΅ΠΊ, ΡƒΠΌΠ΅Π½ΡŒΡˆΠ΅Π½ΠΈΡŽ потрСблСния памяти ΠΈ сниТСнию Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π½Π° CPU ΠΏΡ€ΠΈ Ρ€Π΅Π·ΠΎΠ»Π²ΠΈΠ½Π³Π΅, Ρ€Π°Π±ΠΎΡ‚Π΅ DNS-over-TLS ΠΈ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠ² ΠΏΠΎ UDP ΠΈ TCP.
    Выпуск DNS-сСрвСра BIND 9.20.0, ΠΏΠ΅Ρ€Π΅Π²Π΅Π΄Ρ‘Π½Π½Ρ‹ΠΉ Π½Π° libuv ΠΈ Π½ΠΎΠ²Ρ‹ΠΉ бэкСнд для Π‘Π”
    Выпуск DNS-сСрвСра BIND 9.20.0, ΠΏΠ΅Ρ€Π΅Π²Π΅Π΄Ρ‘Π½Π½Ρ‹ΠΉ Π½Π° libuv ΠΈ Π½ΠΎΠ²Ρ‹ΠΉ бэкСнд для Π‘Π”
    Выпуск DNS-сСрвСра BIND 9.20.0, ΠΏΠ΅Ρ€Π΅Π²Π΅Π΄Ρ‘Π½Π½Ρ‹ΠΉ Π½Π° libuv ΠΈ Π½ΠΎΠ²Ρ‹ΠΉ бэкСнд для Π‘Π”

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru