Criando uma instância NAT na Oracle Cloud Infrastructure - OCI


INTRODUÇÃO

Neste artigo estaremos abordando a criação de uma instância que servirá como NAT Gateway entre uma private network e uma public network.

Esta configuração permitirá que as instâncias alocadas na private network se conectem a internet, mas evita que uma conexão a partir da internet seja realizada com essas instâncias.

Quando o tráfego é encaminhado para a Internet, o endereço IPv4 de origem é substituído pelo endereço da instância NAT e do mesmo modo, quando a o tráfego de resposta volta para essas instâncias na private network, a instância NAT converte o endereço de volta nos endereços IPv4 privados dessas instâncias.

Diagrama de conexão através de uma Nat Instance.

CONFIGURAÇÕES

1 – Partindo do principio da criação de um ambiente do zero, primeiramente será criada uma VCN utilizando a opção Virtual Cloud Network Only, definindo o CIDR Block como 10.0.0.0/16 e deixando a opção DNS RESOLUTION marcada.




2- Após a criação da VCN, será editada a default security list e criada uma regra de entrada para o CIDR 10.0.1.0/24 (rede privada) e definindo como all protocols. Também é necessário a criar uma regra de saída liberando para a internet 0.0.0.0/0 all protocols.





3 – Concluída a alteração da Default Security List, o próximo passo é a criação do Internet Gateway.



4 – Agora será criada a regra de roteamento para a internet na default route table. Para isso é necessário a criação de uma nova rule na default route table, com os dados abaixo:
·         Destination: 0.0.0.0/0
·         Target Type: Internet Gateway Target
·         Compartment: Chose a compartment

·         Target Selection: InternetGateway


5 – A próxima etapa é a criação da public subnet.
·         Nome: Public Subnet
·         Compartmen: selecionar compartimento desejado
·         Subnet Type: Regional
·         CIDR Block: 10.0.0.0/24
·         Route Table: Default Route Table for VCN01
·         Subnet Access: Public Subnet
·         DHCP Options: Default DHCP Options for VCN01

·         Security Lists: Default Security List for VCN01


6 – Criação da instância NAT. Para isso, utilizaremos as configurações abaixo:
·          Name: NatInstance
·         Availability Domains: Pode ser qualquer um desejado
·         Image: Oracle Linux 7.7
·         Shape: Utilizando o shape free (VM.Standard.E2.1.Micro (Virtual Machine))
·         Virtual Cloud Network: VCN01
·         Subnet: Public Subnet
·         Marcar a opção Assign a public IP address
·         Private IP Address: 10.0.0.2

·         SSH Keys: Adicionar a chave publica


8 - Concluída a criação da compute instance NatInstance é necessário acessa-la com o usuário root e configurar o firewall e o kernel para realizarem o roteamento nat para outros hosts na rede.

Comandos:

echo net.ipv4.ip_forward = 1 > /etc/sysctl.d/98-ip-forward.conf
firewall-offline-cmd --direct --add-rule ipv4 nat POSTROUTING 0 -o ens3 -j MASQUERADE
firewall-offline-cmd --direct --add-rule ipv4 filter FORWARD 0 -i ens3 -j ACCEPT
/bin/systemctl restart firewalld
sysctl -p /etc/sysctl.d/98-ip-forward.conf


9 –Após os ajustes acima, é necessário editar a vnic da mesma e selecionar a opção Skip Source/Destination Check. Sem essa opção as demais intâncias não podem trafegar através da NatInstance.


10 – Agora iremos criar uma Security List para a private network e posteriormente uma route table, apontando para o private IP da nossa instância NatInstance.

Dados para a Security List:
·         Name: Sec List Private IP
·         Egress rule: 0.0.0.0/0 All Protocols
·         Ingress Rules: Devem ser criadas de acordo com a necessidade do ambiente (ex acesso ssh).



Dados para a Route Table:
·         Name: Private Route Table        
·         Destination: 0.0.0.0/0
·         Target Type: Private IP
·         Target Selection: 10.0.0.2



11 – Criaremos agora a private subnet, com as configuração para que todos os recursos abaixo da mesma e que necessitem de trafego à internet, utilizem nossa NatInstace.

Nome: Private Subnet
Availability Domain: selecionar qualquer um
CIDR Block: 10.0.1.0/24
Route Table: Private Route Table
Subnet Access: Private Subnet
DHCP Options: Default DHCP Options

Security Lists: Sec List Private IP


Concluídas as configurações acima, todas as instâncias que forem criadas na private network e que precisem trafegar pela internet, farão acesso através da nossa instance NatInstance e a nossa rede não estará exposta para a internet.


Abaixo, temos uma conexão em uma vm instance na private subnet e podemos verificar através do traceroute para o endereço www.google.com.br, que o tráfego está sendo direcionado para a NatIstance.



Comentários