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".