Como gerenciar vários usuários tentando adicionar o mesmo domínio aos meus servidores DNS

1

Estou desenvolvendo um serviço DNS gratuito e não consigo resolver totalmente a situação quando dois ou mais clientes tentam adicionar o mesmo domínio (quase ao mesmo tempo).

Aqui estão algumas soluções para lidar com essa situação, mas nenhuma delas parece ser boa ou viável.

Solução 1:

Use diferentes pares de servidores de nomes para cada cliente

A criação de ns múltiplos e distintos (como ns1, ns2 .. ns49, ns50, ns51 ..) me permite usar diferentes pares de servidores com diferentes clientes tentando adicionar o mesmo domínio.

O proprietário real usará apenas o par dele no registrador de domínios (ou seja: ns8 e ns9), para que apenas seus registros sejam aceitos e propagados para toda a Internet.

O problema com a Solução 1:

É vulnerável a um ataque em massa

Se uma pessoa mal-intencionada criar um número realmente grande de contas, seria impossível ter um número equivalente de pares, se todas essas contas tentarem adicionar o mesmo domínio.

Solução 2:

Permitir apenas uma conta de usuário para usar um domínio

Se um usuário já adicionou um domínio específico e o configurou corretamente em seu registrador de domínio, nenhuma outra conta poderá adicionar o mesmo domínio.

O problema com a Solução 2:

Tempo de graça

Pode levar horas para validar um domínio adicionado (por favor, me corrija se eu estiver errado). Isso exigiria que eu desse um "tempo de graça" para permitir que cada domínio recém-adicionado permanecesse "não verificado" até que pudéssemos validá-lo através do respectivo registrador de domínio.

Além disso, durante esse período de tolerância, nenhuma outra conta poderá adicionar o mesmo domínio, a menos que usemos a solução 1 (mas lembre-se de que # 1 tem uma vulnerabilidade).

Como os serviços de notificação de status de entrega gratuitos (ou pagos) resolvem esse problema? Quais são as suas abordagens (já que qualquer usuário aparentemente pode adicionar o domínio que quiser sem restrições)?

Editar: sobre a duplicata

Existe uma ligeira diferença entre a minha pergunta e Era um . Eu sou o provedor e não o cliente. E a questão de Era apenas aponta para o problema dos olhos do cliente.

Além disso, mesmo a @Jacob, da DigitalOcean, afirmou que eles fazem uma abordagem "primeiro a chegar, primeiro servir" que estou tentando evitar e é a razão pela qual a minha pergunta existe.

    
por Paulo Coghi 14.01.2016 / 23:28

1 resposta

1

A solução 1 pode funcionar para a autenticação de um controle de usuários de um domínio. Em sua pergunta, você parece ter imposto algumas restrições a si mesmo, talvez devido a alguns mal-entendidos ou talvez porque deseja que ele funcione sem autenticar o controle de usuários do domínio.

  • Você não deve usar apenas dois servidores DNS. Dois é o mínimo, mas eu iria mais alto que isso. O número exato de servidores DNS a usar é uma questão de opinião. Eu sinto que quatro é uma boa escolha. Com um número maior de servidores DNS usados por cada domínio, você terá mais combinações possíveis.
  • Os registros NS são como você já observou apontando para nomes. É possível ter vários desses nomes apontando para os mesmos endereços IP, o que significa que você não tem falta de nomes.
  • Seu serviço precisa de IPv4 e IPv6. Com o IPv6, você também não tem escassez de endereços IP. É perfeitamente possível que cada servidor ouça endereços IPv6 suficientes para que você possa ter um endereço IP exclusivo para cada um de seus usuários.

Qualquer uma das três observações acima deve preencher as lacunas na sua solução proposta 1 para que ela funcione, supondo que você autentique o controle do domínio pelo usuário.

Se você quiser uma solução que funcione sem que o usuário primeiro autentique o controle do domínio, só posso sugerir que você dependa do IPv6.

Uma solução híbrida poderia fornecer um fluxo suave para os usuários. Eu criaria da seguinte forma:

  • Atribua um espaço de endereço / 64 a cada um dos seus servidores DNS.
  • Atribua um identificador de interface de 64 bits a cada usuário.
  • Atribua 3 nomes de host a cada grupo de servidores DNS mais a combinação de usuários (um somente v4, um somente v6 e um dual-stack). O nome do host pode, por exemplo, parecer com kasperd-ns1-ds.example.com .

Um usuário pode criar qualquer nome de zona que desejar. Ele será imediatamente disponibilizado nos endereços IPv6 desse usuário.

A exibição de uma zona específica nos endereços IPv4 (que são necessariamente compartilhados entre os usuários) funcionará por ordem de chegada. Mas qualquer usuário posterior pode autenticar o controle sobre o domínio, apontando os registros do domínio para qualquer um dos nomes de host atribuídos a esse usuário. O controle autenticado do domínio supera o princípio do primeiro a chegar.

    
por 15.01.2016 / 01:52