Risposte:
Probabilmente puoi fare quello che vuoi con ip route
:
ip route add 8.8.8.8 via 10.0.0.1 dev enp3s8
ip route add 10.0.0.0/24 dev eth0
Il primo ip route add
mostra un singolo indirizzo IP, inviato una determinata interfaccia ethernet (ep3s8) al router hop successivo, 10.0.0.1
Il secondo percorso è per un'intera rete, 10.xyz, inviata una data scheda Ethernet, eth0. Questa è la "rete locale", che non ha un router hop successivo, è tutto sullo stesso filo logico.
man ip-route
Tuttavia, vuoi leggere prima di fare qualsiasi cosa. Inoltre, preparati a riavviare e non eseguire questa operazione da remoto. Puoi creare facilmente percorsi errati che interrompono l'accesso remoto. Sono la voce dell'esperienza in quest'ultima raccomandazione.
Quello che stai chiedendo è policy-based routing
o source-based routing
. C'è un'eccellente introduzione di David Schwartz su questo stesso sito.
Vorrei sottolineare che esiste anche un piccolo programma pulito, che può essere trovato qui , che consente di associare applicazioni specifiche a una determinata interfaccia. Questo è ovviamente facile con app come openssh che hanno opzioni per collegarsi all'indirizzo di ascolto desiderato. Ma questa libreria ti consente di associare anche le applicazioni senza tali opzioni (come Firefox) a un determinato indirizzo IP.
In questo modo, è possibile scegliere se si desidera fornire tabelle di routing separate per tutte le applicazioni o sovrascrivere le stesse specifiche in base all'applicazione.
un buon posto per leggere sul routing di base di origine è il routing avanzato e il controllo del traffico di Linux,
inoltre è possibile leggere i manuali
man ip rule
man ip route
In generale, dovresti aggiungere la regola (ho aggiunto l'interfaccia eth1 solo a scopo dimostrativo, può essere omessa)
#ip rule add dev eth1 to 170.10.0.10 table 2 priority 20000
qui sono:
dev eth1 - dispositivo che verrà utilizzato per inviare i pacchetti
a 170.10.0.10 - la
tabella di destinazione 2 - tabella in cui è necessario assegnare
priorità ai percorsi 20000 - priorità della regola
puoi vedere la tua regola di
#ip ru sh
0: from all lookup local
20000: from all to 170.10.0.10 iif eth1 lookup 2
32766: from all lookup main
32767: from all lookup default
Successivamente, è necessario aggiungere i percorsi nel modo consueto, ma è necessario specificare la tabella (tabella 2), in cui inserire il percorso
#ip route add table 2 via 170.10.0.1 default
per vedere i tuoi percorsi, dovresti correre
#ip route show ta 2