Note :
- Ce tutoriel nécessite l'accès à Oracle Cloud. Pour vous inscrire à un compte gratuit, voir Démarrer avec le niveau gratuit d'Oracle Cloud Infrastructure.
- Il utilise des exemples de valeurs pour les données d'identification, la location et les compartiments Oracle Cloud Infrastructure. À la fin de votre laboratoire, remplacez ces valeurs par celles propres à votre environnement en nuage.
Affecter une adresse IP à une deuxième interface sur une instance Oracle Linux
Présentation
Ce tutoriel fournit des instructions étape par étape sur l'affectation d'une adresse IP à une interface réseau secondaire dans une instance Oracle Linux. Que vous étendiez votre configuration réseau ou que vous configuriez une politique d'acheminement spécifique, l'ajout et la configuration d'une deuxième interface est une compétence critique.
Vous apprendrez à :
-
Identifier les interfaces réseau disponibles.
-
Configurez l'interface secondaire avec une adresse IP statique ou dynamique.
-
Mettre à jour les fichiers de configuration réseau pour la persistance lors des redémarrages.
-
Vérifiez la configuration et assurez-vous de la connectivité.
À la fin de ce tutoriel, vous pourrez étendre les capacités de réseau de votre instance Oracle Linux et l'activer pour interagir de façon transparente entre plusieurs sous-réseaux ou réseaux.
Objectifs
Dans ce tutoriel, nous allons apprendre à affecter une adresse IP à une deuxième interface réseau sur une instance Oracle Linux.
-
Comprendre les fichiers de configuration impliqués dans la configuration d'une interface réseau secondaire.
-
Voyez comment affecter une adresse IP statique à la deuxième interface.
-
Vérifiez la connectivité et les fonctionnalités appropriées de l'interface nouvellement configurée.
Préalables
- Créez un réseau en nuage virtuel (VCN) et 2 sous-réseaux.
Tâche 1 : Créer une instance de calcul OCI
Dans cette tâche, nous allons créer une nouvelle instance dans Oracle Cloud Infrastructure (OCI).
-
Allez à la console OCI, naviguez jusqu'à Calcul, Instances et cliquez sur Créer une instance.
-
Dans Créer une instance de calcul, entrez les informations suivantes.
- Entrez un nom pour l'instance. Dans cet exemple, nous utiliserons
sriov-test-01
. - Faire défiler vers le bas.
- Cliquez sur Modifier la forme.
- Sélectionnez VM.Standard.E4. Champ flexible, mais vous pouvez également utiliser E5.
- Faire défiler vers le bas.
- Cliquez sur Sélectionner un réseau en nuage virtuel existant.
- Sélectionnez le réseau VCN. Dans cet exemple, nous utilisons le VCN
oke
. - Sélectionnez le sous-réseau existant pour la carte vNIC principale.
- Faire défiler vers le bas.
- Pour la première adresse IP d'interface de carte VNIC, dans Adresse IPv4 privée, sélectionnez Affecter automatiquement une adresse IPv4 privée.
- Comme nous avons sélectionné un sous-réseau public pour l'interface principale, dans Adresse IPv4 publique, sélectionnez Affecter automatiquement une adresse IPv4 publique.
- Faire défiler vers le bas.
- Cliquez sur Charger les fichiers de clé publique (.pub) pour charger des clés SSH publiques et privées existantes (générées précédemment).
- Cliquez sur Parcourir pour sélectionner la clé publique existante.
- Vérifiez si la clé publique existante est sélectionnée pour le chargement.
- Cliquez sur Créer.
- Si l'instance est déployée avec succès, le statut indique RUNNING.
- Notez que la carte VNIC principale est configurée et que les adresses IP sont affectées automatiquement.
- Entrez un nom pour l'instance. Dans cet exemple, nous utiliserons
Tâche 2 : Ajouter la deuxième carte VNIC à l'instance
-
Allez à la page Détails de l'instance.
- Cliquez sur Cartes vNIC attachées.
- Notez que dans une seule carte VNIC, nous l'avons renommée
sr-iov-test-01
(le nom par défaut fourni par OCI est différent). - Cliquez sur Créer une carte VNIC.
-
Dans Créer une carte VNIC, entrez les informations suivantes.
- Entrez un nom pour la deuxième carte VNIC. Dans cet exemple, nous utiliserons
secondary-vnic
. - Sélectionnez le réseau VCN. Dans cet exemple, nous utilisons le VCN
oke
. - Sélectionnez le sous-réseau existant pour la carte VNIC secondaire. Il s'agit d'un sous-réseau différent de celui auquel la carte VNIC principale est attachée.
- Sélectionnez Utiliser les groupes de sécurité de réseau pour contrôler le trafic (facultatif).
- (Facultatif) Sélectionnez Autoriser tout pour créer un groupe de sécurité de réseau qui autorise tout le trafic entrant et sortant.
- Faire défiler vers le bas.
- Pour la deuxième adresse IP de l'interface de carte VNIC, dans Adresse IPv4 privée, sélectionnez Affecter automatiquement l'adresse IPv4 privée.
- Cliquez sur enregistrer les modifications.
- Entrez un nom pour la deuxième carte VNIC. Dans cet exemple, nous utiliserons
-
Notez que la deuxième carte VNIC est maintenant créée et attachée à l'instance et à l'autre sous-réseau.
Note : Même si nous avons sélectionné l'option d'obtenir automatiquement une adresse IP pour la deuxième carte VNIC à partir d'OCI, le système d'exploitation (Oracle Linux) ne configure pas l'adresse IP sur la carte VNIC. L'adresse IP est réservée par la console OCI, mais elle n'est pas encore configurée.
Tâche 3 : Configurer l'adresse IP sur la deuxième carte VNIC
La configuration de l'adresse IP sur la deuxième carte VNIC peut être effectuée avec plusieurs méthodes.
-
Méthode 1 : Utilisez l'interface de ligne de commande d'Oracle Cloud Infrastructure (interface de ligne de commande OCI) (ensemble
oci-utils
) pour affecter une adresse IP à la deuxième interface d'une instance de calcul OCI à l'aide de la commande OCI-network-config. -
Méthode 2 : Utilisez l'interface de ligne de commande OCI (ensemble
oci-utils
) pour affecter une adresse IP à la deuxième interface d'une instance de calcul OCI à l'aide du démon OCID. -
Méthode 3 : Utilisez le script OCI_Multi_VNIC_Setup.
-
Méthode 4 : Créez le fichier de configuration de l'interface manuellement pour la nouvelle carte VNIC dans le dossier
/etc/sysconfig/network-scripts/
.
Note : Pour une expérience d'apprentissage complète et pratique, commencez par la méthode 1 ou la méthode 2, car elles tirent parti des outils natifs OCI et fournissent une configuration simple. Au fur et à mesure que vous en êtes familiarisé, explorez la méthode 3 pour les scripts et l'automatisation, et enfin, essayez la méthode 4 pour les configurations manuelles avancées.
Méthode 1 : Utilisez l'interface de ligne de commande OCI (ensemble oci-utils
) pour affecter une adresse IP à la deuxième interface à l'aide de la commande oci-network-config
Dans cette méthode, créez une instance nommée sriov-test-04
et affectez une adresse IP à la deuxième interface à l'aide de la commande oci-network-config.
Préalables : A provisionné une nouvelle instance et ajouté une seconde carte VNIC.
-
Exécutez les commandes suivantes.
- Exécutez la commande
ip a
pour extraire l'adresse IP de toutes les interfaces. - Notez l'interface
ens3
. - Notez qu'une adresse IP est configurée pour l'interface
ens3
. - Notez l'interface
ens5
. - Notez qu'aucune adresse IP n'est configurée pour l'interface
ens5
. - Exécutez la commande
route -n
pour extraire toutes les routes et passerelles par défaut pour toutes les interfaces. - Notez qu'une seule passerelle est disponible pour l'interface
ens3
.
- Exécutez la commande
-
Les commandes suivantes ont été utilisées pour tester si les commandes
oci-utils
fonctionnent prêtes à l'emploi.- Exécutez la commande
sudo oci-compartmentid
pour extraire l'OCID du compartiment auquel appartient l'instance. - Exécutez la commande
sudo oci-instanceid
pour extraire l'OCID de l'instance.
Ici, nous avons prouvé que les commandes
oci-utils
fonctionnent prêtes à l'emploi. - Exécutez la commande
-
Exécutez les commandes suivantes.
- Exécutez la commande
sudo oci-network-config show
pour extraire toute la configuration réseau de l'instance. - Notez l'erreur : Impossible d'afficher les informations : Échec de l'obtention de la session d'API. Les informations concernant les cartes vNIC de l'instance ne seront pas fournies au niveau du système d'exploitation et non au niveau OCI.
- Notez les informations au niveau du système d'exploitation sur l'interface
ens3
. - Notez les informations au niveau du système d'exploitation sur l'interface
ens5
. - Notez l'indicateur
ADD
pour l'interfaceens5
.
Pour configurer l'interface
ens5
actuellement marquée avecADD
, exécutez la commandesudo oci-network-config configure
.Cela n'est pas possible, car nous obtiendrons la même erreur lorsque nous exécuterons la commande
oci-network-config show
qui est Impossible d'afficher les informations : Échec de l'obtention de la session d'API.Question : Pourquoi cette erreur s'affiche-t-elle?
Solution : Un VCN n'est pas un objet appartenant à une instance, ce qui signifie que l'instance ne peut pas accéder directement aux informations du VCN sans une authentification appropriée. Pour permettre à l'instance d'extraire les détails du VCN de l'API, vous devez créer un groupe dynamique qui inclut l'instance et affecter une politique accordant les autorisations nécessaires.
- Exécutez la commande
-
Pour permettre à une instance de calcul OCI d'extraire les détails du VCN au moyen d'une API, procédez comme suit :
-
Créer un groupe dynamique : Ce groupe dynamique inclut les instances qui nécessitent l'accès à l'API. Vous définissez le groupe à l'aide de règles basées sur des attributs tels que l'OCID de l'instance ou le compartiment.
-
Affecter des autorisations avec une politique : Vous devez créer une politique Oracle Cloud Infrastructure Identity and Access Management (OCI IAM) qui accorde au groupe dynamique l'autorisation de lire ou de gérer les ressources liées au VCN. Par exemple :
allow dynamic-group <dynamic-group-name> to read virtual-network-family in compartment <compartment-name>
-
Utiliser les principaux d'instance pour l'authentification : Les instances du groupe dynamique s'authentifient directement à l'aide de leur identité, ce qui permet un accès sécurisé à l'API sans intégrer les données d'identification dans l'application. Cette méthode simplifie la gestion de la sécurité tout en maintenant un contrôle d'accès robuste.
-
-
Allez à la console OCI.
- Cliquez sur le menu hamburger (≡), naviguez jusqu'à Calcul, Instances et sélectionnez l'instance de calcul pour laquelle vous voulez exécuter les commandes suivantes
sudo oci-network-config show
etsudo oci-network-config configure
. - Cliquez sur Afficher pour afficher la valeur de l'OCID de l'instance.
- Cliquez sur Copier pour copier la valeur de l'OCID de l'instance.
- Cliquez sur le menu hamburger (≡), naviguez jusqu'à Identité, Domaines, Domaine par défaut et cliquez sur Groupes dynamiques.
- Cliquez sur Créer un groupe dynamique.
- Entrez un nom pour le groupe dynamique. Dans cet exemple, nous utiliserons
sriov-test-04
. - Cliquez sur Générateur de règles.
- Sélectionnez OCID de l'instance dans Mettre en correspondance les instances avec.
- Entrez la valeur de l'OCID de l'instance dans Valeur.
- Cliquez sur Ajouter une règle.
- Notez qu'une nouvelle règle est ajoutée au groupe.
- Cliquez sur Créer.
- Cliquez sur le menu hamburger (≡), naviguez jusqu'à Calcul, Instances et sélectionnez l'instance de calcul pour laquelle vous voulez exécuter les commandes suivantes
-
Maintenant que nous avons le groupe auquel l'instance appartient, nous devons créer une politique dans les compartiments contenant l'instance. Cette politique permettra aux instances du groupe d'effectuer des opérations sur des objets VCN, tels que des sous-réseaux.
- Cliquez sur le menu hamburger (≡), naviguez jusqu'à Identité et cliquez sur Compartiments.
- Cliquez sur le compartiment racine. Dans cet exemple, il s'agit de
oraseemeaocids4
.
- Notez que nous sommes maintenant dans les compartiments enfants.
- Cliquez sur le compartiment enfant suivant. Dans cet exemple, il s'agit de
NETWORK
.
- Notez que nous sommes maintenant dans le compartiment enfant suivant.
- Cliquez sur le compartiment enfant suivant. Dans cet exemple, il s'agit de
Iwan
.
- Assurez-vous que le bon compartiment est sélectionné.
- Cliquez sur Politiques.
- Cliquez sur Créer une politique.
-
Dans Créer une politique, entrez les informations suivantes.
- Entrez un nom pour la politique. Dans cet exemple, nous utiliserons
allow-sriov-test-04-to-vcn
. - Entrez une description pour la politique. Dans cet exemple, nous utiliserons
allow-sriov-test-04-to-vcn
. - Sélectionnez Afficher l'éditeur manuel.
- Entrez la politique suivante :
allow dynamic-group sriov-test-04 to manage all-resources in compartment Iwan
. - Cliquez sur Créer.
- Entrez un nom pour la politique. Dans cet exemple, nous utiliserons
-
Notez le nouvel énoncé de politique dans la nouvelle politique créée.
-
Maintenant que nous avons autorisé l'instance à effectuer des appels d'API au VCN au moyen de l'interface de ligne de commande OCI.
- Exécutez la commande
ip a
pour extraire l'adresse IP de toutes les interfaces. - Notez qu'aucune adresse IP n'est configurée pour l'interface
ens5
. - Exécutez la commande
sudo oci-network-config show
pour extraire toutes les configurations de réseau de l'instance au niveau OCI. L'erreur est maintenant partie. - Notez les informations de niveau OCI sur l'interface
ens5
et l'indicateurADD
pour l'interfaceens5
. - Notez les informations au niveau du système d'exploitation sur les interfaces
ens3
etens5
.
- Exécutez la commande
-
Avant d'exécuter la commande
sudo oci-network-config configure
pour configurer l'adresse IP de la deuxième carte VNIC, nous devons créer un nouveau répertoire nommé/etc/iproute2
et un nouveau fichier nommé/etc/iproute2/rt_tables
. Cela est nécessaire pour que le système puisse configurer correctement le routage et la passerelle par défaut pour cette nouvelle interface.Le fichier
/etc/iproute2/rt_tables
est utilisé pour définir et gérer plusieurs tables de routage dans Linux et pour activer le routage basé sur une politique. Il mappe des noms lisibles par l'homme aux numéros de table de routage, ce qui permet des configurations avancées telles que le routage de trafic spécifique à travers différentes passerelles, interfaces ou FAI.Exécutez la commande
sudo mkdir -p /etc/iproute2
pour créer un répertoire nommé/etc/iproute2
et la commandesudo touch /etc/iproute2/rt_tables
pour créer le fichier nommért_tables
. -
Exécutez les commandes suivantes.
- Exécutez la commande
sudo oci-network-config configure
pour configurer l'adresse IP de la deuxième carte VNIC. - Notez le message Configuré.
- Exécutez la commande
sudo oci-network-config show
pour extraire toutes les configurations de réseau de l'instance au niveau OCI. - Les informations de niveau OCI sur l'interface
ens5
et l'indicateurADD
pour l'interfaceens5
ont maintenant disparu. - Exécutez la commande
ip a
pour extraire l'adresse IP de toutes les interfaces. - Une adresse IP est maintenant configurée pour l'interface
ens5
. - Exécutez la commande
route -n
pour extraire toutes les routes et passerelles par défaut pour toutes les interfaces. - Notez que la passerelle est maintenant disponible pour l'interface
ens5
.
- Exécutez la commande
more /etc/iproute2/rt_tables
pour vérifier si une nouvelle entrée a été effectuée. - Notez l'entrée
11 ort
. - Exécutez la commande
ip route show table 11
pour vérifier la table de routage de ce mappage. - Notez qu'il existe une route par défaut pour l'interface
ens5
, la nouvelle deuxième carte VNIC sur l'instance.
- Exécutez la commande
Méthode 2 : Utiliser l'interface de ligne de commande OCI (ensemble oci-utils
) pour affecter une adresse IP à la deuxième interface à l'aide de ocid daemon
Dans cette méthode, créez une instance nommée sriov-test-01
et affectez une adresse IP à la deuxième interface à l'aide du démon d'ID.
Préalables : A provisionné une nouvelle instance et ajouté une seconde carte VNIC.
-
Exécutez les commandes suivantes.
- Exécutez la commande
ip a
pour extraire l'adresse IP de toutes les interfaces. - Notez qu'aucune adresse IP n'est configurée pour l'interface
ens5
.
- Exécutez la commande
route -n
pour extraire toutes les routes et passerelles par défaut pour toutes les interfaces. - Notez qu'une seule passerelle est disponible pour l'interface
ens3
.
- Exécutez la commande filtrée
ip -f inet -o addr
pour afficher toutes les adresses IP configurées sur toutes les interfaces. - Notez qu'il n'y a qu'une interface configurée et que l'adresse IP est l'interface
ens3
.
- Exécutez la commande
systemctl list-unit-files ocid.service
pour vérifier si le démon ocid est activé. - Notez que le démon ocid est désactivé.
- Exécutez la commande
sudo systemctl start ocid
pour démarrer le démon ocid. - Exécutez la commande
sudo systemctl status ocid
pour vérifier le statut du démon ocid. - Notez que le démon ocid est actif et en cours d'exécution.
- Exécutez la commande filtrée
ip -f inet -o addr
pour afficher toutes les adresses IP configurées sur toutes les interfaces. - Notez que l'interface
ens5
est maintenant configurée et a une adresse IP.
- Exécutez la commande
ip a
pour extraire l'adresse IP de toutes les interfaces. - Notez qu'une adresse IP est maintenant configurée pour l'interface
ens5
.
- Exécutez la commande
route -n
pour extraire toutes les routes et passerelles par défaut pour toutes les interfaces. - Notez que la passerelle est maintenant disponible pour l'interface
ens5
.
- Exécutez la commande
-
Pour vous assurer que le service OCID démarre automatiquement après un redémarrage, exécutez la commande
sudo systemctl enable ocid
. -
Identique à la méthode 1, nous devons créer un répertoire nommé
/etc/iproute2
et un fichier nommé/etc/iproute2/rt_tables
. Cela est nécessaire pour que le système puisse configurer correctement le routage et la passerelle par défaut pour cette nouvelle interface.Le fichier
/etc/iproute2/rt_tables
est utilisé pour définir et gérer plusieurs tables de routage dans Linux et pour activer le routage basé sur une politique. Il mappe des noms lisibles par l'homme aux numéros de table de routage, ce qui permet des configurations avancées telles que le routage de trafic spécifique à travers différentes passerelles, interfaces ou FAI.Exécutez la commande
sudo mkdir -p /etc/iproute2
pour créer un répertoire nommé/etc/iproute2
et la commandesudo touch /etc/iproute2/rt_tables
pour créer le fichier nommért_tables
. -
Exécutez la commande
sudo reboot
.- Exécutez la commande
more /etc/iproute2/rt_tables
pour vérifier si une nouvelle entrée a été effectuée. - Notez l'entrée
11 ort3
. - Exécutez la commande
ip route show table 11
pour vérifier la table de routage de ce mappage. - Notez qu'il existe une route par défaut pour l'interface
ens5
, la nouvelle deuxième carte VNIC sur l'instance.
- Exécutez la commande
Méthode 3 : Utiliser le script OCI_Multi_VNIC_Setup
Dans cette méthode, créez une instance nommée sriov-test-02
et utilisez le script OCI_Multi_VNIC_Setup pour configurer l'adresse IP de la deuxième carte VNIC.
Préalables : A provisionné une nouvelle instance et ajouté une seconde carte VNIC.
-
Exécutez les commandes suivantes.
- Exécutez la commande
ip a
pour extraire l'adresse IP de toutes les interfaces. - Notez qu'aucune adresse IP n'est configurée pour l'interface
ens5
. - Exécutez la commande
route -n
pour extraire toutes les routes et passerelles par défaut pour toutes les interfaces. - Notez qu'une seule passerelle est disponible pour l'interface
ens3
.
-
Téléchargez le script à l'aide de la commande curl suivante.
curl -o OCI_Multi_VNIC_Setup.sh https://raw.githubusercontent.com/Olygo/OCI_Multi_VNIC_Setup/refs/heads/main/OCI_Multi_VNIC_Setup.sh
-
Exécutez la commande
ls -l
pour lister tous les fichiers. -
Notez que le script
CI_Multi_VNIC_Setup.sh
a été téléchargé. -
Exécutez la commande
chmod +x ./OCI_Multi_VNIC_Setup.sh
pour rendre le script téléchargé exécutable. -
Exécutez la commande
sudo ./OCI_Multi_VNIC_Setup.sh
pour exécuter le script.
- Exécutez la commande
-
Collectez des informations à partir de la console OCI que nous devons utiliser comme entrée lors de l'exécution du script.
- Dans la page Détails de l'instance, notez l'adresse IPv4 privée de l'interface principale.
- Faire défiler vers le bas.
- Cliquez sur Cartes vNIC attachées.
- Cliquez sur la deuxième carte VNIC.
- Notez l'adresse MAC de la deuxième carte VNIC.
- Notez l'adresse IP de la deuxième carte VNIC.
Note : Même si l'adresse IP n'est pas configurée sur le système d'exploitation de l'instance, l'adresse IP est déjà réservée par la gestion de la console OCI.
-
À l'aide des informations sur l'adresse IP et le sous-réseau, déterminez la passerelle par défaut pour le sous-réseau, car le script nécessitera ces informations.
Note : La console OCI ne fournit pas de détails sur la passerelle par défaut, mais il s'agit généralement de la première adresse IP utilisable dans le sous-réseau.
Nous avons les informations suivantes :
Interface principale (ens3) Interface secondaire (ens5) Sous-réseau IPv4 : 10.0.0.0/29 10.0.3.0/27 Adresse IPv4 : 10.0.0.4 10.0.3.5/27 Passerelle IPv4 : 10.0.0.1 10.0.3.1 Adresse MAC : Non requis pour le script 2:0:17:0:61:1 -
Entrez les informations suivantes .
- Nom de l'interface de carte VNIC principale : Entrez
ens3
. - Adresse IP de la carte VNIC principale : Entrez
10.0.0.4
. - Adresse IP principale de la passerelle de carte VNIC : Entrez
10.0.0.1
. - Nom de l'interface de carte VNIC secondaire : Entrez
ens5
. - Adresse IP de la carte VNIC secondaire (notation CIDR) : Entrez
10.0.3.5/27
avec la notation CIDR complète. - Adresse MAC de la carte VNIC secondaire : Entrez
02:00:17:00:61:01
. - Cette interface fera partie d'un sous-réseau différent. Entrez
y
ici. - Passerelle de carte VNIC secondaire : Entrez
10.0.3.1
.
- Vérifiez les informations et entrez
y
pour confirmer. - Entrez
y
pour confirmer à nouveau les paramètres. - Notez que le script lancera la configuration de l'interface et fournira des mises à jour de statut lors de cette opération.
- Nom de l'interface de carte VNIC principale : Entrez
-
La sortie complète des messages d'état est fournie ci-dessous :
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 ~]$
- Exécutez la commande
ip a
pour extraire l'adresse IP de toutes les interfaces. - Notez qu'une adresse IP est maintenant configurée pour l'interface
ens5
. - Exécutez la commande
route -n
pour extraire toutes les routes et passerelles par défaut pour toutes les interfaces. Notez que la passerelle est maintenant disponible pour l'interfaceens5
.
Note :
- Configurer une adresse IP et s'assurer que le routage fonctionne correctement sont deux choses différentes.
- Le script va également configurer la partie de routage pour nous.
- Faites attention aux sorties spécifiques du script.
- Exécutez la commande
-
La partie suivante du script crée un répertoire nommé
/etc/iproute2 directory
et un fichier nommért_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 partie suivante du script ajoutera les entrées nécessaires dans le fichier
rt_tables
.*** Adding custom routing tables *** 100 vnic_1 200 vnic_2
-
La partie suivante du script ajoutera les règles d'acheminement IP pour autoriser l'acheminement basé sur une politique sur l'instance, et activera également le service pour l'acheminement basé sur une politique, ce qui est requis si vous avez une instance avec plusieurs cartes 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.
-
Exécutez les commandes suivantes.
- Exécutez la commande
more /etc/iproute2/rt_tables
pour vérifier si une nouvelle entrée a été effectuée. - Notez que les entrées
100 vnic_1
et200 vnic_2
. - Exécutez la commande
ip route show table 100
pour vérifier la table de routage pour ce mappage et notez qu'il existe une route par défaut pour l'interfaceens3
, la carte VNIC principale sur l'instance. - Exécutez la commande
ip route show table 200
pour vérifier la table de routage pour ce mappage et notez qu'il existe une route par défaut pour l'interfaceens5
, la nouvelle deuxième carte VNIC sur l'instance.
- Exécutez la commande
Méthode 4 : Créer manuellement le fichier de configuration de l'interface
Créez une nouvelle instance nommée sriov-test-03
et configurez l'adresse IP de la deuxième carte VNIC par une définition pour la nouvelle carte VNIC dans le répertoire /etc/sysconfig/network-scripts/
.
Note : Dans cette méthode, nous allons configurer presque toutes les étapes, qui ont été effectuées automatiquement par le script dans la méthode 3.
Préalables : A provisionné une nouvelle instance et ajouté une seconde carte VNIC.
-
Exécutez la commande suivante .
- Exécutez la commande
ip a
pour extraire l'adresse IP de toutes les interfaces. - Notez qu'aucune adresse IP n'est configurée pour l'interface
ens5
. - Exécutez la commande
route -n
pour extraire toutes les routes et passerelles par défaut pour toutes les interfaces. - Notez qu'une seule passerelle est disponible pour l'interface
ens3
.
- Exécutez la commande
-
Naviguez jusqu'à Instance, Cartes VNIC attachées et sélectionnez la deuxième carte VNIC pour extraire l'adresse IP de la deuxième carte VNIC. Notez l'adresse IP.
-
Allez au dossier
/network-scripts
à l'aide de la commandecd /etc/sysconfig/network-scripts/
et créez un nouveau fichier dans le même dossier portant le nomifcfg-ens5
à l'aide de la commandesudo nano ifcfg-ens5
. -
Configurez l'interface
ens5
avec les paramètres suivants.NAME="ens5" DEVICE="ens5" IPADDR=10.0.3.19 NETMASK=255.255.255.224 GATEWAY=10.0.3.1 ONBOOT=yes
- L'adresse IP est la même que celle extraite de la console OCI.
- Le sous-réseau est dérivé du sous-réseau du VCN auquel cette interface est connectée.
- L'adresse IP de la passerelle est la première adresse IP du sous-réseau.
-
Enregistrez le fichier de configuration nommé
ifcfg-ens5
avec l'éditeur nano.- Répertoriez les fichiers du répertoire
/etc/sysconfig/network-scripts/
à l'aide de la commandels -l
. - Notez qu'il existe un fichier de configuration d'interface pour
ens3
. - Notez qu'il existe un fichier de configuration d'interface pour
ens5
.
- Vérifiez le contenu du fichier
ifcfg-ens5
à l'aide de la commandemore ifcfg-ens5
. - Assurez-vous que les paramètres sont tous correctement configurés.
- Exécutez la commande
ip a
pour extraire l'adresse IP de toutes les interfaces. - Notez que l'interface
ens5
n'a toujours pas d'adresse IP configurée.
- Répertoriez les fichiers du répertoire
-
Redémarrez l'instance à l'aide de la commande
sudo reboot
.- Exécutez la commande
ip a
pour extraire l'adresse IP de toutes les interfaces. - Notez qu'une adresse IP est maintenant configurée pour l'interface
ens5
. - Exécutez la commande
route -n
pour extraire toutes les routes et passerelles par défaut pour toutes les interfaces. Notez que la passerelle est maintenant disponible pour l'interfaceens5
.
Note : Configurez une adresse IP et assurez-vous que le routage fonctionne correctement.
- Exécutez la commande
-
Configurer l'acheminement. Le fichier
/etc/iproute2/rt_tables
est utilisé pour définir et gérer plusieurs tables de routage dans Linux et pour activer le routage basé sur une politique. Il mappe des noms lisibles par l'homme aux numéros de table de routage, ce qui permet des configurations avancées telles que le routage de trafic spécifique à travers différentes passerelles, interfaces ou FAI.Exécutez la commande
sudo mkdir -p /etc/iproute2
pour créer le répertoire nommé/etc/iproute2
et la commandesudo nano /etc/iproute2/rt_tables
pour créer le fichier nommért_tables
. -
Configurez les paramètres suivants dans le fichier
rt_tables
.100 vnic_1 200 vnic_2
-
Créez le script de persistance d'acheminement de politique avec la commande
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
-
Exécutez la commande
sudo chmod +x /usr/local/bin/setup_policy_routing.sh
pour rendre le script de persistance d'acheminement de politique exécutable. -
Créez un service systemd pour le script de routage de politique à l'aide de la commande
nano /etc/systemd/system/policy-routing.service
. Cela est requis si vous disposez d'une instance avec plusieurs cartes vNIC à l'aide de la commande. -
Configurez les paramètres suivants dans le fichier
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
-
Exécutez la commande
sudo chmod +x /etc/systemd/system/policy-routing.service
pour rendre exécutable le fichier de service pour le routage basé sur une politique. -
Exécutez la commande
sudo systemctl start policy-routing.service
pour démarrer le service pour le routage basé sur une politique. -
Exécutez la commande
sudo systemctl status policy-routing
pour vous assurer que le service de routage basé sur une politique est chargé et actif.[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 ~]$
-
Exécutez la commande
sudo systemctl enable policy-routing.service
pour vous assurer que le service pour le routage basé sur une politique démarrera lorsque l'instance sera (re)démarrée. -
Redémarrez l'instance à l'aide de la commande
sudo reboot
. -
Après le redémarrage, exécutez les commandes suivantes.
- Exécutez la commande
more /etc/iproute2/rt_tables
pour vérifier si une nouvelle entrée a été effectuée. - Notez les entrées
100 vnic_1
et200 vnic_2
que nous avons configurées manuellement. - Exécutez la commande
ip route show table 100
pour vérifier la table de routage pour ce mappage et notez qu'il existe une route par défaut pour l'interfaceens3
, la carte VNIC principale sur l'instance. - Exécutez la commande
ip route show table 200
pour vérifier la table de routage pour ce mappage et notez qu'il existe une route par défaut pour l'interfaceens5
, la nouvelle deuxième carte VNIC sur l'instance.
- Exécutez la commande
Étapes suivantes
La sélection de la bonne méthode pour configurer une deuxième interface sur une instance OCI Linux dépend de vos besoins, de votre expertise technique et du niveau de contrôle souhaité. Si vous recherchez une configuration simple et efficace, les méthodes 1 et 2, qui utilisent l'ensemble oci-utils
et les outils natifs d'Oracle, sont fortement recommandées. Ces méthodes sont idéales pour les utilisateurs qui souhaitent tirer parti des fonctionnalités intégrées d'OCI sans se plonger dans une configuration manuelle ou des scripts externes.
De plus, lorsque l'automatisation et l'évolutivité sont essentielles, la méthode 3, qui utilise le script OCI_Multi_VNIC_Setup
, fournit une solution flexible. Il est particulièrement utile lors de la gestion de plusieurs interfaces entre différentes instances, ce qui permet d'économiser du temps et d'assurer la cohérence de la configuration.
Pendant ce temps, la méthode 4, l'approche de configuration manuelle, offre le plus haut niveau de personnalisation. Cette méthode convient mieux aux utilisateurs avancés ou aux environnements spécifiques où les outils d'automatisation ne sont pas disponibles ou ne sont pas préférés. Il sert également d'excellent moyen de comprendre le fonctionnement interne du réseau sur les instances Oracle Linux.
En comprenant ces méthodes, vous bénéficiez de la flexibilité nécessaire pour configurer des interfaces secondaires dans divers scénarios, de la configuration de base aux architectures multinuages complexes. Avec la bonne approche, vous pouvez assurer des configurations réseau fiables et efficaces adaptées à vos charges de travail OCI.
Confirmation
- Auteur - Iwan Hoogendoorn (spécialiste du réseau OCI)
Autres ressources d'apprentissage
Explorez d'autres laboratoires sur la page docs.oracle.com/learn ou accédez à plus de contenu d'apprentissage gratuit sur le canal YouTube d'Oracle Learning. De plus, visitez education.oracle.com/learning-explorer pour devenir un explorateur Oracle Learning.
Pour obtenir de la documentation sur le produit, visitez Oracle Help Center.
Assign an IP Address to a Second Interface on an Oracle Linux Instance
G25215-01
January 2025