Pertanyaan Linux iptables NAT dari keseluruhan / 24 subjaringan


Tujuan saya adalah NAT (menerjemahkan) semua alamat IP yang mencapai eth0 pada semua port dan protokol dengan cara ini: 192.168.55.x -> 192.168.42.x (Saya memiliki ip forwarding diaktifkan dan 192.168.42.0/24 subnetwork ada di eth1). Saya bisa melakukan ini untuk satu host per pasang garis seperti ini, misalnya dengan x = 20:

iptables -t nat -A PREROUTING -i eth0 -d 192.168.55.20 -j DNAT --to 192.168.42.20
iptables -t nat -A POSTROUTING -o eth0 -s 192.168.42.20 -j SNAT --to 192.168.55.20

Tetapi saya tidak dapat menemukan cara untuk menerjemahkan semua 253 host yang mungkin. Saya mencoba ini:

iptables -t nat -A PREROUTING -i eth0 -d 192.168.55.0/24 -j DNAT --to 192.168.42.0-192.168.42.255
iptables -t nat -A POSTROUTING -o eth0 -s 192.168.42.20/24 -j SNAT --to 192.168.55.0-192-168.55.255

Ini menghasilkan terjemahan host secara acak. Berguna untuk load balancing. Tapi bagaimana cara mendapatkan terjemahan satu-ke-satu yang sederhana?

Terima kasih.


3
2017-10-17 12:59


asal


Anda mungkin hanya dapat menggunakan pengulangan dalam file konfigurasi ... mungkin mirip dengan apa yang disarankan untuk port di sini: sini. - 0range


Jawaban:


Dari man iptables-extensions:

NETMAP
  Target ini memungkinkan Anda untuk secara statis memetakan seluruh jaringan alamat ke jaringan alamat lain. Itu hanya bisa digunakan dari aturan di tabel nat.

Jadi satu aturan saja diperlukan:

iptables -t nat -A PREROUTING -d 192.168.55.0/24 -i eth0 -j NETMAP --to 192.168.42.0/24

Jika Anda juga ingin koneksi awalnya dimulai dari "42" bersih untuk dilihat dengan benar, lengkapi dengan aturan kedua ini:

iptables -t nat -A POSTROUTING -s 192.168.42.0/24 -o eth0 -j NETMAP --to 192.168.55.0/24

3
2017-10-24 18:36



Terima kasih! Ini bekerja dengan baik. Namun, saya tidak tahu bagaimana saya tidak memperhatikan yang satu ini. Sudah berminggu-minggu dan saya tidak ingat. Mungkin hanya membaca panduan di mana NETMAP tidak disebutkan. Saya hanya skim iptables halaman manual. Terima kasih atas entri berharga ini! - Djee