Відповідь Девіда Шварца є відмінною, але ви можете трохи спростити правила маршрутизації, маючи лише одну додаткову таблицю та використовуючи маршрут за замовчуванням для іншого. У мене є сервер, який знаходиться за двома NAT-шлюзами, і я нещодавно пройшов процес відтворення цього сценарію між купою VM. Моє /etc/network/interfaces
виглядає так:
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
(це для налаштувань, де два провайдери є Optus і iiNet, звідси назва таблиці "optus")
Це, плюс рядок у /etc/iproute2/rt_tables
створенні таблиці, має бути всім необхідним. У вас буде дві IP-адреси; трафік з 192.168.13.13 вийде через 192.168.13.11, а трафік з 192.168.13.213 вийде через 192.168.13.10. Налаштуйте ці два шлюзи для належного виконання переадресації портів (192.168.13.11 пересилає інформацію до 192.168.13.13, а 192.168.13.10 пересилає дані до 192.168.13.213), а решта повинна подбати про себе.
Можливо, вам доведеться трохи налаштувати речі для вашої ситуації, оскільки ви використовуєте загальнодоступні IP-адреси безпосередньо, але щось подібне все одно має працювати. Крім того, набагато простіше робити ці речі в, /etc/network/interfaces
а потім керувати цим файлом, а не намагатися пригадати, як ви його встановили, через два роки, коли система має бути перезавантажена!