Nota
- Questa esercitazione richiede l'accesso a Oracle Cloud. Per iscriverti a un account gratuito, consulta Inizia a utilizzare Oracle Cloud Infrastructure Free Tier.
- Utilizza valori di esempio per le credenziali, la tenancy e i compartimenti di Oracle Cloud Infrastructure. Al termine del laboratorio, sostituisci questi valori con quelli specifici del tuo ambiente cloud.
Assegnare un indirizzo IP a una seconda interfaccia su un'istanza Oracle Linux
Introduzione
Questa esercitazione fornisce istruzioni dettagliate su come assegnare un indirizzo IP a un'interfaccia di rete secondaria su un'istanza Oracle Linux. Sia che si stia espandendo la configurazione di rete o impostando un criterio di instradamento specifico, l'aggiunta e la configurazione di una seconda interfaccia è una competenza fondamentale.
Imparerai a:
-
Identificare le interfacce di rete disponibili.
-
Configurare l'interfaccia secondaria con un indirizzo IP statico o dinamico.
-
Aggiorna i file di configurazione di rete per la persistenza durante i reboot.
-
Verificare la configurazione e garantire la connettività.
Alla fine di questa esercitazione, sarai in grado di estendere le funzionalità di rete della tua istanza Oracle Linux e consentirgli di interagire senza problemi su più subnet o reti.
Obiettivi
In questa esercitazione verrà descritto come assegnare un indirizzo IP a una seconda interfaccia di rete su un'istanza Oracle Linux.
-
Comprendere i file di configurazione coinvolti nella configurazione di un'interfaccia di rete secondaria.
-
Scopri come assegnare un indirizzo IP statico alla seconda interfaccia.
-
Verificare la connettività e la funzionalità corretta dell'interfaccia appena configurata.
Prerequisiti
- Crea una rete cloud virtuale (VCN) e 2 subnet x.
Task 1: creare un'istanza di OCI Compute
In questo task verrà creata una nuova istanza in Oracle Cloud Infrastructure (OCI).
-
Andare alla console OCI, andare a Computazione, Istanze e fare clic su Crea istanza.
-
In Crea istanza di computazione, immettere le informazioni riportate di seguito.
- Immettere un nome per l'istanza. In questo esempio verrà utilizzato
sriov-test-01
. - scorrere in Basso.
- Fare clic su Modifica forma.
- Selezionare VM.Standard.E4. Flex, ma è possibile utilizzare anche E5.
- scorrere in Basso.
- Fare clic su Seleziona rete cloud virtuale esistente.
- Selezionare la VCN. In questo esempio viene utilizzata la VCN
oke
. - Selezionare la subnet esistente per la vNIC primaria.
- scorrere in Basso.
- Per il primo indirizzo IP dell'interfaccia VNIC, in Indirizzo IPv4 privato selezionare Assegna automaticamente l'indirizzo IPv4 privato.
- Poiché è stata selezionata una subnet pubblica per l'interfaccia principale, in Indirizzo IPv4 pubblico selezionare Assegna automaticamente l'indirizzo IPv4 pubblico.
- scorrere in Basso.
- Fare clic su Carica file di chiavi pubbliche (.pub) per caricare le chiavi SSH pubbliche e private esistenti (generate in precedenza).
- Fare clic su Sfoglia per selezionare la chiave pubblica esistente.
- Verificare se la chiave pubblica esistente è selezionata per il caricamento.
- Fare clic su Crea.
- Se l'istanza viene distribuita correttamente, lo stato mostra RUNNING.
- Tenere presente che la VNIC primaria è configurata e gli indirizzi IP vengono assegnati automaticamente.
- Immettere un nome per l'istanza. In questo esempio verrà utilizzato
Task 2: aggiungere la seconda VNIC all'istanza
-
Andare alla pagina Dettagli istanza.
- Fare clic su VNIC collegate.
- Tenere presente che è presente una sola VNIC e che l'abbiamo rinominata in
sr-iov-test-01
(il nome predefinito fornito da OCI è diverso). - Fare clic su Crea VNIC.
-
In Crea VNIC, immettere le informazioni riportate di seguito.
- Immettere un nome per la seconda VNIC. In questo esempio verrà utilizzato
secondary-vnic
. - Selezionare la VCN. In questo esempio viene utilizzata la VCN
oke
. - Selezionare la subnet esistente per la VNIC secondaria. Si tratta di una subnet diversa da quella a cui è collegata la VNIC primaria.
- Selezionare Usa gruppi di sicurezza di rete per controllare il traffico (facoltativo).
- (Facoltativo) Selezionare Consenti tutto per creare un gruppo di sicurezza di rete che consenta tutto il traffico in entrata e in uscita.
- scorrere in Basso.
- Per il secondo indirizzo IP dell'interfaccia VNIC, in Indirizzo IPv4 privato selezionare Assegna automaticamente l'indirizzo IPv4 privato.
- Fare clic su Salva modifiche.
- Immettere un nome per la seconda VNIC. In questo esempio verrà utilizzato
-
Tenere presente che la seconda VNIC viene ora creata e collegata all'istanza e all'altra subnet.
Nota: anche se è stata selezionata l'opzione di ottenere automaticamente un indirizzo IP per la seconda VNIC da OCI, il sistema operativo (Oracle Linux) non configurerà l'indirizzo IP sulla VNIC. L'indirizzo IP è riservato da OCI Console, ma non è ancora configurato.
Task 3: configurare l'indirizzo IP sulla seconda VNIC
La configurazione dell'indirizzo IP sulla seconda VNIC può essere eseguita con più metodi.
-
Metodo 1: utilizzare l'interfaccia della riga di comando di Oracle Cloud Infrastructure (OCI CLI) (pacchetto
oci-utils
) per assegnare un indirizzo IP alla seconda interfaccia di un'istanza di OCI Compute utilizzando il comando OCI-network-config. -
Metodo 2: utilizzare l'interfaccia CLI OCI (pacchetto
oci-utils
) per assegnare un indirizzo IP alla seconda interfaccia di un'istanza di OCI Compute utilizzando il daemon OCID. -
Metodo 3: utilizzare lo script OCI_Multi_VNIC_Setup.
-
Metodo 4: creare manualmente il file di configurazione dell'interfaccia per la nuova VNIC nella cartella
/etc/sysconfig/network-scripts/
.
Nota: per un'esperienza di apprendimento completa e pratica, inizia con Metodo 1 o Metodo 2, poiché questi utilizzano gli strumenti nativi OCI e forniscono una configurazione semplice. Man mano che acquisisci familiarità, esplora il metodo 3 per la creazione di script e l'automazione e, infine, prova il metodo 4 per le configurazioni manuali avanzate.
Metodo 1: utilizzare l'interfaccia CLI OCI (pacchetto oci-utils
) per assegnare un indirizzo IP alla seconda interfaccia utilizzando il comando oci-network-config
In questo metodo, creare una nuova istanza denominata sriov-test-04
e assegnare un indirizzo IP alla seconda interfaccia utilizzando il comando oci-network-config.
Prerequisiti: è stato eseguito il provisioning di una nuova istanza e è stata aggiunta una seconda VNIC.
-
Eseguire i comandi seguenti.
- Eseguire il comando
ip a
per recuperare l'indirizzo IP da tutte le interfacce. - Prendere nota dell'interfaccia
ens3
. - Si noti che l'interfaccia
ens3
dispone di un indirizzo IP configurato. - Prendere nota dell'interfaccia
ens5
. - Tenere presente che l'interfaccia
ens5
non dispone di un indirizzo IP configurato. - Eseguire il comando
route -n
per recuperare tutti gli instradamenti e i gateway predefiniti per tutte le interfacce. - Si noti che è disponibile solo un gateway per l'interfaccia
ens3
.
- Eseguire il comando
-
I comandi seguenti sono stati utilizzati per verificare se i comandi
oci-utils
sono pronti all'uso.- Eseguire il comando
sudo oci-compartmentid
per recuperare l'OCID del compartimento a cui appartiene l'istanza. - Eseguire il comando
sudo oci-instanceid
per recuperare l'OCID dell'istanza.
Qui, abbiamo dimostrato che i comandi
oci-utils
sono pronti all'uso. - Eseguire il comando
-
Eseguire i comandi seguenti.
- Eseguire il comando
sudo oci-network-config show
per recuperare tutta la configurazione di rete dall'istanza. - Si noti l'errore: Impossibile mostrare le informazioni: impossibile ottenere la sessione API. Le informazioni relative alle VNIC dell'istanza non verranno fornite a livello di sistema operativo e non a livello OCI.
- Prendere nota delle informazioni a livello di sistema operativo nell'interfaccia
ens3
. - Prendere nota delle informazioni a livello di sistema operativo nell'interfaccia
ens5
. - Prendere nota del flag
ADD
per l'interfacciaens5
.
Per configurare l'interfaccia
ens5
attualmente contrassegnata conADD
, eseguire il comandosudo oci-network-config configure
.Ciò non è possibile poiché si verificherà lo stesso errore durante l'esecuzione del comando
oci-network-config show
Impossibile mostrare le informazioni: impossibile ottenere la sessione API.Domanda: perché viene visualizzato questo errore?
Soluzione: una VCN non è un oggetto di proprietà di un'istanza, il che significa che l'istanza non può accedere direttamente alle informazioni della VCN senza un'autenticazione appropriata. Per consentire all'istanza di recuperare i dettagli della VCN dall'interfaccia API, è necessario creare un gruppo dinamico che includa l'istanza e assegnare un criterio che conceda le autorizzazioni necessarie.
- Eseguire il comando
-
Per abilitare un'istanza di OCI Compute a recuperare i dettagli della VCN tramite l'API, attenersi alla procedura riportata di seguito.
-
Crea un gruppo dinamico: questo gruppo dinamico include le istanze che richiedono l'accesso all'API. Il gruppo viene definito utilizzando regole basate su attributi quali l'OCID istanza o il compartimento.
-
Assegna autorizzazioni con un criterio: è necessario creare un criterio Oracle Cloud Infrastructure Identity and Access Management (OCI IAM) che conceda al gruppo dinamico l'autorizzazione di leggere o gestire le risorse correlate alla VCN. Ad esempio:
allow dynamic-group <dynamic-group-name> to read virtual-network-family in compartment <compartment-name>
-
Usa principal istanza per autenticazione: le istanze nel gruppo dinamico eseguono l'autenticazione direttamente utilizzando la propria identità, consentendo l'accesso sicuro alle API senza incorporare le credenziali nell'applicazione. Questo metodo semplifica la gestione della sicurezza mantenendo un efficace controllo dell'accesso.
-
-
Andare a OCI Console.
- Fare clic sul menu hamburger (≡), passare a Compute, Instances e selezionare l'istanza di computazione per la quale si desidera eseguire i comandi
sudo oci-network-config show
esudo oci-network-config configure
riportati di seguito. - Fare clic su Mostra per visualizzare il valore OCID dell'istanza.
- Fare clic su Copia per copiare il valore OCID dell'istanza.
- Fare clic sul menu hamburger (≡), passare a Identità, Domini, Dominio predefinito e fare clic su Gruppi dinamici.
- Fare clic su Crea gruppo dinamico.
- Immettere un nome per il gruppo dinamico. In questo esempio verrà utilizzato
sriov-test-04
. - Fare clic su Costruzione guidata regola.
- Selezionare OCID istanza in Corrispondenza istanze con.
- Immettere il valore dell'OCID dell'istanza in Valore.
- Fare clic su Add rule.
- Si noti che al gruppo viene aggiunta una nuova regola.
- Fare clic su Crea.
- Fare clic sul menu hamburger (≡), passare a Compute, Instances e selezionare l'istanza di computazione per la quale si desidera eseguire i comandi
-
Ora che abbiamo il gruppo a cui appartiene l'istanza, dobbiamo creare un criterio all'interno dei compartimenti che contengono l'istanza. Questo criterio consentirà alle istanze del gruppo di eseguire operazioni sugli oggetti VCN, ad esempio le subnet.
- Fare clic sul menu hamburger (≡), passare a Identità e fare clic su Compartimenti.
- Fare clic sul compartimento radice. In questo esempio, è
oraseemeaocids4
.
- Si noti che ora siamo nei compartimenti figlio.
- Fare clic sul compartimento figlio successivo. In questo esempio, è
NETWORK
.
- Si noti che ora ci troviamo nel compartimento figlio successivo.
- Fare clic sul compartimento figlio successivo. In questo esempio, è
Iwan
.
- Assicurarsi che sia selezionato il compartimento giusto.
- Fare clic su Criteri.
- Fare clic su Crea criterio.
-
In Crea criterio, immettere le informazioni riportate di seguito.
- Immettere il nome per il criterio. In questo esempio verrà utilizzato
allow-sriov-test-04-to-vcn
. - Immettere una descrizione per il criterio. In questo esempio verrà utilizzato
allow-sriov-test-04-to-vcn
. - Selezionare Mostra editor manuale.
- Immettere il criterio seguente:
allow dynamic-group sriov-test-04 to manage all-resources in compartment Iwan
. - Fare clic su Crea.
- Immettere il nome per il criterio. In questo esempio verrà utilizzato
-
Prendere nota della nuova istruzione criterio all'interno del criterio appena creato.
-
Ora che abbiamo consentito all'istanza di eseguire chiamate API tramite l'interfaccia CLI OCI alla VCN.
- Eseguire il comando
ip a
per recuperare l'indirizzo IP da tutte le interfacce. - Tenere presente che l'interfaccia
ens5
non dispone di un indirizzo IP configurato. - Eseguire il comando
sudo oci-network-config show
per recuperare tutta la configurazione di rete dall'istanza a livello OCI. L'errore è ormai scomparso. - Prendere nota delle informazioni a livello OCI sull'interfaccia
ens5
e del flagADD
per l'interfacciaens5
. - Prendere nota delle informazioni a livello di sistema operativo sulle interfacce
ens3
eens5
.
- Eseguire il comando
-
Prima di eseguire il comando
sudo oci-network-config configure
per configurare l'indirizzo IP della seconda VNIC, è necessario creare una nuova directory denominata/etc/iproute2
e un nuovo file denominato/etc/iproute2/rt_tables
. Ciò è necessario in modo che il sistema possa configurare correttamente il routing e il gateway predefinito per questa nuova interfaccia.Il file
/etc/iproute2/rt_tables
viene utilizzato per definire e gestire più tabelle di routing in Linux e per abilitare il routing basato sui criteri. Mappa i nomi leggibili dall'utente ai numeri delle tabelle di routing, consentendo impostazioni avanzate come l'instradamento di traffico specifico attraverso gateway, interfacce o ISP diversi.Eseguire il comando
sudo mkdir -p /etc/iproute2
per creare una directory denominata/etc/iproute2
e il comandosudo touch /etc/iproute2/rt_tables
per creare il file denominatort_tables
. -
Eseguire i comandi seguenti.
- Eseguire il comando
sudo oci-network-config configure
per configurare l'indirizzo IP della seconda VNIC. - Prendere nota del messaggio Configurato.
- Eseguire il comando
sudo oci-network-config show
per recuperare tutta la configurazione di rete dall'istanza a livello OCI. - Le informazioni a livello OCI sull'interfaccia
ens5
e il flagADD
per l'interfacciaens5
non sono più disponibili. - Eseguire il comando
ip a
per recuperare l'indirizzo IP da tutte le interfacce. - L'interfaccia
ens5
dispone ora di un indirizzo IP configurato. - Eseguire il comando
route -n
per recuperare tutti gli instradamenti e i gateway predefiniti per tutte le interfacce. - Tenere presente che il gateway è ora disponibile per l'interfaccia
ens5
.
- Eseguire il comando
more /etc/iproute2/rt_tables
per verificare se è stata effettuata una nuova voce. - Prendere nota della voce
11 ort
. - Eseguire il comando
ip route show table 11
per esaminare la tabella di routing per questa mappatura. - Si noti che esiste un instradamento predefinito per l'interfaccia
ens5
della nuova seconda VNIC nell'istanza.
- Eseguire il comando
Metodo 2: utilizzare l'interfaccia CLI OCI (pacchetto oci-utils
) per assegnare un indirizzo IP alla seconda interfaccia utilizzando ocid daemon
In questo metodo, creare una nuova istanza denominata sriov-test-01
e assegnare un indirizzo IP alla seconda interfaccia utilizzando il daemon OCID.
Prerequisiti: è stato eseguito il provisioning di una nuova istanza e è stata aggiunta una seconda VNIC.
-
Eseguire i comandi seguenti.
- Eseguire il comando
ip a
per recuperare l'indirizzo IP da tutte le interfacce. - Tenere presente che l'interfaccia
ens5
non dispone di un indirizzo IP configurato.
- Eseguire il comando
route -n
per recuperare tutti gli instradamenti e i gateway predefiniti per tutte le interfacce. - Si noti che è disponibile solo un gateway per l'interfaccia
ens3
.
- Eseguire il comando filtrato
ip -f inet -o addr
per mostrare tutti gli indirizzi IP configurati su tutte le interfacce. - Si noti che esiste solo l'interfaccia configurata e l'indirizzo IP è l'interfaccia
ens3
.
- Eseguire il comando
systemctl list-unit-files ocid.service
per verificare se il daemon ocid è abilitato. - Tenere presente che il daemon ocid è disabilitato.
- Eseguire il comando
sudo systemctl start ocid
per avviare il daemon ocid. - Eseguire il comando
sudo systemctl status ocid
per verificare lo stato del daemon ocid. - Si noti che il daemon ocid è attivo e in esecuzione.
- Eseguire il comando filtrato
ip -f inet -o addr
per mostrare tutti gli indirizzi IP configurati su tutte le interfacce. - Si noti che l'interfaccia
ens5
è ora configurata e ha un indirizzo IP.
- Eseguire il comando
ip a
per recuperare l'indirizzo IP da tutte le interfacce. - Tenere presente che l'interfaccia
ens5
dispone ora di un indirizzo IP configurato.
- Eseguire il comando
route -n
per recuperare tutti gli instradamenti e i gateway predefiniti per tutte le interfacce. - Tenere presente che il gateway è ora disponibile per l'interfaccia
ens5
.
- Eseguire il comando
-
Per assicurarsi che il servizio OCID si avvii automaticamente dopo un reboot, eseguire il comando
sudo systemctl enable ocid
. -
Come nel metodo 1, è necessario creare una directory denominata
/etc/iproute2
e un file denominato/etc/iproute2/rt_tables
. Ciò è necessario in modo che il sistema possa configurare correttamente il routing e il gateway predefinito per questa nuova interfaccia.Il file
/etc/iproute2/rt_tables
viene utilizzato per definire e gestire più tabelle di routing in Linux e per abilitare il routing basato sui criteri. Mappa i nomi leggibili dall'utente ai numeri delle tabelle di routing, consentendo impostazioni avanzate come l'instradamento di traffico specifico attraverso gateway, interfacce o ISP diversi.Eseguire il comando
sudo mkdir -p /etc/iproute2
per creare una directory denominata/etc/iproute2
e il comandosudo touch /etc/iproute2/rt_tables
per creare il file denominatort_tables
. -
Eseguire il comando
sudo reboot
.- Eseguire il comando
more /etc/iproute2/rt_tables
per verificare se è stata effettuata una nuova voce. - Prendere nota della voce
11 ort3
. - Eseguire il comando
ip route show table 11
per esaminare la tabella di routing per questa mappatura. - Si noti che esiste un instradamento predefinito per l'interfaccia
ens5
della nuova seconda VNIC nell'istanza.
- Eseguire il comando
Metodo 3: utilizzare lo script OCI_Multi_VNIC_Setup
In questo metodo, creare una nuova istanza denominata sriov-test-02
e utilizzare lo script OCI_Multi_VNIC_Setup per configurare l'indirizzo IP per la seconda VNIC.
Prerequisiti: è stato eseguito il provisioning di una nuova istanza e è stata aggiunta una seconda VNIC.
-
Eseguire i comandi seguenti.
- Eseguire il comando
ip a
per recuperare l'indirizzo IP da tutte le interfacce. - Tenere presente che l'interfaccia
ens5
non dispone di un indirizzo IP configurato. - Eseguire il comando
route -n
per recuperare tutti gli instradamenti e i gateway predefiniti per tutte le interfacce. - Si noti che è disponibile solo un gateway per l'interfaccia
ens3
.
-
Scaricare lo script con il seguente 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
-
Eseguire il comando
ls -l
per elencare tutti i file. -
Si noti che lo script
CI_Multi_VNIC_Setup.sh
è stato scaricato correttamente. -
Eseguire il comando
chmod +x ./OCI_Multi_VNIC_Setup.sh
per rendere eseguibile lo script scaricato. -
Eseguire il comando
sudo ./OCI_Multi_VNIC_Setup.sh
per eseguire lo script.
- Eseguire il comando
-
Raccogliere alcune informazioni dalla console OCI da utilizzare come input quando si esegue lo script.
- Nella pagina Dettagli istanza, annotare l'indirizzo IPv4 privato dell'interfaccia principale.
- scorrere in Basso.
- Fare clic su VNIC collegate.
- Fare clic sulla seconda VNIC.
- Prendere nota dell'indirizzo MAC della seconda VNIC.
- Prendere nota dell'indirizzo IP della seconda VNIC.
Nota: anche se l'indirizzo IP non è configurato nel sistema operativo dell'istanza, l'indirizzo IP è già riservato dalla gestione di OCI Console.
-
Utilizzando l'indirizzo IP e le informazioni della subnet, determinare il gateway predefinito per la subnet, in quanto lo script richiederà queste informazioni.
Nota: OCI Console non fornisce dettagli sul gateway predefinito, ma in genere è il primo indirizzo IP utilizzabile nella subnet.
Abbiamo le seguenti informazioni:
Interfaccia primaria (ens3) Interfaccia secondaria (ens5) Subnet IPv4: 10.0.0.0/29 10.0.3.0/27 Indirizzo IPv4: 10.0.0.4 10.0.3.5/27 Gateway IPv4: 10.0.0.1 10.0.3.1 Indirizzo MAC: Non richiesto per lo script 2:0:17:0:61:1 -
Immettere le informazioni riportate di seguito.
- Nome interfaccia VNIC primaria: immettere
ens3
. - IP VNIC primario: immettere
10.0.0.4
. - IP gateway VNIC primario: immettere
10.0.0.1
. - Nome interfaccia VNIC secondaria: immettere
ens5
. - Indirizzo IP VNIC secondario (notazione CIDR): immettere
10.0.3.5/27
con notazione CIDR completa. - Indirizzo MAC VNIC secondario: immettere
02:00:17:00:61:01
. - Questa interfaccia farà parte di un'altra sottorete, quindi immettere
y
qui. - Gateway VNIC secondario: immettere
10.0.3.1
.
- Verificare le informazioni e immettere
y
per confermare. - Immettere
y
per confermare di nuovo le impostazioni. - Tenere presente che lo script avvierà la configurazione dell'interfaccia e fornirà aggiornamenti di stato durante l'esecuzione di questa operazione.
- Nome interfaccia VNIC primaria: immettere
-
Di seguito è riportato l'output completo dei messaggi di stato.
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 ~]$
- Eseguire il comando
ip a
per recuperare l'indirizzo IP da tutte le interfacce. - Tenere presente che l'interfaccia
ens5
dispone ora di un indirizzo IP configurato. - Eseguire il comando
route -n
per recuperare tutti gli instradamenti e i gateway predefiniti per tutte le interfacce. Tenere presente che il gateway è ora disponibile per l'interfacciaens5
.
Nota:
- Configurare un indirizzo IP e assicurarsi che il routing funzioni correttamente sono due cose diverse.
- Lo script configurerà anche la parte di routing per noi.
- Prestare attenzione agli output specifici dello script.
- Eseguire il comando
-
La parte seguente dello script creerà una directory denominata
/etc/iproute2 directory
e un file denominatort_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.
-
La parte seguente dello script aggiungerà le voci necessarie al file
rt_tables
.*** Adding custom routing tables *** 100 vnic_1 200 vnic_2
-
La parte seguente dello script aggiungerà le regole di instradamento IP per consentire l'instradamento basato su criteri sull'istanza e abiliterà anche il servizio per l'instradamento basato su criteri, necessario se si dispone di un'istanza con più VNIC.
*** 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.
-
Eseguire i comandi seguenti.
- Eseguire il comando
more /etc/iproute2/rt_tables
per verificare se è stata effettuata una nuova voce. - Si noti che le voci
100 vnic_1
e200 vnic_2
. - Eseguire il comando
ip route show table 100
per esaminare la tabella di routing per questo mapping e notare che esiste un instradamento predefinito per l'interfacciaens3
, la VNIC primaria nell'istanza. - Eseguire il comando
ip route show table 200
per esaminare la tabella di routing per questo mapping e notare che esiste un instradamento predefinito per l'interfacciaens5
della nuova seconda VNIC nell'istanza.
- Eseguire il comando
Metodo 4: Creare manualmente il file di configurazione dell'interfaccia
Creare una nuova istanza denominata sriov-test-03
e configurare l'indirizzo IP per la seconda VNIC mediante una definizione per la nuova VNIC nella directory /etc/sysconfig/network-scripts/
.
Nota: in questo metodo verranno configurati quasi tutti i passi eseguiti automaticamente dallo script nel metodo 3.
Prerequisiti: è stato eseguito il provisioning di una nuova istanza e è stata aggiunta una seconda VNIC.
-
Eseguire il comando riportato di seguito.
- Eseguire il comando
ip a
per recuperare l'indirizzo IP da tutte le interfacce. - Tenere presente che l'interfaccia
ens5
non dispone di un indirizzo IP configurato. - Eseguire il comando
route -n
per recuperare tutti gli instradamenti e i gateway predefiniti per tutte le interfacce. - Si noti che è disponibile solo un gateway per l'interfaccia
ens3
.
- Eseguire il comando
-
Passare a Istanza, VNIC collegate e selezionare la seconda VNIC per recuperare l'indirizzo IP della seconda VNIC. Prendere nota dell'indirizzo IP.
-
Andare alla cartella
/network-scripts
utilizzando il comandocd /etc/sysconfig/network-scripts/
e creare un nuovo file nella stessa cartella con il nomeifcfg-ens5
utilizzando il comandosudo nano ifcfg-ens5
. -
Configurare l'interfaccia
ens5
con i parametri riportati di seguito.NAME="ens5" DEVICE="ens5" IPADDR=10.0.3.19 NETMASK=255.255.255.224 GATEWAY=10.0.3.1 ONBOOT=yes
- L'indirizzo IP è lo stesso recuperato da OCI Console.
- La subnet deriva dalla subnet all'interno della VCN a cui è connessa questa interfaccia.
- L'indirizzo IP del gateway è il primo indirizzo IP della subnet.
-
Salvare il file di configurazione denominato
ifcfg-ens5
con l'editor nano.- Elencare i file nella directory
/etc/sysconfig/network-scripts/
con il comandols -l
. - Si noti che esiste un file di configurazione dell'interfaccia per
ens3
. - Si noti che esiste un file di configurazione dell'interfaccia per
ens5
.
- Verificare il contenuto del file
ifcfg-ens5
con il comandomore ifcfg-ens5
. - Assicurarsi che tutti i parametri siano configurati correttamente.
- Eseguire il comando
ip a
per recuperare l'indirizzo IP da tutte le interfacce. - Tenere presente che l'interfaccia
ens5
non dispone ancora di un indirizzo IP configurato.
- Elencare i file nella directory
-
Eseguire il reboot dell'istanza con il comando
sudo reboot
.- Eseguire il comando
ip a
per recuperare l'indirizzo IP da tutte le interfacce. - Tenere presente che l'interfaccia
ens5
dispone ora di un indirizzo IP configurato. - Eseguire il comando
route -n
per recuperare tutti gli instradamenti e i gateway predefiniti per tutte le interfacce. Tenere presente che il gateway è ora disponibile per l'interfacciaens5
.
Nota: configurare un indirizzo IP e assicurarsi che l'instradamento funzioni correttamente sono due aspetti diversi.
- Eseguire il comando
-
Configura instradamento. Il file
/etc/iproute2/rt_tables
viene utilizzato per definire e gestire più tabelle di routing in Linux e per abilitare il routing basato sui criteri. Mappa i nomi leggibili dall'utente ai numeri delle tabelle di routing, consentendo impostazioni avanzate come l'instradamento di traffico specifico attraverso gateway, interfacce o ISP diversi.Eseguire il comando
sudo mkdir -p /etc/iproute2
per creare la directory denominata/etc/iproute2
e il comandosudo nano /etc/iproute2/rt_tables
per creare il file denominatort_tables
. -
Configurare i seguenti parametri nel file
rt_tables
.100 vnic_1 200 vnic_2
-
Creare lo script di persistenza del routing dei criteri con il 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
-
Eseguire il comando
sudo chmod +x /usr/local/bin/setup_policy_routing.sh
per rendere eseguibile lo script di persistenza del routing dei criteri. -
Creare un servizio systemd per lo script di routing dei criteri con il comando
nano /etc/systemd/system/policy-routing.service
. Questa operazione è necessaria se si dispone di un'istanza con più VNIC con il comando. -
Configurare i seguenti parametri nel file
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
-
Eseguire il comando
sudo chmod +x /etc/systemd/system/policy-routing.service
per rendere eseguibile il file del servizio per l'instradamento basato su criteri. -
Eseguire il comando
sudo systemctl start policy-routing.service
per avviare il servizio per il routing basato su criteri. -
Eseguire il comando
sudo systemctl status policy-routing
per assicurarsi che il servizio per l'instradamento basato su criteri sia caricato e attivo.[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 ~]$
-
Eseguire il comando
sudo systemctl enable policy-routing.service
per assicurarsi che il servizio per l'instradamento basato su criteri venga avviato quando l'istanza viene (ri)avviata. -
Eseguire il reboot dell'istanza con il comando
sudo reboot
. -
Dopo il reboot, eseguire i comandi seguenti.
- Eseguire il comando
more /etc/iproute2/rt_tables
per verificare se è stata effettuata una nuova voce. - Prendere nota delle voci
100 vnic_1
e200 vnic_2
configurate manualmente. - Eseguire il comando
ip route show table 100
per esaminare la tabella di routing per questo mapping e notare che esiste un instradamento predefinito per l'interfacciaens3
, la VNIC primaria nell'istanza. - Eseguire il comando
ip route show table 200
per esaminare la tabella di routing per questo mapping e notare che esiste un instradamento predefinito per l'interfacciaens5
della nuova seconda VNIC nell'istanza.
- Eseguire il comando
Passi successivi
La selezione del metodo giusto per configurare una seconda interfaccia su un'istanza OCI Linux dipende dai requisiti, dalle competenze tecniche e dal livello di controllo desiderato. Per una configurazione semplice ed efficiente, si consiglia vivamente Metodi 1 e Metodo 2, che utilizzano il pacchetto oci-utils
e gli strumenti nativi Oracle. Questi metodi sono ideali per gli utenti che desiderano sfruttare le funzionalità integrate di OCI senza dover passare alla configurazione manuale o agli script esterni.
Inoltre, laddove automazione e scalabilità sono fondamentali, il Metodo 3, utilizzando lo script OCI_Multi_VNIC_Setup
, offre una soluzione flessibile. È particolarmente utile quando si gestiscono più interfacce su istanze diverse, offrendo risparmio di tempo e coerenza nella configurazione.
Nel frattempo, Metodo 4, l'approccio alla configurazione manuale, offre il massimo livello di personalizzazione. Questo metodo è più adatto per utenti avanzati o ambienti specifici in cui gli strumenti di automazione non sono disponibili o non sono preferiti. Inoltre, funge da ottimo modo per comprendere il funzionamento interno della rete sulle istanze di Oracle Linux.
Comprendendo questi metodi, avrai la flessibilità di configurare interfacce secondarie in una vasta gamma di scenari, dall'impostazione di base alle complesse architetture multi-cloud. Con l'approccio giusto, puoi garantire configurazioni di rete affidabili ed efficienti personalizzate in base ai tuoi carichi di lavoro OCI.
Conferme
- Autore - Iwan Hoogendoorn (esperto di rete OCI)
Altre risorse di apprendimento
Esplora altri laboratori su docs.oracle.com/learn o accedi a più contenuti gratuiti sulla formazione su Oracle Learning YouTube channel. Inoltre, visita education.oracle.com/learning-explorer per diventare un Oracle Learning Explorer.
Per la documentazione del prodotto, visita l'Oracle Help Center.
Assign an IP Address to a Second Interface on an Oracle Linux Instance
G25217-01
January 2025