Conectividade privada

A conectividade particular permite que o Datastream se comunique com recursos na sua rede de nuvem privada virtual (VPC) usando uma conexão de peering de rede VPC com a rede VPC do Datastream.

A conexão de peering de rede VPC entre sua rede VPC e a rede VPC do Datastream permite que o Datastream se conecte a:

A conexão de peering de rede VPC entre sua rede VPC e a rede VPC do Datastream não permite que o Datastream se conecte a:

Para estabelecer a conectividade entre o Datastream e um recurso que só pode ser acessado pela rede VPC, use uma VM de tradução de endereço de rede (NAT) na rede VPC. Um caso de uso comum para uma VM NAT é quando o Datastream precisa se conectar a uma instância do Cloud SQL.

Esta página descreve um exemplo de configuração de VM NAT que permite que o Datastream se conecte de forma particular a uma instância do Cloud SQL.

Diagrama de fluxo de usuários do Datastream

Configurar uma VM NAT

  1. Identifique o endereço IP da instância do Cloud SQL à qual o Datastream precisa se conectar.

  2. Identifique sua rede VPC. Essa é a rede VPC que está conectada à rede VPC do Datastream usando o peering de rede VPC.

  3. Crie uma configuração de conectividade privada no Datastream, se ainda não tiver feito isso. Isso cria a conexão de peering de rede VPC que conecta sua rede VPC e a rede VPC do Datastream. Anote o intervalo de endereços IP usado pela configuração de conectividade particular do Datastream.

  4. Escolha um tipo de máquina para usar na VM NAT que você vai criar na próxima etapa. Google Cloud impõe um limite máximo de largura de banda de saída por instância, para pacotes roteados pelos próximos saltos em uma rede VPC, de acordo com o tipo de máquina da instância da VM. Para mais informações, consulte Saída para destinos roteáveis em uma rede VPC e Largura de banda de saída máxima por instância.

  5. Crie a VM NAT na rede VPC. Se a rede VPC for compartilhada, você poderá criar a VM NAT no projeto host ou em qualquer projeto de serviço, desde que a interface de rede da VM NAT esteja na rede VPC compartilhada.

    • Para minimizar o tempo de ida e volta da rede, crie a VM NAT na mesma região que o Datastream.
    • Neste exemplo, presumimos que a VM NAT tenha uma única interface de rede.
    • Execute o script em uma distribuição do Linux, por exemplo, Debian 12.
    • Use o seguinte script de inicialização. O script de inicialização é executado pelo root sempre que a VM é iniciada. Esse script inclui comentários que explicam o que cada linha faz. No script, substitua CLOUD_SQL_INSTANCE_IP pelo endereço IP da instância do Cloud SQL e DATABASE_PORT pela porta de destino usada pelo software do banco de dados.
    #! /bin/bash
    
    export DB_ADDR=CLOUD_SQL_INSTANCE_IP
    export DB_PORT=DATABASE_PORT
    
    # Enable the VM to receive packets whose destinations do
    # not match any running process local to the VM
    echo 1 > /proc/sys/net/ipv4/ip_forward
    
    # Ask the Metadata server for the IP address of the VM nic0
    # network interface:
    md_url_prefix="http://169.254.169.254/computeMetadata/v1/instance"
    vm_nic_ip="$(curl -H "Metadata-Flavor: Google" ${md_url_prefix}/network-interfaces/0/ip)"
    
    # Clear any existing iptables NAT table entries (all chains):
    iptables -t nat -F
    
    # Create a NAT table entry in the prerouting chain, matching
    # any packets with destination database port, changing the destination
    # IP address of the packet to the SQL instance IP address:
    iptables -t nat -A PREROUTING \
         -p tcp --dport $DB_PORT \
         -j DNAT \
         --to-destination $DB_ADDR
    
    # Create a NAT table entry in the postrouting chain, matching
    # any packets with destination database port, changing the source IP
    # address of the packet to the NAT VM's primary internal IPv4 address:
    iptables -t nat -A POSTROUTING \
         -p tcp --dport $DB_PORT \
         -j SNAT \
         --to-source $vm_nic_ip
    
    # Save iptables configuration:
    iptables-save
  6. Crie uma regra de firewall de permissão de entrada (ou uma regra em uma política de firewall de rede global, política de firewall de rede regional ou política de firewall hierárquica) com estas características:

    • Direção: entrada
    • Ação: permitir
    • Parâmetro de destino: pelo menos a VM NAT
    • Parâmetro de origem: o intervalo de endereços IP usado pela configuração de conectividade privada do Datastream
    • Protocolo: TCP
    • Porta: precisa incluir pelo menos DATABASE_PORT
  7. A regra de firewall de saída de permissão implícita permite que a VM NAT envie pacotes para qualquer destino. Se a rede VPC usar regras de firewall de negação de saída, talvez seja necessário criar uma regra de firewall de permissão de saída para permitir que a VM NAT envie pacotes para a instância do Cloud SQL. Se uma regra de permissão de saída for necessária, use estes parâmetros:

    • Direção: saída
    • Ação: permitir
    • Parâmetro de destino: pelo menos a VM NAT
    • Parâmetro de destino: o endereço IP da instância do Cloud SQL
    • Protocolo: TCP
    • Porta: precisa incluir pelo menos DATABASE_PORT
  8. Verifique se você configurou a instância do Cloud SQL para aceitar conexões do endereço IPv4 interno principal usado pela interface de rede da VM NAT. Para saber como fazer isso, consulte Autorizar com redes autorizadas na documentação do Cloud SQL.

  9. Crie um perfil de conexão no Datastream. Nos detalhes de conexão do perfil, especifique o endereço IPv4 interno principal da VM NAT que você criou. Insira a porta do banco de dados de origem no campo de porta do perfil de conexão.

Configurar um par de VMs NAT e um balanceador de carga de rede de passagem interna

Para melhorar a confiabilidade de uma solução de VM NAT, considere a seguinte arquitetura, que usa um par de VMs NAT e um balanceador de carga de rede de passagem interno:

  1. Crie duas VMs NAT em zonas diferentes da mesma região. Siga as instruções de Configurar uma VM NAT para criar cada VM e coloque cada VM no próprio grupo de instâncias não gerenciadas da zona.

    Como alternativa, é possível criar um grupo de instâncias gerenciadas regional. No modelo grupo gerenciado de instâncias, inclua um script de inicialização como o exemplo nas instruções de Configurar uma VM NAT.

  2. Crie um balanceador de carga de rede de passagem interna cujo serviço de back-end usa o grupo de instâncias ou os grupos da etapa anterior como back-ends. Para um exemplo de balanceador de carga de rede de passagem interna, consulte Configurar um balanceador de carga de rede de passagem interna com back-ends de grupos de instâncias de VM.

    Ao configurar a verificação de integridade do balanceador de carga, é possível usar uma verificação de integridade TCP que use uma porta TCP de destino correspondente à DATABASE_PORT. Os pacotes de verificação de integridade são roteados para o CLOUD_SQL_INSTANCE_IP de acordo com a configuração da VM NAT. Como alternativa, é possível executar um processo local na VM NAT que responde a uma verificação de integridade TCP ou HTTP em uma porta personalizada.

  3. Crie regras de firewall e configure as redes autorizadas do Cloud SQL, conforme descrito nas instruções de Configurar uma VM NAT. Verifique se as redes autorizadas do Cloud SQL incluem o endereço IPv4 interno principal das duas VMs NAT.

  4. Ao criar um perfil de conexão do Datastream, especifique o endereço IP da regra de encaminhamento do balanceador de carga de rede de passagem interna nos detalhes de conexão do perfil.

A seguir