Oracle Cloud – Pareamento Local de VCNs entre diferentes tenancys

Oracle Cloud

Você como administrador de um tenancy na Oracle Cloud Infrastructure recebeu uma tarefa de realizar a comunicação de rede para trafegar informações da maneira mais simples possível com outro tenancy na mesma região.

Para atender essa demanda você irá utilizar a comunicação via LPG entre os 2 tenancies na mesma região, sem necessidade de criar conexões de VPN.

Isso será possível através da utilização de políticas de IAM aplicadas nos 2 tenancies.

Deixaremos como definição inicial que a comunicação entre as funções de “Acceptor” e “Receptor” serão mantidas nas polices para facilitar o entendimento, você pode alterar as definições de nome dos tenancies para facilitar a organização e identificação com base nos padrões que utiliza.

  • Os grupo definido para o “Requestor” será o TenancyA-GRequestor.
  • A rede no Tenancy A (Requestor) será: 172.16.0.0/16
  • A Rede no Tenancy B (Acceptor) será: 192.168.0.0/16
  • Não será abordada a criação de VCN, Subnet e Instâncias para os testes de conectividade realizados.

Abaixo temos a topologia de exemplo aplicada nesse cenário.

O artigo base para replicação desse cenário está disponível no link abaixo e foi baseado na documentação oficial da Oracle Cloud.

https://docs.oracle.com/en-us/iaas/Content/Network/Tasks/localVCNpeering.htm

Importante: Os CIDRs de rede de ambos os lados devem ser avaliados, não é possível realizar a comunicação se ocorrer overlap de rede entre os 2 tenancies.

Pré-requisitos e levantamento de informações:

Para execução dessa tarefa iremos deixar algumas configurações já criadas e já coletar alguns dados para que facilite o processo de criação da política de IAM de ambos os lados.

Realize as seguintes ações em cada tenancy.

Requestor (Tenancy A que irá realizar requisições de conexão via LPG)

  • Crie um grupo, no exemplo iremos criar o grupo chamado TenancyA-GRequestor
  • Colete o nome do compartimento que estará o LPG que será conectado ao Tenancy B, no exemplo o compartimento tem o nome de network-requestor
  • Colete o tenancy ocid do Tenancy B (Acceptor), ele será utilizado para criar a política de IAM.
  • Colete o tenancy ocid do Tenancy A (Requestor), ele será enviado para o administrador do Tenancy B para criação da política de Acceptor.

Acceptor (Tenancy B que irá receber as requisições de conexão via LPG)

  • Colete o tenancy ocid do Requestor, ele será utilizado para criar a política de IAM local.
  • Defina um nome para identificar o Tenancy A, no exemplo iremos utilizar a identificação como Requestor.
  • Colete o nome do grupo do Requestor, nesse exemplo o nome utilizado é TenancyA-GRequestor
  • Colete o ocid. do grupo TenancyA-GRequestor
  • Colete o nome do compartimento local em que está localizado o LPG que terá comunicação com o Tenancy A, no exemplo está definido como network-acceptor

Com base nos dados acima, temos a seguinte matriz de informações necessárias para criação da conectividade

Políticas utilizadas

Mão na massa!

Com os dados coletados, vamos ao que interessa, iremos começar a criar as conexões.

Tenancy A (Requestor)

Passo 1: Crie o grupo TenancyA-GRequestor

Importante: Coloque o usuário que irá realizar a conexão no Tenancy A dentro desse grupo, exemplo, se seu usuário irá realizar a configuração de conexão.

Em alguns cenários pode-se utilizar na configuração um grupo de rede existente no seu tenancy que já possua as permissões de rede necessárias, ou dependendo do cenário o grupo Administrators.

No nosso caso, irei segmentar um novo Grupo para esse tipo de função.

Ao final do artigo disponibilizei uma resolução de problemas em caso de erro de permissão quando grupo for criado sem utilizar grupos já criados anteriormente.

Passo 2: Crie as políticas no root do tenancy (Police_R)

Altere os dados da política exemplo abaixo com os dados coletados

Define tenancy Acceptor as <acceptor_tenancy_OCID>
Allow group RequestorGrp to manage local-peering-from in compartment RequestorComp
Endorse group RequestorGrp to manage local-peering-to in tenancy Acceptor
Endorse group RequestorGrp to associate local-peering-gateways in compartment RequestorComp with local-peering-gateways in tenancy Acceptor

Passo 3: LPG, Rotas e Security Lists

Crie um LPG que será usado nessa conexão

Crie uma tabela de rota apontando para o CIDR do TenancyB anexada ao LPG

Crie regras de segurança para que receba dados do TenancyB, no nosso caso iremos somente liberar ICMP para teste

Importante: A Route Table e a Security List devem estar anexadas a subnet que a instância ou serviço serão provisionados.

Tenancy B (Acceptor)

Passo 1: Crie as políticas no root do tenancy (Police_A)

Altere os dados da política exemplo abaixo com os dados coletados

Define tenancy Requestor as <requestor_tenancy_OCID>
Define group RequestorGrp as <RequestorGrp_OCID>
Admit group RequestorGrp of tenancy Requestor to manage-local-peering-to in compartment AcceptorComp
Admit group RequestorGrp of tenancy Requestor to associate local-peering-gateways in tenancy Requestor with local-peering-gateways in compartment AcceptorComp

Passo 2: LPG, Rotas e Security Lists

Crie um LPG que será usado nessa conexão

Crie uma tabela de rota apontando para o CIDR do TenancyA anexada ao LPG

Crie regras de segurança para que receba dados do TenancyA, no nosso caso iremos somente liberar ICMP para teste

Importante: A Route Table e a Security List devem estar anexadas a subnet que a instância ou serviço serão provisionados.

Estabelecendo a conexão:

Colete o ocid. do LPG do TenancyB (Acceptor)

No Tenancy A, estabeleça uma conexão via ocid.

Conexão estabelecida

Testando a conexão

Tenancy A para o Tenancy B (IP Local)

Tenancy B para o Tenancy A (IP Local)

Solução de Problemas: Erro de permissão ao tentar conectar to Requestor para o Acceptor

Caso você tenha o erro de permissão quando for realizar a conexão do Tenancy A para o Tenancy B pode ser que receba a seguinte mensagem:

Esse erro normalmente está relacionado a permissão no Requestor, e se seu usuário estiver sendo criado através do IDCS da Oracle, será necessário realizar os seguintes procedimentos

  • Insira o usuário que está realizando esse procedimento dentro do grupo criado anteriormente, no nosso caso o grupo é TenancyA-GRequestor
  • Crie uma política no root para esse grupo com o seguinte Statement
  • Allow group TenancyA-GRequestor to manage local-peering-gateways in compartment network-requestor

Onde:

TenancyA-GRequestor é o grupo que criamos para esse cenário
to manage local-peering-gateways é o verbo que irá permitir que ele gerencie LPG
compartment network-requestor é o compartimento que ele terá permissão
  • Crie um grupo no IDCS com o mesmo nome TenancyA-GRequestor
  • Faça um ID Group Mapping no IDCS
  •  Faça logoff e logon e teste novamente

Espero que esse artigo seja útil auxilie no seu dia a dia e qualquer dúvida estou a disposição.

Muito obrigado!

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *