J'ai passé trop de temps à comprendre cela et je voulais partager.
Tâche simple: ajoutez une adresse IP statique à la deuxième des quatre cartes réseau de mon serveur.
Pour commencer, j'ai suivi les instructions décrites dans Affectation d'adresse IP statique: https://help.ubuntu.com/14.04/serverguide/network-configuration.html
Fichier interfaces
:
$ cat /etc/network/interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
auto em1
iface em1 inet dhcp
auto em2
iface em2 inet static
address 172.24.0.9
netmask 255.255.0.0
Ensuite, je lance Sudo ifup em2
, conformément aux instructions.
Au début, cela semblait fonctionner. ifconfig
a montré l'interface correctement et j'ai été en mesure d'envoyer une requête ping à des périphériques sur le réseau. TOUTEFOIS, après environ une minute environ, l'adresse IP statique attribuée a disparu. L'adresse est perdue et la machine est inaccessible. Cela se produit maintes et maintes fois, peu importe la fréquence à laquelle je monte ou baisse l'interface. Pourquoi cela arrive-t-il?
Le problème était Network Manager. NM est censé ignorer les interfaces explicites du fichier /etc/network/interfaces
. Cependant, il semble que vous deviez redémarrer le service:
$ Sudo service network-manager restart
$
$ nmcli dev status
DEVICE TYPE STATE
p1p2 802-3-ethernet unavailable
p1p1 802-3-ethernet unavailable
em4 802-3-ethernet unavailable
em3 802-3-ethernet unavailable
em2 802-3-ethernet unmanaged
em1 802-3-ethernet unmanaged
Et maintenant, l'adresse IP statique n'est pas écrasée par Network Manager. Nous recherchons l'état "non géré" de la 2ème interface (ou quelle que soit l'interface sur laquelle vous travaillez).
tl; dr: après avoir ajouté une interface au fichier interfaces
, redémarrez le service network-manager
.
Supprimez simplement les deux blocs "if ... fi" dans pre-start et post-stop dans /etc/init/networking.conf afin que le "redémarrage du service en réseau" fonctionne à nouveau.