Impossible de configurer une route hôte statique - «SIOCADDRT: aucun processus de ce type»

11

À mon bureau, il y a un routeur Windows Server 2008, 192.168.16.1, qui est notre passerelle par défaut. Cela envoie des données via notre connexion Internet principale. Cela fonctionne parfaitement.

192.168.16.1 dispose également d'une autre connexion Internet actuellement inutilisée. Cela se connecte à un routeur, 192.168.1.254 qui se connecte ensuite à notre connexion Internet secondaire.

J'ai configuré le routage et l'accès distant pour acheminer la plage 192.168.1. * Vers notre réseau interne, et je peux envoyer une requête ping à 192.168.1.254 à partir de mon bureau qui a une adresse IP de 192.168.16.22.

J'ai une tâche de téléchargement et de téléchargement très intensive pour une boîte Linux dans le même bureau, donc je veux configurer un itinéraire statique afin de ne pas bloquer notre connexion Internet principale et d'affecter mes collègues. Donc, mon plan est de configurer cette boîte avec un itinéraire statique.

À partir de la boîte Linux, je peux envoyer une requête ping à 192.168.1.254, mais je ne peux pas ajouter une route statique vers le serveur de destination dans notre centre de données:

$ sudo route add -host 123.123.123.123 gw 192.168.1.254 dev eth0
SIOCADDRT: No such process

De googling étendu, ce message d'erreur semble indiquer que je ne peux pas accéder à 192.168.1.254 pour configurer un itinéraire, mais je peux le cingler. J'ai essayé d'ajouter une route statique à 192.168.1.254, qui fonctionnait parfaitement, mais cela n'a pas résolu le problème (comme prévu).

Je ne suis pas assez avancé dans la mise en réseau pour diagnostiquer davantage ce problème car mon expérience est le développement de logiciels, pas l'administration système. Je serais très reconnaissant pour tout conseil donné.

Merci pour votre temps.

Steve Rukuts
la source

Réponses:

8

Le bureau est-il sur 192.168.16.0/24?

Vous ne pouvez pas ajouter un itinéraire (à une cible) via une passerelle à laquelle vous n'êtes pas directement connecté, car votre ordinateur ne sait pas comment trouver son chemin vers le routeur sans passer par l'itinéraire par défaut.

3molo
la source
Correct, la décision de routage doit être définie sur 192.168.16.1.
Mark Wagner
2

Vous pouvez obtenir l' erreur «SIOCADDRT: aucun processus de ce type» si «vous avez tenté de définir un itinéraire pour un réseau avant de définir un itinéraire hôte pour la passerelle qui gère le trafic pour ce réseau».

par exemple pour local -> 172.19.0.1 -> 172.19.0.xx

[root@local]# route add -net 172.19.0.0 gw 172.19.0.1 netmask 255.255.255.0 dev eth0
SIOCADDRT: No such process

RÉPONSE: Créez d'abord une route hôte, puis créez une route réseau.

par exemple pour le réseau en question: local -> 192.168.1.254 -> 123.123.123.123

sudo route add -host 192.168.1.254 dev eth0

sudo route add -net 123.123.123.123 netmask 255.255.255.255 gw 192.168.1.254 dev eth0

Une route statique chargera toujours le réseau , je suppose que cela dépend;). Le trafic de téléchargement / téléchargement doit traverser le réseau. Cela affectera donc les autres utilisateurs du réseau. Vous pouvez limiter la bande passante du trafic ou déplacer ce trafic vers des heures plus calmes si vous souhaitez réduire les effets sur les autres utilisateurs du réseau. Par exemple, rsync a de bonnes options de limitation de bande passante.

J'ai eu un problème similaire avec le routage et SIOCADDRT. local -> dockerserver -> dockercontainer. L'ajout de la route hôte puis de la route nette a permis au routage de fonctionner dans une seule direction.

Cela m'a aidé https://support.symantec.com/en_US/article.TECH142841.html

Exemple de routage complet, le routage fonctionnant dans les deux sens:

dockerserver=172.19.0.1
dockerservernet=172.19.0.0
dockercontainer=172.19.0.25
local=192.168.111.23
localnet=192.168.111.0

### 0. create host route for gw and net route local->docker
[root@local]# route add -host $dockerservernet dev eth0
[root@local]# route add -net $dockerservernet gw $dockerserver netmask 255.255.255.0 dev eth0

### 1. route on dockerserver to local
[root@dockerserver ~]# route add -net $localnet netmask 255.255.255.0 dev eno1
[root@dockerserver ~]# ping $local

### 2. route FROM dockercontainer to local (via gateway dockerserver)
[root@dockercontainer /]# route add -net $localnet netmask 255.255.255.0 gw gateway dev eth1
[root@dockercontainer /]# ping $local
gaoithe
la source
0

En ce qui concerne la partie de la question sur la définition de routes persistantes dans une instance AWS EC2 exécutant Ubuntu, le bon endroit pour placer des routes statiques pour persister pendant un redémarrage, un arrêt et un démarrage AWS est /etc/rc.local.

Dans ce fichier, vous devez placer vos itinéraires dans la ligne au-dessus de la dernière ligne. Vos lignes doivent ressembler à ceci:

route add -net XXX.XXX.XXX.XXX netmask XXX.XXX.XXX.XXX gw XXX.XXX.XXX.XXX

L'exécution de la sudocommande sera perdue au redémarrage.

Duke Hall
la source