RDS Endpoint siempre se asigna a una IP externa

RDS Endpoint siempre se asigna a una IP externa

Tengo una instancia de RDS en ejecución y se puede acceder a ella a través de Internet.

Por ejemplo, me gustaría conectarme internamente a la VPC en lugar de hacerlo a través de Internet.

Según otra pregunta (https://stackoverflow.com/questions/21089582/amazon-rds-endpoint-internal) la cadena de conexión del host debe asignarse a una IP interna si se consulta desde dentro de la VPC. Esto no funciona, obtengo la IP externa pase lo que pase.

  • Solo tengo una VPC, por lo que no se utiliza ningún emparejamiento.
  • Tengo configuradas opciones de DHCP personalizadas, probablemente aquí sea donde esté mi problema.

El conjunto de opciones DHCP de mi VPC es domain-name = mysite.local;domain-name-servers = 10.10.51.254;

Tengo la sensación de que aquí es donde está roto, debido a mi configuración de opciones de DHCP personalizadas. mysite.locales el dominio local y 10.10.51.254es un servidor Bind local (que no utiliza Route53).

¿Necesito configurar algún tipo de búsqueda directa us-east-1.rds.amazonaws.comen mi servidor DNS o me falta alguna parte de la configuración en alguna parte? Pensé que se suponía que esto era "automático" dentro de la VPC, así que supongo que me equivoco.

Respuesta1

Entonces, el problema aquí es que estoy usando un servidor DNS privado y no el DNS proporcionado por Amazon. No existe ninguna "magia de VPC automática de Amazon" que ayude a que se realice la búsqueda de dominio para estos servicios de AWS (lo cual estaba asumiendo incorrectamente)

El secreto aquí es que incluso si no utiliza el DNS proporcionado por Amazon, puede realizar búsquedas en el servidor DNS de la VPC.

Si la VPC tiene DNS resolutiony DNS hostnamesestá configurada enYESluego puede hacer una búsqueda en el servidor DNS de la VPC que se encuentra en la dirección base de los bloques CIDR de la VPC +2 (por lo tanto, si su VPC es 10.10.0.0/16entonces la dirección de búsqueda de DNS es 10.10.0.2). Encontré esto en una publicación de blog aleatoria cuando estaba Al buscar esto, no estoy seguro de si está en la documentación oficial, ya que todas las búsquedas de DNS que hago a través de los documentos de Amazon están inundadas de material de la Ruta 53.

Entonces, ahora que tenemos una búsqueda directa de DNS en funcionamiento, todo lo que tenemos que hacer es agregar la búsqueda de reenvío en el servidor de enlace. El problema aquí es que el nombre de host de la instancia de RDS es en realidad una búsqueda de CNAME.

Por ejemplo:

user@host:~$ nslookup mydb.cvxj3uli9kc.us-east-1.rds.amazonaws.com
Server:     10.10.51.254
Address:    10.10.51.254#53

Non-authoritative answer:
mydb.cvxj3uli9kc.us-east-1.rds.amazonaws.com    canonical name = ec2-34-204-131-19.compute-1.amazonaws.com.
Name:   ec2-34-204-141-206.compute-1.amazonaws.com
Address: 34.204.131.19

La búsqueda es en realidad un registro CNAME para compute-1.amazonaws.comAMBOS, por lo que se requiere una regla de avance.

TL;DR:Dado que el CIDR de mi VPC es 10.10.0.0/16, aquí hay ejemplos de bloques de reenvío que resolvieron mi problema y respondieron esta pregunta:

zone "mydb.cvxj3uli9kc.us-east-1.rds.amazonaws.com" {
    type forward;
    forward only;
    forwarders { 10.10.0.2; };
};

zone "compute-1.amazonaws.com" {
    type forward;
    forward only;
    forwarders { 10.10.0.2; };
};

Ahora todos los servicios en la VPC local pueden buscar la IP privada de la instancia de RDS y la resolución pública también funciona desde fuera de la VPC.

información relacionada