У меня есть учетная запись в стойке, и я хочу иметь такую настройку:
Брандмауэр / шлюз
eth0 - общедоступный IP (56.X.X.X)
eth1 - Частный IP (10.X.X.X)
Ubuntu 10.10. Принимает подключения из Интернета и направляет порт 80 на узел 1 (10.x.x.x)
узел1
eth0 - Отключено Публичный IP (56.X.X.X)
eth1 - Частный IP (10.X.X.X)
Ubuntu 10.10. Этот сервер является веб-сервером.
Вопрос:
Я много раз искал, как этого добиться, и не уверен, какие шаги мне нужно предпринять. Rackspace дает мне эти IP-адреса, я не контролирую (на данный момент), какие IP-адреса для этих узлов, но у каждого из них есть общедоступный IP-адрес на eth0 и частный IP-адрес на eth1.
Как я могу успешно перенаправить запросы порта 80 от Брандмауэр / шлюз к узел1?
РЕДАКТИРОВАТЬ: Вот мои настройки iptables
# Generated by iptables-save v1.4.4 on Fri Jun 17 18:09:39 2011
*nat
:PREROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [1:452]
:POSTROUTING ACCEPT [1:452]
-A PREROUTING -i eth0 -p tcp -m tcp --dport 80 -j DNAT --to-destination 10.182.33.191:80
COMMIT
# Completed on Fri Jun 17 18:09:39 2011
# Generated by iptables-save v1.4.4 on Fri Jun 17 18:09:39 2011
*filter
:INPUT ACCEPT [154:11452]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [81:9672]
-A INPUT -i eth0 -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
COMMIT
# Completed on Fri Jun 17 18:09:39 2011
Вы могли бы сделать это с некоторыми iptables
правила на вашем хосте брандмауэра. Я предполагаю, что вы уже используете iptables, так как вы называете его хостом «брандмауэр»:
iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 80 -j DNAT --to 10.x.x.x:80
iptables -A INPUT -p tcp -m state --state NEW --dport 80 -i eth0 -j ACCEPT
Первое правило устанавливает переадресацию портов для пакетов, поступающих на порт 80 eth0. Он перенаправляет их на 10.x.x.x: 80 (введите здесь IP-адрес вашего узла 1). Второе правило разрешает новые входящие соединения на 80-м порту eth0. Конечно, это необходимо, чтобы действительно разрешить пакетам попадать на брандмауэр.
Не забудьте сохранить конфигурацию iptables и загрузить ее при запуске системы. Я использую пакет iptables-persistant
для этой цели, но немного раздражает то, что в Ubuntu нет стандартного метода сохранения и загрузки брандмауэра.