Saya memiliki sistem yang memiliki dua antarmuka jaringan dengan alamat IP yang berbeda, keduanya berada dalam jangkauan alamat publik (meskipun melalui NAT dalam kasus yang pertama) dan keduanya memiliki gateway yang berbeda. (Panjang cerita, ini untuk tujuan pengujian)
Masalahnya adalah saat ini, jika saya mencoba untuk melakukan ping alamat pada antarmuka kedua, rute default menunjukkan melalui antarmuka pertama - dan tidak pernah tiba dengan benar.
Apakah mungkin untuk memastikan bahwa tanggapan selalu keluar melalui antarmuka jaringan yang sama (dan dengan IP sumber yang sama) ketika mereka masuk? Dan jika demikian, bagaimana?
debian
networking
ipv4
Shadur
sumber
sumber
Jawaban:
Anda salah paham masalah. Tidak setiap paket merupakan respons dan tidak setiap paket dapat dicocokkan dengan beberapa paket lain sehingga "antarmuka jaringan yang sama dengan saat mereka masuk" masuk akal. Yang ingin Anda lakukan adalah memilih gateway untuk sebuah paket berdasarkan alamat IP sumbernya.
Ini disebut routing berbasis sumber atau routing kebijakan. Anda bisa melakukannya dengan aturan sederhana
iptables
, tetapi cara terbaik adalah mengatur dua tabel routing, satu untuk setiap alamat sumber publik:Pertama, buat dua tabel (Ganti <NAME1> dan <NAME2> dengan nama yang masuk akal untuk dua penyedia Anda, sama dengan IP1, DEV1, dan sebagainya):
Tambahkan gateway ke setiap tabel routing (jika perlu):
Kemudian rute default:
Kemudian aturan untuk memilih tabel rute berdasarkan alamat sumber:
Lihat Routing untuk beberapa uplink / penyedia untuk lebih jelasnya.
sumber
Jawaban David Schwartz sangat bagus, tetapi Anda dapat menyederhanakan aturan routing sedikit dengan hanya memiliki satu tabel tambahan, dan menggunakan rute default Anda untuk yang lain. Saya memiliki server yang berada di belakang dua gateway NAT, dan saya baru-baru ini melalui proses menciptakan skenario di antara sekelompok VM.
/etc/network/interfaces
Penampilan saya seperti ini:(ini untuk pengaturan di mana dua ISP adalah Optus dan iiNet, maka nama tabel dari 'optus')
Ini, ditambah garis dalam
/etc/iproute2/rt_tables
membuat tabel, harus menjadi semua yang Anda butuhkan. Anda akan memiliki dua alamat IP; lalu lintas dari 192.168.13.13 akan keluar melalui 192.168.13.11, dan lalu lintas dari 192.168.13.213 akan keluar melalui 192.168.13.10. Konfigurasikan kedua gateway tersebut untuk melakukan penerusan porta secara tepat (192.168.13.11 meneruskan barang ke 192.168.13.13, dan 192.168.13.10 meneruskan barang ke 192.168.13.213), dan sisanya harus mengurus sendiri.Anda mungkin perlu mengubah sedikit hal untuk situasi Anda, karena Anda menggunakan IP publik secara langsung, tetapi sesuatu seperti ini masih bisa berfungsi. Juga, jauh lebih mudah untuk melakukan hal-hal ini di
/etc/network/interfaces
dan kemudian git-mengelola file itu, daripada mencoba mengingat bagaimana Anda mengaturnya, dua tahun kemudian ketika sistem harus di-boot ulang!sumber
Contoh jaringan ganda
Contoh ini menunjukkan bagaimana tambahan
eth1
dengan10.130.0.2
netmask255.255.255.255
dan gateway10.130.0.1
dapat dibuat tersedia untuk layanan yang mengikatnyaping -I eth1 8.8.8.8
Secara teknis kami adalah:
sumber