Pregunta ¿Por qué los registros MX no pueden apuntar a una dirección IP?


Te entiendo no debería apuntar un registro MX a una dirección IP directamente, pero debería en lugar de 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é es esto requerido?


83
2018-01-28 17:13


origen


Si puede configurar un registro MX, también puede configurar un registro A. No veo el problema aquí. - joshudson
@joshudson No es un problema en absoluto, solo yo, tratando de entender por qué, en lugar de simplemente seguir lo que hacen los demás. - dayuloli
Acabo de intentarlo en CloudFlare. No acepta la dirección IP como un valor para el registro MX. - LinuxBabe


Respuestas:


La idea detrás del registro MX es especificar una anfitrión o Hospedadores Que puede 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 se puede resolver en el DNS. No se pudo usar 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 razones que hoy: un host puede estar conectado a múltiples redes y usar múltiples protocolos.

En los años 80, no era raro tener puertas de enlace de correo que se conectaran tanto a Internet (relativamente nuevo) que usaba TCP / IP como a otras redes heredadas, que a menudo usaban otros protocolos. Especificar MX de esta manera permitía registros DNS que pudieran identificar cómo llegar a ese 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 convertirse en parte de Internet.

Hoy en día, la situación es que un host puede ser alcanzado por múltiples protocolos (IPv4 e IPv6) y por múltiples direcciones IP en cada protocolo. Un solo registro MX no puede enumerar más de una dirección, por lo que la única opción es apuntar a un host, donde se pueden buscar todas las direcciones de ese host. (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, lo que ahorra un viaje de ida y vuelta).

También existe la situación que se presenta cuando sus intercambiadores de correo son proporcionados por un tercero (por ejemplo, Google Apps u Office 365). Usted apunta 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 hacer esto de forma transparente y no tiene que realizar ningún cambio en sus registros.


84
2018-01-28 17:36



Eso no está realmente impidiendo la compatibilidad con las direcciones IP; de hecho, la mayoría de los servidores / clientes SMTP funcionan bien con las direcciones IP en los registros MX de las pocas pruebas que he realizado. Creo que la intención era desalentar a la industria del uso de direcciones IP en masa, lo que probablemente hubiera ocurrido si no se hubiera establecido esa regla, en lugar de hacerlo caso por caso. Por lo tanto, "debería", a diferencia de "debe". +1 por la gran información, sin embargo. Nunca había considerado la mayor parte de eso. - Zenexer
@Zenexer Las leyes de tráfico no están ahí por el inconveniente de relativamente pocos conductores expertos que saben exactamente qué es seguro y qué no lo es. Existen debido al subconjunto mucho más grande de los idiotas malditos que pensar Ellos saben lo que están haciendo, pero no lo hacen. - Shadur
@Zenexer Usted puede encontrar que un MTA particular lo tolera hoy, y no lo hace mañana. Después de todo, no es un comportamiento permitido por el estándar. Y, por supuesto, no todos los MTA lo soportarán, por lo que al hacer esto significa que tiene la garantía de perder el correo. - Michael Hampton♦
@MichaelHampton: Si un registro MX DEBERÍA contiene un nombre de host en lugar de una dirección IP, luego un MTA DEBE aceptar una dirección IP. Hipotéticamente, si un registro MX. DEBE contiene un nombre de host y luego un MTA DEBERÍA aceptar una dirección IP. Así es como funciona el RFC. La contraparte de un consejo de implementación "DEBERÍA" puede optimizarse en el supuesto de que se siga el consejo, pero eso es todo lo que puede hacer con él. - MSalters
@MSalters Creo que estás confundido. Nunca dije DEBE algo. De hecho, dije que el registro MX DEBE contener un nombre de host, que también es lo que dicen los RFC. - Michael Hampton♦


El DNS como protocolo tiene diferentes tipos 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 el registro contiene una dirección IPv4 (4 bytes de datos, longitud fija).
Un AAAAel registro contiene una dirección IPv6 (16 bytes de datos, longitud fija).

Un MX registro, por otro lado, tiene una nombre (una secuencia de etiquetas en el formato <int number of bytes> <label> <int number of bytes> <label> <int 0>, Longitud variable).

No es posiblepor un MX Grabe para tener una dirección IP como sus datos.


16
2018-01-28 17:34



Podría hacer que la etiqueta sea la representación textual de una dirección IP, pero no tendría ningún sentido hacerlo, ya que no se puede resolver como un nombre de host. - Michael Hampton♦
@MichaelHampton De hecho, es posible tener un nombre con etiquetas numéricas que, en la representación normal amigable para el ser humano, se parece a una dirección IPv4 a primera vista. Sin embargo, eso realmente no cambia nada cuando se trata de la pregunta, ya que aún sería un nombre y, por lo tanto, se manejará como un nombre (un nombre que, al menos en la Internet pública, simplemente será NXDOMAIN). - Håkan Lindqvist
Esto realmente no responde a la pregunta del OP. Básicamente dices "porque así es como es". - dr01
@ dr01 Teniendo en cuenta que la pregunta demuestra claramente que no es consciente de "la forma en que está" ("no debe apuntar un registro MX directamente a una dirección IP, sino que debe apuntarlo a un registro A" cuando en realidad no es una posibilidad de tengo otro valor que un nombre), no creo que esté fuera de lugar señalar cómo están las cosas y por qué eso hace que cualquier otra opción sea imposible. Tengo la sensación de que estás leyendo mucho sobre la pregunta que en realidad no está ahí. - Håkan Lindqvist
@ dr01 Es decir, no creo que la pregunta se lea como una pregunta académica sobre las decisiones de diseño en los primeros días del DNS o algo así, sino simplemente una pregunta sobre cómo MX Los registros que realmente existen en el mundo pueden o deben usarse. - Håkan Lindqvist


Voy a tirar esto como una conjetura. Por supuesto, estoy en casa con la gripe, así que tal vez estoy loco.

RFC 974 estados:

El primer paso para el remitente en LOCAL es emitir una consulta para MX RRs      para el control remoto. Se recomienda encarecidamente que se tome este paso cada vez.      un mailer intenta enviar el mensaje. La esperanza es que los cambios en      la base de datos del dominio será utilizada rápidamente por los remitentes de correo, y por lo tanto el dominio      Los administradores podrán re-enrutar 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 enérgicamente esta práctica. Los nombres pueden seguir siendo los mismos, y en el caso de balanceo de carga o DR, no tendrá que preocuparse por cambiar el registro MX y esperar la propagación del DNS.


6
2018-01-28 17:40



Respondiendo a preguntas de intercambio de pila en su día libre mientras está enfermo con la gripe ... ¡Me quito el sombrero, buen señor! - Mike B
@MikeB gracias ... - TheCleaner


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 es necesario que use 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 son los registros A).

Edición: para elaborar, en el DNS cada registro tiene requisitos estrictos para el tipo de datos que puede contener cada registro. En el caso de registros MX, es un nombre de host. solamente.


2
2018-01-28 17:29



Entonces, ¿por qué exim no permitió que los registros MX apunten a la dirección IP en primer lugar? Me parece extraño! Entiendo yo no debería Por convención, pero no entiendo. por qué está hecho ilegal. - dayuloli
No veo cómo cualquier MTA podría apoyar esto como un MX registro no puede tener una dirección IP como su valor. - Håkan Lindqvist
@ HåkanLindqvist ¡Su respuesta anterior aclaró este punto para mí! ¡Gracias! - dayuloli


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 de servidores A, el servidor de correo hace una búsqueda hacia adelante para obtener un registro A y luego reenvía el correo a través del smtp al servidor de servicio listado como un servidor de correo 'dispuesto' a recibir correo para ese dominio.

Su pregunta: ¿Por qué no se puede enviar un correo a una dirección IP?

Respuesta - Debido a la confianza

Muchas de las reglas en vigor con respecto al correo han evolucionado para mantener la confianza entre los dominios de que los mensajes enviados de un lado a otro son realmente válidos. Todo esto es para reducir el SPAM.

  • Búsquedas IP inversas
  • Una búsqueda de nombre hacia adelante para esa materia

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 la comunicación no confiable.

Referencia - RFC 1035 y 974

https://www.ietf.org/rfc/rfc1035.txt35

https://www.ietf.org/rfc/rfc974.txt


2
2018-01-28 17:42





El propósito de MXregistros es que un solicitud (transferencia de correo) puede obtener información sobre el host que se utilizará. En el nivel de aplicación, host nombres son lo correcto a usar (no las direcciones IP).

Además, agregar el concepto de registro de tipo de variante al DNS introduce una gran cantidad de complicaciones y, por lo tanto, un punto de entrada para problemas, contratiempos 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). Especificando este host como MX en un archivo de configuración de enlace para example.com podría verse como

.  MX 10  1.2.3.4

y presumiblemente es exactamente lo mismo que un registro MX con una IP debería ser similar. E incluso para transferir la información en un datagrama de DNS se requieren algunas características extrañas; La forma más sencilla sería introducir una nuevo tipo de registro de recursos, MXA Digamos, por desambiguación. Pero, de nuevo, ¿por qué introducir la carga en un nuevo tipo de registro cuando

. MXA 10 5.6.7.8

siempre podría ser reemplazado con

. MX 10 dummy
dummy A 5.6.7.8

(y sería soportado también por clientes DNS que no saben sobre MXA archivos)?


2
2018-01-31 21:49