Passer un serveur à une adresse IP statique à partir de DHCP

14

J'exécute une installation de serveur Ubuntu 10.04 et j'ai récemment dû la passer de DHCP à une adresse IP statique. J'ai édité le /etc/network/interfacesfichier et changé

iface eth0 inet dhcp

à

iface eth0 inet static  
address 192.168.1.167  
netmask 255.255.255.240  
network 192.168.1.160  
broadcast 192.168.1.175  
gateway 192.168.1.161

Vous remarquerez que les IP sont un peu étranges. En effet, le serveur se trouve désormais sur un sous-réseau spécial dédié à l'isolement de serveurs spécifiques. J'ai également modifié le fichier resolv.conf pour inclure les serveurs DNS appropriés (y compris l'un de Google au cas où l'enfer se perdrait).

Le problème est que, apparemment au hasard, la machine perdra la capacité de parler au monde extérieur. Je sais que la machine est toujours en marche, mais elle agit comme si elle n'avait aucun réseau. Je pense qu'une partie du problème est qu'il n'y a pas de DHCP en cours d'exécution sur ce sous-réseau (et il n'y en aura pas) et le dhclient semble toujours fonctionner à l'occasion, ce qui provoque une sorte de conflit (aucune idée de ce qui) provoque la mort du réseau. Cependant, je ne peux pas supprimer le package dhcp3-client car cela entraîne également la suppression du package ubuntu-minimal et ce serait mauvais.

Alors, des idées? Comment appeler le dhclient et que puis-je faire pour l'empêcher de fonctionner?

Enekk
la source
1
veuillez exécuter sudo dhcpclient eth0et commenter si le réseau a été interrompu par la suite. Et les dernières lignes de /var/log/syslogsi possible
aatdark
MISE À JOUR Vous pouvez essayer sudo ifdown eth0selon art.ubuntuforums.org/showthread.php?t=1419803
aatdark
@aatdark Si vous exécutez ps auxf | less, vous devriez pouvoir voir une liste de processus, organisés dans une structure arborescente. Vous pouvez alors voir quel processus s'est étendu dhclient( montez simplement la branche); par exemple, sur mon PC dhclientest un fils du NetworkManagerprocessus.
Riccardo Murri

Réponses:

14

Si vous n'avez pas redémarré la machine depuis, ce comportement est normal. Le passage de DHCP à IP statique devrait être:

  • sudo ifdown eth0
  • changer la configuration
  • sudo ifup eth0

La raison en est que si vous effectuez l'ifdown après avoir modifié la configuration, cela se comporte comme si cela supprimait une interface statique et ne tuait pas le processus dhclient qui ne ferait que visser votre configuration. Dans ce cas, tuez simplement le processus dhclient avec

sudo killall dhclient

et tout devrait fonctionner.

jneves
la source
2

Comme mentionné par jneves , c'est probablement le client DHCP qui gâche les choses pour vous.

Comme alternative à sudo ifdown eth0-edit- sudo ifup eth0, vous pouvez simplement exécuter /etc/init.d/networking restartaprès avoir modifié le fichier. Il a aussi l'avantage de pouvoir le faire à distance ...

(N'ayant pas assez de points sur askubuntu, je ne suis pas autorisé à commenter la réponse de jneves, alors veuillez considérer cela comme un commentaire ...)

Edit : complètement oublié; comme la commande ci-dessus ne vous déconnecte à aucun moment, votre session SSH devrait en fait survivre au rechargement de la configuration. Il est tout à fait agréable d'être en mesure de modifier les paramètres du réseau tout en étant connecté à ladite machine ...

Morten Siebuhr
la source
C'est parfaitement bien (et encouragé) pour vous d'ajouter votre propre réponse avec plus d'informations qui s'appuient sur une autre! (Beau travail lié à la réponse précédente aussi)
Jorge Castro
J'utilisais /etc/init.d/networking restart(sur le serveur 10.04) après avoir modifié le fichier de configuration - le dhclient était toujours en cours d'exécution. J'ai dû tuer manuellement le processus dhclient (puis j'ai fait un redémarrage juste pour m'assurer qu'il ne reviendrait pas après un redémarrage)
HorusKol