web-dev-qa-db-fra.com

Impossible d'ajouter une route statique: SIOADDRT: le réseau est inaccessible

Je frappe ma tête contre un mur depuis quelques jours en essayant de comprendre ceci: Mon ifconfig est:

eth0      Link encap:Ethernet  HWaddr 00:50:56:BB:XX:XX
          inet addr:192.168.36.132  Bcast:192.168.37.255  Mask:255.255.254.0

eth1      Link encap:Ethernet  HWaddr 00:50:56:BB:XX:XX
          inet addr:116.xx.xx.xx    Bcast:116.xx.xx.xx    Mask:255.255.255.192

Lorsque j'essaie d'ajouter une route statique pour sortir de eth0, j'obtiens l'erreur suivante:

servername-test:/ # route add -net 10.248.12.0 netmask 255.255.255.240 gw 192.168.36.254 dev eth0 
SIOCADDRT: Network is unreachable

Ma passerelle par défaut est:

servername-test:~ # netstat -anr
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
116.xx.xx.xx    0.0.0.0         255.255.255.192 U         0 0          0 eth1
192.168.238.0   192.168.36.254  255.255.255.0   UG        0 0          0 eth0
192.168.239.0   192.168.36.254  255.255.255.0   UG        0 0          0 eth0
192.168.36.0    192.168.36.254  255.255.254.0   UG        0 0          0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U         0 0          0 eth0
127.0.0.0       0.0.0.0         255.0.0.0       U         0 0          0 lo
0.0.0.0         116.xx.xx.xx    0.0.0.0         UG        0 0          0 eth1

ip route list production

116.66.240.64/26 dev eth1 proto kernel scope link src 116.xx.xx.xx 
192.168.238.0/24 via 192.168.36.254 dev eth0 
192.168.239.0/24 via 192.168.36.254 dev eth0 
192.168.36.0/23 via 192.168.36.254 dev eth0
169.254.0.0/16 dev eth0 scope link 
127.0.0.0/8 dev lo scope link 
default via 116.xx.xx.xx dev eth1
16
AnonPoster

Vous n'avez pas déclaré 192.168.36.0/23 lien local, même si une adresse lui est attribuée, aucun itinéraire lien local ne semble être répertorié dans vos itinéraires.

192.168.36.0    192.168.36.254  255.255.254.0   UG        0 0          0 eth0
192.168.36.0/23 via 192.168.36.254 dev eth0

Au lieu de cela, son déclaré 192.168.36.0/23 doit être transmis à la passerelle 192.168.36.254 qui techniquement d'après le reste de la table de routage ne semble pas être un voisin (le noyau ne sait pas comment se rendre à 192.168.36.254).

Aucune passerelle ne doit être affectée à 192.168.36.0/23 car selon votre adresse IP 192.168.36.132/23 il s'agit probablement d'une plage de liens locaux (les voisins réagissant directement via ARP).

Vous devriez avoir une entrée comme celle-ci à la place:

192.168.36.0    0.0.0.0  255.255.254.0   U        0 0          0 eth0
192.168.36.0/23 dev eth0 scope link

Pour résoudre ce problème, vous devez supprimer la déclaration de passerelle pour 192.168.36.0/23 et remplacer par une entrée telle que:

ip route add 192.168.36.0/23 dev eth0
16
Matthew Ife

Si c'est le cas, oubliez la ligne de commande, ajoutez simplement l'entrée de fichier Ethernet directement et "service network restart". Ça marche! Je pense que l'ordinateur est stupide, car cela m'a énervé en premier - puis le même itinéraire fonctionne parfaitement tout en ajoutant avec force dans le fichier.

0
Gyaneshwor Pokhrel