PowerDNS este un editor de nume de daemon liber și deschis, care oferă performanțe de înaltă performanță și poate fi modelat să funcționeze ca un nume de server modern și modern, numai în sistemele de operare GNU / Linux, distribuții.
Un server DNS scris de la zero
PowerDNS este scris de la zero, respectă toate documentele relevante privind standardele DNS și interfețele cu aproape orice bază de date. Este distribuit în mai multe pachete separate, inclusiv pdns, powerdns-server, pdns-recursor și pdns-server.
Folosește o arhitectură flexibilă pentru backend
Aplicația folosește o arhitectură flexibilă pentru backend care permite accesul la informațiile DNS din orice sursă de date, inclusiv formate de fișiere, baze de date relaționale, directoare LDAP și fișiere Binding zone.
PowerDNS este configurat în mod prestabilit pentru a difuza toate informațiile direct dintr-o bază de date, ceea ce are drept rezultat o întreținere neegalată a informațiilor DNS. Acesta este disponibil pentru toate distribuțiile majore Linux.
Cine folosește PowerDNS?
Mai multe companii de hosting de nume de domeniu și registratori de domenii utilizează software-ul PowerDNS pentru a-și gestiona serviciile, inclusiv BIT Internet Technology, Hostnet, Totaalnet Internet Works, Oxilion, WebReus și mijndomein.nl.
Sub capota și disponibilitate
Software-ul este scris în întregime în limbajul de programare C ++ și distribuit ca pachete binare pre-construite în format de fișiere DEB și RPM, care suportă atât platformele hardware pe 64 de biți, cât și pe 32 de biți.
Fiind un proiect cu software open source, PowerDNS este de asemenea disponibil pentru descărcare ca arhivă de surse universale, permițând utilizatorilor să o optimizeze pentru o arhitectură hardware specifică și sisteme de operare.
Ce este nou în această versiune:
- Îmbunătățiri:
- # 6239, # 6559: pdnsutil: folosiți un domeniu nou în b2bmigrate (Aki Tuomi)
- # 6130: Actualizați anii drepturilor de autor până în 2018 (Matt Nordhoff)
- # 6312, # 6545: Pachetul inferior "prea scurt" loglevel
- Remedieri de erori:
- # 6441, # 6614: Restricționați crearea OPT și TSIG RRsets
- # 6228, # 6370: Manipularea corectă a unor filtre axfr definite de utilizator returnează valori
- # 6584, # 6585, # 6608: Împiedicați backend-ul GeoIP să copieze NetMaskTrees în jur, fixează încetinirea ritmului în anumite configurații (Aki Tuomi)
- # 6654, # 6659: Asigurați-vă că răspunsurile aliasului peste TCP au un nume corect
Ce este nou în versiune:
- Această versiune prezintă contribuții importante din partea comunității noastre. Am dori să evidențiem munca neobosită a lui Kees Monshouwer în îmbunătățirea serverului autoritar pe baza experienței sale uriașe de reducere a puterii PowerDNS la milioane de zone de producție DNSSEC. Christian Hofstaedtler și Jan-Piet Mens au contribuit masiv și la multe locuri diferite. De asemenea, o rundă de mulțumiri către Gregory Oestreicher pentru revigorarea și revigorarea backendului LDAP. Wolfgang Studier, "MrM0nkey", Tudor Soroceanu și Benjamin Zengin au prezentat API-ul de management DNSSEC, ca parte a studiilor la TU Berlin.
- Am încercat să enumerăm pe toți ceilalți în changelog-ul complet și suntem foarte recunoscători pentru toată munca și testarea pe care PowerDNS le-a primit de la comunitate!
- Performanță îmbunătățită: accelerare 4x în anumite scenarii:
- Mai mult de un an, RIPE NCC a evaluat mai multe implementări de nume de servere și a constatat că PowerDNS nu a fost un server rădăcină performant. Deși PowerDNS este excelent pentru a servi milioane de zone, dorim să fim repede și în zonele mai mici. Rezultatele acestui sondaj de optimizare sunt descrise aici și, de asemenea, în acest articol mai lung "Optimizarea optimizării: unele informații care au condus la o accelerare de 400% a PowerDNS". Funcția cache (re) de lucru a lui Kees Monshouwer a fost vitală pentru atingerea acestei îmbunătățiri a performanței.
- Crypto API: DNSSEC complet configurabil prin API RESTful:
- API-ul nostru HTTP RESTful a câștigat suport pentru administrarea DNSSEC și cheie. Acest API este "mai bogat decât majoritatea" deoarece este conștient de semantica DNSSEC și, prin urmare, vă permite să manipulați zone fără a fi nevoie să vă gândiți la detaliile DNSSEC. API-ul va face ceea ce trebuie. Această lucrare a fost contribuită de Wolfgang Studier, # MrM0nkey, Tudor Soroceanu și Benjamin Zengin, ca parte a muncii lor la TU Berlin.
- Baze de date legate de: reconectare și cipuri de 64 biți:
- Serverele bazei de date se deconectează uneori după perioade de repaos sau mai lungi. Acest lucru ar putea confunda atât bibliotecile de baze de date PowerDNS, cât și bazele de date ale clienților de bază de date, în anumite condiții de liniște 4.1 conține o logică îmbunătățită de reconectare pe care credem că o rezolvă toate problemele asociate. Într-o dezvoltare plăcută, un utilizator PowerDNS are o bază de date atât de mare încât a depășit un numărător de ID-uri de 32 biți, care a fost acum realizat pe 64 de biți.
- Documentație îmbunătățită:
- Pieter Lexis a investit o tona de timp îmbunătățind nu numai conținutul, ci și aspectul și căutarea documentației noastre. Aruncați o privire la https://doc.powerdns.com/authoritative/ și știți că puteți edita cu ușurință documentația noastră prin intermediul editorului construit în GitHub.
- Eliminarea pastei de recurs:
- Acest lucru va afecta multe instalații și ne dăm seama că acest lucru poate fi dureros, dar este necesar. Anterior, serverul autorizat PowerDNS conținea o facilitate pentru trimiterea interogărilor de recurs dorite la un backend de rezolvare, posibil după consultarea inițială a cache-ului local. Această caracteristică ("recursor =") a fost frecvent confuză și, de asemenea, a dat rezultate incoerente, de exemplu atunci când o interogare a ajuns să se refere la un CNAME care era în afara cunoștințelor Serverului autoritar. Pentru a migra dintr-un server PowerDNS Autoritar cu o eroare 3.0 sau 4.0, cu o declarație "recursor" în fișierul de configurare, consultați Migrarea de la utilizarea recursului pe Serverul autoritar la utilizarea unui Recursor.
- Diverse:
- A fost adăugată asistență pentru TCP Fast Open. Legarea non-locală este acum acceptată. zona de control pdnsutil va avertiza acum despre mai multe erori sau configurații puțin probabile. Pachetele noastre se livrează acum cu suportul PKCS # 11 (care anterior necesita o recompilare). Integrare îmbunătățită cu înregistrarea sistemelor (eliminarea timbrului).
Ce este nou în versiunea 4.0.0:
- Multe dintre modificări sunt în interior și făceau parte din marele "curățare primăvară":
- Sa mutat la C ++ 2011, o versiune C ++ mai curată, mai puternică, care ne-a permis să îmbunătățim calitatea implementării în multe locuri.
- Implementată infrastructură dedicată pentru tratarea denumirilor DNS care este pe deplin "DNS Nativ" și are nevoie de mai puține scăpări și neascultări. Din acest motiv, serverul autorizat PowerDNS poate servi acum zonelor rădăcină cu DNSSEC.
- Toate backend-urile derivate din backend-ul generic SQL utilizează instrucțiuni pregătite.
- Atât serverul cât și pdns_control fac ceea ce trebuie atunci când este chroot'ed.
- Cache-urile sunt acum complet ordonate canonic, ceea ce înseamnă că intrările pot fi șterse pe sufix în toate locurile
- Pe lângă această curățare, au fost adăugate următoarele caracteristici noi și interesante:
- O back-end ODBC reînviată și susținută (godbc).
- Un backend LDAP reînnoit și acceptat (ldap).
- Suport pentru CDS / CDNSKEY și RFC 7344 key-rollovers.
- Suport pentru înregistrarea ALIAS.
- Serverul web și API nu mai sunt experimentale. Calea API sa mutat în / api / v1
- DNSUpdate nu mai este experimental.
- ECDSA (algoritmul 13 și 14) suportate fără biblioteci criptografice în interiorul arborelui (furnizate de OpenSSL).
- Suport experimental pentru semnăturile DNSSEC ed25519 (atunci când sunt compilate cu suport libsodium).
- Multe comenzi noi pdnsutil, de exemplu
- ajutorul de comandă produce acum ajutorul
- avertizează dacă fișierul de configurare nu poate fi citit
- Nu verifică înregistrările dezactivate cu zona de control, cu excepția cazului în care este activat modul verbose
- comanda create-zone creează o nouă zonă
- comanda add-record pentru a adăuga înregistrări
- comenzi delete-rrset și replace-rrset pentru a șterge și a adăuga rrsets
- comanda zonei de editare care produce spaimă $ EDITOR cu conținutul zonei în format zonefile indiferent de backend-ul folosit (blogpost)
- backend-ul GeoIP a câștigat multe caracteristici și poate acum, de ex. rulați pe baza unor netmask-uri explicite care nu sunt prezente în bazele de date GeoIP
- Cu noi caracteristici vin eliminări. Următoarele backend-uri au fost abandonate în 4.0.0:
- LMDB.
- Geo (utilizați mai degrabă GeoIP îmbunătățit).
- Alte modificări și deprecieri importante includ:
- pdnssec a fost redenumit la pdnsutil.
- Suportul pentru bibliotecile criptografice PolarSSL / MbedTLS, Crypto ++ și Botan a fost abandonat în favoarea (mai repede) OpenSSL libcrypto (cu excepția GOST, care este încă furnizată de Botan).
- ECDSA P256 SHA256 (algoritmul 13) este acum algoritmul implicit la securizarea zonelor.
- Serverul autorizat PowerDNS asculta implicit toate adresele IPv6.
- Mai multe interogări inutile au fost abandonate din backend-urile Generic SQL, dacă utilizați o schemă SQL non-standard, consultați noile valori implicite
- interogarea insert-ent-interogare, insert-empty-non-terminale-interogare, insert-ent-order-query au fost înlocuite de o interogare numită interogare insert-empty-non-terminală-comandă
- interogarea insert-record-order-has been dropped, interogarea insert-record-query acum stabilește numele comenzii (sau NULL)
- interogarea insert-slave a fost abandonată, interogarea insert-zone acum stabilește tipul de zonă
- Valorile metadatelor INCEPTION, INCEPTION-WEEK și EPOCH SOA-EDIT sunt marcate ca fiind depreciate și vor fi eliminate în 4.1.0
Ce este nou în versiunea 3.4.9:
- accident care s-ar putea întâmpla în timpul AXFR al unei zone cu multe înregistrări MX cu priorități diferite.
Ce este nou în versiunea 3.4.4:
- Cea mai importantă parte a acestei actualizări este o soluție fixă pentru CVE-2015-1868. / li>
Ce este nou în versiunea 3.4.3:
- Remedieri de erori:
- comite ceb49ce: pdns_control: ieșirea 1 pe comandă necunoscută (Ruben Kerkhof)
- comite 1406891: evaluați perechile KSK ZSK pe algoritm (Kees Monshouwer)
- comite 3ca050f: setați întotdeauna di.notified_serial în getAllDomains (Kees Monshouwer)
- comiteți d9d09e1: pdns_control: nu deschideți soclul în / tmp (Ruben Kerkhof)
- Caracteristici noi:
- comite 2f67952: Limitați cine ne poate trimite notificări AXFR (Ruben Kerkhof)
- Îmbunătățiri:
- comite d7bec64: răspunde REFUSED în loc de NOERROR pentru "zona necunoscută" situații
- angajați ebeb9d7: Verificați pentru Lua 5.3 (Ruben Kerkhof)
- comite d09931d: Verificați compilatorul pentru sprijinul lui relro în loc de linker (Ruben Kerkhof)
- comite c4b0d0c: Înlocuiți PacketMandler cu UeberBackend unde este posibil (Christian Hofstaedtler)
- comite 5a85152: PacketHandler: partajați UeberBackend cu DNSSECKeeper (Christian Hofstaedtler)
- comiteți 97bd444: reparați clădirea cu GCC 5
- Schimbări experimentale API (Christian Hofstaedtler):
- comiteți ca44706: API: mutați cititorul DomainInfo partajat în funcția proprie
- comite 102602f: API: permite scrierea în câmpul domains.account
- comiteți d82f632: API: citiți și expuneți câmpul contului de domeniu
- comite 2b06977: API: să fie mai strictă la analizarea conținutului înregistrărilor
- comite 2f72b7c: API: respingeți tipurile necunoscute (TYPE0)
- comiteți d82f632: API: citește și expune câmpul contului de domeniu
Ce este nou în versiunea 3.4.2:
- Îmbunătățiri:
- angajați 73004f1: implementați CORS pentru API-ul HTTP
- comiteți 4d9c289: qtype este acum insensibil pentru case în API și bază de date
- comite 13af5d8, comite 223373a, comite 1d5a68d, comite 705a73f, comite b418d52: Permite (opțional) întărirea PIE
- comite 2f86f20: json-api: eliminați prioritatea de la json
- comitează cefcf9f: remediază backport remotebackend
- comiteți 920f987, comiteți dd8853c: Suport Lua 5.3
- să comități 003aae5: să acceptați semnarea ZSK de un singur tip
- comite 1c57e1d: remedierea potențială a biletului # 1907, acum încercăm să declanșăm libgcc_s.so.1 să se încarce înainte de a cronica. Nu pot reproduce bug-ul pe sistemul meu local, dar acest "trebuie" ajutor.
- comiteți 031ab21: actualizați polarssl la 1.3.9
- Remedierea erorilor:
- comite 60b2b7c, comite d962fbc: refuza etichetele prea lungi în nume
- comite a64fd6a: auth: limitează șirul de versiuni lungi la 63 de caractere și captează excepțiile în secpoll
- comiteți fa52e02: pdnssec: verificați verificarea ttl pentru înregistrările RRSIG
- comite 0678b25: raportarea latenței de reparație pentru latențele de sub milisecundă (ar fi clip la 0)
- comiteți d45c1f1: asigurați-vă că nu aruncăm o excepție în "pdns_control show" unei variabile necunoscute
- comite 63c8088: reparați condiția de pornire la pornire cu fir de carbon care încearcă deja să difuzeze date neinitializate
- comite 796321c: face qsize-q mai robust
- comite 407867c: Kees Monshouwer a descoperit că numărăm pachete corupte și situații EAGAIN ca pachete primite în mod valid, înclinând graficele de întrebări / răspunsuri udp pe autori.
- comiteți f06d069: faceți latență & qsize raportați "live". În plus, reparăm faptul că am raportat doar qsize-ul primului distribuitor.
- comite 2f3498e: fixează statbag pentru protocolul de carbon și indicatorii funcției
- comite 0f2f999: obține prioritate din tabel în Lua axfrfilter; stabilește biletul # 1857
- comite 96963e2, comite bbcbbbe, comite d5c9c07: diferiți backends: fixează înregistrările indicând la root
- comiteți e94c2c4: eliminați stratul suplimentar de trailing. stripping, care a rupt înregistrările MX la rădăcina din backend-ul BIND. Ar trebui să închidă biletul # 1243.
- comite 8f35ba2: api: folosiți rezultatele necuplate pentru getKeys ()
- comiteți c574336: citiți ALLOW-AXFR-FROM din backend cu metadatele
- Modificări minore:
- comite 1e39b4c: mutați manualele în secțiunea 1
- comiteți b3992d9: secpoll: Înlocuiți ~ cu _
- comite 9799ef5: numai zonele cu un ksk activ sunt sigure
- comite d02744f: api: arată cheile pentru zonele fără ksk activ
- Caracteristici noi:
- comite 1b97ba0: adăugați semnătura metrică la auth, astfel încât să putem partaja semnături / al doilea
- comite 92cef2d: pdns_control: face posibilă notificarea simultană a tuturor zonelor
- comiteți f648752: JSON API: furnizați flush-cache, notificați, axfr-receive
- comiteți 02653a7: adăugați "bench-db" pentru a efectua un benchmark de performanță foarte simplu pentru bazele de date
- comiteți a83257a: activați valorile bazate pe invers la statbas și adăugați 5 astfel de valori: uptime, sys-msec, user-msec, dimensiunea cache-cheie, mărimea meta-cache, dimensiunea memoriei cache
- Imbunatatiri de performanta:
- comite a37fe8c: cheie mai bună pentru pachetul de pachete
- comiteți e5217bb: nu faceți timp (0) sub blocare cache semnătură
- comiteți d061045, comiteți 135db51, comiteți 7d0f392: ștergeți cache-ul de pachete, închideți biletul # 1910.
- comiteți d71a712: cu mulțumiri lui Jack Lloyd, aceasta funcționează în jurul valorii implicite a alocatorului de Botan care încetinește pentru noi în timpul utilizării în producție.
Ce este nou în versiunea 3.4.1:
- comiteți dcd6524, comiteți a8750a5, angajează 7dc86bf, comite 2fda71f: PowerDNS analizează acum starea de securitate a unei versiuni la pornire și periodic. Mai multe detalii despre această caracteristică și modul de dezactivare a acesteia pot fi găsite în Secțiunea 2, "Interogarea de securitate".
- comite 5fe6dc0: API: Înlocuiți auth de bază HTTP cu cheia statică în antetul personalizat (cheia X-API)
- comite 4a95ab4: Utilizați tranzacția pentru creșterea pdnssec-serial
- comite 6e82a23: Nu ordonați numele comenzii în timpul creșterii pdnssec-serial
- comite 535f4e3: onorați SOA-EDIT în timp ce luați în considerare "IXFR gol" înapoi, fixează biletul 1835. Aceasta stabilește sclavarea zonelor semnate la sclavi care cunosc IXFR ca NSD sau BIND.
Ce este nou în versiunea 3.4:
- Aceasta este o performanță, 3.3.1 și orice versiune anterioară. Acesta conține o mare cantitate de muncă de către diverși contribuitori, cărora suntem foarte recunoscători.
Ce este nou în versiunea 3.3.1:
- direct-dnskey nu mai este experimental, datorită lui Kees Monshouwer & co pentru testare extinsă (comite e4b36a4).
- Manipulați semnalele în timpul sondajului (comiteți 5dde2c6).
- comiteți 7538e56: Fixați zonele 2 {sql, json} codurile de ieșire
- comiteți 7593c40: geobackend: remediați eventualul nullptr deref
- comiteți 3506cc6: gpsqlbackend: nu adăugați dbname = / user = valori goale pentru a conecta șirul
- interogările gpgsql au fost simplificate prin utilizarea turnării (comite 9a6e39c).
- comite a7aa9be: Înlocuiți marcajul hardcod cu variabila
- comiteți e4fe901: asigurați-vă că executați PKG_PROG_PKG_CONFIG înainte de prima utilizare PKG_ *
- comiteți 29bf169: remediați hmac-md5 Căutare cheie cheie TSIG
- comiteți c4e348b: fixați tastele TSIG 64 de caractere
- comiteți 00a7b25: corectați comparația între semnat și nesemnat folosind uint32_t pentru inițierea pe INCEPTION-EPOCH
- comiteți d3f6432: reparați clădirea pe os x 10.9, mulțumită Martijn Bakker.
- Acum permitem construirea împotriva lui Lua 5.2 (comite bef3000, comite 2bdd03b, comite 88d9e99).
- comiteți fa1f845: autodetectați caracterele de conectare MySQL 5.5+
- Atunci când este configurată greșit folosind fusurile orare "corecte", o eroare în (g) libc gmtime ne rupe semnăturile. Fixată în comiterea e4faf74 de Kees Monshouwer prin implementarea propriului nostru gmtime_r.
- Când trimiteți SERVFAIL din cauza unei buclă CNAME, nu includeți în mod inutil CNAME (comiteți dfd1b82).
- Construiți soluții pentru platforme cu tipuri "ciudate" (cum ar fi s390 / s390x): comiteți c669f7c (detalii), angajați 07b904e și comiteți 2400764.
- Suport pentru + = sintaxă pentru opțiuni, comite 98dd325 și altele.
- comiteți f8f29f4: nproxy: adăugați chdir lipsă ("/") după chroot ()
- comite 2e6e9ad: remediați pentru "lipsă" libmysqlclient pe sistemele bazate pe RHEL / CentOS
- pdnssec check-zone în comiterea 5205892, comite edb255f, comite 0dde9d0, comite 07ee700, comite 79a3091, comite 08f3452, comite bcf9daf, comite c9a3dd7, comite 6ebfd08, comite fd53bd0, comite 7eaa83a, comite e319467,,
- NSEC / NSEC3 fixează în comitetul 3191709, comite f75293f, comite cd30e94, comite 74baf86, comite 1fa8b2b
- Serverul Web s-ar putea prăbuși atunci când tampoanele inelului au fost redimensionate, fixate în comanda 3dfb45f.
- comite 213ec4a: adăugați constrângeri pentru schema de nume în pg
- comite f104427: face ca interogările domainmetadata să nu afecteze cazul
- comiteți 78fc378: nici o comprimare de etichete pentru nume în înregistrările TSIG
- comite 15d6ffb: pdnssec afișează acum înregistrările ZSK DNSKEY dacă este activat suportul experimental-direct-dnskey (redenumit în direct-dnskey înainte de lansare!)
- comite ad67d0e: drop cryptopp din construirea statică, deoarece libcryptopp.a este spart pe Debian 7, pe care construim
- comiteți 7632dd8: suportați polarssl 1.3 extern.
- Remotebackend a fost complet actualizat în diferite comitete.
- comite 82def39: SOA-EDIT: remediaza INCEPTION-INCREMENT
- comite a3a546c: adăugați opțiunea innodb-read-committed la setările gmysql.
- comiteți 9c56e16: de fapt, observați timpul de expirare în timpul recuperării AXFR, mulțumesc hkraal
îmbunătățiri
Ce este nou în versiunea 3.1 RC1: Această versiune rezolvă probleme importante de DNSSEC, și conține o mulțime de îmbunătățiri și corecții de bug-uri.
Ce este nou în versiunea 3.0.1:
- fix pentru CVE-2012-0206, cunoscut sub numele de Notificare de securitate PowerDNS 2012-01. Este recomandat un upgrade.
Ce este nou în versiunea 3.0 RC3:
- Această versiune oferă suport complet pentru DNSSEC, cu semnătură automată, rollovers și întreținere cheie.
- Scopul este de a permite instalatiilor PowerDNS existente sa inceapa sa serveasca DNSSEC cu cat mai putine obstacole posibil, mentinand in acelasi timp performanta si atingand niveluri ridicate de securitate.
- Alte caracteristici noi includ TSIG, backend-ul MyDNS-compat, de asemenea notificare, master / slave pe IPv6, un motor paralel de slave, suport MongoDB și editare în zona Lua.
Ce este nou în versiunea 3.0 RC1:
- , răsturnări și întreținere cheie.
- Scopul este de a permite instalatiilor PowerDNS existente sa inceapa sa serveasca DNSSEC cu cat mai putine obstacole posibil, mentinand in acelasi timp performanta si atingand niveluri ridicate de securitate.
- Alte caracteristici noi includ TSIG, un backend MyDNS-compat, notificare de asemenea, master / slave pe IPv6, un motor în vrac paralel, și editare în zona Lua.
Ce este nou în versiunea 2.9.22:
- Această versiune aduce o sumă rezonabilă de caracteristici noi, combinate cu creșteri de performanță enorme pentru setările de dimensiuni mari.
- În plus, au fost abordate un număr semnificativ de erori și probleme.
- Acesta este un upgrade foarte recomandat.
- În comparație cu 2.9.21, un impuls masiv de performanță pentru instalațiile care rulează cu TTL-uri cache înalte sau o memorie cache mare de pachete, în multe cazuri cu un ordin de mărime.
- În plus, au fost abordate un număr mare de bug-uri, au fost adăugate unele caracteristici și, în general, multe zone au înregistrat îmbunătățiri.
- RC2 rezolvă probleme importante în comparație cu RC1.
- În comparație cu 2.9.21, un impuls masiv de performanță pentru instalațiile care rulează cu TTL-uri cache înalte sau o memorie cache mare de pachete, în multe cazuri cu un ordin de mărime.
- În plus, au fost abordate un număr mare de bug-uri, au fost adăugate unele caracteristici și, în general, multe zone au înregistrat îmbunătățiri.
- Unele (rare) configurații server PowerDNS autoritare ar putea fi forțate să se repornească de la distanță.
- Pentru alte configurații, reconectarea bazei de date poate fi declanșată de la distanță.
- Aceste probleme au fost rezolvate.
Ce este nou în versiunea 2.9.22 RC2:
Ce este nou în versiunea 2.9.21.2:
Comentariile nu a fost găsit