Configuration de Linux pour utiliser une adresse IP privée secondaire
Configurez Linux pour utiliser une adresse IP privée secondaire.
Commandes de base (non persistantes en cas de redémarrage)
ip addr add <address>/<subnet_prefix_len> dev <phys_dev> label <phys_dev>:<addr_seq_num>
<address>
: adresse IP privée secondaire.<subnet_prefix_len>
: longueur du préfixe du sous-réseau. Par exemple, si le sous-réseau est 192.168.20.0/24, la longueur de préfixe du sous-réseau est 24.<phys_dev>
: interface à laquelle ajouter l'adresse (par exemple, ens2f0).<addr_seq_num>
: numéro séquentiel dans la pile d'adresses sur le dispositif (par exemple, 0).
ip addr add 192.168.20.50/24 dev ens2f0 label ens2f0:0
Pour supprimer l'adresse, vous pouvez utiliser :
ip addr del 192.168.20.50/24 dev ens2f0:0
En outre, supprimez l'adresse IP secondaire de la VNIC. Vous pouvez le faire avant ou après l'exécution de la commande précédente permettant de supprimer l'adresse de la configuration du système d'exploitation.
Si vous avez affecté une adresse IP secondaire à une adresse IP secondaire et que vous utilisez pour celle-ci un routage basé sur une stratégie, configurez les règles de routage de l'instance pour qu'elle recherche l'adresse IP secondaire dans la même table de routage, à l'aide de la commande ip rule add from <source address> lookup <table name>
.
Fichier de configuration (persistant en cas de redémarrage)
Vous pouvez rendre la configuration persistante en cas de redémarrage en ajoutant les informations à un fichier de configuration.
Pour Oracle Linux 7, créez un fichier ifcfg
nommé /etc/sysconfig/network-scripts/ifcfg-<phys_dev>:<addr_seq_num>
. Pour reprendre l'exemple précédent, le nom du fichier serait /etc/sysconfig/network-scripts/ifcfg-ens2f0:0
et son contenu serait :
DEVICE="ens2f0:0"
BOOTPROTO=static
IPADDR=192.168.0.50
NETMASK=255.255.255.0
ONBOOT=yes
Avec Oracle Linux 8 ou 9, la méthode recommandée est d'utiliser nmcli afin de configurer l'interface pour NetworkManager.
Si Network Manager écrase les connexions après le redémarrage, la solution recommandée consiste à exécuter la commande ip addr add <address>/<subnet_prefix_len> dev <phys_dev> label <phys_dev>:<addr_seq_num>
au moment de l'initialisation. Cela peut être fait à l'aide d'un travail CRON, ou à l'aide de /etc/rc.d/rc.local, etc. Vous pouvez également modifier les paramètres de ligne de commande du noyau de sorte que dracut n'écrase pas les profils de connexion NetworkManager.
Si vous avez affecté une adresse IP secondaire à une adresse IP secondaire et que vous utilisez pour celle-ci un routage basé sur une stratégie, configurez les règles de routage de l'instance pour qu'elle recherche l'adresse IP secondaire dans la même table de routage, à l'aide de la commande ip rule add from <source address> lookup <table name>
.
Créez ou modifiez une configuration netplan stockée dans /etc/netplan/<filename>.yaml
. Pour reprendre l'exemple précédent, le nom du fichier serait /etc/netplan/50-cloud-init.yaml
. Il serait modifié en vue de la désactivation de DHCP (pour toutes les adresses) et du remplacement par une configuration manuelle, comme suit :
network:
ethernets:
ens3:
dhcp4: no
addresses: [192.168.64.223/24, 192.168.64.75/24]
gateway4: 192.168.64.1
nameservers:
addresses: [169.254.169.254]
match:
macaddress: 02:00:17:0e:66:7b
set-name: ens3
version: 2
Dans cet exemple, 192.168.64.223 est l'adresse IP principale affectée à la VNIC et 192.168.64.75 l'adresse IP secondaire. macaddress
fait référence à la VNIC, ce qui peut être trouvé dans la console ou à l'aide de oci-utils
. Des exemples de configuration netplan plus complexes sont disponibles sur les pages de référence netplan. Reportez-vous à Attachement de VLAN à des interfaces réseau pour un exemple en amont.
Si vous avez affecté une adresse IP secondaire à une adresse IP secondaire et que vous utilisez pour celle-ci un routage basé sur une stratégie, configurez les règles de routage de l'instance pour qu'elle recherche l'adresse IP secondaire dans la même table de routage, à l'aide de la commande ip rule add from <source address> lookup <table name>
.