GNU/Linux >> Linux Esercitazione >  >> Linux

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

Oltre al percorso predefinito, puoi anche configurare percorsi aggiuntivi.

Ad esempio, sul tuo server potresti avere 2 interfacce (eth0 ed eth1). Per impostazione predefinita, tutto il traffico viene instradato attraverso l'interfaccia eth0 indipendentemente dall'indirizzo IP che hai configurato su eth1.

Per instradare il traffico in entrata e in uscita attraverso eth1, oltre al percorso predefinito (eth0), devi anche aggiungere percorsi aggiuntivi per eth1 .

In questo tutorial, utilizziamo il seguente esempio:

  • eth0 è stato configurato con indirizzo IP 19.86.101.54 con netmask 255.255.255.0 e gateway predefinito 19.86.101.1
  • eth1 è stato configurato con l'indirizzo IP 19.86.100.176 con netmask 255.255.255.0 e il suo indirizzo IP del gateway è 19.86.100.1

Puoi visualizzare il tuo indirizzo IP corrente delle tue schede di interfaccia usando il comando ifconfig come mostrato di seguito.

# ifconfig -a
eth0      Link encap:Ethernet  HWaddr 00:50:56:8E:0B:EC
          inet addr:19.86.101.54  Bcast:19.86.101.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:3735 errors:0 dropped:0 overruns:0 frame:0
          TX packets:336 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:295679 (288.7 Kb)  TX bytes:50312 (49.1 Kb)

eth1      Link encap:Ethernet  HWaddr 00:50:56:8E:27:0D
          inet addr:19.86.100.176  Bcast:19.86.100.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:14 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:840 (840.0 b)  TX bytes:0 (0.0 b)

Inoltre, l'output del comando netstat indica che il gateway predefinito punta a eth0,

# netstat -rn
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
0.0.0.0         19.86.101.1     0.0.0.0         UG        0 0          0 eth0
19.86.100.0     0.0.0.0         255.255.255.0   U         0 0          0 eth1
19.86.101.0     0.0.0.0         255.255.255.0   U         0 0          0 eth0
127.0.0.0       0.0.0.0         255.0.0.0       U         0 0          0 lo
169.254.0.0     0.0.0.0         255.255.0.0     U         0 0          0 eth0

Con le impostazioni di cui sopra, potresti essere in grado di eseguire il ping di entrambi i gateway e comunicare con altri dispositivi senza problemi. Ma ricorda che tutto il traffico viene instradato tramite eth0 per impostazione predefinita.

Quando esegui il ping dell'indirizzo IP 19.86.100.176 dall'esterno della tua rete, potresti notare che non sarà possibile eseguire il ping.

Per implementare ciò, è necessario creare una nuova politica nella tabella di routing. La tabella di routing si trova in /etc/iproute2/rt_tables. Il file della regola iniziale prima della configurazione potrebbe essere simile a quello mostrato di seguito.

# cat /etc/iproute2/rt_tables
#
# reserved values
#
255     local
254     main
253     default
0       unspec
#
# local
#
#1      inr.ruhep
#

Per visualizzare tutte le regole attuali, usa il comando ip come mostrato di seguito:

# ip rule show
0:      from all lookup local
32766:  from all lookup main
32767:  from all lookup default

Innanzitutto, fai un backup di rt_Tables prima di apportare modifiche.

cd /etc/iproute2
cp rt_tables rt_tables.orig

Quindi, crea una nuova voce della tabella di routing delle politiche nel file /etc/iproute2/rt_tables:

echo "1 admin" >> /etc/iproute2/rt_tables

Ora aggiungi le voci di instradamento nella tabella di amministrazione.

ip route add 19.86.100.0/24 dev eth1 src 19.86.100.176 table admin
ip route add default via 19.86.100.1 dev eth1 table admin

Nell'esempio sopra:

  • Nel primo comando ip, stiamo aggiungendo la sottorete 19.86.100.0 con una maschera di rete 255.255.255.0 con l'indirizzo IP di origine 19.86.100.176 e il dispositivo eth1 alla tabella di amministrazione.
  • Nel secondo comando ip, stiamo aggiungendo la route 19.86.100.1 alla tabella di amministrazione. In questo modo tutte le regole definite nella tabella di amministrazione instradano il traffico attraverso il dispositivo eth1.

Una volta che i comandi precedenti sono stati eseguiti correttamente, è necessario istruire il sistema operativo su come utilizzare questa tabella.

In "ip rule show" potresti notare la riga "32766:from all lookup main". Questa è la riga che indica al sistema operativo di instradare tutto il traffico definito nella tabella "main" che è il gateway predefinito.

Tutte le regole vengono eseguite in ordine crescente. Quindi, aggiungeremo voci di regole sopra la tabella "principale".

ip rule add from 19.86.100.176/24 table admin
ip rule add to 19.86.100.176/24 table admin
ip route flush cache

Nell'esempio sopra:

  • Il primo comando aggiunge la regola che tutto il traffico diretto all'IP di eth1 deve utilizzare la tabella di routing "admin" invece di quella "main".
  • Il secondo comando aggiunge la regola che tutto il traffico in uscita dall'IP di eth1 deve utilizzare la tabella di routing "admin" invece di quella "main".
  • Il terzo comando viene utilizzato per confermare tutte queste modifiche nei comandi precedenti

Infine, verifica che le tue modifiche siano state apportate in modo appropriato utilizzando il seguente comando:

# ip rule show
0:      from all lookup local
32764:  from all to 19.86.100.176/24 lookup admin
32765:  from 19.86.100.176/24 lookup admin
32766:  from all lookup main
32767:  from all lookup default

A questo punto, dovresti essere in grado di eseguire il ping dell'indirizzo IP 19.86.100.176 dalla rete esterna e visualizzare che tutto il traffico che dovrebbe utilizzare eth1 funziona come previsto.

Per rendere persistenti queste modifiche durante il riavvio, puoi aggiungere questi comandi a /etc/init.d/boot.local (per SUSE Linux) o /etc/rc.d/rc.local (per Redhat, CentOS).

Se si desidera configurare un altro indirizzo IP su una sottorete diversa, ripetere tutti i passaggi precedenti, ma utilizzare un nome di tabella diverso. Invece della tabella "admin", usa la tabella "admin-new".


Linux
  1. Come riavviare Linux utilizzando la riga di comando

  2. Come uccidere un processo su Linux usando il comando?

  3. 5 Esempi pratici di comandi per il fusore Linux

  4. Come navigare nella riga di comando di Linux utilizzando l'associazione di tasti (esempi di comandi Linux Ctrl)

  5. Come accelerare il processo di avvio di Linux utilizzando gli esempi di comandi Startpar

Come creare una directory in Linux usando il comando mkdir

Come utilizzare il comando Dig in Linux (10 esempi)

Come utilizzare il comando Linux rm con esempi

Comando di aggiunta route Linux con esempi

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

route Esempi di comandi in Linux