Suppongo che tu stia eseguendo Linux e, inoltre, che tu stia utilizzando una distribuzione basata su RedHat / CentOS. Altri Unix e distribuzioni richiederanno passaggi simili, ma i dettagli saranno diversi.
Inizia test (nota che questo è molto simile alla risposta di @ Peter. Sto assumendo quanto segue:
- eno0 è isp0 e ha il gateway predefinito complessivo
- eno1 è isp1 e ha l'IP / range 192.168.1.2/24 con gateway 192.168.1.1
I comandi sono i seguenti:
$ echo 200 isp1 >> /etc/iproute2/rt_tables
$ ip rule add from eno1 table isp1
$ ip route add default via 192.168.1.1 dev eno1 table isp1
Il firewall non è coinvolto in alcun modo. I pacchetti di risposta sarebbero sempre stati inviati dall'IP corretto, ma in precedenza venivano inviati tramite l'interfaccia errata. Ora questi pacchetti dall'IP corretto verranno inviati tramite l'interfaccia corretta.
Supponendo che ciò abbia funzionato, ora puoi rendere permanenti le modifiche alla regola e al percorso. Questo dipende dalla versione di Unix che stai utilizzando. Come prima, presumo una distribuzione Linux basata su RH / CentOS.
$ echo "from eno1 table isp1" > /etc/sysconfig/network-scripts/rule-eno1
$ echo "default via 192.168.1.1 dev eno1 table isp1" > /etc/sysconfig/network-scripts/route-eno1
Verifica che la modifica della rete sia permanente:
$ ifdown eno1 ; ifup eno1
Se ciò non ha funzionato, nelle versioni successive di RH / CentOS devi anche scegliere una delle due opzioni:
- Non utilizzare il NetworkManager.service predefinito ; Utilizzare invece network.service . Non ho esplorato i passaggi esatti necessari per questo. Immagino che coinvolga i comandi standard chkconfig o systemctl per abilitare / disabilitare i servizi.
- Installa il pacchetto NetworkManager-dispatcher-routing-rules
Personalmente preferisco installare il pacchetto di regole in quanto è l'approccio più semplice e supportato:
$ yum install NetworkManager-dispatcher-routing-rules
Un'altra forte raccomandazione è quella di abilitare il filtro arp in quanto ciò impedisce altri problemi correlati con configurazioni a doppia rete. Con RH / CentOS, aggiungi il seguente contenuto al file /etc/sysctl.conf:
net.ipv4.conf.default.arp_filter=1
net.ipv4.conf.all.arp_filter=1