Utilisation de ladresse IP au lieu des rapports ifconfig “ RTNETLINK répond: Le fichier existe ” sur Debian

Jai un système Debian fonctionnant comme un routeur sans fil avec eth0 et wlan0. Maintenant, jai ajouté manuellement un réseau supplémentaire sur eth1 avec ifconfig:

 alix:~# ifconfig eth1 192.168.0.2 netmask 255.255.255.0 alix:~# netstat -rn Kernel IP routing table Destination Gateway Genmask Flags MSS Window 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) bytes of data. 64 bytes from 192.168.0.254: icmp_req=1 ttl=64 time=0.537 ms 64 bytes from 192.168.0.254: icmp_req=2 ttl=64 time=0.199 ms 64 bytes from 192.168.0.254: icmp_req=3 ttl=64 time=0.188 ms ^C --- 192.168.0.254 ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2005ms rtt min/avg/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. Cest pourquoi jai ajouté la section suivante à /etc/network/interfaces:

 alix:~# sed -n "/iface eth1/,/^$/p" /etc/network/interfaces iface eth1 inet static address 192.168.0.2 netmask 255.255.255.0 

Mais quand jessaye de démarrer le réseau, jobtiens le erreur suivante:

 alix:~# ifconfig eth1 down alix:~# ifup -v eth1 Configuring interface eth1=eth1 (inet) run-parts --verbose /etc/network/if-pre-up.d run-parts: executing /etc/network/if-pre-up.d/hostapd ip addr add 192.168.0.2/255.255.255.0 broadcast 192.168.0.255 dev eth1 label eth1 RTNETLINK answers: File exists Failed to bring up eth1. 

Lorsque jexécute la commande ip manuellement, jobtiens la même erreur:

 alix:~# ip addr add 192.168.0.2/255.255.255.0 broadcast 192.168.0.255 dev eth1 label eth1 RTNETLINK answers: File exists 

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

Réponse

Jai compris que je devais vider lappareil avant en le faisant apparaître:

# ip addr flush dev eth1 

Effacer manuellement les informations de configuration de linterface comme ceci est mentionné dans le Guide du serveur Ubuntu .

Commentaires

  • Je reçois toujours une erreur (légèrement différente) RTNETLINK answers: No such process Failed to bring up eth1 MAIS mon Eth1 est correctement assigné maintenant ET est UP / UP.
  • ouais, même problème ici: RTNETLINK answers: No such process Failed to bring up eth1
  • Même si vos réponses résout le problème. Ce serait formidable si vous pouviez dire ce quil fait réellement. Quel est ce fichier RTNETLINK qui existe?
  • @ceving: pouvez-vous expliquer ce quest RTNETLINK answers file? De plus, après le vidage, ma carte réseau ne prend pas automatiquement une nouvelle adresse IP, comment demander à dhcp une nouvelle adresse IP?
  • Une mise en garde est que cela efface toutes les portées, ce qui nest pas toujours ce que vous voulez. (Jai découvert cela à la dure)

Réponse

En utilisant ip addr flush fonctionnera, mais il effacera également toutes les adresses définies sur cette interface, y compris éventuellement celle que vous utilisez, si vous « êtes connecté à une machine distante. Cela peut vous verrouiller hors de votre appareil.

RNETLINK answers: File exists se produit lorsque vous « essayez de add une règle qui entre en conflit avec une règle existante. Je suppose que OP rencontrait cela parce quils avaient déjà défini ladresse avec ifconfig. Cette erreur peut généralement être résolue en convertissant la commande add en une commande change ou replace commande.

Il « est beaucoup plus sûr dutiliser ip addr change ou ip addr replace à la place.

Commentaires

  • Ce nest pas une option pour quelquun qui utilise uniquement ifup et ifdown , parce que la commande est câblée dans ces scripts.
  • @alerone en utilisant " sudo ip addr change " sera envoyez-moi cette sortie. " Pas assez dinformations: " dev " largument est requis. " Jai / Nous avons besoin de plus dinformations pour utiliser votre idée. Ce serait bien.

Réponse

Jai eu un problème similaire: au moment où jai joué la scène des 10 000 dollars, cétait exactement ça, et javais essayé dd le truc manquant dans / e / n / id / etho

Mais en étudiant la page de manuel pour les interfaces, jai noté que TOUS les exemples navaient que 2 lignes de données réelles, ladresse ipv4 / 24 , et une ligne de passerelle spécifiant ladresse de mon routeur. Jai donc réduit mon fichier eth0 à cela, et redémarré, et jai parfaitement fonctionné.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *