Entiendo que no debe apuntar un registro MX a una dirección IP directamente, sino que debe apuntarlo a un A
registro, que, a su vez, apunta a la dirección IP de su servidor de correo.
Pero, en principio, ¿por qué se requiere esto?
Entiendo que no debe apuntar un registro MX a una dirección IP directamente, sino que debe apuntarlo a un A
registro, que, a su vez, apunta a la dirección IP de su servidor de correo.
Pero, en principio, ¿por qué se requiere esto?
Respuestas:
La idea detrás del registro MX es especificar un host o hosts que puedan aceptar correo para un dominio. Como se especifica en RFC 1035 , el registro MX contiene un nombre de dominio. Por lo tanto, debe apuntar a un host que pueda resolverse en el DNS. No se pudo utilizar una dirección IP, ya que se interpretaría como un nombre de dominio no calificado, que no se puede resolver.
Las razones de esto en la década de 1980, cuando las especificaciones se escribieron originalmente, son casi las mismas que las razones actuales: un host puede estar conectado a múltiples redes y usar múltiples protocolos.
En los años 80, no era raro tener pasarelas de correo que se conectaban tanto a Internet (relativamente nuevo) que usaba TCP / IP como a otras redes heredadas, que a menudo usaban otros protocolos. La especificación de MX de esta manera permitió registros DNS que podrían identificar cómo llegar a dicho host en una red que no sea Internet, como Chaosnet . En la práctica, sin embargo, esto casi nunca sucedió; prácticamente todos rediseñaron sus redes para formar parte de Internet.
Hoy, la situación es que se puede llegar a un host mediante múltiples protocolos (IPv4 e IPv6) y mediante múltiples direcciones IP en cada protocolo. Un solo registro MX no puede incluir más de una dirección, por lo que la única opción es apuntar a un host, donde todas las direcciones de ese host se pueden buscar. (Como una optimización del rendimiento, el servidor DNS enviará a lo largo de los registros de direcciones para el host en la sección adicional de respuesta si tiene registros autorizados para ellos, ahorrando un viaje de ida y vuelta).
También existe la situación que surge cuando un tercero proporciona sus intercambiadores de correo (por ejemplo, Google Apps u Office 365). Señala sus registros MX a sus nombres de host, pero puede ocurrir que el proveedor de servicios necesite cambiar las direcciones IP de los servidores de correo. Como ha señalado a un host, el proveedor de servicios puede hacerlo de manera transparente y no tiene que hacer ningún cambio en sus registros.
DNS como protocolo tiene algunos tipos diferentes de valores, estos no son intercambiables.
Es importante tener en cuenta que DNS es un protocolo binario con asignaciones estrictas entre el tipo de registro y el tipo de datos que contiene dicho registro.
Por ejemplo:
un A
registro contiene una dirección IPv4 (4 bytes de datos, longitud fija).
Un AAAA
registro contiene una dirección IPv6 (16 bytes de datos, longitud fija).
Un MX
registro, por otro lado, contiene un nombre (una secuencia de etiquetas en el formato <int number of bytes> <label> <int number of bytes> <label> <int 0>
, longitud variable).
No es posible que un MX
registro tenga una dirección IP como sus datos.
NXDOMAIN
).
MX
registros que realmente existen en el mundo pueden o deben ser utilizados.
Voy a tirar esto como una suposición. Por supuesto, estoy en casa con gripe, así que tal vez estoy loco.
RFC 974 declara:
El primer paso para el programa de correo en LOCAL es emitir una consulta para MX RRs para REMOTE. Se recomienda encarecidamente que se tome este paso cada vez que un remitente intenta enviar el mensaje. La esperanza es que los cambios en la base de datos del dominio sean utilizados rápidamente por los remitentes de correo y, por lo tanto, los administradores del dominio podrán redirigir los mensajes en tránsito para hosts defectuosos simplemente cambiando sus bases de datos de dominio.
Al requerir un nombre en lugar de IP, fomenta con fuerza esta práctica. Los nombres pueden permanecer iguales y, en caso de equilibrio de carga o DR, no tendrá que preocuparse por cambiar el registro MX y esperar la propagación del DNS.
Algunos servidores de correo electrónico (como exim) específicamente no permiten el envío a registros MX que apuntan a una dirección IP pura, por lo que debe utilizar un FQDN para que sea compatible. Esto se debe a que la mayoría de los servidores esperan que el registro MX contenga un nombre de host, no una IP (para eso están los registros A).
Editar: Para elaborar, en DNS cada registro tiene requisitos estrictos para el tipo de datos que puede contener cada registro. En el caso de los registros MX, es solo un nombre de host .
MX
registro no puede tener una dirección IP como valor.
EN RFC 1025 Los registros MX solo apuntan a un RR (registro de recursos) de un Registro A o un CNAME.
Por lo tanto, el servidor de correo que envía el correo solicita el RR de un registro MX, el registro mx enumera los registros A de los servidores, el servidor de correo realiza una búsqueda directa para obtener un registro A y luego reenvía el correo por smtp al host del servicio que aparece como un servidor de correo 'dispuesto' a recibir correo para ese dominio.
Muchas de las reglas vigentes con respecto al correo han evolucionado para mantener la confianza entre dominios de que los mensajes enviados de un lado a otro son realmente válidos. Todo esto es para reducir el SPAM.
Todos estos componentes esenciales para una base para construir un servidor de correo tienen al menos algún componente pequeño fundado en la creación de comunicaciones confiables y en la reducción de comunicaciones no confiables.
El propósito de los MX
registros es que una aplicación (transferencia de correo) puede aprender sobre el host que se utilizará. A nivel de aplicación, los nombres de host son lo correcto (no las direcciones IP).
Además, agregar el registro de conceot de tipo de variante a DNS introduce una palanca de complicaciones y, por lo tanto, un punto de entrada para problemas, percances de implementación, desafíos de seguridad. Por ejemplo, 1.2.3.4.example.com.
es un nombre de host válido (sí, lo es, incluso a la luz de RFC1034, 3.5). Es posible que se especifique este host como MX
en un archivo de configuración de enlace para example.com
. MX 10 1.2.3.4
y presumiblemente es exactamente lo mismo que debería ser un registro MX con una IP. E incluso transferir la información en un datagrama DNS requiere algunos complementos extravagantes; la forma más sencilla sería introducir un nuevo tipo de registro de recursos, por MXA
ejemplo, para desambiguación. Pero, de nuevo, ¿por qué introducir la carga de un tipo de registro tan nuevo cuando
. MXA 10 5.6.7.8
siempre podría ser reemplazado por
. MX 10 dummy
dummy A 5.6.7.8
(y también sería compatible con clientes DNS que no conozcan los MXA
registros)?