Tomsk Sysadmins Forum

Unix => Администрирование => Topic started by: SMike on October 03, 2005, 23:20:12

Title: WEB-server и router...
Post by: SMike on October 03, 2005, 23:20:12
Вопрос такой:
Имеется роутер с доступом в интернет (IP (смотрит в инет): yyy.yyy.yyy.yyy, IP (смотрит в локаль): xxx.xxx.xxx.1)
Имеется WEB server в локальной сети (IP: xxx.xxx.xxx.2)
Все адреса реальные.
На роутере поднят DNAT и SNAT - перенаправление по протоколу http на xxx.xxx.xxx.2.
Если пробовать открывать http://yyy.yyy.yyy.yyy (http://yyy.yyy.yyy.yyy) с томского инета - открывается страница, всё нормально (запрос доходит до роутера, перенаправляется на WEB-сервер, генерируется страничка и отправляется обратно _через роутер_ тому, кто запросил страничку).
Если пробовать открывать http://yyy.yyy.yyy.yyy (http://yyy.yyy.yyy.yyy) с локали, то роутер перенаправляет на xxx.xxx.xxx.2, генерируется страница, но ответ идет не через роутер, а напрямую к тому, кто сформировал запрос. Естественно получатель ждет ответа от роутера, а не от WEB-сервера. Поэтому отклоняет результат.

Попробовал на WEB-сервере поднять DNAT/SNAT на 127.0.0.1:
/usr/sbin/iptables -t nat -A PREROUTING -p tcp -d xxx.xxx.xxx.2 --dport 80 -j DNAT --to-destination 127.0.0.1:80
/usr/sbin/iptables -t nat -A POSTROUTING -p tcp -s 127.0.0.1 --sport 80 -j SNAT --to-source yyy.yyy.yyy.yyy:80

правила DNAT срабатывают, SNAT - нет...
Где ошибка/что неправильно?
Title: WEB-server и router...
Post by: demiurg on October 04, 2005, 10:14:49
Quote
Попробовал на WEB-сервере поднять DNAT/SNAT на 127.0.0.1:
/usr/sbin/iptables -t nat -A PREROUTING -p tcp -d xxx.xxx.xxx.2 --dport 80 -j DNAT --to-destination 127.0.0.1:80
/usr/sbin/iptables -t nat -A POSTROUTING -p tcp -s 127.0.0.1 --sport 80 -j SNAT --to-source yyy.yyy.yyy.yyy:80

правила DNAT срабатывают, SNAT - нет...
Где ошибка/что неправильно?
[snapback]4595[/snapback]
"Типовые грабли". Ответ см. в IPTables Tutorial. Например здесь http://demiurg.tomsk.ru/iptables/ (http://demiurg.tomsk.ru/iptables/)
Параграф 6.5.2. Действие DNAT :)
Title: WEB-server и router...
Post by: Dimmus on October 04, 2005, 17:03:07
можно еще через xinetd:
Quote
service blabla
{
        type            = UNLISTED
        port            = 7777
        socket_type     = stream
        protocol        = tcp
        wait            = no
        user            = root
        disable         = no
        redirect        = local_ip local_port
}
Title: WEB-server и router...
Post by: demiurg on October 04, 2005, 17:25:39
Quote
можно еще через xinetd:
[snapback]4611[/snapback]
Очередной велисипед. Зачем? Когда это типовая задача и решается типовыми способами, описанными даже в руководствах. В IPTabls Tutorial разбирается именно такой пример.

Кстати прикола с xinet.d не понял.... Видимо буратино был туп как дрова.....:(
Title: WEB-server и router...
Post by: SMike on October 04, 2005, 17:44:14
Quote
"Типовые грабли". Ответ см. в IPTables Tutorial. Например здесь http://demiurg.tomsk.ru/iptables/ (http://demiurg.tomsk.ru/iptables/)
Параграф 6.5.2. Действие DNAT :)
[snapback]4599[/snapback]

Всё заработало.
Огромное спасибо за подробный help. :D
Title: WEB-server и router...
Post by: DrDeath on October 04, 2005, 23:59:44
Quote
можно еще через xinetd:
[snapback]4611[/snapback]
постановку задачи прочитай внимательнее (;
Title: WEB-server и router...
Post by: Dimmus on October 05, 2005, 01:45:10
да, понял, просто не увидел SNAT, подумал, что просто редирект необходим.