Saya berasumsi Anda menjalankan Linux dan, lebih lanjut, bahwa Anda menggunakan distribusi berbasis RedHat / CentOS. Unix dan distribusi lainnya akan memerlukan langkah yang sama - tetapi detailnya akan berbeda.
Mulailah dengan menguji (perhatikan bahwa ini sangat mirip dengan jawaban @ Peter. Saya berasumsi sebagai berikut:
- eno0 adalah isp0 dan memiliki gateway default keseluruhan
- eno1 adalah isp1 dan memiliki IP / range 192.168.1.2/24 dengan gateway 192.168.1.1
Perintahnya adalah sebagai berikut:
$ 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
Firewall tidak terlibat dengan cara apa pun. Paket balasan akan selalu dikirim dari IP yang benar - tetapi sebelumnya dikirim melalui antarmuka yang salah. Sekarang paket-paket ini dari IP yang benar akan dikirim melalui antarmuka yang benar.
Dengan anggapan hal di atas berfungsi, Anda sekarang dapat membuat aturan dan perubahan rute permanen. Ini tergantung pada versi Unix yang Anda gunakan. Seperti sebelumnya, saya mengasumsikan distribusi Linux berbasis 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
Uji bahwa perubahan jaringan itu permanen:
$ ifdown eno1 ; ifup eno1
Jika itu tidak berhasil, pada versi RH / CentOS yang lebih baru Anda juga harus menggunakan salah satu dari dua opsi:
- Jangan gunakan NetworkManager.service default ; Gunakan layanan network.ser sebagai gantinya. Saya belum menjelajahi langkah-langkah tepat yang diperlukan untuk ini. Saya akan membayangkan ini melibatkan perintah chkconfig atau systemctl standar untuk mengaktifkan / menonaktifkan layanan.
- Instal paket NetworkManager-dispatcher-routing-rules
Secara pribadi saya lebih suka menginstal paket aturan karena ini adalah pendekatan yang lebih sederhana dan lebih didukung:
$ yum install NetworkManager-dispatcher-routing-rules
Rekomendasi kuat lainnya adalah mengaktifkan penyaringan arp karena ini mencegah masalah terkait lainnya dengan konfigurasi jaringan ganda. Dengan RH / CentOS, tambahkan konten berikut ke file /etc/sysctl.conf:
net.ipv4.conf.default.arp_filter=1
net.ipv4.conf.all.arp_filter=1