Impossibile impostare una route host statica - "SIOCADDRT: nessun processo di questo tipo"


11

Nel mio ufficio, c'è un router di Windows Server 2008, 192.168.16.1, che è il nostro gateway predefinito. Questo invia i dati attraverso la nostra principale connessione Internet. Funziona perfettamente.

192.168.16.1 ha anche un'altra connessione Internet che è attualmente inutilizzata. Questo si collega a un router, 192.168.1.254, che si collega alla nostra connessione Internet secondaria.

Ho impostato Routing e Accesso remoto per instradare l'intervallo 192.168.1. * Alla nostra rete interna e sono in grado di eseguire il ping 192.168.1.254 dal mio desktop con un indirizzo IP di 192.168.16.22.

Ho un'attività di upload e download molto intensa per un box Linux nello stesso ufficio, quindi voglio impostare una route statica in modo da non legare la nostra connessione Internet principale e influenzare i miei colleghi. Quindi, il mio piano è di impostare questa scatola con un percorso statico.

Dalla scatola di Linux, sono in grado di eseguire il ping 192.168.1.254, ma non riesco ad aggiungere una route statica al server di destinazione nel nostro data center:

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

Da un ampio google, questo messaggio di errore sembra indicare che non riesco ad accedere a 192.168.1.254 per impostare un percorso, ma posso eseguirne il ping. Ho provato ad aggiungere una route statica a 192.168.1.254, che ha funzionato perfettamente, ma questo non ha risolto il problema (come previsto).

Non sono abbastanza avanzato in rete per diagnosticare ulteriormente questo problema poiché il mio background è lo sviluppo del software, non l'amministrazione del sistema. Sarei molto grato per qualsiasi consiglio dato.

Grazie per il tuo tempo.

Risposte:


8

Il desktop è su 192.168.16.0/24?

Non è possibile aggiungere una route (a nessuna destinazione) tramite un gateway a cui non si è direttamente connessi, poiché il computer non è in grado di trovare la strada per il router senza passare per la route predefinita.


Corretto, la decisione di instradamento deve essere impostata su 192.168.16.1.
Mark Wagner,

2

È possibile ottenere l' errore "SIOCADDRT: Nessun processo di questo tipo" se "Si è tentato di impostare una route per una rete prima di impostare una route host per il gateway che gestisce il traffico per quella rete."

ad es. per locale -> 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

RISPOSTA: creare prima una route host, quindi creare una route di rete.

ad es. per la rete in questione: locale -> 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

Un percorso statico caricherà comunque la rete , suppongo che dipenda;). Il traffico di upload / download deve attraversare la rete. Quindi influenzerà altri utenti della rete. È possibile limitare la larghezza di banda del traffico o spostarlo in orari più tranquilli se si desidera ridurre l'effetto su altri utenti della rete. ad es. rsync ha buone opzioni di limitazione della larghezza di banda.

Ho avuto un problema simile con il routing e SIOCADDRT. local -> dockerserver -> dockercontainer. L'aggiunta di route host e net route ha fatto sì che il routing funzionasse in una direzione.

Questo mi ha aiutato https://support.symantec.com/en_US/article.TECH142841.html

Esempio di routing completo, il routing funziona in entrambi i modi:

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

0

Per quanto riguarda la parte della domanda sull'impostazione di route persistenti in un'istanza AWS EC2 che esegue Ubuntu, il posto corretto per posizionare route statiche per persistere attraverso un riavvio, l'arresto e l'avvio di AWS è /etc/rc.local.

All'interno di quel file, è necessario posizionare i percorsi nella riga sopra l'ultima riga. Le tue linee dovrebbero apparire così:

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

L'esecuzione del sudocomando andrà persa al riavvio.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.