Linux : ne jamais faire service network restart

Extrait de conversation :

  • Olivier : Bon j’ai essayé de faire une correction mais rien ne fonctionne. Une fois le fichier modifié, il faut redémarrer le démon qui gère les échanges réseau ou pas ? Si oui, comment ?
  • Pascal : Il ne faut rien redémarrer du tout, c’est immédiat. Attends je vais voir ce qui cloche.
  • Olivier : Ah. C’est ça : « service network restart » ? Je vais essayer.
  • Pascal : Ma session SSH vient d’être coupée, c’est normal ?
  • Pascal : Non !!! Ne JAMAIS faire un network restart sur un serveur qui a des sockets ouvertes !!!
  • Olivier : Arrrrgh ! Plus rien. Je suppose que ça met du temps mais il reste injoignable au bout de 2 minutes… Je stresse un peu.
  • Olivier : Aaaaaargh ! http://www.acarat.com/ ne répond plus ! Putain je vais crever.
  • Pascal : Pas étonnant… Si tu avais attendu mes conseils 5 secondes de plus ça ne serait pas arrivé. Maintenant je n’ai plus accès au serveur, donc tu es tout seul.
  • Olivier : Bon eh bien la solution c’est d’aller à Marseille c’est ça ? Comment un service network restart peut-il tout planter ? Si tout le réseau redémarre bien, normalement tout est ok non ?
  • Pascal : Ce script touche toute la chaîne de configuration du réseau, des allocations mémoires de la pile IP jusqu’à la gestion et les options des interfaces physiques. Si tu fais un restart alors qu’il y a du trafic sur des sockets, tu as toutes les chances de planter les processus qui les utilisent avec un bon gros kernel panic à la clé.
    En résumé, tu es bon pour un voyage à Marseille.
    Même si le fait de redémarrer les services réseaux ne provoque pas de plantage, il reste tout de même les règles IPTables qui sont vidées en même temps que les interfaces sont arrêtées !
    Donc avec un network restart, tu fermes tout simplement ton firewall à tout nouveau paquet entrant.
    Si c’est vraiment ce dont il s’agit, il aurait fallu faire :
    service network restart; sleep 2; /etc/fw/iptables.sh
    Et donc en ayant patienté quelques secondes de plus, ça t’aurait épargné un A/R à Marseille et une interruption de service de tes sites Internet d’au moins 1h30.

La leçon du jour :

Ne rien toucher quand on ne connaît pas à 100% les implications d’une commande !

Poster un commentaire

Vous devriez utiliser le HTML:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>