GNU/Linux >> Linux Esercitazione >  >> Linux

Comando di aggiunta route Linux con esempi

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 quale gateway inviare il traffico. Un gateway potrebbe essere un router nella tua rete.

Il comando route viene utilizzato in Linux per mostrare e modificare la tabella di routing IP.

In questo tutorial spiegherò come utilizzare il comando route per aggiungere percorsi statici tramite gateway per inviare traffico.

1) Mostra la tabella di instradamento

Prima di modificare la tabella di routing, è bene vedere la tabella di default con le route esistenti sul tuo 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 relativo percorso.

Il comando seguente mostra la tabella di instradamento:

$ 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 routing, statistiche dell'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 mostrare i percorsi

$ ip route show

2) Aggiungi un nuovo percorso

Come abbiamo detto sopra, per manipolare la tabella di routing, utilizziamo route add comando (add è l'opzione) per indicare manualmente un percorso statico che i pacchetti utilizzeranno attraverso la rete. Serve per assegnare un percorso statico temporaneo che cambierà solo se l'amministratore modifica manualmente i valori del nuovo percorso.

Ci sono molte possibilità per usare l'aggiunta del 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 utilizzare ip route comando, sintassi come segue:

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

Ad esempio, aggiungiamo una nuova rete di route 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 instradamento usando 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 il valore della maschera di rete. Se non fornito, il comando route trova automaticamente il valore di 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 percorso a un host specifico, usa -host opzione. Dobbiamo solo 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 ciò può essere incomprensibile.

I possibili flag e la sua definizione:

U - il percorso è terminato
H - il target è un host
G - utilizzare il gateway
R - ripristinare il percorso per l'instradamento dinamico
D - installato dinamicamente da demone o reindirizzamento
M - modificato dal demone di routing o reindirizzamento
A - installato da addrconf
C - immissione nella cache
! - rifiuta percorso

3) Rifiuta ed Elimina un percorso

Possiamo manipolare la tabella di routing non solo per aggiungere percorsi statici, ma anche per eliminare o rifiutare un percorso che inseriamo in anticipo.

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

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 nella tabella di routing. Nota che utilizziamo ancora il parametro add option ma alla fine del comando, dobbiamo usare reject opzione. Possiamo conservare o meno il nostro gateway, ma non citiamo l'interfaccia di output.

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

Visualizza la tabella di instradamento 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 al riavvio, quindi abbiamo 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 percorsi statici in Linux usando il comando route add. Dobbiamo notare che con quel metodo, il percorso non cambierà a meno che non lo modifichi. È importante eliminare i percorsi che non ci servono.

Related Read: How to Permanently add Static Route in Linux

Linux
  1. Comando wc Linux con esempi

  2. Comando di ordinamento Linux con esempi

  3. Comando Tee Linux con esempi

  4. Comando testa di Linux con esempi

  5. Comando JQ in Linux con esempi

Comando CD Linux con esempi

Comando Linux watch con esempi

Attendi comando in Linux con esempi

Comando IP Linux con esempi

7 Esempi di comandi di route Linux (come aggiungere route in Linux)

route Esempi di comandi in Linux