¿Podemos tener múltiples CNAMES para un solo nombre?

43

Necesito esto para el equilibrio de carga. Por ejemplo, tengo dos cuentas de almacenamiento azul (digamos ay b) y las direcciones de blob para esas son a.blob.core.windows.nety b.blob.core.windows.net. Ambos almacenan datos idénticos. Ahora necesito proporcionar un solo nombre externo (digamos example.com) que apunte a las cuentas de almacenamiento y que funcione en round robin. Esto se puede lograr si creo dos entradas CNAME en DNS de la siguiente manera y se resuelve en una de ellas en robo redondo.

  1. example.com CNAME a.blob.core.windows.net
  2. example.com CNAME b.blob.core.windows.net

Pero no puedo crear dos registros CNAME para un solo nombre en el servidor DNS de Windows.

Entonces, ¿es posible alguna vez?

Raghuram Murthy P
fuente
No puedo comprobarlo, pero no creo que puedas hacer esto con CNAMES. Prueba con los registros A en su lugar.
Dan
1
@Dan El problema serán los servicios que no tienen una IP fija, como un AWS Elastic Load Balancer. Dado core.windows.netque sospecharía una situación similar en Azure o algo así.
ceejayoz
Pero con los registros A, tengo que especificar la dirección IP ¿verdad? Prefiero nombres DNS a direcciones IP.
Raghuram Murthy P
¿Por qué querrías hacer eso? Azure Blob Storage ya está configurado para alta disponibilidad y redundancia geográfica.
JTKH
@JTKH eso se debió a que el blob tiene un límite de descarga de 65 MB / seg más o menos y si quiero más límite de descarga, pensé en usar más de un blob.
Raghuram Murthy P

Respuestas:

58

Múltiples registros CNAME para el mismo nombre de dominio completo es una violación de las especificaciones para DNS. Algunas versiones de BIND le permitirían hacer esto (algunas solo si especificó la multiple-cnames yesopción) y harían un balanceo de carga de ida y vuelta entre ellas, pero no es técnicamente legal.

No se supone que haya registros de recursos (RR) con el mismo nombre que un CNAME y, para elegir las liendres, eso incluiría múltiples CNAME idénticos. Quoth RFC 1034, Sección 3.6.2:

Si un CNAME RR está presente en un nodo, no deben estar presentes otros datos; Esto asegura que los datos para un nombre canónico y sus alias no pueden ser diferentes. Esta regla también asegura que se pueda usar un CNAME almacenado en caché sin consultar con un servidor autorizado para otros tipos de RR.

El método de la carta de RFC para manejar lo que está haciendo sería con un solo CNAME que se refiera a un registro "A" con equilibrio de carga.

Evan Anderson
fuente
Ver docstore.mik.ua/orelly/networking_2ndEd/dns/… para más detalles.
miércoles
11

No puedes. Un CNAME hace que un registro sea otro nombre para otro. Si un registro pudiera tener CNAMES para dos nombres, no sería otro nombre para ninguno de ellos, sino un nombre para algo completamente nuevo, lo que hace que una entrada de CNAME sea inapropiada.

Sin embargo, es probable que haya una buena manera de resolver su problema externo. Por ejemplo, puede tener múltiples registros A.

David Schwartz
fuente
¿Puedo tener un CName y un A Record para el sitio web al mismo tiempo?
amesh