Mengikat ke antarmuka jaringan tertentu pada server Linux dengan beberapa gateway

1

Saya mencoba menjalankan program server di mesin lokal saya. Ini memiliki 2 rute ke Internet:

  • 10.0.0.1/24 di eth0 adalah gateway dan subnet pada antarmuka dengan koneksi tercepat; Namun, firewall mencegah saya mengakses server yang terikat ke port TCP.
  • 10.8.0.1/24 di eth1 adalah gateway dan subnet pada antarmuka yang lebih lambat; Namun, saya mengendalikan perangkat gateway dan saya dapat berhasil mem-porting melalui itu dan server terlihat di Internet.

Di mesin saya, saya memiliki rute ini:

default via 10.0.0.1 dev eth0 src 10.0.0.x metric 203 default via 10.8.0.1 dev eth1 metric 800 10.8.0.0/24 dev eth1 proto kernel scope link src 10.8.0.y 10.0.0.0/24 dev eth0 proto kernel scope link src 10.0.0.x metric 203

Jelas, rute via eth0 akan diprioritaskan dalam keadaan normal; namun, agar server saya dapat diteruskan ke port, perlu menggunakan gateway default di eth1 antarmuka tanpa mengarahkan semua lalu lintas lainnya melalui antarmuka yang sama.

Apa yang saya coba sejauh ini adalah untuk mengikat server ke alamat 10.8.0.y yang berarti hanya menerima koneksi yang tujuannya adalah alamat IP itu. Namun, ini tidak berfungsi untuk mengarahkan lalu lintas ke arah yang berlawanan. Saya telah memverifikasi menggunakan tcpdump -i eth1 -p 25561 bahwa koneksi masuk diterima, tetapi ketika memonitor keduanya eth0 dan eth1 Saya tidak melihat balasan keluar. Sambungan kemudian akan habis pada klien jarak jauh setelah tidak menerima balasan.

Adakah orang lain yang mencoba melakukan hal serupa dan dapat memberikan beberapa wawasan tentang bagaimana saya perlu mengaturnya?

Adam Gausmann
sumber
Biasanya Anda perlu menggunakan ip route table dikombinasikan dengan ip rule untuk menautkan IP sumber ke rute tujuan yang cocok. Melihat lartc.org/howto/lartc.rpdb.multiple-links.html . Pertimbangkan mesin lokal Anda adalah router linux yang terhubung ke penyedia 1 dan penyedia 2 demi mengikuti penjelasan di sana. Anda bahkan dapat menggunakan iptables untuk memilih penyedia yang tepat (misalnya dengan memilih ip sumber yang tepat).
A.B
Juga dengan menggunakan tabel routing (seperti pada halaman lartc.org) saya tidak berpikir itu diperlukan sama sekali, tetapi yang lain, mungkin Anda bisa membuatnya bekerja hanya dengan menonaktifkan rp_filter (filter jalur balik). Melihat kernel.org/doc/Documentation/networking/ip-sysctl.txt (entri rp_filter). Nonaktifkan keduanya untuk all dan eth1.
A.B