LINUX

Comando Linux Route Add con esempi

il comando linux route add

Il routing è il modo in cui i computer comunicano su una rete locale o su Internet. Per comunicare su una rete, i computer devono sapere a quale gateway devono inviare il traffico. Un gateway potrebbe essere un router nella tua rete.

Il comando route viene utilizzato in Linux per visualizzare e modificare la tabella di routing ip.

In questo tutorial, spiegherò come utilizzare il comando route per aggiungere route statiche attraverso il gateway per inviare traffico.

1) Visualizzare la tabella di instradamento

Prima di modificare la tabella di routing, è bene vedere la tabella di routing predefinita sul kernel Linux.

Usa il comando route con -n opzione per visualizzare la tabella di routing IP del kernel corrente. Questo comando aiuta a identificare le reti connesse localmente con il suo percorso.

Il seguente comando visualizza la tabella di routing:

$ route -n
Kernel IP routing table
Destination   Gateway      Genmask         Flags  Metric Ref  Use Iface
0.0.0.0       192.168.1.1  0.0.0.0         UG     600      0  0   eno1
169.254.0.0   0.0.0.0      255.255.0.0     U      1000     0  0   eno1
172.16.20.0   0.0.0.0      255.255.255.0   U      0        0  0   vmnet8
172.17.0.0    0.0.0.0      255.255.0.0     U      0        0  0   docker0
172.18.0.0    0.0.0.0      255.255.0.0     U      0        0  0   br-707c8e2f7441
192.168.1.0   0.0.0.0      255.255.255.0   U      600      0  0   eno1
192.168.161.0 0.0.0.0      255.255.255.0   U      0        0  0   vmnet1

Puoi anche usare netstat -nr comando per stampare connessioni di rete, tabelle di instradamento, statistiche di interfaccia, connessioni mascherate e appartenenze multicast.

Visualizza la tabella di routing con il comando netstat:

$ netstat -nr
 Kernel IP routing table
 Destination    Gateway      Genmask        Flags  MSS  Window irtt Iface
 0.0.0.0        192.168.1.1  0.0.0.0        UG     0    0      0    eno1
 169.254.0.0    0.0.0.0      255.255.0.0    U      0    0      0    eno1
 172.16.20.0    0.0.0.0      255.255.255.0  U      0    0      0    vmnet8
 172.17.0.0     0.0.0.0      255.255.0.0    U      0    0      0    docker0
 172.18.0.0     0.0.0.0      255.255.0.0    U      0    0      0    br-707c8e2f7441
 192.168.1.0    0.0.0.0      255.255.255.0  U      0    0      0    eno1
 192.168.161.0  0.0.0.0      255.255.255.0  U      0    0      0    vmnet1

Ora abbiamo il comando ip per visualizzare i percorsi

$ ip route show

2) Aggiungi un nuovo percorso

Come abbiamo detto sopra, per manipolare la tabella di instradamento, usiamo route add comando (add è facoltativo) per specificare manualmente un percorso statico che i pacchetti utilizzeranno sulla rete. Viene utilizzato per assegnare un percorso statico temporaneo che cambierà solo se l’amministratore modifica manualmente i valori del nuovo percorso.

Ci sono molte possibilità di utilizzare a aggiungere percorso comando.

Dovremmo indicare la rete di destinazione, la subnet mask della rete e il gateway da utilizzare.

route add -net <network_address> gw <gateway> <interface_name>

In alternativa, ora puoi usare ip route comando, sintassi come segue:

ip route add <network_address> via <gateway> dev <interface_name>

Ad esempio, aggiungiamo una nuova rete di instradamento 10.0.0.0/8 e tramite l’indirizzo IP del gateway 192.168.1.1:

# route add -net 10.0.0.0/8 gw 192.168.1.1 eno1

Ora possiamo visualizzare la tabella di routing utilizzando route -n:

# route -n
Kernel IP routing table
Destination   Gateway      Genmask      Flags  Metric Ref Use Iface
0.0.0.0       192.168.1.1  0.0.0.0       UG     600    0   0   eno1
10.0.0.0      192.168.1.1  255.0.0.0     UG     0      0   0   eno1
169.254.0.0   0.0.0.0      255.255.0.0   U      1000   0   0   eno1
172.16.20.0   0.0.0.0      255.255.255.0 U      0      0   0   vmnet8
172.17.0.0    0.0.0.0      255.255.0.0   U      0      0   0   docker0
172.18.0.0    0.0.0.0      255.255.0.0    U      0      0   0   br-707c8e2f7441
192.168.1.0   0.0.0.0      255.255.255.0  U      600    0   0   eno1
192.168.161.0 0.0.0.0      255.255.255.0  U      0      0   0   vmnet1

Puoi aggiungere netmask opzione se si desidera aggiungere valore alla maschera di rete. Se non fornito, il comando route trova automaticamente il valore netmask.

# route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.1.100 eth0
Kernel IP routing table
Destination  Gateway       Genmask       Flags Metric Ref Use Iface
192.168.1.0  192.168.1.100 255.255.255.0 UG    0      0   0   eth0
192.168.1.0  *             255.255.255.0 U     0      0   0   eth0
169.254.0.0  *             255.255.0.0   U     0      0   0   eth0
10.0.0.0     192.168.1.254 255.0.0.0     UG    0      0   0   eth0
default      192.168.1.1   0.0.0.0       UG    0      0   0   eth0

Per aggiungere un instradamento a un utilizzo host specifico -host opzione. Abbiamo solo bisogno di indicare il gateway da utilizzare.

route add -host <host_IP_address> gw <gateway>

Ad esempio, aggiungiamo un host specifico “10.0.0.10” e quindi visualizziamo la tabella di routing

# route add -host 10.0.0.10 gw 192.168.1.1 eno1
# route -n
 Kernel IP routing table
 Destination   Gateway      Genmask         Flags Metric Ref Use Iface
 0.0.0.0       192.168.1.1  0.0.0.0         UG    600    0   0   eno1
 10.0.0.0      192.168.1.1  255.0.0.0       UG    0      0   0   eno1
 10.0.0.10     192.168.1.1  255.255.255.255 UGH   0      0   0   eno1
 169.254.0.0   0.0.0.0      255.255.0.0     U     1000   0   0   eno1
 172.16.20.0   0.0.0.0      255.255.255.0   U     0      0   0   vmnet8
 172.17.0.0    0.0.0.0      255.255.0.0     U     0      0   0   docker0
 172.18.0.0    0.0.0.0      255.255.0.0     U     0      0   0   br-707c8e2f7441
 192.168.1.0   0.0.0.0      255.255.255.0   U     600    0   0   eno1
 192.168.161.0 0.0.0.0      255.255.255.0   U     0      0   0   vmnet1

Negli esempi precedenti, la colonna flag ha valori diversi e questi possono creare confusione.

Possibili flag e sua definizione:

U – il percorso è salito
H – l’obiettivo è un host
G – utilizzare il gateway
R – ripristinare il percorso per il routing dinamico
D – installato dinamicamente da demone o reindirizzamento
M – cambiato dal demone di instradamento o inoltro
A – installato da addrconf
C – ingresso nella cache
! – rifiuto del percorso

3) Rifiutare ed eliminare un percorso

Possiamo manipolare la tabella di instradamento non solo per aggiungere rotte statiche, ma anche per eliminare o rifiutare una rotta che abbiamo inserito in precedenza.

Per eliminare una rete di destinazione dalla tabella di instradamento, utilizzare route del comando:

route del -net <network_address> gw <gateway> <interface_name>

Ad esempio, per eliminare il percorso verso la nostra rete 10.0.0.0/8:

# route del -net 10.0.0.0/8 gw 192.168.1.1 eno1

Uscita

# route -n
 Kernel IP routing table
 Destination   Gateway     Genmask         Flags Metric Ref Use Iface
 0.0.0.0       192.168.1.1 0.0.0.0         UG    600    0   0   eno1
 10.0.0.10     192.168.1.1 255.255.255.255 UGH   0      0   0   eno1
 169.254.0.0   0.0.0.0     255.255.0.0     U     1000   0   0   eno1
 172.16.20.0   0.0.0.0     255.255.255.0   U     0      0   0   vmnet8
 172.17.0.0    0.0.0.0     255.255.0.0     U     0      0   0   docker0
 172.18.0.0    0.0.0.0     255.255.0.0     U     0      0   0   br-707c8e2f7441
 192.168.1.0   0.0.0.0     255.255.255.0   U     600    0   0   eno1
 192.168.161.0 0.0.0.0     255.255.255.0   U     0      0   0   vmnet1

Per vietare un indirizzo IP ma è ancora sulla tabella di routing. Si noti che utilizziamo ancora il parametro add option, ma alla fine del comando dobbiamo utilizzare il reject opzione. Possiamo preservare o meno il nostro gateway, ma non menzioniamo l’interfaccia in uscita.

route  add -host <host_IP_address> reject

Nel seguente comando rifiuteremo il nostro host “10.0.0.10”:

# route add -host 10.0.0.10 reject

Mostra la tabella di routing dopo le modifiche:

# route -n
 Kernel IP routing table
 Destination   Gateway     Genmask         Flags Metric Ref Use Iface
 0.0.0.0       192.168.1.1 0.0.0.0         UG    600    0   0   eno1
 10.0.0.10      -          255.255.255.255 !H    0      -   0    -
 10.0.0.10     192.168.1.1 255.255.255.255 UGH   0      0   0   eno1
 169.254.0.0   0.0.0.0     255.255.0.0     U     1000   0   0   eno1
 172.16.20.0   0.0.0.0     255.255.255.0   U     0      0   0   vmnet8
 172.17.0.0    0.0.0.0     255.255.0.0     U     0      0   0   docker0
 172.18.0.0    0.0.0.0     255.255.0.0     U     0      0   0   br-707c8e2f7441
 192.168.1.0   0.0.0.0     255.255.255.0   U     600    0   0   eno1
 192.168.161.0 0.0.0.0     255.255.255.0   U     0      0   0   vmnet1

I percorsi aggiunti utilizzando i comandi precedenti non sono persistenti durante un riavvio, quindi ho aggiunto percorsi statici al file di configurazione per mantenerlo permanente.

Per aggiungere route statiche persistenti per qualsiasi distribuzione Linux, puoi utilizzare il file generico /etc/rc.local.

Per Ubuntu e Debian usa il file chiamato “/etc/network/interfaces” e su RHEL/CentOS usa “/etc/sysconfig/network-scripts/route-ethX”.

Conclusione

In questo tutorial, abbiamo imparato come aggiungere route statiche in Linux utilizzando il comando route add. Dovremmo notare che con questo metodo, il percorso non cambierà a meno che tu non lo cambi. È importante eliminare i percorsi di cui non abbiamo bisogno.

Related Read: How to Permanently add Static Route in Linux

Related Articles

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Back to top button
Close