O PowerDNS é um servidor de nomes daemon de software livre e de código aberto que fornece alto desempenho e pode ser modelado para atuar como um servidor de nomes avançado e autoritativo em sistemas operacionais GNU / Linux, bem como BSD distribuições.
Um servidor DNS escrito do zero
O PowerDNS é escrito do zero, está em conformidade com todos os documentos relevantes dos padrões DNS e faz interface com praticamente qualquer banco de dados. Ele é distribuído em vários pacotes separados, incluindo pdns, powerdns-server, pdns-recursor e pdns-server.
Usa uma arquitetura de backend flexível
O aplicativo usa uma arquitetura backend flexível que permite acesso a informações de DNS de qualquer fonte de dados, incluindo formatos de arquivo, bancos de dados relacionais, diretórios LDAP e arquivos de zona Bind.
O PowerDNS é configurado por padrão para fornecer todas as informações diretamente de um banco de dados, o que resulta na manutenção incomparável de suas informações de DNS. Está disponível em todas as principais distribuições Linux.
Quem usa o PowerDNS?
Várias empresas de hospedagem de nomes de domínio e registradores de domínio usam o software PowerDNS para lidar com seus serviços, incluindo Tecnologia de Internet BIT, Hostnet, Totaalnet Internet Works, Oxilion, WebReus e mijndomein.nl.
Sob o capô e a disponibilidade
O software é escrito inteiramente na linguagem de programação C ++ e é distribuído como pacotes binários pré-construídos no formato de arquivo DEB e RPM, suportando plataformas de hardware de 64 e 32 bits.
Sendo um projeto de software de código aberto, o PowerDNS também está disponível para download como um arquivo de fontes universal, permitindo aos usuários otimizá-lo para uma arquitetura de hardware e sistemas operacionais específicos.
/ strong> nesta versão:
- Melhorias:
- # 6239, # 6559: pdnsutil: use novo domínio em b2bmigrate (Aki Tuomi)
- # 6130: Atualizar os anos de copyright para 2018 (Matt Nordhoff)
- # 6312, # 6545: menor nível de registro "muito curto"
- Correções de bugs:
- # 6441, # 6614: Restringir a criação de conjuntos de RRs de OPT e TSIG
- # 6228, # 6370: Corrigir manuseio de filtros axfr definidos pelo usuário retorna valores
- # 6584, # 6585, # 6608: Impede que o back-end do GeoIP copie o NetMaskTrees, corrige lentidão em certas configurações (Aki Tuomi)
- # 6654, # 6659: garantir que as respostas de alias sobre TCP tenham o nome correto
O que há de novo na versão:
- Esta versão apresenta contribuições proeminentes de nossa comunidade. Gostaríamos de destacar o trabalho incansável de Kees Monshouwer na melhoria do Authoritative Server, baseado em sua enorme experiência em escalar o PowerDNS para milhões de zonas de produção DNSSEC. Christian Hofstaedtler e Jan-Piet Mens contribuíram massivamente em muitos lugares diferentes. Também uma rodada de agradecimentos a Gregory Oestreicher por renovar e reviver o backend do LDAP. Wolfgang Studier, "#MrMnkey", Tudor Soroceanu e Benjamin Zengin entregaram a API de gerenciamento do DNSSEC, como parte de seus estudos na TU Berlin.
- Tentamos listar todos os outros no changelog completo e estamos muito agradecidos por todo o trabalho e testes que o PowerDNS recebeu da comunidade!
- Melhor desempenho: aceleração de 4x em alguns cenários:
- Há mais de um ano, o RIPE NCC testou várias implementações de servidores de nomes e descobriu que o PowerDNS não era um servidor raiz de alto desempenho. Embora o PowerDNS seja excelente em atender milhões de zonas, gostaríamos de ser rápidos em zonas menores também. Os resultados dessa série de otimização são descritos aqui e também neste artigo mais longo, "Otimizando a otimização: alguns insights que levaram a uma aceleração de 400% do PowerDNS". O (re) trabalho de cache de Kees Monshouwer foi vital para alcançar essa melhoria de desempenho.
- API de criptografia: DNSSEC totalmente configurável por meio da API RESTful:
- Nossa API HTTP RESTful ganhou suporte para DNSSEC e gerenciamento de chaves. Esta API é "mais rica que a maioria" já que está ciente da semântica do DNSSEC e, portanto, permite manipular zonas sem ter que pensar nos detalhes do DNSSEC. A API fará a coisa certa. Este trabalho foi contribuído por Wolfgang Studier, # MrM0nkey, Tudor Soroceanu e Benjamin Zengin como parte de seu trabalho na TU Berlin.
- Relacionado a banco de dados: reconexão e campos de ID de 64 bits:
- Os servidores de banco de dados às vezes são desconectados após períodos ociosos mais curtos ou mais longos. Isso pode confundir o PowerDNS e as bibliotecas do cliente de banco de dados sob algumas condições silenciosas. 4.1 contém lógica de reconexão aprimorada que acreditamos resolve todos os problemas associados. Em um desenvolvimento agradável, um usuário do PowerDNS tem um banco de dados tão grande que excedeu um contador de ID de 32 bits, que agora foi feito em 64 bits.
- Documentação aprimorada:
- Nosso Pieter Lexis investiu uma tonelada de tempo melhorando não apenas o conteúdo, mas também a aparência e a busca de nossa documentação. Dê uma olhada em https://doc.powerdns.com/authoritative/ e saiba que você pode editar facilmente nossa documentação através do editor interno do GitHub.
- Remoção de passagem do recursor:
- Isso afetará muitas instalações e percebemos que isso pode ser doloroso, mas é necessário. Anteriormente, o PowerDNS Authoritative Server continha um recurso para o envio de consultas desejadas de recursão para um back-end de resolução, possivelmente após consultar primeiro o cache local. Esse recurso ("recursor =") era frequentemente confuso e também gerava resultados inconsistentes, por exemplo, quando uma consulta acabava se referindo a um CNAME que estava fora do conhecimento do Authoritative Server. Para migrar de um Servidor Autoritário PowerDNS da era 3.0 ou 4.0 com uma instrução "recursor" no arquivo de configuração, consulte Migrando da recursão no Authoritative Server para usar um Recursor.
- Diversos:
- O suporte foi adicionado para o TCP Fast Open. A ligação não local é agora suportada. A pdnsutil check-zone agora avisa sobre mais erros ou configurações improváveis. Nossos pacotes agora são fornecidos com suporte a PKCS # 11 (que anteriormente exigia uma recompilação). Integração aprimorada com o log do systemd (remoção de registro de data e hora).
O que há de novo na versão 4.0.0:
- Muitas das alterações estão no interior e fizeram parte da excelente "limpeza de primavera":
- Movido para o C ++ 2011, uma versão mais limpa e mais potente do C ++ que nos permitiu melhorar a qualidade da implementação em muitos lugares.
- Implementou uma infra-estrutura dedicada para lidar com nomes de DNS que é totalmente & quot; DNS Nativo & quot; e precisa de menos fuga e sem escape. Devido a isso, o PowerDNS Authoritative Server agora pode servir zonas-raiz habilitadas para DNSSEC.
- Todos os backends derivados das instruções preparadas do uso do backend do Generic SQL.
- Tanto o servidor quanto o pdns_control fazem a coisa certa quando chroot'ed.
- Os caches agora são totalmente canonicamente ordenados, o que significa que as entradas podem ser apagadas no sufixo em todos os lugares
- Além dessa limpeza, os seguintes recursos novos e interessantes foram adicionados:
- Um backend de ODBC revivido e suportado (godbc).
- Um back-end do LDAP revivido e suportado (ldap).
- Suporte para substituições de chaves de CDS / CDNSKEY e RFC 7344.
- Suporte para o registro ALIAS.
- O servidor da web e a API não são mais experimentais. O caminho da API foi movido para / api / v1
- O DNSUpdate não é mais experimental.
- ECDSA (algoritmo 13 e 14) suportado sem bibliotecas criptográficas em árvore (fornecidas pelo OpenSSL).
- Suporte experimental para assinaturas DNSSEC do ed25519 (quando compilado com suporte a libsodium).
- Muitos novos comandos pdnsutil, por exemplo,
- agora produz a ajuda
- Avisa se o arquivo de configuração não pode ser lido
- Não verifica os registros desativados com a zona de verificação, a menos que o modo detalhado esteja ativado
- o comando create-zone cria uma nova zona
- comando add-record para adicionar registros
- comandos delete-rrset e replace-rrset para excluir e adicionar rrsets
- comando edit-zone que gera $ EDITOR com o conteúdo da zona no formato de arquivo de zona, independentemente do backend usado (postagem do blog)
- O back-end do GeoIP ganhou muitos recursos e agora pode, por exemplo executar com base em máscaras de rede explícitas não presentes nos bancos de dados GeoIP
- Com novos recursos, vêm as remoções. Os seguintes back-ends foram descartados na versão 4.0.0:
- LMDB.
- Geo (use o GeoIP melhorado).
- Outras alterações e depreciações importantes incluem:
- O pdnssec foi renomeado para pdnsutil.
- O suporte para as bibliotecas criptográficas PolarSSL / MbedTLS, Crypto ++ e Botan foi abandonado em favor do (mais rápido) libcrypto OpenSSL (exceto para GOST, que ainda é fornecido pelo Botan).
- O ECDSA P256 SHA256 (algoritmo 13) é agora o algoritmo padrão ao proteger zonas.
- O servidor de autoridade do PowerDNS agora escuta por padrão todos os endereços IPv6.
- Várias consultas supérfluas foram eliminadas dos backends SQL genéricos, se você usar um esquema SQL não padrão, revise os novos padrões
- insert-ent-query, insert-empty-não-terminal-query, insert-ent-order-query foram substituídos por uma consulta denominada insert-empty-non-terminal-order-query
- insert-record-order-query foi descartada, insert-record-query agora define o nome de usuário (ou NULL)
- insert-slave-query foi eliminada, insert-zone-query agora define o tipo de zona
- Os valores de metadados INCEPTION, INCEPTION-WEEK e EPOCH SOA-EDIT são marcados como obsoletos e serão removidos em 4.1.0
O comando de ajuda
O que há de novo na versão 3.4.9:
- As maiores correções são o aprimoramento do cache negativo e a prevenção de acidente que poderia acontecer durante o AXFR de uma zona com muitos registros MX de prioridades diferentes.
O que há de novo na versão 3.4.4:
- A parte mais importante desta atualização é uma correção para o CVE-2015-1868. / li>
O que há de novo na versão 3.4.3:
- Correções de bugs:
- commit ceb49ce: pdns_control: exit 1 no comando desconhecido (Ruben Kerkhof)
- commit 1406891: avalie os pares KSK ZSK por algoritmo (Kees Monshouwer)
- commit 3ca050f: sempre defina di.notified_serial em getAllDomains (Kees Monshouwer)
- commit d9d09e1: pdns_control: não abra o socket em / tmp (Ruben Kerkhof)
- Novos recursos:
- commit 2f67952: Limite quem pode nos enviar AXFR notificar consultas (Ruben Kerkhof)
- Melhorias:
- confirmar d7bec64: responder RECUSADO em vez de NOERROR para & quot; zona desconhecida & quot; situações
- commit ebeb9d7: Verifique Lua 5.3 (Ruben Kerkhof)
- commit d09931d: Verifique o compilador para suporte a relro em vez de linker (Ruben Kerkhof)
- commit c4b0d0c: Substitua PacketHandler por UeberBackend quando possível (Christian Hofstaedtler)
- commit 5a85152: PacketHandler: compartilhe o UeberBackend com o DNSSECKeeper (Christian Hofstaedtler)
- commit 97bd444: consertar o edifício com o GCC 5
- Alterações experimentais da API (Christian Hofstaedtler):
- commit ca44706: API: mova o leitor DomainInfo compartilhado para sua própria função
- commit 102602f: API: permite gravar no campo domains.account
- commit d82f632: API: leia e exponha o campo da conta de domínio
- commit 2b06977: API: seja mais rigoroso ao analisar o conteúdo do registro
- commit 2f72b7c: API: rejeitar tipos desconhecidos (TYPE0)
- commit d82f632: API: leia e exponha o campo da conta de domínio
O que há de novo na versão 3.4.2:
- Melhorias:
- confirme 73004f1: implemente o CORS para a API HTTP
- confirmar 4d9c289: qtype agora não diferencia maiúsculas e minúsculas na API e no banco de dados
- commit 13af5d8, commit 223373a, commit 1d5a68d, commitar 705a73f, commitar b418d52: Permitir (opcional) endurecimento de torta li>
- commit 2f86f20: json-api: remove a prioridade do json
- commit cefcf9f: correções backport remotebackend
- commit 920f987, commit dd8853c: Suporte Lua 5.3
- commit 003aae5: suporta assinatura do ZSK de tipo único
- commit 1c57e1d: Correção em potencial do ticket # 1907, agora tentamos acionar o libgcc_s.so.1 para carregar antes de executarmos o chroot. Não consigo reproduzir o bug no meu sistema local, mas isso "deve" ajuda.
- commit 031ab21: atualiza o polarssl para o 1.3.9
- Correções de bugs:
- commit 60b2b7c, commit d962fbc: recusar rótulos excessivamente longos em nomes
- confirme a64fd6a: auth: limite as strings de versão longa para 63 caracteres e capture exceções em secpoll
- commit fa52e02: pdnssec: corrija ttl verifique se há registros RRSIG
- commit 0678b25: corrija o relatório de latência para latências de sub-milissegundos (seria recortado para 0)
- commit d45c1f1: certifique-se de não lançar uma exceção em & quot; pdns_control show & quot; de uma variável desconhecida
- commit 63c8088: corrija a condição de corrida de inicialização com o encadeamento de carbono que já está tentando transmitir dados não inicializados
- commit 796321c: torne qsize-q mais robusto
- commit 407867c: Kees Monshouwer descobriu que contamos pacotes corruptos e situações EAGAIN como pacotes recebidos de forma válida, inclinando os gráficos de perguntas / respostas do udp em auth.
- confirmar f06d069: fazer com que a latência e o qsize relatem "ao vivo". Além disso, consertamos apenas o qsize do primeiro distribuidor.
- commit 2f3498e: conserte o statbag para o protocolo de carbono e os ponteiros de função
- commit 0f2f999: obtenha prioridade da tabela no Lua axfrfilter; corrige ticket # 1857
- cometer 96963e2, confirmar bbcbbbe, confirmar d5c9c07: vários back-ends: corrigir registros apontando para a raiz
- commit e94c2c4: remove camada adicional de trailing. decapagem, que quebrou registros MX para a raiz no backend BIND. Deve fechar o bilhete # 1243.
- commit 8f35ba2: api: use resultados não armazenados em cache para getKeys ()
- commit c574336: leia ALLOW-AXFR-FROM do back-end com os metadados
- Pequenas alterações:
- commit 1e39b4c: mova manpages para a seção 1
- confirmar b3992d9: secpoll: substituir ~ por _
- commit 9799ef5: somente as zonas com um ksk ativo são seguras
- commit d02744f: api: mostra chaves para zonas sem ksk ativo
- Novos recursos:
- commit 1b97ba0: adicione a métrica de assinaturas à auth, para que possamos traçar assinaturas / segundo
- commit 92cef2d: pdns_control: torna possível notificar todas as zonas de uma só vez
- commit f648752: JSON API: forneça o flush-cache, notify, axfr-receive
- commit 02653a7: adicione ‘bench-db 'para fazer benchmark de desempenho de backend de banco de dados muito simples
- confirme a83257a: ative métricas baseadas em retorno de chamada para statbas e adicione 5 métricas: tempo de atividade, sys-ms, user-ms, tamanho do cache de chave, tamanho do cache de meta, tamanho do cache de assinatura
- Melhorias no desempenho:
- commit a37fe8c: melhor chave para o pacote de cache
- commit e5217bb: não use time (0) sob bloqueio de cache de assinatura
- commit d061045, commit 135db51, commit 7d0f392: compartilha o cache de pacotes, fechando ticket # 1910.
- commit d71a712: com agradecimentos a Jack Lloyd, isso funciona em torno do alocador de botan padrão que diminui para nós durante o uso da produção.
O que há de novo na versão 3.4.1:
- commit dcd6524, commit a8750a5, commit 7dc86bf, commit 2fda71f: O PowerDNS agora consulta o status de segurança de uma release na inicialização e periodicamente. Mais detalhes sobre esse recurso e como desativá-lo podem ser encontrados na Seção 2, "Pesquisa de segurança".
- commit 5fe6dc0: API: Substituir a autenticação HTTP básica pela chave estática no cabeçalho personalizado (X-API-Key)
- commit 4a95ab4: Use a transação para pdnssec increase-serial
- commit 6e82a23: Não esvazie o nome de usuário durante o pdnssec increase-serial
- commit 535f4e3: honra SOA-EDIT ao considerar "IXFR vazio" fallback, corrige ticket 1835. Isso corrige o slaving de zonas assinadas para escravos com reconhecimento de IXFR como NSD ou BIND.
O que há de novo na versão 3.4:
- Esta é uma atualização de desempenho, recurso, correção de bugs e conformidade 3.3.1 e qualquer versão anterior. Contém uma enorme quantidade de trabalho de vários colaboradores, aos quais somos muito gratos.
O que há de novo na versão 3.3.1:
O
- direct-dnskey não é mais experimental, graças a Kees Monshouwer & co para testes extensivos (commit e4b36a4).
- Manipula sinais durante a pesquisa (commit 5dde2c6).
- commit 7538e56: Corrija os códigos de saída zone2 {sql, json}
- commit 7593c40: geobackend: corrija possível nullptr deref
- commit 3506cc6: gpsqlbackend: não inclua dbname vazio = / user = valores para conectar a string
- gpgsql foram simplificadas por meio do uso de conversão (commit 9a6e39c).
- commit a7aa9be: substitua o make codificado por variável
- confirmar e4fe901: certifique-se de executar PKG_PROG_PKG_CONFIG antes do primeiro uso PKG_ *
- commit 29bf169: corrija a pesquisa por chave TSMI do hmac-md5
- commit c4e348b: corrija as chaves TSIG de caractere +64
- commit 00a7b25: corrija a comparação entre assinados e não assinados usando uint32_t para início em INCEPTION-EPOCH
- commit d3f6432: conserta o edifício no os x 10.9, obrigado Martijn Bakker.
- Agora permitimos construir contra Lua 5.2 (commit bef3000, commit 2bdd03b, commit 88d9e99).
- commit fa1f845: autodetectar charset de conexão do MySQL 5.5+
- Quando configurados incorretamente usando fusos horários 'certos', um erro no (g) libc gmtime quebra nossas assinaturas. Corrigido em commit e4faf74 por Kees Monshouwer através da implementação de nosso próprio gmtime_r.
- Ao enviar SERVFAIL devido a um loop CNAME, não inclua inutilmente os CNAMEs (commit dfd1b82).
- Compile correções para plataformas com tipos 'estranhos' (como s390 / s390x): commit c669f7c (detalhes), commit 07b904e e commit 2400764.
- Suporte para + = sintaxe para opções, commit 98dd325 e outros.
- commit f8f29f4: nproxy: Adiciona chdir (& quot; / & quot;) após chroot ()
- commit 2e6e9ad: correção para & quot; missing & quot; libmysqlclient em sistemas baseados em RHEL / CentOS
- melhorias na zona de verificação do pdnssec no commit 5205892, commitar edb255f, commitar 0dde9d0, commitar 07ee700, commiter 79a3091, commiter 08f3452, commitar bcf9daf, commiter c9a3dd7, commiter 6ebfd08, commiter fd53bd0, commiter 7eaa83a, commiter e319467,,
- Correções NSEC / NSEC3 no commit 3191709, commit f75293f, commit cd30e94, commit 74baf86, commit 1fa8b2b
- O servidor da Web pode falhar quando os buffers de anel forem redimensionados, corrigidos no commit 3dfb45f.
- commit 213ec4a: adicione restrições para o nome no esquema pg
- confirmar f104427: tornar as consultas de metadados de domínio insensíveis a maiúsculas e minúsculas
- commit 78fc378: nenhuma compactação de rótulo para nome nos registros TSIG
- commit 15d6ffb: pdnssec agora gera registros ZSK DNSKEY se o suporte experimental-direct-dnskey estiver ativado (renomeado para direct-dnskey antes do release!)
- commit ad67d0e: elimine cryptopp da construção estática pois o libcryptopp.a está corrompido no Debian 7, que é o que construímos em
- commit 7632dd8: suporte polarssl 1.3 externamente.
- O Remotebackend foi totalmente atualizado em vários commits.
- commit 82def39: SOA-EDIT: consertar o tratamento de INCEPTION-INCREMENT
- commit a3a546c: adicione a opção innodb-read-committed às configurações do gmysql.
- commit 9c56e16: observe o timeout durante a recuperação do AXFR, obrigado hkraal
As consultas do
O que há de novo na versão 3.1 RC1:
- Esta versão corrige importantes problemas de DNSSEC, aborda o uso da memória, e contém uma grande quantidade de melhorias e correções de bugs.
O que há de novo na versão 3.0.1:
- Esta versão é idêntica à 3.0, exceto com um Correção para o CVE-2012-0206, também conhecido como PowerDNS Security Notification 2012-01. Uma atualização é recomendada.
O que há de novo na versão 3.0 RC3:
- Esta versão traz suporte total para o DNSSEC, com assinatura automatizada, rollovers e manutenção de chaves.
- O objetivo é permitir que as instalações existentes do PowerDNS comecem a atender ao DNSSEC com o mínimo de trabalho possível, mantendo o desempenho e obtendo altos níveis de segurança.
- Outros novos recursos incluem TSIG, um backend compatível com MyDNS, também notificar, mestre / escravo sobre IPv6, um mecanismo paralelo de slaving em massa, suporte ao MongoDB e edição da zona Lua.
O que há de novo na versão 3.0 RC1:
- Esta versão traz suporte total para DNSSEC, com assinatura automática , rollovers e manutenção de chaves.
- O objetivo é permitir que as instalações existentes do PowerDNS comecem a atender ao DNSSEC com o mínimo de trabalho possível, mantendo o desempenho e obtendo altos níveis de segurança.
- Outros novos recursos incluem TSIG, um backend compatível com MyDNS, também notificar, mestre / escravo sobre IPv6, um mecanismo paralelo de slaving em massa e edição de zona Lua.
O que há de novo na versão 2.9.22:
- Esta versão traz uma quantidade razoável de novos recursos, combinada com amplos aumentos de desempenho para grandes configurações.
- Além disso, números significativos de bugs e problemas foram resolvidos.
- Esta é uma atualização muito recomendada.
O que há de novo na versão 2.9.22 RC2:
- Em comparação com 2.9.21, esta versão oferece um enorme aumento de desempenho para instalações que executam com alto cache-TTLs ou um grande cache de pacotes, em muitos casos de uma ordem de magnitude.
- Além disso, um grande número de bugs foi abordado, alguns recursos foram adicionados e, em geral, muitas áreas viram melhorias.
- O RC2 corrige problemas importantes em comparação com o RC1.
O que há de novo na versão 2.9.22 RC1:
- Em comparação com 2.9.21, esta versão oferece um enorme aumento de desempenho para instalações que executam com alto cache-TTLs ou um grande cache de pacotes, em muitos casos de uma ordem de magnitude.
- Além disso, um grande número de bugs foi abordado, alguns recursos foram adicionados e, em geral, muitas áreas viram melhorias.
O que há de novo na versão 2.9.21.2:
- Algumas (raras) configurações do PowerDNS Authoritative Server podem ser forçadas a reiniciarem-se remotamente.
- Para outras configurações, uma reconexão de banco de dados pode ser acionada remotamente.
- Esses problemas foram corrigidos.
Comentários não encontrado