Observação:
- Este tutorial requer acesso ao Oracle Cloud. Para se inscrever em uma conta gratuita, consulte Conceitos Básicos do Oracle Cloud Infrastructure Free Tier.
- Ele usa valores de exemplo para credenciais, tenancy e compartimentos do Oracle Cloud Infrastructure. Ao concluir seu laboratório, substitua esses valores por valores específicos do seu ambiente de nuvem.
Designar um Endereço IP a uma Segunda Interface em uma Instância do Oracle Linux
Introdução
Este tutorial fornece instruções passo a passo sobre como atribuir um endereço IP a uma interface de rede secundária em uma instância do Oracle Linux. Se você está expandindo sua configuração de rede ou configurando uma política de roteamento específica, adicionar e configurar uma segunda interface é uma habilidade crítica.
Você aprenderá a:
-
Identifique as interfaces de rede disponíveis.
-
Configure a interface secundária com um endereço IP estático ou dinâmico.
-
Atualize os arquivos de configuração de rede para persistência nas reinicializações.
-
Verifique a configuração e garanta a conectividade.
No final deste tutorial, você poderá estender os recursos de rede da sua instância do Oracle Linux, permitir que ela interaja perfeitamente em várias sub-redes ou redes.
Objetivos
Neste tutorial, aprenderemos a atribuir um endereço IP a uma segunda interface de rede em uma instância do Oracle Linux.
-
Entenda os arquivos de configuração envolvidos na configuração de uma interface de rede secundária.
-
Saiba como atribuir um endereço IP estático à segunda interface.
-
Verifique a conectividade e a funcionalidade adequada da interface recém-configurada.

Pré-requisitos
- Crie uma rede virtual na nuvem (VCN) e 2 sub-redes x.
Tarefa 1: Criar uma Instância do OCI Compute
Nesta tarefa, criaremos uma nova instância na Oracle Cloud Infrastructure (OCI).
-
Vá para a Console do OCI, navegue até Compute, Instâncias e clique em Criar instância.

-
Em Criar instância de computação, digite as informações a seguir.
- Informe um Nome para a instância. Neste exemplo, usaremos
sriov-test-01. - Rolar para Baixo.

- Clique em Alterar forma.
- Selecione VM.Standard.E4. Flex, mas você também pode usar E5.
- Rolar para Baixo.

- Clique em Selecionar rede virtual na nuvem existente.
- Selecione a VCN. Neste exemplo, estamos usando a VCN
oke. - Selecione a sub-rede existente para a vNIC principal.
- Rolar para Baixo.

- Para o primeiro endereço IP da interface VNIC, em Endereço IPv4 privado, selecione Designar automaticamente endereço IPv4 privado.
- À medida que selecionamos uma sub-rede pública para a interface primária, em Endereço IPv4 público, selecione Designar endereço IPv4 público automaticamente.
- Rolar para Baixo.

- Clique em Fazer upload de arquivos de chave pública (.pub) para fazer upload de chaves SSH públicas e privadas existentes (geradas anteriormente).
- Clique em Pesquisar para selecionar a chave pública existente.
- Verifique se a chave pública existente está selecionada para upload.
- Clique em Criar.

- Se a instância for implantada com sucesso, o status mostrará RUNNING.
- Observe que a VNIC Principal está configurada e os endereços IP são designados automaticamente.

- Informe um Nome para a instância. Neste exemplo, usaremos
Tarefa 2: Adicionar Segunda VNIC à Instância
-
Vá para a página Detalhes da instância.
- Clique em VNICs Anexadas.
- Observe que há apenas uma VNIC e a renomeamos para
sr-iov-test-01(o nome padrão fornecido pelo OCI é diferente). - Clique em Criar VNIC.

-
Em Criar VNIC, especifique as informações a seguir.
- Informe um Nome para a segunda VNIC. Neste exemplo, usaremos
secondary-vnic. - Selecione a VCN. Neste exemplo, estamos usando a VCN
oke. - Selecione a sub-rede existente para a VNIC secundária. Esta é uma sub-rede diferente daquela à qual a VNIC Principal está anexada.
- Selecione Usar grupos de segurança de rede para controlar o tráfego (opcional).
- (Opcional) Selecione allow-all para criar um Grupo de segurança de rede que permita todo o tráfego de entrada e saída.
- Rolar para Baixo.

- Para o segundo endereço IP da interface da VNIC, em Endereço IPv4 privado, selecione Designar automaticamente endereço IPv4 privado.
- Clique em Salvar alterações.

- Informe um Nome para a segunda VNIC. Neste exemplo, usaremos
-
Observe que a segunda VNIC agora é criada e anexada à instância e à outra sub-rede.

Observação: Mesmo que tenhamos selecionado a opção de obter automaticamente um endereço IP para a segunda VNIC do OCI, o Sistema Operacional (Oracle Linux) não configurará o endereço IP na VNIC. O endereço IP é reservado pela Console do OCI, mas ainda não está configurado.
Tarefa 3: Configurar Endereço IP na Segunda VNIC
A configuração do endereço IP na segunda VNIC pode ser feita com vários métodos.
-
Método 1: Use a CLI do OCI (Interface de Linha de Comando) do Oracle Cloud Infrastructure (pacote
oci-utils) para designar um endereço IP à segunda interface de uma instância do OCI Compute usando o comando OCI-network-config. -
Método 2: Use a CLI do OCI (pacote
oci-utils) para designar um endereço IP à segunda interface de uma instância do OCI Compute usando o daemon ocid. -
Método 3: Use o script OCI_Multi_VNIC_Setup.
-
Método 4: Crie o arquivo de configuração da interface manualmente para a nova VNIC na pasta
/etc/sysconfig/network-scripts/.
Observação: Para uma experiência de aprendizado abrangente e prática, comece com o Método 1 ou o Método 2, pois eles aproveitam as ferramentas nativas da OCI e fornecem uma configuração direta. À medida que você se familiariza, explore o Método 3 para criação de scripts e automação e, por fim, experimente o Método 4 para obter configurações manuais avançadas.
Método 1: Usar a CLI do OCI (pacote oci-utils) para Designar um Endereço IP à Segunda Interface usando o Comando oci-network-config
Neste método, crie uma nova instância chamada sriov-test-04 e designe um endereço IP à segunda interface usando o comando oci-network-config.
Pré-requisitos: Provisionou uma nova instância e adicionou uma segunda VNIC.
-
Execute os comandos a seguir.
- Execute o comando
ip apara recuperar o endereço IP de todas as interfaces. - Observe a interface
ens3. - Observe que a interface
ens3tem um endereço IP configurado. - Observe a interface
ens5. - Observe que a interface
ens5não tem endereço IP configurado. - Execute o comando
route -npara recuperar todas as rotas e gateways padrão para todas as interfaces. - Observe que só há um gateway disponível para a interface
ens3.

- Execute o comando
-
Os comandos a seguir foram usados para testar se os comandos
oci-utilsestão funcionando imediatamente.- Execute o comando
sudo oci-compartmentidpara recuperar o OCID do compartimento ao qual a instância pertence. - Execute o comando
sudo oci-instanceidpara recuperar o OCID da instância.
Aqui, provamos que os comandos
oci-utilsestão funcionando prontos para uso.
- Execute o comando
-
Execute os comandos a seguir.
- Execute o comando
sudo oci-network-config showpara recuperar toda a configuração de rede da instância. - Observe o erro: Não é possível mostrar informações: Falha ao obter a sessão da API. As informações sobre as VNICs da instância não serão fornecidas no nível do Sistema Operacional e não no nível do OCI.
- Observe as informações no nível do Sistema Operacional na interface
ens3. - Observe as informações no nível do Sistema Operacional na interface
ens5. - Observe o flag
ADDda interfaceens5.

Para configurar a interface
ens5que está marcada no momento comADD, execute o comandosudo oci-network-config configure.Isso não é possível, pois obteremos o mesmo erro quando executarmos o comando
oci-network-config showque é Não é possível mostrar informações: Falha ao obter a sessão da API.Pergunta: Por que estamos obtendo esse erro?
Solução: Uma VCN não é um objeto pertencente a uma instância, o que significa que a instância não pode acessar diretamente as informações da VCN sem a autenticação adequada. Para permitir que a instância extraia detalhes da VCN da API, crie um grupo dinâmico que inclua a instância e designe uma política que conceda as permissões necessárias.
- Execute o comando
-
Para permitir que uma instância do OCI Compute extraia detalhes da VCN por meio da API, siga as etapas:
-
Criar um Grupo Dinâmico: Esse grupo dinâmico inclui as instâncias que exigem acesso à API. Você define o grupo usando regras com base em atributos como OCID da instância ou compartimento.
-
Designar Permissões a uma Política: Você precisa criar uma política do OCI IAM (Oracle Cloud Infrastructure Identity and Access Management) que conceda ao grupo dinâmico permissão para ler ou gerenciar recursos relacionados à VCN. Por exemplo:
allow dynamic-group <dynamic-group-name> to read virtual-network-family in compartment <compartment-name> -
Usar Controladores de Instâncias para Autenticação: As instâncias do grupo dinâmico são autenticadas diretamente usando sua identidade, permitindo acesso seguro à API sem incorporar credenciais no aplicativo. Esse método simplifica o gerenciamento de segurança, mantendo um controle de acesso robusto.
-
-
Vá até a Console do OCI.
- Clique no menu de hambúrguer (≡), navegue até Compute, Instances e selecione a instância de computação para a qual você deseja executar os comandos
sudo oci-network-config showesudo oci-network-config configurea seguir. - Clique em Mostrar para exibir o valor do OCID da instância.
- Clique em Copiar para copiar o valor do OCID da instância.

- Clique no menu de hambúrguer (≡), navegue até Identidade, Domínios, Domínio padrão e clique em Grupos dinâmicos.
- Clique em Criar grupo dinâmico.

- Informe um Nome para o grupo dinâmico. Neste exemplo, usaremos
sriov-test-04. - Clique em Construtor de regras.

- Selecione OCID da Instância em Corresponder instâncias com.
- Informe o valor do OCID da instância em Valor.
- Clique em Adicionar regra.

- Observe que uma nova regra é adicionada ao grupo.
- Clique em Criar.

- Clique no menu de hambúrguer (≡), navegue até Compute, Instances e selecione a instância de computação para a qual você deseja executar os comandos
-
Agora que temos o grupo ao qual a instância pertence, precisamos criar uma política nos compartimentos que contêm a instância. Essa política permitirá que as instâncias do grupo executem operações em objetos da VCN, como sub-redes.
- Clique no menu de hambúrguer (≡), navegue até Identidade e clique em Compartimentos.
- Clique no compartimento raiz. Neste exemplo, é
oraseemeaocids4.

- Observe que agora estamos nos compartimentos filhos.
- Clique no próximo compartimento filho. Neste exemplo, é
NETWORK.

- Observe que agora estamos no próximo compartimento filho.
- Clique no próximo compartimento filho. Neste exemplo, é
Iwan.

- Certifique-se de que o compartimento direito esteja selecionado.
- Clique em Políticas.
- Clique em Criar Política.

-
Em Criar Política, especifique as informações a seguir.
- Digite um Nome para a política. Neste exemplo, usaremos
allow-sriov-test-04-to-vcn. - Digite uma Descrição para a política. Neste exemplo, usaremos
allow-sriov-test-04-to-vcn. - Selecione Mostrar editor manual.
- Digite a seguinte política:
allow dynamic-group sriov-test-04 to manage all-resources in compartment Iwan. - Clique em Criar.

- Digite um Nome para a política. Neste exemplo, usaremos
-
Observe a nova instrução de política dentro da política recém-criada.

-
Agora que permitimos que a instância execute chamadas de API por meio da CLI do OCI para a VCN.
- Execute o comando
ip apara recuperar o endereço IP de todas as interfaces. - Observe que a interface
ens5não tem endereço IP configurado. - Execute o comando
sudo oci-network-config showpara recuperar toda a configuração de rede da instância no nível do OCI. O erro desapareceu agora. - Observe as informações de nível do OCI na interface
ens5e o flagADDpara a interfaceens5. - Observe as informações no nível do Sistema Operacional nas interfaces do
ens3e doens5.

- Execute o comando
-
Antes de executarmos o comando
sudo oci-network-config configurepara configurar o endereço IP da segunda VNIC, precisamos criar um novo diretório chamado/etc/iproute2e um novo arquivo chamado/etc/iproute2/rt_tables. Isso é necessário para que o sistema possa configurar corretamente o roteamento e o gateway padrão para essa nova interface.O arquivo
/etc/iproute2/rt_tablesé usado para definir e gerenciar várias tabelas de roteamento no Linux e para ativar o roteamento baseado em política. Ele mapeia nomes legíveis para números de tabelas de roteamento, permitindo configurações avançadas, como rotear tráfego específico por meio de diferentes gateways, interfaces ou ISPs.Execute o comando
sudo mkdir -p /etc/iproute2para criar um diretório chamado/etc/iproute2e o comandosudo touch /etc/iproute2/rt_tablespara criar um arquivo chamadort_tables. -
Execute os comandos a seguir.
- Execute o comando
sudo oci-network-config configurepara configurar o endereço IP da segunda VNIC. - Observe a mensagem Configurado.
- Execute o comando
sudo oci-network-config showpara recuperar toda a configuração de rede da instância no nível do OCI. - As informações de nível do OCI na interface
ens5e no flagADDda interfaceens5agora desapareceram. - Execute o comando
ip apara recuperar o endereço IP de todas as interfaces. - A interface
ens5agora tem um endereço IP configurado. - Execute o comando
route -npara recuperar todas as rotas e gateways padrão para todas as interfaces. - Observe que o gateway agora está disponível para a interface
ens5.

- Execute o comando
more /etc/iproute2/rt_tablespara verificar se uma nova entrada foi feita. - Observe a entrada
11 ort. - Execute o comando
ip route show table 11para revisar a tabela de roteamento desse mapeamento. - Observe que há uma rota padrão para a interface
ens5, a nova segunda VNIC da instância.

- Execute o comando
Método 2: Usar a CLI do OCI (pacote oci-utils) para Designar um Endereço IP à Segunda Interface usando o ocid daemon
Neste método, crie uma nova instância chamada sriov-test-01 e designe um endereço IP à segunda interface usando o ocid daemon.
Pré-requisitos: Provisionou uma nova instância e adicionou uma segunda VNIC.
-
Execute os comandos a seguir.
- Execute o comando
ip apara recuperar o endereço IP de todas as interfaces. - Observe que a interface
ens5não tem endereço IP configurado.

- Execute o comando
route -npara recuperar todas as rotas e gateways padrão para todas as interfaces. - Observe que só há um gateway disponível para a interface
ens3.

- Execute o comando filtrado
ip -f inet -o addrpara mostrar todos os endereços IP configurados em todas as interfaces. - Observe que só há interface configurada e o endereço IP é a interface
ens3.

- Execute o comando
systemctl list-unit-files ocid.servicepara verificar se o daemon ocid está ativado. - Observe que o daemon ocid está desativado.
- Execute o comando
sudo systemctl start ocidpara iniciar o daemon ocid. - Execute o comando
sudo systemctl status ocidpara verificar o status do daemon ocid. - Observe que o daemon ocid está ativo e em execução.

- Execute o comando filtrado
ip -f inet -o addrpara mostrar todos os endereços IP configurados em todas as interfaces. - Observe que a interface
ens5agora está configurada e tem um endereço IP.

- Execute o comando
ip apara recuperar o endereço IP de todas as interfaces. - Observe que a interface
ens5agora tem um endereço IP configurado.

- Execute o comando
route -npara recuperar todas as rotas e gateways padrão para todas as interfaces. - Observe que o gateway agora está disponível para a interface
ens5.

- Execute o comando
-
Para garantir que o serviço OCID seja iniciado automaticamente após uma reinicialização, execute o comando
sudo systemctl enable ocid.
-
O mesmo que o Método 1, precisamos criar um diretório chamado
/etc/iproute2e um arquivo chamado/etc/iproute2/rt_tables. Isso é necessário para que o sistema possa configurar corretamente o roteamento e o gateway padrão para essa nova interface.O arquivo
/etc/iproute2/rt_tablesé usado para definir e gerenciar várias tabelas de roteamento no Linux e para ativar o roteamento baseado em política. Ele mapeia nomes legíveis para números de tabelas de roteamento, permitindo configurações avançadas, como rotear tráfego específico por meio de diferentes gateways, interfaces ou ISPs.Execute o comando
sudo mkdir -p /etc/iproute2para criar um diretório chamado/etc/iproute2e o comandosudo touch /etc/iproute2/rt_tablespara criar um arquivo chamadort_tables. -
Execute o comando
sudo reboot.
- Execute o comando
more /etc/iproute2/rt_tablespara verificar se uma nova entrada foi feita. - Observe a entrada
11 ort3. - Execute o comando
ip route show table 11para revisar a tabela de roteamento desse mapeamento. - Observe que há uma rota padrão para a interface
ens5, a nova segunda VNIC da instância.

- Execute o comando
Método 3: Usar o Script OCI_Multi_VNIC_Setup
Nesse método, crie uma nova instância chamada sriov-test-02 e use o script OCI_Multi_VNIC_Setup para configurar o endereço IP da segunda VNIC.
Pré-requisitos: Provisionou uma nova instância e adicionou uma segunda VNIC.
-
Execute os comandos a seguir.
- Execute o comando
ip apara recuperar o endereço IP de todas as interfaces. - Observe que a interface
ens5não tem endereço IP configurado. - Execute o comando
route -npara recuperar todas as rotas e gateways padrão para todas as interfaces. - Observe que só há um gateway disponível para a interface
ens3.

-
Faça download do script com o seguinte comando curl.
curl -o OCI_Multi_VNIC_Setup.sh https://raw.githubusercontent.com/Olygo/OCI_Multi_VNIC_Setup/refs/heads/main/OCI_Multi_VNIC_Setup.sh -
Execute o comando
ls -lpara listar todos os arquivos. -
Observe que o download do script
CI_Multi_VNIC_Setup.shfoi feito com sucesso. -
Execute o comando
chmod +x ./OCI_Multi_VNIC_Setup.shpara tornar o script baixado executável. -
Execute o comando
sudo ./OCI_Multi_VNIC_Setup.shpara executar o script.

- Execute o comando
-
Reúna algumas informações da Console do OCI que precisamos usar como entrada quando executarmos o script.
- Na página Detalhes da instância, anote o Endereço IPv4 privado da interface principal.
- Rolar para Baixo.

- Clique em VNICs Anexadas.
- Clique na segunda VNIC.

- Anote o endereço MAC da segunda VNIC.
- Anote o endereço IP da segunda VNIC.
Observação: Embora o endereço IP não esteja configurado no Sistema Operacional da instância, o endereço IP já está reservado pelo gerenciamento da Console do OCI.

-
Usando o endereço IP e as informações da sub-rede, determine o gateway padrão da sub-rede, pois o script exigirá essas informações.
Observação: A Console do OCI não fornece detalhes sobre o gateway padrão, mas geralmente é o primeiro endereço IP utilizável na sub-rede.
Temos as seguintes informações:
Interface principal (ens3) Interface secundária (ens5) Sub-rede IPv4: 10.0.0.0/29 10.0.3.0/27 Endereço IPv4: 10.0.0.4 10.0.3.5/27 Gateway IPv4: 10.0.0.1 10.0.3.1 Endereço MAC: Não obrigatório para script 2:0:17:0:61:1 -
Digite as seguintes informações.
- Nome da Interface da VNIC Principal: Digite
ens3. - IP da VNIC Principal: Digite
10.0.0.4. - IP do Gateway de VNIC Principal: Digite
10.0.0.1. - Nome da Interface da VNIC Secundária: Digite
ens5. - Endereço IP da VNIC Secundária (Notação CIDR): Digite
10.0.3.5/27com notação CIDR completa. - Endereço MAC da VNIC Secundária: Digite
02:00:17:00:61:01. - Essa interface fará parte de uma sub-rede diferente. Digite
yaqui. - Gateway de VNIC secundário: Digite
10.0.3.1.

- Verifique as informações e digite
ypara confirmar. - Digite
ypara confirmar as definições novamente. - Observe que o script iniciará a configuração da interface e fornecerá atualizações de status ao fazer isso.

- Nome da Interface da VNIC Principal: Digite
-
A saída completa das mensagens de status é fornecida abaixo:
Summary of your configuration: - The primary Vnic name is: ens3 - The primary Vnic IP is: 10.0.0.4 - The primary Vnic GW is: 10.0.0.1 - The secondary Vnic name is: ens5 - The secondary Vnic IP with CIDR is: 10.0.3.5/27 - The secondary Vnic MAC is: 02:00:17:00:61:01 - The secondary Vnic GW is: 10.0.3.1 Do you confirm these settings ? (y)es/(n)o/(q)uit: y User settings confirmed... Summary of your configuration: - The primary Vnic name is: ens3 - The primary Vnic IP is: 10.0.0.4 - The primary Vnic GW is: 10.0.0.1 - The secondary Vnic name is: ens5 - The secondary Vnic IP with CIDR is: 10.0.3.5/27 - The secondary Vnic MAC is: 02:00:17:00:61:01 - The secondary Vnic GW is: 10.0.3.1 Do you confirm these settings ? (y)es/(n)o/(q)uit: y User settings confirmed... *** Checking if NetworkManager CLI (nmcli) is installed *** nmcli is already installed. *** Configuring NetworkManager *** NetworkManager is already enabled. NetworkManager is already running. NetworkManager is configured and running. *** Check and install iproute if not installed *** Package 'iproute' is already installed. Proceeding. *** Ensure /etc/iproute2 directory exists *** Directory '/etc/iproute2' does not exist. Creating it... Directory '/etc/iproute2' created successfully. *** Ensure /etc/iproute2/rt_tables file exists *** File '/etc/iproute2/rt_tables' does not exist. Creating it... File '/etc/iproute2/rt_tables' created successfully with a default header. *** Starting ens5 configuration and persistence setup *** *** Configure secondary VNIC with NetworkManager *** Connection 'ens5' (582dd2d7-3a3e-45b9-8289-ce3d474f4b74) successfully added. Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/3) *** Enable IP forwarding and configure reverse path filtering *** # Enable IP forwarding net.ipv4.ip_forward=1 # Configure reverse path filtering net.ipv4.conf.all.rp_filter=2 net.ipv4.conf.default.rp_filter=2 net.ipv4.conf.ens3.rp_filter=2 net.ipv4.conf.ens5.rp_filter=2 *** Apply sysctl settings immediately *** kernel.unknown_nmi_panic = 1 net.ipv4.ip_forward = 1 net.ipv4.conf.all.rp_filter = 2 net.ipv4.conf.default.rp_filter = 2 net.ipv4.conf.ens3.rp_filter = 2 net.ipv4.conf.ens5.rp_filter = 2 *** Adding custom routing tables *** 100 vnic_1 200 vnic_2 *** Adding IP rules and routes *** *** Creating policy routing persistence script *** *** Creating systemd service for policy routing *** Created symlink /etc/systemd/system/multi-user.target.wants/policy-routing.service → /etc/systemd/system/policy-routing.service. *** Testing connectivity *** PING 10.0.0.4 (10.0.0.4) 56(84) bytes of data. 64 bytes from 10.0.0.4: icmp_seq=1 ttl=64 time=0.059 ms 64 bytes from 10.0.0.4: icmp_seq=2 ttl=64 time=0.037 ms 64 bytes from 10.0.0.4: icmp_seq=3 ttl=64 time=0.031 ms 64 bytes from 10.0.0.4: icmp_seq=4 ttl=64 time=0.027 ms --- 10.0.0.4 ping statistics --- 4 packets transmitted, 4 received, 0% packet loss, time 3073ms rtt min/avg/max/mdev = 0.027/0.038/0.059/0.013 ms PING 10.0.3.5 (10.0.3.5) 56(84) bytes of data. 64 bytes from 10.0.3.5: icmp_seq=1 ttl=64 time=0.026 ms 64 bytes from 10.0.3.5: icmp_seq=2 ttl=64 time=0.022 ms 64 bytes from 10.0.3.5: icmp_seq=3 ttl=64 time=0.023 ms 64 bytes from 10.0.3.5: icmp_seq=4 ttl=64 time=0.035 ms --- 10.0.3.5 ping statistics --- 4 packets transmitted, 4 received, 0% packet loss, time 3069ms rtt min/avg/max/mdev = 0.022/0.026/0.035/0.007 ms PING 10.0.0.1 (10.0.0.1) 56(84) bytes of data. 64 bytes from 10.0.0.1: icmp_seq=1 ttl=64 time=0.098 ms 64 bytes from 10.0.0.1: icmp_seq=2 ttl=64 time=0.097 ms 64 bytes from 10.0.0.1: icmp_seq=3 ttl=64 time=0.067 ms 64 bytes from 10.0.0.1: icmp_seq=4 ttl=64 time=0.060 ms --- 10.0.0.1 ping statistics --- 4 packets transmitted, 4 received, 0% packet loss, time 3069ms rtt min/avg/max/mdev = 0.060/0.080/0.098/0.019 ms *** Network configuration completed *** IP rules: 0: from all lookup local 32764: from 10.0.3.5 lookup vnic_2 32765: from 10.0.0.4 lookup vnic_1 32766: from all lookup main 32767: from all lookup default $ nmcli device show ens5 GENERAL.DEVICE: ens5 GENERAL.TYPE: ethernet GENERAL.HWADDR: 02:00:17:00:61:01 GENERAL.MTU: 9000 GENERAL.STATE: 100 (connected) GENERAL.CONNECTION: ens5 GENERAL.CON-PATH: /org/freedesktop/NetworkManager/ActiveConnection/3 WIRED-PROPERTIES.CARRIER: on IP4.ADDRESS[1]: 10.0.3.5/27 IP4.GATEWAY: 10.0.3.1 IP4.ROUTE[1]: dst = 10.0.3.0/27, nh = 0.0.0.0, mt = 101 IP4.ROUTE[2]: dst = 0.0.0.0/0, nh = 10.0.3.1, mt = 101 IP4.ROUTE[3]: dst = 0.0.0.0/0, nh = 10.0.3.1, mt = 0, table=200 IP6.ADDRESS[1]: fe80::70ba:d30f:3dac:6462/64 IP6.GATEWAY: -- IP6.ROUTE[1]: dst = fe80::/64, nh = ::, mt = 1024 *** Configuration complete! ens5 is set up and all settings are persistent *** [opc@sriov-test-02 ~]$- Execute o comando
ip apara recuperar o endereço IP de todas as interfaces. - Observe que a interface
ens5agora tem um endereço IP configurado. - Execute o comando
route -npara recuperar todas as rotas e gateways padrão para todas as interfaces. Observe que o gateway agora está disponível para a interfaceens5.

Observação:
- Configurar um endereço IP e garantir que o roteamento funcione corretamente são duas coisas diferentes.
- O script também configurará a parte de roteamento para nós.
- Preste atenção às saídas específicas do script.
- Execute o comando
-
A parte a seguir do script criará um diretório chamado
/etc/iproute2 directorye um arquivo chamadort_tables.*** Ensure /etc/iproute2 directory exists *** Directory '/etc/iproute2' does not exist. Creating it... Directory '/etc/iproute2' created successfully. *** Ensure /etc/iproute2/rt_tables file exists *** File '/etc/iproute2/rt_tables' does not exist. Creating it... File '/etc/iproute2/rt_tables' created successfully with a default header. -
A parte a seguir do script adicionará as entradas necessárias ao arquivo
rt_tables.*** Adding custom routing tables *** 100 vnic_1 200 vnic_2 -
A parte a seguir do script adicionará as regras de roteamento de IP para permitir o roteamento baseado em política na instância e também ativará o serviço para roteamento baseado em política, que será necessário se você tiver uma instância com várias VNICs.
*** Adding IP rules and routes *** *** Creating policy routing persistence script *** *** Creating systemd service for policy routing *** Created symlink /etc/systemd/system/multi-user.target.wants/policy-routing.service → /etc/systemd/system/policy-routing.service. -
Execute os comandos a seguir.
- Execute o comando
more /etc/iproute2/rt_tablespara verificar se uma nova entrada foi feita. - Observe que as entradas
100 vnic_1e200 vnic_2. - Execute o comando
ip route show table 100para revisar a tabela de roteamento desse mapeamento e observe que há uma rota padrão para a interfaceens3a VNIC principal na instância. - Execute o comando
ip route show table 200para revisar a tabela de roteamento desse mapeamento e observe que há uma rota padrão para a interfaceens5, a nova segunda VNIC da instância.

- Execute o comando
Método 4: Criar o Arquivo de Configuração da Interface Manualmente
Crie uma nova instância chamada sriov-test-03 e configure o endereço IP da segunda VNIC por uma definição para a nova VNIC no diretório /etc/sysconfig/network-scripts/.
Observação: Neste método, configuraremos quase todas as etapas, que foram feitas automaticamente pelo script no Método 3.
Pré-requisitos: Provisionou uma nova instância e adicionou uma segunda VNIC.
-
Execute o seguinte comando.
- Execute o comando
ip apara recuperar o endereço IP de todas as interfaces. - Observe que a interface
ens5não tem endereço IP configurado. - Execute o comando
route -npara recuperar todas as rotas e gateways padrão para todas as interfaces. - Observe que só há um gateway disponível para a interface
ens3.

- Execute o comando
-
Navegue até Instância, VNICS Anexada e selecione a segunda VNIC para recuperar o endereço IP da segunda VNIC. Anote o endereço IP.

-
Vá para a pasta
/network-scriptsusando o comandocd /etc/sysconfig/network-scripts/e crie um novo arquivo na mesma pasta com o nomeifcfg-ens5usando o comandosudo nano ifcfg-ens5.
-
Configure a interface
ens5com os parâmetros a seguir.NAME="ens5" DEVICE="ens5" IPADDR=10.0.3.19 NETMASK=255.255.255.224 GATEWAY=10.0.3.1 ONBOOT=yes- O endereço IP é o mesmo que recuperamos da Console do OCI.
- A sub-rede é derivada da sub-rede dentro da VCN à qual essa interface está conectada.
- O endereço IP do gateway é o primeiro endereço IP na sub-rede.

-
Salve o arquivo de configuração chamado
ifcfg-ens5com o editor nano.- Liste os arquivos no diretório
/etc/sysconfig/network-scripts/com o comandols -l. - Observe que há um arquivo de configuração de interface para
ens3. - Observe que há um arquivo de configuração de interface para
ens5.

- Verifique o conteúdo do arquivo
ifcfg-ens5com o comandomore ifcfg-ens5. - Certifique-se de que todos os parâmetros estejam configurados corretamente.

- Execute o comando
ip apara recuperar o endereço IP de todas as interfaces. - Observe que a interface
ens5ainda não tem endereço IP configurado.

- Liste os arquivos no diretório
-
Reinicialize a instância com o comando
sudo reboot.
- Execute o comando
ip apara recuperar o endereço IP de todas as interfaces. - Observe que a interface
ens5agora tem um endereço IP configurado. - Execute o comando
route -npara recuperar todas as rotas e gateways padrão para todas as interfaces. Observe que o gateway agora está disponível para a interfaceens5.

Observação: configure um endereço IP e certifique-se de que o roteamento funcione corretamente são duas coisas diferentes.
- Execute o comando
-
Configurar roteamento. O arquivo
/etc/iproute2/rt_tablesé usado para definir e gerenciar várias tabelas de roteamento no Linux e para ativar o roteamento baseado em política. Ele mapeia nomes legíveis para números de tabelas de roteamento, permitindo configurações avançadas, como rotear tráfego específico por meio de diferentes gateways, interfaces ou ISPs.Execute o comando
sudo mkdir -p /etc/iproute2para criar o diretório chamado/etc/iproute2e o comandosudo nano /etc/iproute2/rt_tablespara criar o arquivo chamadort_tables. -
Configure os parâmetros a seguir no arquivo
rt_tables.100 vnic_1 200 vnic_2 -
Crie o script de persistência de roteamento de política com o comando
sudo nano /usr/local/bin/setup_policy_routing.sh.#!/bin/bash # Reapply IP rules ip rule add from 10.0.0.3 table vnic_1 ip rule add from 10.0.3.19 table vnic_2 # Reapply routing rules ip route add default via 10.0.0.1 dev ens3 table vnic_1 ip route add default via 10.0.3.1 dev ens5 table vnic_2 -
Execute o comando
sudo chmod +x /usr/local/bin/setup_policy_routing.shpara tornar executável o script de persistência de roteamento de política. -
Crie um serviço systemd para o script de roteamento de política com o comando
nano /etc/systemd/system/policy-routing.service. Isso será necessário se você tiver uma instância com várias VNICs com o comando. -
Configure os parâmetros a seguir no arquivo
policy-routing.service.[Unit] Description=Setup Policy Routing for Multiple VNICs After=network-online.target Wants=network-online.target [Service] Type=oneshot ExecStart=/usr/local/bin/setup_policy_routing.sh RemainAfterExit=true [Install] WantedBy=multi-user.target -
Execute o comando
sudo chmod +x /etc/systemd/system/policy-routing.servicepara tornar executável o arquivo de serviço do roteamento baseado em política. -
Execute o comando
sudo systemctl start policy-routing.servicepara iniciar o serviço para roteamento baseado em política. -
Execute o comando
sudo systemctl status policy-routingpara certificar-se de que o serviço de roteamento baseado em política esteja carregado e ativo.[opc@sriov-test-03 ~]$ sudo systemctl status policy-routing ● policy-routing.service - Setup Policy Routing for Multiple VNICs Loaded: loaded (/etc/systemd/system/policy-routing.service; enabled; vendor preset: disabled) Active: active (exited) since Wed 2024-12-11 09:07:16 GMT; 4 weeks 1 days ago Process: 2415 ExecStart=/usr/local/bin/setup_policy_routing.sh (code=exited, status=0/SUCCESS) Main PID: 2415 (code=exited, status=0/SUCCESS) Tasks: 0 (limit: 99891) Memory: 0B CGroup: /system.slice/policy-routing.service Warning: Journal has been rotated since unit was started. Log output is incomplete or unavailable. [opc@sriov-test-03 ~]$ -
Execute o comando
sudo systemctl enable policy-routing.servicepara certificar-se de que o serviço de roteamento baseado em política será iniciado quando a instância for (re)inicializada. -
Reinicialize a instância com o comando
sudo reboot. -
Após a reinicialização, execute os comandos a seguir.
- Execute o comando
more /etc/iproute2/rt_tablespara verificar se uma nova entrada foi feita. - Observe as entradas
100 vnic_1e200 vnic_2que configuramos manualmente. - Execute o comando
ip route show table 100para revisar a tabela de roteamento desse mapeamento e observe que há uma rota padrão para a interfaceens3a VNIC principal na instância. - Execute o comando
ip route show table 200para revisar a tabela de roteamento desse mapeamento e observe que há uma rota padrão para a interfaceens5, a nova segunda VNIC da instância.

- Execute o comando
Próximas Etapas
A seleção do método certo para configurar uma segunda interface em uma instância do OCI Linux depende de seus requisitos, experiência técnica e nível de controle desejado. Se você estiver procurando uma configuração direta e eficiente, os Métodos 1 e o Método 2, que usam o pacote oci-utils e as ferramentas nativas da Oracle, são altamente recomendados. Esses métodos são ideais para usuários que desejam aproveitar a funcionalidade integrada da OCI sem mergulhar na configuração manual ou em scripts externos.
E, onde a automação e a escalabilidade são essenciais, o Método 3, utilizando o script OCI_Multi_VNIC_Setup, fornece uma solução flexível. É especialmente útil ao gerenciar várias interfaces em diferentes instâncias, oferecendo economia de tempo e consistência na configuração.
Enquanto isso, o Método 4, a abordagem de configuração manual, fornece o mais alto nível de personalização. Esse método é mais adequado para usuários avançados ou ambientes específicos em que as ferramentas de automação não estão disponíveis ou não são preferenciais. Ele também serve como uma excelente maneira de entender o funcionamento interno da rede em instâncias do Oracle Linux.
Ao entender esses métodos, você obtém a flexibilidade de configurar interfaces secundárias em uma variedade de cenários, desde configuração básica até arquiteturas complexas multicloud. Com a abordagem certa, você pode garantir configurações de rede confiáveis e eficientes adaptadas às suas cargas de trabalho da OCI.
Confirmações
- Autor - Iwan Hoogendoorn (Especialista em Rede da OCI)
Mais Recursos de Aprendizagem
Explore outros laboratórios em docs.oracle.com/learn ou acesse mais conteúdo de aprendizado gratuito no canal Oracle Learning YouTube. Além disso, visite education.oracle.com/learning-explorer para se tornar um Oracle Learning Explorer.
Para obter a documentação do produto, visite o Oracle Help Center.
Assign an IP Address to a Second Interface on an Oracle Linux Instance
G25220-01
January 2025