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:
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 192.168.13.13
netmask 255.255.255.0
up ip route add table optus default via 192.168.13.10
up ip rule add from 192.168.13.213 table optus
up ip route add default via 192.168.13.11
auto eth0:0
iface eth0:0 inet static
address 192.168.13.213
netmask 255.255.255.0
(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!