Utiliser ip addr au lieu de ifconfig rapporte “RTNETLINK answers: le fichier existe” sur Debian

53

J'ai un système Debian fonctionnant comme un routeur sans fil avec eth0et wlan0. Maintenant, j'ai ajouté un réseau supplémentaire manuellement eth1avec ifconfig:

alix: ~ # ifconfig eth1 192.168.0.2 masque de réseau 255.255.255.0
alix: ~ # netstat -rn
Table de routage IP du noyau
Drapeaux de masque de passerelle de destination fenêtre MSS irtt Iface
0.0.0.0 192.168.2.1 0.0.0.0 UG 0 0 0 eth0
192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
192.168.2.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
192.168.3.0 0.0.0.0 255.255.255.0 U 0 0 0 wlan0
alix: ~ # ping 192.168.0.254
PING 192.168.0.254 (192.168.0.254) 56 (84) octets de données.
64 octets à partir de 192.168.0.254: icmp_req = 1 ttl = 64 fois = 0,537 ms
64 octets à partir de 192.168.0.254: icmp_req = 2 ttl = 64 fois = 0,199 ms
64 octets à partir de 192.168.0.254: icmp_req = 3 ttl = 64 fois = 0,188 ms
^ C
--- statistiques de ping 192.168.0.254 ---
3 paquets transmis, 3 reçus, 0% de perte de paquet, heure 2005ms
rtt min / moy / max / mdev = 0,188 / 0,308 / 0,537 / 0,161 ms

Tout fonctionne bien comme vous pouvez le voir.

Maintenant, je voudrais rendre la configuration permanente. J'ai donc ajouté la section suivante à /etc/network/interfaces:

alix: ~ # sed -n '/ iface eth1 /, / ^ $ / p' / etc / network / interfaces
iface eth1 inet statique
  adresse 192.168.0.2
  masque de réseau 255.255.255.0

Mais lorsque j'essaie de démarrer le réseau, l'erreur suivante apparaît:

alix: ~ # ifconfig eth1 down
alix: ~ # ifup -v eth1
Configuration de l'interface eth1 = eth1 (inet)
run-parts --verbose /etc/network/if-pre-up.d
run-parts: exécution de /etc/network/if-pre-up.d/hostapd
ip addr add 192.168.0.2/255.255.255.0 diffuser 192.168.0.255 dev eth1 label eth1
RTNETLINK répond: Le fichier existe
Impossible d’afficher eth1.

Lorsque j'exécute la ipcommande manuellement, j'obtiens la même erreur:

alix: ~ # ip addr add 192.168.0.2/255.255.255.0 diffusion 192.168.0.255 dev eth1 étiquette eth1
RTNETLINK répond: Le fichier existe

Quel est le problème avec la commande? Et comment puis-je dire à Debian de faire le bon choix?

ceving
la source

Réponses:

83

Désolé mais je l'ai eu moi-même. J'ai dû rincer l'appareil avant de le remonter:

alix: ~ # ip addr flush dev eth1

L'effacement des informations de configuration d'interface définies manuellement comme celle-ci est mentionné dans le Guide du serveur Ubuntu .

ceving
la source
Je reçois toujours une erreur (légèrement différente) RTNETLINK answers: No such process Failed to bring up eth1MAIS mon Eth1 est correctement assigné maintenant ET est UP / UP.
harperville
Oui, même problème ici: RTNETLINK answers: No such process Failed to bring up eth1
Drew
7
Même si vos réponses résolvent le problème. Ce serait formidable si vous pouviez dire ce que cela fait réellement. Quel est ce fichier RTNETLINK qui existe?
humanite et
@ceving: s'il vous plaît pouvez-vous expliquer ce qui est RTNETLINK answers file? En outre, après le rinçage, ma carte réseau ne prend pas automatiquement une nouvelle adresse IP, comment demander à DHCP une nouvelle adresse IP?
realtebo
@realtebo @humanityANDpeace Consultez le manuel du noyau concernant netlink et rtnetlink . Mais je doute que vous vouliez vraiment savoir. C'est un message d'erreur que l' ipoutil reçoit du noyau. Et au lieu de traduire le message en quelque chose d'utile pour les utilisateurs finaux, ipil le transmet simplement. Mais si vous voulez vraiment connaître les éléments internes, utilisez Ask Questionle Add Commentbouton au lieu du bouton.
Ceving
-1

J'avais un problème similaire: au moment où j'avais joué la scène des 10 000 fonds, c'était exactement cela, et j'avais essayé d'ajouter les éléments manquants à / e / n / id / etho

Mais en étudiant la page de manuel relative aux interfaces, j’ai constaté que TOUS les exemples ne contenaient que deux lignes de données réelles, l’adresse ipv4 / 24 et une ligne de passerelle spécifiant l’adresse de mon routeur. Donc, j'ai réduit mon fichier eth0 à cela, puis j'ai redémarré et j'ai parfaitement fonctionné.

Gène
la source