O RDS Endpoint está sempre mapeando para IP externo

O RDS Endpoint está sempre mapeando para IP externo

Eu tenho uma instância do RDS em execução e ela pode ser acessada pela Internet.

Gostaria que as instâncias do VPC se conectassem a ele internamente, em vez de pela Internet.

De acordo com outra pergunta (https://stackoverflow.com/questions/21089582/amazon-rds-endpoint-internal) a string de conexão do host deverá ser mapeada para um IP interno se consultada de dentro da VPC. Isso não está funcionando, estou recebendo o IP externo de qualquer maneira.

  • Eu só tenho um VPC, então não há peering sendo usado.
  • Eu tenho um conjunto de opções de DHCP personalizado, provavelmente é aqui que está o meu problema.

O conjunto de opções DHCP da minha VPC é domain-name = mysite.local;domain-name-servers = 10.10.51.254;

Tenho a sensação de que é aqui que está quebrado, devido ao meu conjunto de opções de DHCP personalizado. mysite.localé o domínio local e 10.10.51.254é um servidor Bind local (não usa Route53).

Preciso configurar algum tipo de pesquisa direta us-east-1.rds.amazonaws.comem meu servidor DNS ou há alguma configuração que estou faltando em algum lugar? Achei que isso deveria ser "automático" no VPC, então acho que estou errado.

Responder1

Portanto, o problema aqui é que estou usando um servidor DNS privado e não o DNS fornecido pela Amazon. Não há nenhuma "mágica automática de VPC da Amazon" que ajude a pesquisa de domínio a acontecer para esses serviços da AWS (o que eu estava assumindo incorretamente)

O segredo aqui é que mesmo que você não use o DNS fornecido pela Amazon, você pode fazer pesquisas no servidor DNS da VPC.

Se a VPC tiver DNS resolutione DNS hostnamesestiver definida comoYESentão você pode fazer uma pesquisa no servidor DNS da VPC que está no endereço base dos blocos CIDR da VPC +2 (portanto, se sua VPC for, 10.10.0.0/16o endereço de pesquisa de DNS é 10.10.0.2) - descobri isso em alguma postagem aleatória do blog quando estava olhando isso, não tenho certeza se está na documentação oficial, pois todas as pesquisas de DNS que faço nos documentos da Amazon são inundadas com coisas do Route 53.

Portanto, agora que temos uma pesquisa direta de DNS funcionando, tudo o que precisamos fazer é adicionar a pesquisa de encaminhamento no servidor de ligação. O problema aqui é que o nome do host da instância RDS é na verdade uma pesquisa CNAME.

Por exemplo:

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

A pesquisa é na verdade um registro CNAME para a, compute-1.amazonaws.comportanto, uma regra de encaminhamento é necessária para AMBOS.

DR:Dado que o CIDR da minha VPC é 10.10.0.0/16, aqui está um exemplo de blocos de encaminhamento que resolveram meu problema e responderam a esta pergunta:

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; };
};

Agora todos os serviços na VPC local podem consultar o IP privado da instância RDS, e a resolução pública também funciona fora da VPC.

informação relacionada