Por que os registros MX não apontam para um endereço IP?

85

Eu entendo que você não deve apontar um registro MX diretamente para um endereço IP, mas deve apontá-lo para um registro A , que, por sua vez, aponta para o endereço IP do seu servidor de e-mail.

Mas, em princípio, por que isso é necessário?

    
por dayuloli 28.01.2015 / 18:13

6 respostas

85

A idéia por trás do registro MX é especificar um host ou hosts que possa aceitar emails para um domínio. Conforme especificado em RFC 1035 , o registro MX contém um nome de domínio. Deve, portanto, apontar para um host que pode ser resolvido no DNS. Um endereço IP não pôde ser usado, pois seria interpretado como um nome de domínio não qualificado, que não pode ser resolvido.

As razões para isso na década de 1980, quando as especificações foram originalmente escritas, são quase as mesmas que hoje: um host pode estar conectado a várias redes e usar vários protocolos.

Nos anos 80, não era incomum ter gateways de correio que conectassem tanto a Internet (relativamente nova) que usava TCP / IP como outras redes legadas, que freqüentemente usavam outros protocolos. Especificar o MX dessa maneira permitia registros DNS que pudessem identificar como alcançar tal host em uma rede diferente da Internet, como Chaosnet . Na prática, porém, isso quase nunca aconteceu; praticamente todos reprojetaram suas redes para se tornarem parte da Internet.

Hoje, a situação é que um host pode ser alcançado por vários protocolos (IPv4 e IPv6) e por vários endereços IP em cada protocolo. Um único registro MX não pode listar mais de um endereço, então a única opção é apontar para um host, onde todos os endereços desse host podem ser pesquisados. (Como uma otimização de desempenho, o servidor DNS enviará os registros de endereço para o host na seção adicional de resposta se tiver registros autoritativos para eles, salvando uma ida e volta.)

Há também a situação que surge quando seus trocadores de e-mail são fornecidos por terceiros (por exemplo, Google Apps ou Office 365). Você aponta seus registros MX para seus nomes de host, mas pode ocorrer que o provedor de serviços precise alterar os endereços IP dos servidores de correio. Desde que você apontou para um host, o provedor de serviços pode fazer isso de forma transparente e você não precisa fazer nenhuma alteração em seus registros.

    
por 28.01.2015 / 18:36
17

O DNS como um protocolo tem alguns tipos diferentes de valores, estes não são intercambiáveis.

É importante observar que o DNS é um protocolo binário com mapeamentos rígidos entre o tipo de registro e o tipo de dados que tal registro contém.

Por exemplo:
Um registro A contém um endereço IPv4 (4 bytes de dados, comprimento fixo). Um registro AAAA contém um endereço IPv6 (16 bytes de dados, comprimento fixo).

Um MX record, por outro lado, contém um nome (uma sequência de rótulos no formato <int number of bytes> <label> <int number of bytes> <label> <int 0> , comprimento variável).

Não é possível que um registro de MX tenha um endereço IP como dados.

    
por 28.01.2015 / 18:34
6

Eu vou jogar isso como um palpite. Claro, estou em casa com a gripe, então talvez eu esteja maluco.

A RFC 974 afirma:

The first step for the mailer at LOCAL is to issue a query for MX RRs for REMOTE. It is strongly urged that this step be taken every time a mailer attempts to send the message. The hope is that changes in the domain database will rapidly be used by mailers, and thus domain administrators will be able to re-route in-transit messages for defective hosts by simply changing their domain databases.

Ao exigir um nome em vez de IP, ele incentiva vigorosamente essa prática. Os nomes podem permanecer os mesmos e, no caso de balanceamento de carga ou DR, você não precisará se preocupar com a alteração do próprio registro MX e com a espera pela propagação do DNS.

    
por 28.01.2015 / 18:40
2

Alguns servidores de email (como o exim) especificamente não permitem o envio para registros MX que apontam para um endereço IP puro; portanto, é necessário usar um FQDN para que ele seja compatível. Isso ocorre porque a maioria dos servidores espera que o registro MX contenha um nome de host, não um IP (é para isso que os registros de A são usados).

Editar: Para elaborar, no DNS, cada registro possui requisitos estritos para o tipo de dados que cada registro pode conter. No caso de registros MX, é um nome de host somente .

    
por 28.01.2015 / 18:29
2

No RFC 1025, os registros MX apontam apenas para um RR (registro de recurso) de um Registro A ou CNAME.

Assim, o servidor de email que envia o email solicita o RR de um registro MX, o registro mx lista A registros de servidores, o servidor de email faz uma pesquisa direta para obter um registro A e encaminha o email via smtp para o serviço host listado como um servidor de e-mail 'disposto' a receber e-mails desse domínio.

Sua pergunta - Por que o correio não pode ser enviado para um endereço IP

Resposta - por causa da confiança

Muitas das regras em vigor em relação ao correio evoluíram para manter a confiança entre domínios em que as mensagens enviadas e recebidas são realmente válidas. Tudo isso é para reduzir o SPAM.

  • Pesquisas de IP reverso
  • Uma pesquisa de nome de encaminhamento para esse assunto

Todos esses componentes essenciais para uma fundação para criar um servidor de email têm pelo menos algum componente pequeno criado para criar comunicações confiáveis e reduzir a comunicação não confiável.

Referência - RFC 1035 e 974

link

link

    
por 28.01.2015 / 18:42
2

A finalidade dos registros MX é que um aplicativo (transferência de e-mail) pode aprender sobre o host a ser usado. No nível do aplicativo, os nomes do host são a coisa certa a ser usada (não os endereços IP).

Além disso, adicionar o conceito de registro de tipo de variante ao DNS introduz um nível de complicação e, portanto, um ponto de entrada para problemas, percalços de implementação, desafios de segurança. Por exemplo, 1.2.3.4.example.com. é um nome de host válido (sim, é, mesmo à luz da RFC1034, 3.5). A especificação desse host como MX em um arquivo de configuração de ligação para example.com pode ser semelhante a

.  MX 10  1.2.3.4

e, presumivelmente, é exatamente o mesmo que um registro MX com um IP deve parecer. E até mesmo transferir a informação em um datagrama DNS requer alguns additoins peculiares; A maneira mais simples seria introduzir um novo tipo de registro de recurso, MXA , para desambiguação. Mas, novamente, por que introduzir o fardo como um novo tipo de registro quando

. MXA 10 5.6.7.8

sempre pode ser substituído por

. MX 10 dummy
dummy A 5.6.7.8

(e seria suportado por clientes DNS que não sabiam sobre MXA registros)?

    
por 31.01.2015 / 22:49