Capítulo 7: Conectividade e Redes
7.1 O Serviço de Redes do OCI
O Serviço de Redes do OCI disponibiliza versões virtuais para a maioria dos componentes de redes tradicionais que conhecemos. A configuração da rede é um pré-requisito essencial para o funcionamento de qualquer aplicação na nuvem.
NOTA
Todos os comandos utilizados neste capítulo estão disponíveis nos scripts scripts/chapter-3/network-saopaulo.sh e scripts/chapter-3/network-vinhedo.sh.
A topologia da rede utilizada para a aplicação OCI Pizza pode ser visualizada no desenho abaixo:

4.1.2 Descrição dos Componentes da Rede
Abaixo, apresentamos a descrição dos componentes de rede que serão utilizados pela aplicação OCI Pizza.
-
- Trata-se de uma rede virtual privada criada dentro de uma região.
- Após a criação e configuração da VCN, é possível criar sub-redes, máquinas virtuais, bancos de dados e outros recursos.
-
Subnet
- É a divisão de uma VCN em partes menores, conhecidas como sub-redes.
- Cada sub-rede consiste em um intervalo contíguo de endereços IP que não se sobrepõe aos intervalos de outras sub-redes da VCN.
- Uma sub-rede pode ser pública ou privada. Uma sub-rede pública permite expor um recurso à internet por meio de um IP público, enquanto uma sub-rede privada acessa a internet apenas por meio da técnica de NAT (Network Address Translation).
- Ao criar uma sub-rede, três endereços IP são automaticamente reservados. Esses endereços são:
- Endereço de rede
- Endereço de Broadcast
- Endereço do Default Gateway (roteador da sub-rede)
-
- Contém as regras de roteamento para direcionar o tráfego de rede ao próximo salto (next-hop).
- Sub-redes dentro da mesma VCN podem se comunicar sem a necessidade de regras de roteamento. No entanto, é possível definir esse tipo de regra, caso desejado.
-
- É o firewall virtual que protege a sub-rede.
- Todo o tráfego que entra e sai da sub-rede é verificado pela sua Security List.
- Por padrão, toda a comunicação é bloqueada pela Security List. No entanto, é possível permitir o tráfego de rede com base em protocolos e portas, tanto para IPv4 quanto para IPv6.
-
VNIC (Virtual Network Interface Card)
- O termo vem de NIC (network interface card). É uma interface de rede virtual.
- Toda VNIC obrigatóriamente reside em uma sub-rede.
- Uma VNIC pode ter até 31 endereços IPv4 privados, um endereço IPv4 público opcional para cada IP privado e até 32 endereços IPv6 opcionais.
-
- É o serviço DHCP da sub-rede.
- É o serviço DHCP da sub-rede.
-
Gateways de Comunicação
-
- Permite a comunicação direta proveniente da internet. Para isso, é necessário que o recurso possua um IP público.
-
- Permite que recursos sem um endereço IP público acessem a internet, possibilitando a comunicação enquanto evita a exposição direta desses recursos na rede pública.
-
- Permite que recursos de uma sub-rede se comuniquem diretamente com os serviços do OCI por meio da Oracle Services Network (OSN), sem a necessidade de utilizar a internet.
-
- É um roteador virtual.
- Permite conectividade entre as suas VCNs, tanto dentro de uma mesma região quanto entre regiões diferentes, além de permitir a conexão com o ambiente on-premises por meio de VPN ou FastConnect.
-
A seguir, será criada toda a rede da região Brazil East (São Paulo). Para a rede da região Brazil Southeast (Vinhedo), os comandos permanecem os mesmos, com a modificação apenas de alguns valores correspondentes à região, como endereços IP e nomes dos recursos. Por essa razão, não serão apresentados aqui.
7.2.1 Criação dos Componentes da Rede
VCN (vcn-saopaulo)
Iniciaremos com a criação da VCN:
- Sao Paulo, Brazil (sa-saopaulo-1):
- Nome: vcn-saopaulo
- Bloco CIDR: 172.16.0.0/16
O comando abaixo retorna o OCID da VCN "vcn-saopaulo" que foi criada, pois os recursos subsequentes necessitam dessa informação:
Gateways de Comunicação
Os Gateways de Comunicação permitem que os recursos dentro de uma sub-rede no OCI se comuniquem com qualquer outro recurso externo. Esses recursos externos podem incluir a Internet, a rede de serviços da Oracle (Oracle Services Network (OSN) ou ambientes on-premises.
Todo gateway de comunicação que for criado, com exceção do DRG, requer uma VCN que já tenha sido previamente criada. Essa dependência pode ser observada por meio do parâmetro --vcn-id nos comandos a seguir.
Internet Gateway (igw)
NAT Gateway (ngw)
Service Gateway (sgw)
A Oracle Services Network (OSN) é uma rede conceitual dentro do OCI dedicada exclusivamente aos serviços da Oracle. Esses serviços possuem endereços IP públicos que geralmente são acessados pela internet.
A função do Service Gateway é possibilitar que seus recursos dentro da VCN acessem diretamente e de forma privada esses serviços. Além disso, o uso de um Service Gateway evita a cobrança de Outbound Data Transfer ao acessar esses serviços tanto a partir da VCN quanto do ambiente on-premises.
NOTA
O preço do Outbound Data Transfer para a sua região pode ser consultado no link: Cloud Networking Pricing.
O Service Gateway utiliza o conceito de Service CIDR label que é uma string que representa os endereços públicos dos serviços Oracle em uma região. Usar uma string que representa os endereços dos serviços é mais prático do que inserir os IPs manualmente.
Para listar os Service CIDR labels de uma região, utilize o comando a seguir:
Foram listados dois Service CIDR labels para a região "sa-saopaul-1":
-
all-gru-services-in-oracle-services-network
- Esse label representa todos os serviços disponíveis na região, incluindo servidores para atualização do Oracle Linux (yum update), Object Storage, entre outros.
-
oci-gru-objectstorage
- Esse label representa somente os IPs do serviço Object Storage.
Para criar o Service Gateway que utilizará todos os serviços (all-gru-services-in-oracle-services-network), utilize o comando abaixo:
Route Table (rtb_subnpub e rtb_subnprv)
A VCN utiliza a Route Table para direcionar o tráfego de rede para fora da VCN. Uma Route Table é composta por uma ou mais Route Rules, que especificam qual gateway receberá um determinado tráfego de rede (próximo salto ou next hop).
Em resumo, a Route Table contém um conjunto de regras que definem como os dados originados em uma sub-rede devem ser encaminhados, por meio de um gateway de comunicação, para uma rede distinta. O papel do Gateway de Comunicação pode ser visto como uma "ponte" entre essas duas redes diferentes.
!!! note "NOTA" A Route Table utilizada por uma subnet é diferente da Route Table utilizada pelo DRG. Aqui, será criada e configurada uma Route Table para a subnet.
Route Table da sub-rede pública (rtb_subnpub)
A Route Table da sub-rede pública (rtb_subnpub) incluirá uma Route Rule que utilizará o Internet Gateway (IGW), permitindo que os recursos dessa sub-rede recebam tráfego proveniente da Internet.
Route Table da sub-rede privada (rtb_subnprv)
A Route Table da sub-rede privada (rtb_subnprv) incluirá uma Route Rule que utilizará o NAT Gateway (NGW) para permitir que os recursos acessem a Internet sem receber tráfego direto. Além disso, haverá uma Route Rule que utilizará o Service Gateway (SGW).
Security List (seclist_subnpub e seclist_subnprv)
A Security List atua como um firewall para a sub-rede. Todo o tráfego de rede que entra (ingress) e sai (egress) da sub-rede é inspecionado pelas respectivas Security Rules da Security List, com o objetivo de permitir (accept) ou bloquear (drop) o tráfego.
O comportamento padrão da Security List é bloquear todo o tráfego de rede, a menos que exista uma regra que o permita. Não é possível definir regras para bloquear o tráfego, apenas regras que autorizem a passagem do tráfego podem ser configuradas.
Uma sub-rede sempre possui uma ou mais Security Lists associadas, com um limite máximo de cinco. O tráfego de rede que "entra" em uma sub-rede (ingress) é inspecionado pelas Security Lists, uma a uma, de cima para baixo, de acordo com a ordem de criação. Esse tráfego procura encontrar uma regra que permita sua passagem em alguma das Security Lists definidas; caso contrário, será bloqueado por padrão.
Para a saída do tráfego (egress), o processo é semelhante, mas agora a origem é um recurso existente na sub-rede que busca alcançar outro recurso fora dela.
Ao criar uma Security Rule, é necessário especificar a origem ou destino do tráfego (source ou destination), o protocolo (protocol) e se a regra é do tipo stateful ou stateless.
NOTA
Se sua sub-rede apresentar um alto volume de tráfego, a Oracle recomenda o uso de regras do tipo stateless. Para compreender melhor as diferenças entre regras stateful e stateless, consulte a documentação "Stateful Versus Stateless Rules". Para a aplicação OCI Pizza serão utilizadas regras do tipo stateful, pois são mais simples de definir.
A Security List suporta diferentes protocolos, mas apenas os listados abaixo permitem a especificação de opções adicionais e são os mais comumente utilizados. De acordo com a documentação da API da Security List, é possível utilizar a string "all" ou um dos valores a seguir ao definir uma Security Rule:
- all (todos os protocolos)
- 1 (ICMP)
- 6 (TCP)
- 17 (UDP)
- 58 (ICMPv6)
Para a aplicação OCI Pizza, serão criadas duas Security Lists. Uma delas funcionará como o firewall da sub-rede pública (seclist_subnpub), enquanto a outra será destinada à sub-rede privada (seclist_subnprv).
NOTA
É uma boa prática de segurança definir as Security Rules da forma mais restritiva possível, permitindo apenas o tráfego que é realmente necessário. As Security Rules utilizadas para a aplicação OCI Pizza têm fins didáticos e servem apenas para demonstrar o processo de criação.
Security Lists da sub-rede pública (seclist_subnpub)
A Security List da sub-rede pública permitirá tráfego de entrada (ingress) apenas para as portas 80/TCP e 443/TCP, provenientes de qualquer origem na Internet. Em relação ao tráfego de saída (egress), não haverá restrições, permitindo a passagem de todo o tráfego para qualquer destino.
Security Lists da sub-rede privada (seclist_subnprv)
A Security List da sub-rede privada permite o tráfego de entrada (ingress) e saída (egress) sem restrições.
DHCP Options (dhcp-options)
O DHCP Options é utilizado para fornecer informações de configuração de rede aos recursos criados dentro de uma sub-rede. Ele possibilita que os recursos recebam automaticamente configuração essenciais, como o Endereço IP, Máscara de sub-rede, Gatreway Padrão e os servidores DNS a serem utilizados.
NOTA
Existem configurações avançadas que permitem a modificação das opções do DHCP Options, especialmente no que diz respeito às configurações de DNS. Aqui optaremos por manter as configurações padrão do DHCP Options.
Cada sub-rede deve ter um DHCP Options definido, e geralmente, um único DHCP Options é utilizado para todas as sub-redes de uma VCN.
Sub-redes (subnpub e subnprv)
Por fim, a criação das sub-redes pública (subnpub) e privada (subnprv). AO objetivo é implementar um Load Balancer na sub-rede pública, que será responsável por receber o tráfego proveniente da Internet. Na sub-rede privada, por sua vez, serão alocados os recursos computacionais necessários para a execução da aplicação.
A sub-rede depende de todos os recursos que foram criados ao longo deste capítulo. Portanto, é necessário fornecer todos os respectivos OCIDs, além de um bloco CIDR único e específico para a sub-rede.