Назад | Перейти на главную страницу

перенаправлять трафик с 2 внешних сетевых адаптеров Ubuntu на определенные внутренние хосты

У меня возникают проблемы с перенаправлением входящего трафика на 2 внешних интерфейса на моем сервере Ubuntu 12.10 на 2 отдельных внутренних хоста. Я могу перенаправить входящий трафик на моем eth0 на внутренний хост, но входящий трафик на мой интерфейс eth1 никуда не уходит.

Какие-либо предложения?

Вот настройки iptables и интерфейсов, которые я использую.

/etc/iptables.rules
-A PREROUTING -i eth0 -p tcp -m tcp --dport 8000 -j DNAT --to-destination 10.101.0.20:3389
-A PREROUTING -i eth1 -p tcp -m tcp --dport 3389 -j DNAT --to-destination 10.101.0.79:3389
-A POSTROUTING -o eth0 -j SNAT --to-source 63.22.130.186
-A POSTROUTING -o eth1 -j SNAT --to-source 63.22.130.187


/etc/network/interfaces
# eth0
auto eth0
allow-hotplug eth0
iface eth0 inet static
      address 63.22.130.186
      netmask 255.255.255.248
      gateway 63.22.130.185
      dns-nameservers 8.8.8.8
      pre-up iptables-restore < /etc/iptables.rules

# eth1
auto eth1
allow-hotplug eth1
iface eth1 inet static
      address 63.22.130.187
      netmask 255.255.255.248
      dns-nameservers 8.8.8.8

# eth2
auto eth2
allow-hotplug eth2
iface eth2 inet static
      address 10.101.0.1
      netmask 255.255.0.0
      dns-nameservers 8.8.8.8

Проблема связана с оператором -o в цепочке POSTROUTING:

 -A POSTROUTING -o eth0 -j SNAT --to-source 63.22.130.186
 -A POSTROUTING -o eth1 -j SNAT --to-source 63.22.130.187

Пакеты будут маршрутизироваться на хосты в сети 10.101 / 16, поэтому вам понадобится -o eth2.

Почему бы не попробовать что-нибудь вроде:

-A PREROUTING -p tcp -m tcp -d 63.22.130.186 --dport 8000 -j DNAT --to-destination 10.101.0.20:3389
-A PREROUTING -p tcp -m tcp -d 63.22.130.187 --dport 3389 -j DNAT --to-destination 10.101.0.79:3389

И поместите IP-адрес eth1 как вторичный для eth0