Remarques :
- Ce tutoriel nécessite un accès à Oracle Cloud. Pour vous inscrire à un compte gratuit, reportez-vous à Introduction à Oracle Cloud Infrastructure Free Tier.
- Il utilise des exemples de valeurs pour les informations d'identification, la location et les compartiments Oracle Cloud Infrastructure. Lorsque vous terminez votre atelier, remplacez ces valeurs par celles propres à votre environnement cloud.
Affectation d'une adresse IP à une deuxième interface sur une instance Oracle Linux
Introduction
Ce tutoriel fournit des instructions détaillées sur l'affectation d'une adresse IP à une interface réseau secondaire sur une instance Oracle Linux. Que vous développiez votre configuration réseau ou que vous configuriez une stratégie de routage spécifique, l'ajout et la configuration d'une deuxième interface est une compétence essentielle.
Vous allez apprendre à :
-
Identifiez les interfaces réseau disponibles.
-
Configurez l'interface secondaire avec une adresse IP statique ou dynamique.
-
Mettez à jour les fichiers de configuration réseau pour assurer la persistance après les réinitialisations.
-
Vérifiez la configuration et assurez-vous de la connectivité.
A la fin de ce tutoriel, vous pourrez étendre les fonctionnalités réseau de votre instance Oracle Linux, afin de lui permettre d'interagir de manière transparente sur 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.
-
Découvrez 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érequis
- Créez un réseau cloud virtuel (VCN) et des sous-réseaux 2x.
Tâche 1 : création d'une instance OCI Compute
Dans cette tâche, nous allons créer une instance dans Oracle Cloud Infrastructure (OCI).
-
Accédez à la console OCI, accédez à Compute, à Instances et cliquez sur Créer une instance.
-
Dans Créer une instance de calcul, entrez les informations suivantes.
- Saisissez un nom pour l'instance. Dans cet exemple, nous allons utiliser
sriov-test-01
. - Défiler vers le bas.
- Cliquez sur Modifier la forme.
- Sélectionnez VM.Standard.E4. Flex, mais vous pouvez également utiliser E5.
- Défiler vers le bas.
- Cliquez sur Sélectionner un réseau cloud virtuel existant.
- Sélectionnez le VCN. Dans cet exemple, nous utilisons le VCN
oke
. - Sélectionnez le sous-réseau existant pour la vNIC principale.
- Défiler vers le bas.
- Pour la première adresse IP d'interface 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.
- Défiler vers le bas.
- Cliquez sur Télécharger les fichiers de clés publiques (.pub) pour télécharger les 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 téléchargement.
- Cliquez sur Créer.
- Si l'instance est déployée avec succès, le statut indique RUNNING.
- Notez que la carte d'interface réseau virtuelle principale est configurée et que les adresses IP sont affectées automatiquement.
- Saisissez un nom pour l'instance. Dans cet exemple, nous allons utiliser
Tâche 2 : ajouter la deuxième carte d'interface réseau virtuelle à l'instance
-
Accédez à la page Détails de l'instance.
- Cliquez sur VNIC attachées.
- Notez que dans une seule carte d'interface réseau virtuelle, nous l'avons renommée en
sr-iov-test-01
(le nom par défaut fourni par OCI est différent). - Cliquez sur Créer une VNIC.
-
Dans Créer une carte d'interface réseau virtuelle, entrez les informations suivantes.
- Entrez le nom de la deuxième carte d'interface réseau virtuelle. Dans cet exemple, nous allons utiliser
secondary-vnic
. - Sélectionnez le réseau cloud virtuel. Dans cet exemple, nous utilisons le VCN
oke
. - Sélectionnez le sous-réseau existant pour la carte d'interface réseau virtuelle secondaire. Il s'agit d'un sous-réseau différent de celui auquel la carte d'interface réseau virtuelle principale est attachée.
- Sélectionnez Utiliser les groupes de sécurité réseau pour contrôler le trafic (facultatif).
- (Facultatif) Sélectionnez allow-all pour créer un groupe de sécurité réseau qui autorise l'ensemble du trafic entrant et sortant.
- Défiler vers le bas.
- Pour la deuxième adresse IP d'interface VNIC, dans Adresse IPv4 privée, sélectionnez Affecter automatiquement une adresse IPv4 privée.
- Cliquez sur Enregistrer les modifications.
- Entrez le nom de la deuxième carte d'interface réseau virtuelle. Dans cet exemple, nous allons utiliser
-
La deuxième carte d'interface réseau virtuelle est à présent créée et attachée à l'instance et à l'autre sous-réseau.
Remarque : même si nous avons sélectionné l'option permettant d'obtenir automatiquement une adresse IP pour la deuxième carte d'interface réseau virtuelle à partir d'OCI, le système d'exploitation (Oracle Linux) ne configure pas l'adresse IP sur la carte d'interface réseau virtuelle. L'adresse IP est réservée par la console OCI, mais elle n'est pas encore configurée.
Tâche 3 : configuration de l'adresse IP sur la deuxième carte d'interface réseau virtuelle
La configuration de l'adresse IP sur la deuxième carte d'interface réseau virtuelle peut être effectuée avec plusieurs méthodes.
-
Méthode 1 : utilisez l'interface de ligne de commande Oracle Cloud Infrastructure (interface de ligne de commande OCI) (package
oci-utils
) pour affecter une adresse IP à la deuxième interface d'une instance OCI Compute à l'aide de la commande OCI-network-config. -
Méthode 2 : utilisez l'interface de ligne de commande OCI (package
oci-utils
) pour affecter une adresse IP à la deuxième interface d'une instance OCI Compute à l'aide du démon ocid. -
Méthode 3 : utilisez le script OCI_Multi_VNIC_Setup.
-
Méthode 4 : créez manuellement le fichier de configuration d'interface pour la nouvelle carte d'interface réseau virtuelle dans le dossier
/etc/sysconfig/network-scripts/
.
Remarque : 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. Pour vous familiariser avec la méthode 3 de génération de script et d'automatisation, puis avec la méthode 4 de configuration manuelle avancée.
Méthode 1 : utilisation de l'interface de ligne de commande OCI (package 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érequis : provisionnement d'une nouvelle instance et ajout d'une deuxième carte d'interface réseau virtuelle.
-
Exécutez les commandes suivantes .
- Exécutez la commande
ip a
pour extraire l'adresse IP de toutes les interfaces. - Notez l'interface
ens3
. - Une adresse IP est configurée pour l'interface
ens3
. - Notez l'interface
ens5
. - 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 de toutes les interfaces. - Notez que seule une passerelle est disponible pour l'interface
ens3
.
- Exécutez la commande
-
Les commandes suivantes ont été utilisées pour vérifier si les commandes
oci-utils
fonctionnent prêtes à l'emploi.- Exécutez la commande
sudo oci-compartmentid
pour extraire l'OCID du compartiment auquel l'instance appartient. - 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 relatives aux cartes d'interface réseau virtuelles de l'instance ne seront pas fournies au niveau du système d'exploitation et non au niveau OCI.
- Notez les informations de niveau Système d'exploitation sur l'interface
ens3
. - Notez les informations de niveau 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 lors de l'exécution de 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 authentification appropriée. Pour permettre à l'instance d'extraire les détails du VCN à partir de l'API, vous devez créer un groupe dynamique qui inclut l'instance et affecter une stratégie accordant les autorisations nécessaires.
- Exécutez la commande
-
Pour permettre à une instance OCI Compute d'extraire les détails du VCN via l'API, procédez comme suit :
-
Créer un groupe dynamique : ce groupe dynamique inclut les instances qui nécessitent un accès à l'API. Vous définissez le groupe à l'aide de règles basées sur des attributs tels que l'OCID d'instance ou le compartiment.
-
Affecter des droits d'accès avec une stratégie : vous devez créer une stratégie 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. Exemple :
allow dynamic-group <dynamic-group-name> to read virtual-network-family in compartment <compartment-name>
-
Utiliser les ID 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 d'informations 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.
-
-
Accédez à la console OCI.
- Cliquez sur le menu latéral (≡), accédez à Compute, à Instances et sélectionnez l'instance de calcul pour laquelle exécuter les commandes
sudo oci-network-config show
etsudo oci-network-config configure
suivantes. - Cliquez sur Afficher pour afficher la valeur d'OCID d'instance.
- Cliquez sur Copier pour copier la valeur d'OCID d'instance.
- Cliquez sur le menu latéral (≡), accédez à Identité, Domaines, Domaine par défaut et cliquez sur Groupes dynamiques.
- Cliquez sur Créer un groupe dynamique.
- Entrez le nom du groupe dynamique. Dans cet exemple, nous allons utiliser
sriov-test-04
. - Cliquez sur Générateur de règles.
- Sélectionnez OCID d'instance dans Mettre en correspondance les instances avec.
- Entrez la valeur de l'OCID d'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 latéral (≡), accédez à Compute, à Instances et sélectionnez l'instance de calcul pour laquelle exécuter les commandes
-
Maintenant que nous avons le groupe auquel l'instance appartient, nous devons créer une stratégie dans les compartiments contenant l'instance. Cette stratégie permettra aux instances du groupe d'effectuer des opérations sur des objets VCN, tels que des sous-réseaux.
- Cliquez sur le menu latéral (≡), accédez à Identité et cliquez sur Compartiments.
- Cliquez sur le compartiment racine. Dans cet exemple, il s'agit de
oraseemeaocids4
.
- Nous sommes désormais dans les compartiments enfant.
- Cliquez sur le compartiment enfant suivant. Dans cet exemple, il s'agit de
NETWORK
.
- Nous sommes désormais 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 Stratégies.
- Cliquez sur Créer une stratégie.
-
Dans Créer une stratégie, entrez les informations suivantes.
- Entrez le nom de la règle. Dans cet exemple, nous allons utiliser
allow-sriov-test-04-to-vcn
. - Entrez la description de la stratégie. Dans cet exemple, nous allons utiliser
allow-sriov-test-04-to-vcn
. - Sélectionnez Afficher l'éditeur manuel.
- Entrez la stratégie suivante :
allow dynamic-group sriov-test-04 to manage all-resources in compartment Iwan
. - Cliquez sur Créer.
- Entrez le nom de la règle. Dans cet exemple, nous allons utiliser
-
Notez la nouvelle instruction de stratégie dans la nouvelle stratégie.
-
Maintenant que nous avons autorisé l'instance à effectuer des appels d'API via l'interface de ligne de commande OCI vers le VCN.
- Exécutez la commande
ip a
pour extraire l'adresse IP de toutes les interfaces. - Aucune adresse IP n'est configurée pour l'interface
ens5
. - Exécutez la commande
sudo oci-network-config show
pour extraire toute la configuration 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 d'interface réseau virtuelle, 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 sous Linux et pour activer le routage basé sur une stratégie. Il met en correspondance des noms lisibles par l'homme avec des numéros de table de routage, ce qui permet des configurations avancées telles que le routage de trafic spécifique via 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 d'interface réseau virtuelle. - Notez le message Configured.
- Exécutez la commande
sudo oci-network-config show
pour extraire toute la configuration réseau de l'instance au niveau OCI. - Les informations de niveau OCI sur l'interface
ens5
et l'indicateurADD
pour l'interfaceens5
ont désormais disparu. - Exécutez la commande
ip a
pour extraire l'adresse IP de toutes les interfaces. - Une adresse IP est désormais configurée pour l'interface
ens5
. - Exécutez la commande
route -n
pour extraire toutes les routes et passerelles par défaut de toutes les interfaces. - La passerelle est désormais disponible pour l'interface
ens5
.
- Exécutez la commande
more /etc/iproute2/rt_tables
pour vérifier si une nouvelle entrée a été créé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 mapping. - Il existe un routage par défaut pour l'interface
ens5
, la nouvelle deuxième carte d'interface réseau virtuelle sur l'instance.
- Exécutez la commande
Méthode 2 : utilisation de l'interface de ligne de commande OCI (package 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 ocid.
Prérequis : provisionnement d'une nouvelle instance et ajout d'une deuxième carte d'interface réseau virtuelle.
-
Exécutez les commandes suivantes .
- Exécutez la commande
ip a
pour extraire l'adresse IP de toutes les interfaces. - 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 de toutes les interfaces. - Notez que seule une 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 possède une adresse IP.
- Exécutez la commande
ip a
pour extraire l'adresse IP de toutes les interfaces. - Une adresse IP est désormais configurée pour l'interface
ens5
.
- Exécutez la commande
route -n
pour extraire toutes les routes et passerelles par défaut de toutes les interfaces. - La passerelle est désormais 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
. -
Comme pour 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 sous Linux et pour activer le routage basé sur une stratégie. Il met en correspondance des noms lisibles par l'homme avec des numéros de table de routage, ce qui permet des configurations avancées telles que le routage de trafic spécifique via 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é créé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 mapping. - Il existe un routage par défaut pour l'interface
ens5
, la nouvelle deuxième carte d'interface réseau virtuelle 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 d'interface réseau virtuelle.
Prérequis : provisionnement d'une nouvelle instance et ajout d'une deuxième carte d'interface réseau virtuelle.
-
Exécutez les commandes suivantes .
- Exécutez la commande
ip a
pour extraire l'adresse IP de toutes les interfaces. - 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 de toutes les interfaces. - Notez que seule une 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 répertorier tous les fichiers. -
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 à partir de la console OCI des informations que nous devons utiliser comme entrée lors de l'exécution du script.
- Sur la page Détails de l'instance, notez l'adresse IPv4 privée de l'interface principale.
- Défiler vers le bas.
- Cliquez sur VNIC attachées.
- Cliquez sur la deuxième VNIC.
- Notez l'adresse MAC de la deuxième carte d'interface réseau virtuelle.
- Notez l'adresse IP de la deuxième carte d'interface réseau virtuelle.
Remarque : même si l'adresse IP n'est pas configurée sur le système d'exploitation de l'instance, elle est déjà réservée par la gestion de la console OCI.
-
A l'aide des informations d'adresse IP et de sous-réseau, déterminez la passerelle par défaut du sous-réseau, car le script aura besoin de ces informations.
Remarque : 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 disposons des 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 -
Saisissez les informations suivantes .
- Nom d'interface de carte d'interface réseau virtuelle principale : entrez
ens3
. - Adresse IP de carte d'interface réseau virtuelle principale : entrez
10.0.0.4
. - Adresse IP de passerelle de carte d'interface réseau virtuelle principale : entrez
10.0.0.1
. - Nom d'interface de carte d'interface réseau virtuelle secondaire : entrez
ens5
. - Adresse IP de carte d'interface réseau virtuelle secondaire (notation CIDR) : entrez
10.0.3.5/27
avec la notation CIDR complète. - Adresse MAC de la carte d'interface réseau virtuelle secondaire : entrez
02:00:17:00:61:01
. - Cette interface fera partie d'un autre sous-réseau. Entrez donc
y
ici. - Passerelle 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 démarre la configuration de l'interface et fournit des mises à jour de statut.
- Nom d'interface de carte d'interface réseau virtuelle 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. - Une adresse IP est désormais configurée pour l'interface
ens5
. - Exécutez la commande
route -n
pour extraire toutes les routes et passerelles par défaut de toutes les interfaces. La passerelle est désormais disponible pour l'interfaceens5
.
Remarque :
- La configuration d'une adresse IP et le bon fonctionnement du routage sont deux choses différentes.
- Le script configurera également 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 ajoute les règles de routage IP pour autoriser le routage basé sur une stratégie sur l'instance et active également le service pour le routage basé sur une stratégie, ce qui est requis si vous disposez d'une instance avec plusieurs cartes d'interface réseau virtuelles.
*** 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é créée. - Notez les entrées
100 vnic_1
et200 vnic_2
. - Exécutez la commande
ip route show table 100
afin de vérifier la table de routage pour ce mapping et notez qu'il existe un routage par défaut pour l'interfaceens3
, la carte d'interface réseau virtuelle principale sur l'instance. - Exécutez la commande
ip route show table 200
afin de vérifier la table de routage pour ce mapping et notez qu'il existe un routage par défaut pour l'interfaceens5
, la nouvelle deuxième carte d'interface réseau virtuelle sur l'instance.
- Exécutez la commande
Méthode 4 : création manuelle du fichier de configuration d'interface
Créez une instance nommée sriov-test-03
et configurez l'adresse IP de la deuxième carte d'interface réseau virtuelle en définissant la nouvelle carte dans le répertoire /etc/sysconfig/network-scripts/
.
Remarque : 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érequis : provisionnement d'une nouvelle instance et ajout d'une deuxième carte d'interface réseau virtuelle.
-
Exécutez la commande suivante .
- Exécutez la commande
ip a
pour extraire l'adresse IP de toutes les interfaces. - 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 de toutes les interfaces. - Notez que seule une passerelle est disponible pour l'interface
ens3
.
- Exécutez la commande
-
Accédez à Instance, à Cartes d'interface réseau virtuelles attachées et sélectionnez la deuxième carte d'interface réseau virtuelle pour extraire l'adresse IP de la deuxième. Notez l'adresse IP.
-
Accédez au dossier
/network-scripts
à l'aide de la commandecd /etc/sysconfig/network-scripts/
et créez un fichier dans le même dossier avec 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 identique à celle extraite de la console OCI.
- Le sous-réseau est dérivé du sous-réseau dans le 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 tous les paramètres sont 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. - Une adresse IP est désormais configurée pour l'interface
ens5
. - Exécutez la commande
route -n
afin d'extraire tous les routages et toutes les passerelles par défaut pour toutes les interfaces. La passerelle est désormais disponible pour l'interfaceens5
.
Remarque : configurez une adresse IP et assurez-vous que le routage fonctionne correctement.
- Exécutez la commande
-
Configurer le routage. Le fichier
/etc/iproute2/rt_tables
est utilisé pour définir et gérer plusieurs tables de routage sous Linux et pour activer le routage basé sur une stratégie. Il met en correspondance des noms lisibles par l'homme avec des numéros de table de routage, ce qui permet des configurations avancées telles que le routage de trafic spécifique via 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 de routage de stratégie à l'aide de 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 exécutable le script de persistance de routage de stratégie. -
Créez un service systemd pour le script de routage de stratégie à l'aide de la commande
nano /etc/systemd/system/policy-routing.service
. Cette opération est requise si vous disposez d'une instance avec plusieurs cartes d'interface réseau virtuelles avec 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 stratégie. -
Exécutez la commande
sudo systemctl start policy-routing.service
pour démarrer le service pour le routage basé sur une stratégie. -
Exécutez la commande
sudo systemctl status policy-routing
pour vous assurer que le service de routage basé sur une stratégie 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 de routage basé sur une stratégie démarre lorsque l'instance est en cours de (re)démarrage. -
Redémarrez l'instance à l'aide de la commande
sudo reboot
. -
Après la réinitialisation, exécutez les commandes suivantes.
- Exécutez la commande
more /etc/iproute2/rt_tables
pour vérifier si une nouvelle entrée a été créé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
afin de vérifier la table de routage pour ce mapping et notez qu'il existe un routage par défaut pour l'interfaceens3
, la carte d'interface réseau virtuelle principale sur l'instance. - Exécutez la commande
ip route show table 200
afin de vérifier la table de routage pour ce mapping et notez qu'il existe un routage par défaut pour l'interfaceens5
, la nouvelle deuxième carte d'interface réseau virtuelle sur l'instance.
- Exécutez la commande
Etapes suivantes
La sélection de la méthode appropriée pour configurer une deuxième interface sur une instance OCI Linux dépend de vos exigences, de votre expertise technique et du niveau de contrôle souhaité. Si vous recherchez une configuration simple et efficace, les méthodes Methods 1 et Method 2, qui utilisent le package oci-utils
et les outils natifs 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. Elle est particulièrement utile lors de la gestion de plusieurs interfaces sur différentes instances, ce qui permet de gagner du temps et d'assurer la cohérence de la configuration.
Pendant ce temps, la méthode 4, l'approche de configuration manuelle, fournit 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 constitue également un excellent moyen de comprendre le fonctionnement interne des fonctions de réseau sur les instances Oracle Linux.
En comprenant ces méthodes, vous gagnez en flexibilité pour configurer des interfaces secondaires dans divers scénarios, de la configuration de base aux architectures multicloud complexes. Avec la bonne approche, vous pouvez garantir des configurations réseau fiables et efficaces adaptées à vos workloads OCI.
Remerciements
- Auteur - Iwan Hoogendoorn (Spécialiste réseau OCI)
Ressources de formation supplémentaires
Explorez d'autres ateliers sur docs.oracle.com/learn ou accédez à d'autres contenus de formation gratuits sur le canal Oracle Learning YouTube. De plus, visitez le site education.oracle.com/learning-explorer pour devenir un explorateur Oracle Learning.
Pour obtenir la documentation produit, consultez le site Oracle Help Center.
Assign an IP Address to a Second Interface on an Oracle Linux Instance
G25216-01
January 2025