4 votes

Dans Ubuntu : "service networking restart" et "resolvconf restart" ne prennent pas effet avant le redémarrage.

J'ai une situation où j'utilise deux FAI, j'ai un programme qui envoie périodiquement un ping à une adresse et si elle est en panne, il suppose que le FAI a un problème et change les entrées de route par défaut et de serveur DNS dans les fichiers /etc/network/interfaces et /etc/resolvconf/resolv.conf.d/tail, respectivement. Il modifie ces paramètres pour qu'ils soient dirigés vers le fournisseur d'accès de secours. Je lance ensuite

sudo service networking restart 
sudo /etc/init.d/resolvconf restart. 

Cependant, cela ne modifie pas la route par défaut (telle qu'affichée par ip route ls) ou les serveurs DNS dans /etc/resolv.conf. Un redémarrage est nécessaire. Comment puis-je activer ces paramètres sans redémarrer ?

5voto

MariusMatutiae Points 45233

Rien de ce que je vais vous dire ne persiste après un redémarrage, ce que je suppose être votre souhait car, apparemment, votre situation est instable. Si ce n'est pas le cas, faites-le moi savoir.

Je suppose que c'est le cas pas avoir une IP statique (si c'est le cas, merci de m'en informer). Le serveur DHCP du fournisseur 1 reste-t-il activé lorsque la ligne est coupée ? Dans ce cas, le serveur DHCP du fournisseur 1 reste-t-il activé lorsque la ligne est coupée ? pas alors

 sudo ifdown eth0
 sudo ifup   eth0

vous donnera la nouvelle configuration. Mais si, au lieu de cela, le serveur DHCP du fournisseur 1 fait reste allumée, vous devrez le faire manuellement.

  1. Changer d'itinéraire :

    sudo ip route del default 
    sudo ip route add default via 192.168.1.121 dev eth0

    Je suppose que vous êtes connecté par Ethernet et que l'adresse IP du second modem est 192.168.1.121, si ce n'est pas le cas, modifiez-la en conséquence.

  2. Modifier les DNS, le plus simple est d'éditer (en tant que sudo) /etc/resolv.conf supprimer les lignes contenant les DNS précédents, puis ajouter les deux lignes suivantes :

    nameserver 1.2.3.4
    nameserver 9.8.7.6

(remplacez par vos valeurs).

Si vous trouvez cela ennuyeux, vous pouvez l'automatiser de la manière suivante : créez un fichier exécutable ( !), l'appeler line2 avec le contenu suivant :

#!/bin/bash
sudo ip route del default 
sudo ip route add default via 192.168.1.121 dev eth0
sed -i --follow-symlinks 's/First.Old.DNS.IP./First.New.DNS.IP/' /etc/resolv.conf
sed -i --follow-symlinks 's/Second.Old.DNS.IP./Second.New.DNS.IP/' /etc/resolv.conf

et exécutant maintenant line2 vous donnera la nouvelle connexion.

Il existe d'autres moyens plus élégants de modifier les DNS (à l'aide de resolvconf en écrivant à /etc/resolvconf.d ) mais comme vous semblez avoir un problème fréquent, rien n'est aussi simple que cela.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X