Como executar o Connectivity Tests

Aprenda a executar o Connectivity Tests seguindo as etapas nesta página.

Para editar ou excluir um ou mais testes, consulte Como atualizar ou excluir testes de conectividade.

Para saber mais sobre o Connectivity Tests, consulte a visão geral.

Antes de começar

Configure os seguintes itens no Google Cloud antes de usar o Connectivity Tests:

  1. No Console do Google Cloud, acesse a página do seletor de projetos.

    Acessar a página do seletor de projetos

  2. Selecione ou crie um projeto do Google Cloud.
  3. Verifique se o faturamento está ativado para seu projeto do Cloud.
  4. Ativar a API Network Management.

Os procedimentos neste documento incluem o seguinte:

  • Exemplos de chamadas de API que usam a API Network Management. Para saber mais informações, consulte a documentação da API.

  • Exemplo de código que usa o cliente Python da API.

Como usar o cliente Python da API

O código de exemplo neste documento presume que você criou um recurso chamado api para interagir com a API Network Management. Para criar um recurso, use a função build.

Veja o exemplo a seguir:

 from googleapiclient.discovery import build

 api = build('networkmanagement', 'v1')

Para ver mais informações, consulte os seguintes tópicos:

Usar o API Explorer

É possível testar comandos da API Network Management usando o APIs Explorer. No documento de referência da API Network Management, use a coluna Try this API para explorar os campos da API e executar um teste.

Como usar o SDK do gcloud

A ferramenta de linha de comando gcloud faz parte do SDK do Cloud. Para instalar a versão mais recente da ferramenta gcloud, consulte a documentação do SDK do Cloud.

Para obter uma lista de todos os comandos, consulte a referência do comando gcloud.

Como receber permissões de teste

Para informações sobre permissões necessárias para executar e visualizar testes, consulte Controle de acesso do Connectivity Tests.

Como verificar uma operação de teste em execução

Para verificar o status de uma operação de teste enquanto a operação é executada, consulte Como verificar uma operação de teste em execução.

Alguns exemplos de operações de teste são create e rerun.

Como executar o Connectivity Tests

Ao executar um teste de conectividade, você fornece entradas de teste como uma 5 tuplas sem a porta de origem.

As seções a seguir mostram como executar um teste para os endpoints de origem e destino descritos em Casos de uso comuns.

No Console do Google Cloud, é possível executar o Connectivity Tests usando um dos seguintes procedimentos:

  • A página Connectivity Tests, disponível no menu Rede > Network Intelligence Center.

  • A página Detalhes da interface de rede para uma interface de rede de uma instância de máquina virtual (VM) do Compute Engine. Se você usar esta página, precisará usar a interface de rede atual como Origem ou Destino do teste. Nesta página, listamos apenas os testes relevantes para a interface de rede atual.

Cada teste que você cria é executado imediatamente após a criação e é armazenado no recurso Connectivity Tests. O teste existe até você excluí-lo.

Ao usar um endereço IP para o terminal de origem ou destino, pode ser necessário especificar campos adicionais.

Práticas recomendadas

  • Quando você testa um terminal (uma VM ou endereço IP) localizado em um projeto de serviço VPC compartilhado, é mais conveniente executar o teste no projeto de serviço. Isso ocorre porque você pode selecionar o endereço IP ou VM na caixa suspensa no Console do Cloud.

    No entanto, é necessário também especificar o projeto host antes de especificar a rede de Nuvem Privada Virtual (VPC), porque a rede está no projeto host. Para detalhes, consulte Como testar endereços IP em uma rede VPC compartilhada.

  • Ao executar um teste entre a rede VPC e a rede local ou peering, é útil executar outro teste de conectividade usando o endereço IP local como a origem e uma instância de VM ou um endereço IP na sua rede VPC como destino.

    Esse tipo de teste verifica se o Google Cloud está anunciando rotas conforme o esperado para sua rede local. No entanto, o Connectivity Tests não verifica se sua rede local recebeu e implementou essas rotas.

  • Leva de 20 a 120 segundos para que os testes de conectividade recebam uma atualização de configuração e incorpore-a à análise. Se você executar um teste imediatamente depois de fazer uma alteração de configuração, talvez não veja os resultados esperados. Certifique-se de esperar tempo suficiente entre a alteração da configuração e a execução dos testes.

    Esse atraso não se aplica à verificação dinâmica. Portanto, é possível que você veja uma incompatibilidade temporária entre os resultados mostrados pela verificação dinâmica e pela análise da configuração. Por exemplo, se você adicionar uma regra de firewall, ela poderá ser acessada pela verificação dinâmica. No entanto, talvez seja necessário aguardar algum tempo antes que a regra de firewall seja acessível para análise da configuração.

Como testar para ou de uma VM com várias interfaces de rede

Nesta seção, você verá como testar de e para a interface de rede não primária de uma VM.

Console

Se você especificar uma instância de VM com várias interfaces de rede como origem ou destino de um teste, o Connectivity Tests solicitará a seleção de uma interface de rede em um menu suspenso.

Se preferir, execute um teste na página Detalhes da interface de rede para uma interface de rede de uma instância de VM do Compute Engine. Se você usar esta página, precisará usar a interface de rede atual como Origem ou Destino do teste.

gcloud e API

É necessário especificar a interface de rede a ser usada no teste de uma das seguintes maneiras:

  • endereço IP e URI da rede;
  • endereço IP e URI da VM;
  • URI da rede e URI da VM.

Fornecer apenas o URI para uma VM com várias interfaces seleciona apenas a interface principal da VM.

Como listar todos os testes para um projeto

Console

  1. No Console do Cloud, acesse a página Connectivity Tests.

    Acesse Testes de conectividade

  2. Na parte superior da página, selecione um projeto no menu suspenso do projeto.
  3. A página Connectivity Tests é atualizada e mostra os testes para esse projeto.

gcloud

Para listar todos os testes de um projeto, insira o seguinte comando gcloud. Este comando mostra os testes no projeto atualmente selecionado.

  gcloud network-management connectivity-tests list

Para listar testes em um projeto específico, especifique o PROJECT_ID.

  gcloud network-management connectivity-tests list --project=PROJECT_ID

API

Para listar todos os testes existentes pertencentes a um projeto, use o método networkmanagement.connectivitytests.list.

GET https://networkmanagement.googleapis.com/v1/{parent=projects/PROJECT_ID/locations/global}/connectivityTests
  • Substitua PROJECT_ID pelo ID do projeto que contém os testes que você quer listar.

Python

O código de exemplo a seguir lista todos os testes existentes que pertencem a um projeto. Para mais informações, consulte list na documentação de referência do cliente Python da API.

project_id = "PROJECT_ID"
parent = 'projects/%s/locations/global' % project_id
request = api.projects().locations().global_().connectivityTests().list(parent=parent)
print(json.dumps(request.execute(), indent=4))

Substitua PROJECT_ID pelo ID do projeto que contém os testes que você quer listar.

Teste entre instâncias de VM em uma rede VPC

Essas etapas pressupõem que as duas instâncias da VM estejam no mesmo projeto do Google Cloud.

Console

Na página principal do Connectivity Tests

  1. No Console do Cloud, acesse a página Connectivity Tests.

    Acesse Testes de conectividade

  2. Selecione Criar teste de conectividade.
  3. Insira um nome para o teste.
  4. Selecione um protocolo.
  5. Em Origem, selecione uma Instância da VM de origem no menu suspenso.
    • Se a instância da VM tiver várias interfaces de rede, selecione uma interface de rede da VM que identifique exclusivamente o local de origem.
  6. Em Destino, selecione uma Instância da VM de destino no menu suspenso.
    • Se a instância da VM tiver várias interfaces de rede, selecione uma interface de rede da VM para identificar exclusivamente o local de destino.
  7. Insira uma porta de destino.
  8. Clique em Criar.
  9. Quando o teste terminar, a página principal Connectivity Tests será carregada e mostrará uma lista que contém este e outros testes. Continue em Como visualizar resultados de testes.

Na página de detalhes da interface de rede

  1. No Console do Cloud, acesse a página Instâncias de VM.

    Acessar instâncias de VM

  2. Se ainda não estiver selecionado, selecione o projeto que contém a instância em que você quer executar um teste.
  3. Clique na instância que você quer usar para executar um teste.
  4. Em Interfaces de rede, selecione a interface de rede que você quer usar para executar um teste.
  5. Em Análise de rede, clique em Connectivity Tests e em Criar.
  6. Insira um nome para o teste.
  7. Selecione um protocolo.
  8. Se você quiser usar a interface de rede atual como origem, selecione Interface de rede atual em Origem. Caso contrário, selecione Interface de rede atual em Destino.
  9. No campo expandido Outro, selecione uma instância de VM no menu suspenso.
    • Se a instância da VM tiver várias interfaces de rede, selecione uma interface de rede da VM para identificar exclusivamente o local de destino.
  10. Preencha o campo Porta de destino com o destino especificado.
  11. Clique em Criar.
  12. Quando o teste terminar, a página principal Connectivity Tests será carregada e mostrará uma lista que contém este e outros testes. Continue em Como visualizar resultados de testes.

gcloud

Para testar entre VMs no mesmo projeto do Cloud, insira o comando a seguir. Substitua os valores da amostra pelos valores da sua rede VPC.

  gcloud network-management connectivity-tests create NAME \
  --source-instance=SOURCE_INSTANCE
  --destination-instance=DESTINATION_INSTANCE
  --protocol=PROTOCOL

Substitua os seguintes valores:

  • NAME: o nome do teste de conectividade;
  • SOURCE_INSTANCE: o URI da VM de origem (por exemplo, projects/myproject/zones/us-east1-b/instances/instance-1);
  • DESTINATION_INSTANCE: o URI da VM de destino (por exemplo, projects/myproject/zones/us-east1-b/instances/instance-2);
  • PROTOCOL: um protocolo compatível com o Connectivity Tests. O protocolo padrão é TCP;

API

O teste de amostra a seguir determina se a configuração de rede existente permite que a VM instance1 faça ping na VM instance2.

Use o método networkmanagement.connectivitytests.create para criar o teste.

 POST https: //networkmanagement.googleapis.com/v1/projects/PROJECT_ID/locations/global/connectivityTests?testId=TEST_ID'
   {
     "source": {
     "instance": "SOURCE_INSTANCE",
   },
     "destination": {
     "instance": "DESTINATION_INSTANCE",
   },
     "protocol": "PROTOCOL",
   }'

Substitua os seguintes valores:

  • PROJECT_ID: o ID do projeto da VM de origem;
  • TEST_ID: o ID do objeto do Connectivity Tests (teste) que você está executando;
  • SOURCE_INSTANCE: o URI da VM de origem (por exemplo, projects/myproject/zones/us-east1-b/instances/instance-1);
  • DESTINATION_INSTANCE: o URI da VM de destino (por exemplo, projects/myproject/zones/us-east1-b/instances/instance-2);
  • PROTOCOL: um protocolo compatível com o Connectivity Tests. O protocolo padrão é TCP;

Python

O código de exemplo a seguir cria um teste entre duas instâncias de VM. Para mais informações, consulte create na documentação de referência do cliente Python da API.

test_input = {
  "source": {
      "instance":
          "SOURCE_INSTANCE",
      "projectId":
          "SOURCE_INSTANCE_PROJECT_ID"
  },
  "destination": {
      "instance":
          "DESTINATION_INSTANCE",
      "projectId": "DESTINATION_INSTANCE_PROJECT_ID"
  },
  "protocol": "PROTOCOL",
}

request = api.projects().locations().global_().connectivityTests().create(
    parent="projects/PROJECT_ID/locations/global",
    testId="TEST_ID",
    body=test_input)

print(json.dumps(request.execute(), indent=4))

Substitua os seguintes valores:

  • SOURCE_INSTANCE: o URI da VM de origem (por exemplo, projects/myproject/zones/us-east1-b/instances/instance-1);
  • SOURCE_INSTANCE_PROJECT_ID: o ID do projeto da VM de origem;
  • DESTINATION_INSTANCE: o URI da VM de destino (por exemplo, projects/myproject/zones/us-east1-b/instances/instance-2);
  • DESTINATION_INSTANCE_PROJECT_ID: o ID do projeto da VM de destino;
  • PROTOCOL: um protocolo compatível com o Connectivity Tests. O protocolo padrão é TCP;
  • PROJECT_ID: o ID do projeto em que você está criando o teste;
  • TEST_ID: o ID do objeto do Connectivity Tests (teste) que você está executando.

Teste entre endereços IP privados em uma rede VPC

Este exemplo pressupõe que os dois endereços IP sejam particulares no mesmo projeto do Cloud e na mesma rede VPC.

Se você estiver testando entre redes VPC com peering, selecione as redes de origem e destino para cada par.

Console

  1. No Console do Cloud, acesse a página Connectivity Tests.

    Acesse Testes de conectividade

  2. Selecione Criar teste de conectividade.
  3. Insira um nome para o teste.
  4. Selecione um protocolo.
  5. Em IP de origem ou instância, selecione Endereço IP e insira um endereço IP.
    1. Marque a caixa de seleção Este é um endereço IP usado no Google Cloud.
    2. Se este for um endereço IP interno, não acessível pela Internet, selecione a rede VPC onde o endereço está localizado.
  6. Em IP de destino ou instância, selecione Endereço IP e insira um endereço IP.
    1. Marque a caixa de seleção Este é um endereço IP usado no Google Cloud.
    2. Se este for um endereço IP interno, não acessível pela Internet, selecione a rede VPC onde o endereço está localizado.
  7. Insira uma porta de destino.
  8. Clique em Criar.
  9. Quando o teste terminar, a página principal Connectivity Tests será carregada e mostrará uma lista que contém este e outros testes. Continue em Como visualizar resultados de testes.

gcloud

Digite o seguinte comando para testar entre dois endereços IP internos no mesmo projeto e rede. Substitua variáveis para as opções de comando pelos valores da sua rede VPC.

  gcloud network-management connectivity-tests create NAME \
  --source-ip-address=SOURCE_IP_ADDRESS \
  --source-network=SOURCE_NETWORK
  --destination-ip-address=DESTINATION_IP_ADDRESS \
  --destination-network=DESTINATION_NETWORK \
  --protocol=PROTOCOL

Substitua os seguintes valores:

  • NAME: o nome do teste de conectividade;
  • SOURCE_IP_ADDRESS: o endereço IP de origem interna ou externa que você está testando. Um endereço IPv6 só é permitido quando o destino do teste é um VIP do balanceador de carga global;
  • SOURCE_NETWORK: o URI da rede VPC em que o endereço IP de origem está localizado (por exemplo, projects/myproject/global/networks/default);
  • DESTINATION_IP_ADDRESS: o endereço IP de destino interno ou externo que você está testando. Um endereço IPv6 só é permitido quando o destino do teste é um VIP do balanceador de carga global;
  • DESTINATION_NETWORK: o URI da rede VPC em que o endereço IP de destino está localizado (por exemplo, projects/myproject/global/networks/network-a);
  • PROTOCOL: um protocolo compatível com o Connectivity Tests. O protocolo padrão é TCP;

Se a rede for desconhecida ou você não tiver permissão para acessar a rede, poderá especificar a rede como GCP_NETWORK, em vez de fornecer um URI da rede.

  gcloud network-management connectivity-tests create NAME \
  --source-ip-address=SOURCE_IP_ADDRESS \
  --source-network-type=GCP_NETWORK \
  --destination-instance=DESTINATION_INSTANCE  \
  --protocol=PROTOCOL

Substitua os seguintes valores:

  • NAME: o nome do teste de conectividade;
  • SOURCE_IP_ADDRESS: o endereço IP de origem interna ou externa que você está testando. Um endereço IPv6 só é permitido quando o destino do teste é um VIP do balanceador de carga global;
  • SOURCE_NETWORK_TYPE: o tipo de rede em que a origem está localizada. Neste caso, use o valor de GCP_NETWORK;
  • DESTINATION_INSTANCE: o URI da VM de destino (por exemplo, projects/myproject/zones/us-east1-b/instances/instance-2);
  • PROTOCOL: um protocolo compatível com o Connectivity Tests. O protocolo padrão é TCP;

Ao especificar um endereço IP particular de fora do Google Cloud como o endereço IP de origem, é necessário especificar um networkType de NON_GCP_NETWORK. Substitua os valores no comando a seguir pelos valores da sua rede VPC.

  gcloud network-management connectivity-tests create NAME \
  --source-ip-address=SOURCE_IP_ADDRESS \
  --source-network-type=NON_GCP_NETWORK \
  --destination-ip-address= DESTINATION_IP_ADDRESS \
  --destination-network=DESTINATION_NETWORK \
  --destination-port=DESTINATION_PORT \
  --protocol=PROTOCOL

Substitua os seguintes valores:

  • NAME: o nome do teste de conectividade;
  • SOURCE_IP_ADDRESS: o endereço IP de origem interna ou externa que você está testando. Um endereço IPv6 só é permitido quando o destino do teste é um VIP do balanceador de carga global;
  • SOURCE_NETWORK_TYPE: o tipo de rede em que a origem está localizada. Neste caso, use o valor de NON_GCP_NETWORK;
  • DESTINATION_IP_ADDRESS: o endereço IP de destino interno ou externo que você está testando. Um endereço IPv6 só é permitido quando o destino do teste é um VIP do balanceador de carga global;
  • DESTINATION_NETWORK: um URI para a rede VPC em que o endereço IP de destino está localizado (por exemplo, projects/myproject/global/networks/default);
  • DESTINATION_PORT: a porta do protocolo IP do destino. Esta opção é válida apenas para protocolos TCP ou UDP. O padrão é a porta 80;
  • PROTOCOL: um protocolo compatível com o Connectivity Tests. O protocolo padrão é TCP;

API

Este exemplo testa a capacidade de executar ping do endereço IP de origem para o endereço IP de destino.

Use o método networkmanagement.connectivitytests.create para criar o teste.

  POST https://reachability.googleapis.com/v1/projects/PROJECT_ID/locations/global/connectivityTests?testId=TEST_ID'
  {
    "source": {
      "ipAddress": "SOURCE_IP_ADDRESS",
      "network": "SOURCE_NETWORK"
    },
    "destination": {
      "ipAddress": "DESTINATION_IP_ADDRESS",
      "network": "DESTINATION_NETWORK",
      "port": "DESTINATION_PORT",
    },
      "protocol": "PROTOCOL".
  }'

Substitua os seguintes valores:

  • PROJECT_ID: o ID do projeto da VM de origem;
  • TEST_ID: o ID do objeto do Connectivity Tests (teste) que você está executando;
  • SOURCE_IP_ADDRESS: o endereço IP de origem interna ou externa que você está testando. Um endereço IPv6 só é permitido quando o destino do teste é um VIP do balanceador de carga global;
  • SOURCE_NETWORK: o URI da rede VPC em que o endereço IP de origem está localizado (por exemplo, projects/myproject/global/networks/default);
  • DESTINATION_IP_ADDRESS: o endereço IP de destino interno ou externo que você está testando. Um endereço IPv6 só é permitido quando o destino do teste é um VIP do balanceador de carga global;
  • DESTINATION_NETWORK: um URI para a rede VPC em que o endereço IP de destino está localizado (por exemplo, projects/myproject/global/networks/network-a);
  • DESTINATION_PORT: a porta do protocolo IP do destino. Esta opção é válida apenas para protocolos TCP ou UDP. O padrão é a porta 80;
  • PROTOCOL: um protocolo compatível com o Connectivity Tests. O protocolo padrão é TCP;

Se a rede VPC for desconhecida ou você não tiver permissão para acessar a rede, poderá especificar a rede como GCP_NETWORK, em vez de fornecer um URI da rede.

  POST https://reachability.googleapis.com/v1/projects/PROJECT_ID/locations/global/connectivityTests?connectivityTestId=TEST_ID'
  {
    "source": {
      "ipAddress": "SOURCE_IP_ADDRESS",
      "networkType": "GCP_NETWORK"
    },
    "destination": {
      "instance": "projects/myproject/zones/us-east1-b/instances/instance-2 ",
    },
    "protocol": "PROTOCOL"
  }'

Substitua os seguintes valores:

  • PROJECT_ID: o ID do projeto da VM de origem;
  • TEST_ID: o ID do objeto do Connectivity Tests (teste) que você está executando;
  • SOURCE_IP_ADDRESS: o endereço IP de origem interna ou externa que você está testando. Um endereço IPv6 só é permitido quando o destino do teste é um VIP do balanceador de carga global;
  • SOURCE_NETWORK_TYPE: o tipo de rede em que a origem está localizada. Neste caso, use o valor de GCP_NETWORK;
  • DESTINATION_INSTANCE: o URI da VM de destino (por exemplo, projects/myproject/zones/us-east1-b/instances/instance-2);
  • PROTOCOL: um protocolo compatível com o Connectivity Tests. O protocolo padrão é TCP;

Ao especificar um endereço IP particular de fora do Google Cloud como o endereço IP de origem, é necessário especificar um networkType de NON_GCP_NETWORK. Substitua os valores no comando a seguir pelos valores da sua rede do Google Cloud.

  POST https://reachability.googleapis.com/v1/projects/PROJECT_ID/locations/global/connectivityTests?testId=TEST_ID'
  {
    "source": {
      "ipAddress": "SOURCE_IP_ADDRESS",
      "networkType": "NON_GCP_NETWORK",

    },
    "destination": {
      "ipAddress": "DESTINATION_IP_ADDRESS",
      "network": "DESTINATION_NETWORK",
      "port": "DESTINATION_PORT",
    },
    "protocol": "PROTOCOL",
  }'

Python

O código de exemplo a seguir cria um teste entre dois endereços IP. Para mais informações, consulte create na documentação de referência do cliente Python da API.

test_input = {
  "source": {
      "ipAddress": "SOURCE_IP_ADDRESS",
      "projectId": "SOURCE_IP_PROJECT_ID"
  },
  "destination": {
      "ipAddress": "DESTINATION_IP_ADDRESS",
      "port": "DESTINATION_PORT",
      "projectId": "DESTINATION_IP_PROJECT_ID"
  },
  "protocol": "PROTOCOL",
}

request = api.projects().locations().global_().connectivityTests().create(
    parent="projects/PROJECT_ID/locations/global",
    testId="TEST_ID",
    body=test_input)

print(json.dumps(request.execute(), indent=4))

Substitua os seguintes valores:

  • SOURCE_IP_ADDRESS: o endereço IP de origem interna ou externa que você está testando. Um endereço IPv6 só é permitido quando o destino do teste é um VIP do balanceador de carga global;
  • SOURCE_IP_PROJECT_ID: o ID do projeto para o endereço IP de origem;
  • DESTINATION_IP_ADDRESS: o endereço IP de destino interno ou externo que você está testando. Um endereço IPv6 só é permitido quando o destino do teste é um VIP do balanceador de carga global;
  • DESTINATION_PORT: a porta do protocolo IP do destino. Esta opção é válida apenas para protocolos TCP ou UDP. O padrão é a porta 80;
  • DESTINATION_IP_PROJECT_ID: o ID do projeto para o endereço IP de destino;
  • PROTOCOL: um protocolo compatível com o Connectivity Tests. O protocolo padrão é TCP;
  • PROJECT_ID: o ID do projeto em que você está criando o teste;
  • TEST_ID: o ID do objeto do Connectivity Tests (teste) que você está executando.

Se a rede VPC for desconhecida ou você não tiver permissão para acessar a rede, poderá especificar a rede como GCP_NETWORK, em vez de fornecer um URI da rede. Veja o seguinte código de exemplo:

test_input = {
    "source": {
        "ipAddress": "SOURCE_IP_ADDRESS",
        "networkType": "GCP_NETWORK"
    },
    "destination": {
        "ipAddress": "DESTINATION_IP_ADDRESS",
        "port": "DESTINATION_PORT",
        "projectId": "DESTINATION_IP_PROJECT_ID"
    },
    "protocol": "PROTOCOL",
}

request = api.projects().locations().global_().connectivityTests().create(
  parent="projects/PROJECT_ID/locations/global",
  testId="TEST_ID",
  body=test_input)

print(json.dumps(request.execute(), indent=4))

Substitua os seguintes valores:

  • SOURCE_IP_ADDRESS: o endereço IP de origem interna ou externa que você está testando. Um endereço IPv6 só é permitido quando o destino do teste é um VIP do balanceador de carga global;
  • SOURCE_NETWORK_TYPE: o tipo de rede em que a origem está localizada. Neste caso, use o valor de GCP_NETWORK;
  • DESTINATION_IP_ADDRESS: o endereço IP da VM de destino;
  • DESTINATION_PORT: a porta do protocolo IP do destino. Esta opção é válida apenas para protocolos TCP ou UDP. O padrão é a porta 80;
  • DESTINATION_IP_PROJECT_ID: o ID do projeto para o endereço IP de destino;
  • PROTOCOL: um protocolo compatível com o Connectivity Tests. O protocolo padrão é TCP;
  • PROJECT_ID: o ID do projeto em que você está criando o teste;
  • TEST_ID: o ID do objeto do Connectivity Tests (teste) que você está executando.

Ao especificar um endereço IP particular de fora do Google Cloud como o endereço IP de origem, é necessário especificar um networkType de NON_GCP_NETWORK.

Como testar endereços IP em uma rede VPC compartilhada

Quando você tem uma rede VPC compartilhada, é possível criar e executar um teste no projeto host ou no projeto de serviço.

O exemplo a seguir mostra os dois casos e usa um endereço IP de destino alocado no projeto de serviço. Os valores do campo no Console do Cloud são ligeiramente diferentes para cada caso. No entanto, as opções de comando para a ferramenta de linha de comando gcloud e para as chamadas de API são as mesmas.

Console: do host

  1. No Console do Cloud, no projeto host, acesse a página Connectivity Tests.

    Acesse Testes de conectividade

  2. Selecione Criar teste de conectividade.
  3. Insira um nome para o teste.
  4. Selecione um protocolo.
  5. Em IP de origem ou instância, selecione Endereço IP e insira um endereço IP.
    1. Verifique se a caixa de seleção Este é um endereço IP usado no Google Cloud está marcada.
    2. Selecione a instância de origem ou o endereço IP.
  6. Em IP de destino ou instância, selecione Endereço IP e insira um endereço IP.
    1. Verifique se a caixa de seleção Este é um endereço IP usado no Google Cloud está marcada.
    2. Especifique o Projeto de Serviço em que o endereço IP está localizado.
    3. Selecione a Rede no projeto host (atual) em que o endereço IP está localizado.
  7. Insira uma porta de destino.
  8. Clique em Criar.
  9. Quando o teste terminar, a página principal Connectivity Tests será carregada e mostrará uma lista que contém este e outros testes. Continue em Como visualizar resultados de testes.

Console: do serviço

  1. No Console do Cloud, no projeto de serviço, acesse a página Connectivity Tests.

    Acesse Testes de conectividade

  2. Selecione Criar teste de conectividade.
  3. Insira um nome para o teste.
  4. Selecione um protocolo. Durante o período Beta, apenas os protocolos mostrados no menu estão disponíveis.
  5. Em IP de origem ou instância, selecione Endereço IP e insira um endereço IP.
    1. Verifique se a caixa de seleção Este é um endereço IP usado no Google Cloud está marcada.
  6. Em IP de destino ou instância, selecione Endereço IP e insira um endereço IP.
    1. Verifique se a caixa de seleção Este é um endereço IP usado no Google Cloud está marcada.
    2. Especifique o Projeto de Serviço em que o endereço IP está localizado.
    3. Marque a caixa de seleção A rede está em um projeto diferente do atual.
    4. Selecione o Projeto Host.
    5. Selecione a Rede onde o endereço IP está localizado.
  7. Insira uma porta de destino.
  8. Clique em Criar.
  9. Quando o teste terminar, a página principal Connectivity Tests será carregada e mostrará uma lista que contém este e outros testes. Continue em Como visualizar resultados de testes.

gcloud

Digite o comando a seguir para testar entre dois endereços IP privados em um host e em um projeto de serviço em que o endereço IP de destino esteja localizado no projeto de serviço. Substitua variáveis para as opções de comando pelos valores da sua rede VPC.

Como o endereço IP de destino está no projeto de serviço, especifique o projeto de serviço e o URI da rede do projeto host. Nesse caso, default representa a rede VPC padrão para o host-project.

  gcloud network-management connectivity-tests create NAME \
  --source-ip-address=SOURCE_IP_ADDRESS \
  --source-project=SOURCE_PROJECT \
  --destination-ip-address=DESTINATION_IP_ADDRESS \
  --destination-network=DESTINATION_NETWORK  \
  --destination-project=DESTINATION_PROJECT \
  --destination-port=DESTINATION_PORT \
  --protocol=PROTOCOL

Substitua os seguintes valores:

  • NAME: o nome do teste de conectividade;
  • SOURCE_IP_ADDRESS: o endereço IP de origem interna ou externa que você está testando. Um endereço IPv6 só é permitido quando o destino do teste é um VIP do balanceador de carga global;
  • SOURCE_PROJECT: o ID do projeto do endpoint de origem;
  • DESTINATION_IP_ADDRESS: o endereço IP de destino interno ou externo que você está testando no projeto de serviço. Um endereço IPv6 só é permitido quando o destino do teste é um VIP do balanceador de carga global;
  • DESTINATION_NETWORK: um URI para a rede VPC do projeto host (por exemplo, projects/host-project/global/networks/default);
  • DESTINATION_PROJECT: o ID do projeto do endpoint de destino. Por exemplo, um projeto chamado service-project que representa o projeto de serviço usado para essa rede VPC compartilhada;
  • DESTINATION_PORT: a porta do protocolo IP do destino. Esta opção é válida apenas para protocolos TCP ou UDP. O padrão é a porta 80;
  • PROTOCOL: um protocolo compatível com o Connectivity Tests. O protocolo padrão é TCP;

API

Use o método networkmanagement.connectivitytests.create para criar o teste.

  POST https: //networkmanagement.googleapis.com/v1/projects/PROJECT_ID/locations/global/connectivityTests?testId=TEST_ID'
    {
      "source": {
        "ipAddress": "SOURCE_IP_ADDRESS",
        "projectId": "SOURCE_PROJECT",
      },
      "destination": {
        "ipAddress": "DESTINATION_IP_ADDRESS",
        "projectId": "DESTINATION_PROJECT",
        "network": "DESTINATION_NETWORK",
        "port": "DESTINATION_PORT",
      },
      "protocol": "PROTOCOL",
    }'

Substitua os seguintes valores:

  • PROJECT_ID: o ID do projeto da VM de origem;
  • TEST_ID: o ID do objeto do Connectivity Tests (teste) que você está executando;
  • SOURCE_IP_ADDRESS: o endereço IP de origem interna ou externa que você está testando. Um endereço IPv6 só é permitido quando o destino do teste é um VIP do balanceador de carga global;
  • SOURCE_PROJECT: o ID do projeto do endpoint de origem;
  • DESTINATION_IP_ADDRESS: o endereço IP de destino interno ou externo que você está testando no projeto de serviço. Um endereço IPv6 só é permitido quando o destino do teste é um VIP do balanceador de carga global;
  • DESTINATION_PROJECT: o ID do projeto do endpoint de destino. Por exemplo, um projeto chamado service-project que representa o projeto de serviço usado para essa rede VPC compartilhada;
  • DESTINATION_NETWORK: um URI para a rede VPC do projeto host (por exemplo, projects/host-project/global/networks/default);
  • DESTINATION_PORT: a porta do protocolo IP do destino. Esta opção é válida apenas para protocolos TCP ou UDP. O padrão é a porta 80;
  • PROTOCOL: um protocolo compatível com o Connectivity Tests. O protocolo padrão é TCP;

Python

O código de exemplo a seguir cria um teste entre dois endereços IP. Para mais informações, consulte create na documentação de referência do cliente Python da API.

test_input = {
  "source": {
      "ipAddress": "SOURCE_IP_ADDRESS",
      "projectId": "SOURCE_IP_PROJECT_ID"
  },
  "destination": {
      "ipAddress": "DESTINATION_IP_ADDRESS",
      "projectId": "DESTINATION_IP_PROJECT_ID",
      "network": "DESTINATION_NETWORK",
      "port": "DESTINATION_PORT",
  },
  "protocol": "PROTOCOL",
}

request = api.projects().locations().global_().connectivityTests().create(
    parent="projects/PROJECT_ID/locations/global",
    testId="TEST_ID",
    body=test_input)

print(json.dumps(request.execute(), indent=4))

Substitua os seguintes valores:

  • SOURCE_IP_ADDRESS: o endereço IP de origem interna ou externa que você está testando. Um endereço IPv6 só é permitido quando o destino do teste é um VIP do balanceador de carga global;
  • SOURCE_IP_PROJECT_ID: o ID do projeto do endpoint de origem;
  • DESTINATION_IP_ADDRESS: o endereço IP de destino interno ou externo que você está testando no projeto de serviço. Um endereço IPv6 só é permitido quando o destino do teste é um VIP do balanceador de carga global;
  • DESTINATION_IP_PROJECT_ID: o ID do projeto do endpoint de destino. Por exemplo, um projeto chamado service-project que representa o projeto de serviço usado para essa rede VPC compartilhada;
  • DESTINATION_NETWORK: um URI para a rede VPC do projeto host (por exemplo, projects/host-project/global/networks/default);
  • DESTINATION_PORT: a porta do protocolo IP do destino. Esta opção é válida apenas para protocolos TCP ou UDP. O padrão é a porta 80;
  • PROTOCOL: um protocolo compatível com o Connectivity Tests. O protocolo padrão é TCP;
  • PROJECT_ID: o ID do projeto em que você está criando o teste;
  • TEST_ID: o ID do objeto do Connectivity Tests (teste) que você está executando.

Como testar a partir de uma VM em um serviço gerenciado pelo Google (alfa)

Nesta seção, você verá como testar a partir de uma VM na sua rede VPC em um serviço executado em uma rede VPC do Google. Por exemplo, siga as etapas nesta seção para testar a conectividade com uma instância do Cloud SQL ou um mestre do GKE. Também é possível executar um teste usando um endpoint do serviço gerenciado pelo Google como origem e um endpoint na rede VPC como destino.

Por padrão, o Connectivity Tests tenta executar um teste usando o endereço IP particular do endpoint do serviço gerenciado pelo Google. Se o endpoint não tiver um endereço IP particular, o Connectivity Tests usará o endereço IP público. O Connectivity Tests analisa se o pacote consegue alcançar o endpoint, o que inclui analisar a configuração na rede VPC do Google. Se forem detectados problemas de configuração no seu projeto, a análise será interrompida antes de analisar a configuração de rede do Google.

Para testar a partir de uma VM em um serviço gerenciado pelo Google, consulte as instruções a seguir.

Console

Na página principal do Connectivity Tests

  1. No Console do Cloud, acesse a página Connectivity Tests.

    Acesse Testes de conectividade

  2. Selecione Criar teste de conectividade.
  3. Insira um nome para o teste.
  4. Selecione um protocolo.
  5. Em Origem, selecione uma Instância da VM de origem no menu suspenso.
    • Se a instância da VM tiver várias interfaces de rede, selecione uma interface de rede da VM que identifique exclusivamente o local de origem.
  6. Em Destino, selecione um tipo de recurso de serviço gerenciado pelo Google no menu suspenso Endpoint de destino, como o cluster mestre do GKE.
    1. Use o outro menu suspenso à direita para selecionar o endpoint específico. Por exemplo, se você selecionou cluster mestre do GKE, selecione o cluster em que você quer testar a conectividade com o mestre do cluster.
  7. Insira uma porta de destino.
  8. Clique em Criar.
  9. Quando o teste terminar, a página principal Connectivity Tests será carregada e mostrará uma lista que contém este e outros testes. Continue em Como visualizar resultados de testes.

Na página de detalhes da interface de rede

  1. No Console do Cloud, acesse a página Instâncias de VM.

    Acessar instâncias de VM

  2. Se ainda não estiver selecionado, selecione o projeto que contém a instância em que você quer executar um teste.
  3. Clique na instância que você quer usar para executar um teste.
  4. Em Interfaces de rede, selecione a interface de rede que você quer usar para executar um teste.
  5. Em Análise de rede, clique em Connectivity Tests e em Criar.
  6. Insira um nome para o teste.
  7. Selecione um protocolo.
  8. Selecione Interface de rede atual em Origem.
  9. Em Destino, selecione um tipo de recurso de serviço gerenciado pelo Google no menu suspenso Endpoint de destino, como o cluster mestre do GKE.
    1. Use o outro menu suspenso à direita para selecionar o endpoint específico. Por exemplo, se você selecionou cluster mestre do GKE, selecione o cluster em que você quer testar a conectividade com o mestre do cluster.
  10. Preencha o campo Porta de destino com o destino especificado.
  11. Clique em Criar.
  12. Quando o teste terminar, a página principal Connectivity Tests será carregada e mostrará uma lista que contém este e outros testes. Continue em Como visualizar resultados de testes.

gcloud

Para testar a partir de uma VM na sua rede VPC em um serviço gerenciado pelo Google, digite o comando a seguir. Substitua as variáveis pelas opções de comando de acordo com a seguinte orientação:

  gcloud beta network-management connectivity-tests create NAME \
  --source-instance=SOURCE_INSTANCE \
  DESTINATION_RESOURCE_FLAG=DESTINATION_ENDPOINT \
  --destination-port=DESTINATION_PORT \
  --protocol=PROTOCOL

Substitua os seguintes valores:

  • NAME: o nome do teste de conectividade;
  • SOURCE_INSTANCE: o URI da VM de origem (por exemplo, projects/myproject/zones/us-east1-b/instances/instance-1);
  • DESTINATION_RESOURCE_FLAG: a sinalização que especifica o tipo de recurso de serviço gerenciado pelo Google. Consulte a lista a seguir para as opções disponíveis e a referência gcloud beta network-management connectivity-tests create para mais informações:
    • --destination-gke-master-cluster
    • --destination-cloud-sql-instance
  • DESTINATION_ENDPOINT: o URI do endpoint de destino. Por exemplo, projects/myproject/locations/us-central1/clusters/cluster-1 para a sinalização --destination-gke-master-cluster;
  • DESTINATION_PORT: a porta do protocolo IP do destino. Esta opção é válida apenas para protocolos TCP ou UDP. O padrão é a porta 80;
  • PROTOCOL: um protocolo compatível com o Connectivity Tests. O protocolo padrão é TCP;

API

O exemplo a seguir testa a conectividade de uma VM na sua rede VPC em um serviço gerenciado pelo Google.

Use o método networkmanagement.connectivitytests.create para criar o teste.

 POST https: //networkmanagement.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/connectivityTests?testId=TEST_ID'
   {
     "source": {
     "instance": "SOURCE_INSTANCE",
   },
     "destination": {
     "DESTINATION_RESOURCE_FIELD": "DESTINATION_ENDPOINT",
     "port": DESTINATION_PORT
   },
     "protocol": "PROTOCOL",
   }'

Substitua os seguintes valores:

  • PROJECT_ID: o ID do projeto da VM de origem;
  • TEST_ID: o ID do objeto do Connectivity Tests (teste) que você está executando;
  • SOURCE_INSTANCE: o URI da VM de origem (por exemplo, projects/myproject/zones/us-east1-b/instances/instance-1);
  • DESTINATION_RESOURCE_FIELD: campo que especifica o tipo de recurso de serviço gerenciado pelo Google. Consulte a lista a seguir para as opções disponíveis e a referência do Endpoint para mais informações:
    • gkeMasterCluster
    • cloudSqlInstance
  • DESTINATION_ENDPOINT: o URI do endpoint de destino. Por exemplo, projects/myproject/locations/us-central1/clusters/cluster-1 para o campo gkeMasterCluster;
  • DESTINATION_PORT: a porta do protocolo IP do destino. Esta opção é válida apenas para protocolos TCP ou UDP. O padrão é a porta 80;
  • PROTOCOL: um protocolo compatível com o Connectivity Tests. O protocolo padrão é TCP;

Python

O código de exemplo a seguir cria um teste entre uma instância de VM e um endpoint de serviço gerenciado pelo Google. Para mais informações, consulte create na documentação de referência do cliente Python da API.

test_input = {
  "source": {
      "instance":
          "SOURCE_INSTANCE",
      "projectId":
          "SOURCE_INSTANCE_PROJECT_ID"
  },
  "destination": {
      "DESTINATION_RESOURCE_FIELD":
          "DESTINATION_ENDPOINT",
      "port": "DESTINATION_PORT"
  },
  "protocol": "PROTOCOL",
}

request = api.projects().locations().global_().connectivityTests().create(
    parent="projects/PROJECT_ID/locations/global",
    testId="TEST_ID",
    body=test_input)

print(json.dumps(request.execute(), indent=4))

Substitua os seguintes valores:

  • SOURCE_INSTANCE: o URI da VM de origem (por exemplo, projects/myproject/zones/us-east1-b/instances/instance-1);
  • SOURCE_INSTANCE_PROJECT_ID: o ID do projeto da VM de origem;
  • DESTINATION_RESOURCE_FIELD: campo que especifica o tipo de recurso de serviço gerenciado pelo Google. Consulte a lista a seguir para as opções disponíveis e a referência do Endpoint para mais informações:
    • gkeMasterCluster
    • cloudSqlInstance
  • DESTINATION_ENDPOINT: o URI do endpoint de destino. Por exemplo, projects/myproject/locations/us-central1/clusters/cluster-1 para o campo gkeMasterCluster;
  • DESTINATION_PORT: a porta do protocolo IP do destino. Esta opção é válida apenas para protocolos TCP ou UDP. O padrão é a porta 80;
  • PROTOCOL: um protocolo compatível com o Connectivity Tests. O protocolo padrão é TCP;
  • PROJECT_ID: o ID do projeto em que você está criando o teste;
  • TEST_ID: o ID do objeto do Connectivity Tests (teste) que você está executando.

Como testar de uma rede VPC para uma rede que não seja do Google Cloud

Esse procedimento é o mesmo de Como testar entre endereços IP particulares em uma rede VPC, exceto nas etapas a seguir. Use este procedimento para o Console do Cloud, a ferramenta de linha de comando gcloud, exemplos de API e exemplos do Python.

  1. Especifique um endereço IP externo para o endereço IP de destino.
  2. No Console do Cloud, deixe a caixa de seleção Este é um endereço IP usado no Google Cloud desmarcada.

Como testar de uma rede que não seja do Google Cloud para uma rede VPC

Esse procedimento é o mesmo de Como testar entre endereços IP particulares em uma rede VPC, exceto nas etapas a seguir. Use este procedimento para o Console do Cloud, a ferramenta de linha de comando gcloud, exemplos de API e exemplos do Python.

  1. Se o endereço de origem não estiver localizado no Google Cloud, mas não for da rede de mesmo nível (local), especifique um endereço IP externo.
  2. Se o endereço de origem for da sua rede de mesmo nível (local), será necessário selecionar Outra rede que não seja do Google Cloud.

Como testar de uma rede que não é do Google Cloud para uma rede que não é do Google Cloud

Esse procedimento é o mesmo de Como testar entre endereços IP particulares em uma rede VPC, exceto nas etapas a seguir. Use este procedimento para o Console do Cloud, a ferramenta de linha de comando gcloud, exemplos de API e exemplos do Python.

  1. Especifique endereços IP externos para o endereço IP de origem e o endereço IP de destino.
  2. No Console do Cloud, deixe a caixa de seleção Este é um endereço IP usado no Google Cloud desmarcada.

Como visualizar os resultados do teste

Nesta seção, você verá como visualizar os resultados de um teste de conectividade.

Console

É possível ver um teste de várias páginas diferentes.

Na página principal do Connectivity Tests

  1. No Console do Cloud, acesse a página Connectivity Tests.

    Acesse Testes de conectividade

  2. Na coluna Detalhes do resultado, escolha um teste e clique em Visualizar.
  3. O painel de informações para o teste é exibido. É possível visualizar o resultado geral e os cards de resultado de cada recurso do Google Cloud no caminho do teste. É possível clicar em um link para a página de detalhes de alguns recursos do Google Cloud, como instâncias de VM ou rotas. Se o teste contiver vários traces, você poderá selecionar um rastreio no menu suspenso Resultado do trace.
  4. Para expandir ou fechar um card de resultados, clique na seta à direita do card.
  5. Para interpretar os resultados do teste, consulte a Referência dos estados de teste.
  6. Para fechar o painel de informações, no canto superior direito da página, clique em Ocultar painel de informações.

Na página de detalhes do teste de conectividade

Como alternativa, na página principal do Console do Cloud, clique no nome de um teste e veja os resultados na página Detalhes do teste de conectividade.

Na página de detalhes da interface de rede

Também é possível ver os resultados da página Detalhes da interface de rede para uma interface de rede de uma instância de VM do Compute Engine. Nesta página, listamos apenas os testes que usam a interface de rede atual como origem ou destino.

Para ver os resultados, selecione Visualizar na coluna Detalhes do resultado ou clique no nome do teste.

gcloud

Para visualizar os resultados de um teste, digite o seguinte comando. Use o ID do teste que você quer ver.

  gcloud network-management connectivity-tests describe NAME

Substitua NAME pelo nome do teste de conectividade.

API

Use o método networkmanagement.connectivitytests.get para visualizar os resultados de um teste.

GET https://networkmanagement.googleapis.com/v1/{name=projects/PROJECT_ID/locations/global/connectivityTests/TEST_ID

Substitua os seguintes valores:

  • PROJECT_ID: o ID do projeto da VM de origem;
  • TEST_ID: o ID do objeto do Connectivity Tests (teste) que você está executando;

Python

O código de exemplo a seguir imprime os resultados de um teste. Para mais informações, consulte get na documentação de referência do cliente Python da API.

project_id = "PROJECT_ID"
test_id= "TEST_ID"
request = api.projects().locations().global_().connectivityTests().get(
      name='projects/%s/locations/global/connectivityTests/%s' %
      (project_id, test_id))
print(json.dumps(request.execute(), indent=4))

Substitua os seguintes valores:

  • PROJECT_ID: o ID do projeto em que o teste foi criado;
  • TEST_ID: o ID do objeto do Connectivity Tests (teste) que você está executando.

Como executar novamente um ou mais testes

Convém executar novamente um teste de conectividade se fizer alterações na configuração dos recursos do Google Cloud no caminho do teste e desejar ver resultados da última configuração de rede. É possível executar novamente um ou mais testes ao mesmo tempo.

Um teste de conectividade é baseado em um instantâneo da configuração de rede no momento da execução. Executar novamente um teste substitui os resultados anteriores. Se você quer preservar resultados mais antigos, crie um novo teste.

Console

Na página principal do Connectivity Tests

  1. No Console do Cloud, acesse a página Connectivity Tests.

    Acesse Testes de conectividade

  2. Marque a caixa de seleção à esquerda de um ou mais testes que você quer executar novamente.
  3. Na parte superior da página, clique em Executar novamente .

Na página de detalhes do teste de conectividade

  1. Na página principal Connectivity Tests anterior, clique no nome de um teste.
  2. Na parte superior da página Detalhes do teste de conectividade, clique em Executar novamente .

Na página de detalhes da interface de rede

  1. No Console do Cloud, acesse a página Instâncias de VM.

    Acessar instâncias de VM

  2. Se ainda não estiver selecionado, selecione o projeto que contém a instância em que você quer executar novamente um teste.
  3. Clique na instância que você quer usar para executar novamente um teste.
  4. Em Interfaces de rede, selecione a interface de rede que você quer usar para executar novamente um teste.
  5. Em Análise de rede, clique em Connectivity Tests.
  6. Marque a caixa de seleção à esquerda de um ou mais testes que você quer executar novamente.
  7. Na parte superior da lista de testes, clique em Executar novamente .

gcloud

Para executar novamente um teste de conectividade, insira o seguinte comando. Use o ID de teste que você quer executar novamente.

  gcloud network-management connectivity-tests rerun NAME

Substitua NAME pelo nome do teste de conectividade.

API

Quando a API de gerenciamento de rede cria um recurso connectivityTests, ele retém esse recurso de teste até você excluí-lo. Por esse motivo, você pode executar novamente os testes.

Se você não quer criar testes persistentes, use a API para criar um teste e excluí-lo após visualizar o resultado do teste.

Use o método networkmanagement.connectivitytests.rerun para executar novamente um teste.

  POST https://networkmanagement.googleapis.com/v1/{name=projects/*/locations/global/connectivityTests/*}:rerun
    {
      "name": {projects/PROJECT_ID/connectivityTests/{TEST_ID}
    }

Substitua os seguintes valores:

  • PROJECT_ID: o ID do projeto da VM de origem;
  • TEST_ID: o ID do objeto do Connectivity Tests (teste) que você está executando.

Python

O código de exemplo a seguir executa um teste novamente. Para mais informações, consulte rerun na documentação de referência do cliente Python da API.

project_id = "PROJECT_ID"
test_id = "TEST_ID"
request = api.projects().locations().global_().connectivityTests().rerun(name='projects/%s/locations/global/connectivityTests/%s' %       (project_id, test_id))
print(json.dumps(request.execute(), indent=4))

Substitua os seguintes valores:

  • PROJECT_ID: o ID do projeto em que o teste foi criado;
  • TEST_ID: o ID do objeto do Connectivity Tests (teste) que você está executando.

A seguir