GNU/Linux >> Linux Esercitazione >  >> Linux

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

Nella prima parte della serie IP Routing, abbiamo appreso i fondamenti di Linux IP Routing.

Il comando Route viene utilizzato per mostrare/manipolare la tabella di routing IP. Viene utilizzato principalmente per impostare percorsi statici verso host o reti specifici tramite un'interfaccia.

In questo articolo vedremo come manipolare le tabelle di routing in Linux usando il comando route.

Per prima cosa spiegheremo come viene eseguito il routing con alcuni esempi di comandi di route di base, quindi spiegheremo l'utilizzo di un'architettura di rete di esempio su come configurare le route nella tua rete.

Io. Come viene eseguito il percorso?

1. Visualizza percorsi esistenti

Il comando route per impostazione predefinita mostrerà i dettagli delle voci della tabella di routing del kernel. In questo esempio, l'indirizzo IP del sistema in cui viene eseguito il comando route è 192.168.1.157

$ route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.1.0     *               255.255.255.0   U     0      0        0 eth0

Il comando precedente mostra che se la destinazione rientra nell'intervallo di rete 192.168.1.0 – 192.168.1.255, il gateway è *, ovvero 0.0.0.0.

Quando i pacchetti vengono inviati all'interno di questo intervallo IP, l'indirizzo MAC della destinazione viene trovato tramite il protocollo ARP e il pacchetto verrà inviato all'indirizzo MAC.

Se non sai cos'è ARP, dovresti prima capire come funziona il protocollo ARP.

Per inviare pacchetti a una destinazione che non rientra in questo intervallo IP, i pacchetti verranno inoltrati a un gateway predefinito, che decide l'ulteriore instradamento per quel pacchetto. Lo vedremo a breve.

Per impostazione predefinita, il comando route visualizza il nome host nel suo output. Possiamo richiedergli di visualizzare l'indirizzo IP numerico utilizzando l'opzione -n ​​come mostrato di seguito.

$ route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0
0.0.0.0         192.168.1.10    0.0.0.0         UG    0      0        0 eth0

2. Aggiunta di un gateway predefinito

Possiamo specificare che i pacchetti che non sono all'interno della rete devono essere inoltrati a un indirizzo Gateway.

Il seguente comando route add imposterà il gateway predefinito come 192.168.1.10.

$ route add default gw 192.168.1.10

Ora il comando route visualizzerà le seguenti voci.

$ route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.1.0     *               255.255.255.0   U     0      0        0 eth0
default         gateway.co.in   0.0.0.0         UG    0      0        0 eth0

Ora abbiamo appena aggiunto un gateway predefinito alla nostra macchina. Per verificare se funziona correttamente, esegui il ping di un host esterno (ad esempio, google.com) per inviare il pacchetto ICMP.

$ ping www.google.com

Di seguito sono riportate le sequenze di evets che si verificano quando viene eseguito il comando ping sopra.

  1. Per prima cosa interrogherà il server DNS per ottenere l'indirizzo IP di google.com (ad esempio:74.125.236.34)
  2. L'indirizzo di destinazione ( 74.125.236.34 ) non rientra nell'intervallo di rete.
  3. Quindi, nel Layer-3 (intestazione IP) l'IP di DESTINAZIONE sarà impostato come "74.125.236.34".
  4. Nel Layer-2, l'indirizzo MAC DESTINAZIONE sarà compilato come indirizzo MAC del gateway predefinito ( 192.168.1.10's MAC ). Il MAC verrà trovato utilizzando ARP come descritto in precedenza.
  5. Quando il pacchetto viene inviato, lo switch di rete (che funziona su Layer-2), invia il pacchetto al gateway predefinito poiché il MAC di destinazione è quello del gateway.
  6. Una volta che il gateway riceve il pacchetto, in base alla sua tabella di routing, inoltrerà i pacchetti ulteriormente.

I 2 esempi precedenti avrebbero dato una buona idea di come viene eseguito il routing all'interno di una rete. Ora vedremo altre opzioni della riga di comando disponibili con il comando route.

3. Elenca le informazioni sulla cache di routing del kernel

Il kernel conserva le informazioni della cache di routing per instradare i pacchetti più velocemente. Possiamo elencare le informazioni sulla cache di routing del kernel usando il flag -C.

$ route -Cn
Kernel IP routing cache
Source          Destination     Gateway         Flags Metric Ref    Use Iface
192.168.1.157   192.168.1.51    192.168.1.51          0      0        1 eth0
192.168.1.157   74.125.236.69   192.168.1.10          0      0        0 eth0
.
.
.

4. Rifiuta il routing a un determinato host o rete

A volte potremmo voler rifiutare l'instradamento dei pacchetti verso un particolare host/rete. Per farlo, aggiungi la seguente voce.

$ route add -host 192.168.1.51 reject

Come puoi vedere di seguito, non possiamo accedere a quel particolare host (ad es. host .51 che abbiamo appena rifiutato).

$ ping 192.168.1.51
connect: Network is unreachable

Tuttavia, possiamo ancora accedere ad altri host nella rete (ad esempio, l'host .52 è ancora accessibile).

$ ping 192.168.1.53
PING 192.168.1.53 (192.168.1.53) 56(84) bytes of data.
64 bytes from 192.168.1.53: icmp_seq=1 ttl=64 time=7.77 ms

Se desideri rifiutare un'intera rete ( 192.168.1.1 – 192.168.1.255 ), aggiungi la voce seguente.

$ route add -net 192.168.1.0 netmask 255.255.255.0 reject

Ora, non puoi accedere a nessuno degli host in quella rete (ad esempio:.51, .52, .53, ecc.)

$ ping 192.168.1.51
connect: Network is unreachable

$ ping 192.168.1.52
connect: Network is unreachable

$ ping 192.168.1.53
connect: Network is unreachable

II. Un'architettura di rete di esempio (per comprendere il routing)

Usiamo la seguente architettura di rete di esempio per il resto degli esempi.

Nel diagramma seguente, abbiamo 2 singole reti ( 192.168.1.0 e 192.168.3.0, con subnet mask di 255.255.255.0 ).

Abbiamo anche una macchina “GATEWAY” con 3 schede di rete. La prima carta è collegata a 192.168.1.0, la seconda è collegata a 192.168.3.0 e la terza è collegata al mondo esterno.

5. Rendi 192.168.3.* Accessibile da 192.168.1.*

Ora dobbiamo aggiungere una voce di routing tale da poter eseguire il ping 192.168.3. indirizzi IP della serie da 192.168.1. serie. Il punto in comune che abbiamo è la macchina GATEWAY.

Quindi, su ogni macchina nella rete 192.168.1.* verrà aggiunto un gateway predefinito come mostrato di seguito.

$ route add default gw 192.168.1.10

Ora, quando 192.168.1.1 esegue il ping di 192.168.3.1, andrà al GATEWAY tramite 192.168.1.10.

In GATEWAY, aggiungi la seguente voce di instradamento.

$ route add -net 192.168.3.0 netmask 255.255.255.0 gw 192.168.3.10

Ora tutti i pacchetti indirizzati alla rete 192.168.3.* verranno inoltrati tramite l'interfaccia 192.168.3.10, che poi consegna i pacchetti alla macchina indirizzata.

6. Rendi 192.168.1.* Accessibile da 192.168.3.*

È molto simile a quello che abbiamo fatto prima.

Quindi, su ogni macchina nella rete 192.168.3.* verrà aggiunto un gateway predefinito come mostrato di seguito.

$ route add default gw 192.168.3.10

In GATEWAY, aggiungi la seguente voce di instradamento.

$ route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.1.10

Ora le macchine 192.168.3.* possono eseguire il ping delle macchine 192.168.1.*.

7. Consenti accesso a Internet (Mondo esterno)

Nei due esempi precedenti, abbiamo interconnesso le 2 diverse reti.

Ora dobbiamo accedere a Internet da queste 2 diverse reti. Per questo, possiamo aggiungere un routing predefinito (quando nessuna regola di routing corrisponde) al 125.250.60.59 che è connesso al mondo esterno come segue.

$ route add default gw 125.250.60.59

Ecco come funziona:

  1. Ora, quando provi ad accedere a Internet (ad esempio:ping google.com) da una di queste macchine (ad esempio, da 192.168.3.2), la seguente è la sequenza di eventi che si verificano.
  2. Poiché la destinazione (google.com) non rientra nella serie 3.*, verrà inoltrata a GATEWAY tramite l'interfaccia 3.10
  3. In GATEWAY, controlla se la destinazione rientra nell'intervallo 1.*. In questo esempio, non lo è.
  4. Quindi controlla se la destinazione rientra nell'intervallo 2.*. IN questo esempio, non lo è
  5. Infine, utilizza il percorso predefinito per inoltrare i pacchetti (ad esempio utilizzando l'interfaccia 125.250.60.59, che è connessa al mondo esterno).

Linux
  1. Come aggiungere un nuovo percorso statico su RHEL7 Linux

  2. 8 Esempi di comandi TR Linux

  3. Come aggiungere più percorsi in Linux usando esempi di comandi ip

  4. Esempi di comandi rm in Linux

  5. ps Esempi di comandi in Linux

Come aggiungere ed eliminare la route statica in Linux utilizzando il comando IP

Come utilizzare il comando Grep in Linux + utili esempi di Grep

Comando di aggiunta route Linux con esempi

Come aggiungere route su Linux

Esempi di comandi id in Linux

route Esempi di comandi in Linux