Jawaban:
Anda mungkin dapat melakukan apa yang Anda inginkan 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
Yang pertama ip route add
menunjukkan alamat IP tunggal, mengirimkan antarmuka ethernet yang diberikan (ep3s8) ke router hop berikutnya, 10.0.0.1
Rute kedua adalah untuk seluruh jaringan, 10.xyz, mengirimkan kartu ethernet yang diberikan, eth0. Itu adalah "jaringan lokal", yang tidak memiliki router hop berikutnya, semuanya pada kabel logis yang sama.
Anda ingin membaca man ip-route
sebelum melakukan sesuatu. Juga, bersiaplah untuk reboot, dan jangan melakukan ini dari jarak jauh. Anda dapat dengan mudah membuat rute yang salah yang menghentikan akses jarak jauh Anda. Saya adalah suara pengalaman dalam rekomendasi terakhir ini.
Apa yang Anda tanyakan adalah policy-based routing
atau source-based routing
. Ada pengantar yang sangat baik oleh David Schwartz di situs yang sama ini.
Saya ingin menunjukkan bahwa ada juga program kecil yang rapi, yang dapat ditemukan di sini , yang memungkinkan Anda untuk mengikat aplikasi spesifik ke antarmuka yang diberikan. Ini tentu saja mudah dengan aplikasi seperti openssh yang memiliki opsi untuk mengikat ke alamat mendengarkan yang diinginkan. Tetapi perpustakaan ini memungkinkan Anda untuk mengikat aplikasi bahkan tanpa opsi seperti (seperti Firefox) ke alamat IP yang diberikan.
Dengan cara ini, Anda dapat memilih apakah Anda ingin menyediakan tabel perutean yang terpisah untuk semua aplikasi, atau mengabaikan spesifikasi yang sama berdasarkan per aplikasi.
Tempat yang bagus untuk membaca tentang perutean basis sumber adalah Linux Routing Lanjutan & Kontrol Lalu Lintas
Anda juga dapat membaca manual
man ip rule
man ip route
Secara umum, Anda harus menambahkan aturan (saya menambahkan antarmuka eth1 hanya untuk tujuan demonstrasi, dapat dihilangkan)
#ip rule add dev eth1 to 170.10.0.10 table 2 priority 20000
di sini adalah:
dev eth1 - perangkat yang akan digunakan untuk mengirim paket
ke 170.10.0.10 -
tabel tujuan 2 - tabel di mana Anda harus menentukan
prioritas rute Anda 20000 - prioritas aturan
Anda dapat melihat aturan Anda dengan
#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
Selanjutnya, Anda harus menambahkan rute dengan cara biasa, tetapi Anda harus menentukan tabel (tabel 2), di mana Anda akan meletakkan rute
#ip route add table 2 via 170.10.0.1 default
untuk melihat rute Anda, Anda harus berlari
#ip route show ta 2