web-dev-qa-db-fra.com

Impossible ifdown eth0 (interface principale)

Je ne peux pas ifdown une interface sur Debian 6.0.5:

user@box:/etc/network$ Sudo ifdown eth0 && Sudo ifup eth0
ifdown: interface eth0 not configured
SIOCADDRT: File exists
Failed to bring up eth0.

user@box:/etc/network$ cat interfaces 
auto lo
iface lo inet loopback

allow-hotplug eth0 
allow-hotplug eth1 

auto eth0
iface eth0 inet static
address 10.0.0.1
netmask 255.255.255.0
gateway 10.0.0.254

auto eth1
iface eth1 inet manual

Comme demandé par marco:

user@box:/etc/network/$ cat /run/network/ifstate 
lo=lo
eth1=eth1
53
jwbensley

Vérifiez le contenu du fichier /run/network/ifstate. ifup et ifdown utilisent ce fichier pour noter quelles interfaces réseau peuvent être montées et descendues. Ainsi, ifup peut être facilement confondu lorsque d'autres outils de mise en réseau sont utilisés pour faire apparaître une interface (par exemple ifconfig).

De homme ifup

Le programme enregistre si les interfaces réseau sont actives ou non. Dans des circonstances exceptionnelles, ces enregistrements peuvent devenir incompatibles avec les états réels des interfaces. Par exemple, une interface créée à l'aide d'ifup et déconfigurée ultérieurement à l'aide de ifconfig sera toujours enregistrée comme étant active. Pour résoudre ce problème, vous pouvez utiliser le --force option pour forcer ifup ou ifdown à exécuter des commandes de configuration ou de déconfiguration malgré ce qu'il considère être l'état actuel de l'interface.

56
Marco

ifdown est un programme de haut niveau qui fait beaucoup de choses dont vous pourriez ne pas avoir besoin. De plus, il n'est pas disponible partout. La méthode la plus portable pourrait fonctionner pour vous:

$ Sudo ifconfig eth0 down

Si vous ne pouvez pas le ifup, vous avez probablement un problème de configuration. L'apporter manuellement avec ifconfig eth0 up n'est probablement pas la bonne chose dans ce cas. Sur Debian, ifup est un exécutable binaire, vous devrez donc probablement le strace pour savoir où il se bloque:

$ Sudo strace -e open ifup eth0

Cela vous indiquera quels fichiers ifup ouvre pendant son fonctionnement, ce qui pourrait vous indiquer le problème.

Sur d'autres systèmes (par exemple RHEL et dérivés) ifup est un script Shell, il est donc beaucoup plus facile à déboguer:

# sh -x `which ifup` eth0

Exécution d'un script Shell avec sh -x le fait imprimer chaque ligne qu'il exécute, vous pouvez donc suivre l'exécution.

33
Warren Young

J'ai déjà vu cela quand ethX n'était pas correctement configuré dans /etc/network/interfaces. Cela nécessite quelque chose comme: -

auto eth0
   iface eth0 inet dhcp

Même avec un _ incorrectement configuré /etc/network/interfaces fichier, vous pouvez toujours faire descendre eth0 avec:

$ Sudo ip link set eth0 down
20
Alex Leach

Pour toute personne aux prises avec ce problème:

J'ai vérifié le fichier ifstate. "Nom-interface" dans/run/network.

Il était vide, j'ai donc inclus "interface-name" (eth0) dans ifstate. Fichier "interface-name" dans/run/network.

2
user9885365

Ajouter eth0=eth0 à /run/network/ifstate. Cela a fonctionné pour moi

1
Jeroen

Ce que j'ai trouvé m'a aidé, c'est d'appeler la commande rm pour supprimer le fichier de verrouillage dans /run/network/

Faites ls -la Et vous devriez voir un fichier caché .ifstate Ou quelque chose sous ce nom.

Supprimez cela et essayez ensuite: ifdown && ifup

Si vous avez peur de casser quelque chose, faites simplement une copie de ce fichier à l'extérieur du répertoire et supprimez celui à l'intérieur du répertoire.

0
Hunter Lowe