LINUX.ORG.RU

Правило для NAT Loopback

 , , nat loopback,


0

1

Привет. Пытаюсь из RHEL 6 сделать роутер, в целом все настроил, но есть второй сервер (тоже с RHEL6) нам нам apache и соответственно на первом сервере надо пробросить 80 порт на второй сервер.

#iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to 10.0.1.15:80

Из интернета, если зайти на mysite.com, то все отлично открывается, а если зайти с компа на mysite.com из той же сети что и сервер, то не открывается.

Предположу что это NAT Loopback, но какое правило для него прописать в iptables никак не могу понять, всю голову сломал(

Заранее спасибо.



Последнее исправление: cetjs2 (всего исправлений: 2)

Есть мнение, что компы из внутренней сети не знают о внешнем адресе, стало быть надо добавить такое же правило, но только для внутренней подсети. Например

iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j DNAT --to 192.168.0.15:80

Я могу ошибаться.

the_green
()
Ответ на: комментарий от the_green

Мрр :) До этого, когда пытался отрыть адрес, то браузер моментально говорил что открыть нереально. Сейчас уходит в вечный лоадинг.

Я просто, если честно, даже вообще без понятия что и как этот iptables работает, только немного.

И толком статей в гугле нет на эту тему, только вот эта, но после нее я сам ушел в вечный лоадинг (( http://for-invent.com/nat-loopback-using-iptables/

i54854684
() автор топика
Ответ на: комментарий от the_green

Во, да, именно так :) Client не может зайти на web server, если пытаться зайти на mysite.com этого сервера.

i54854684
() автор топика
Ответ на: комментарий от the_green

На IP роутера? Все так же, к сожалению. Из интернета открывается, из локальной сети моментально пишет что открыть невозможно.

i54854684
() автор топика
Ответ на: комментарий от the_green

Роутер: В интернет eth0 - адрес внешний, динамический. В локальную сеть eth1 - 10.0.1.1 - 255.255.255.0

Apache сервер имеет только eth0 - 10.0.1.15

i54854684
() автор топика
Ответ на: комментарий от i54854684

Только я не понимаю смысла всего этого, ведь клиенты и веб сервер находятся в одной подсети и обращаться к веб серверу можно напрямую, а если важно имя то прописать его в hosts или поднять свой днс для локалки.

the_green
()
Ответ на: комментарий от i54854684

Чееееррртт(( Увы, не работает(

Увы, я исчерпал свой ресурс знаний.

the_green
()
Ответ на: комментарий от the_green

Сервер обрабатывает клики от интернет рекламы. По сути во внутренней сети только я. Нужно заходить именно через mysite.com чтобы генерировать ссылки.

Про DNS тоже давали такую идею, но только это еще хуже для меня... Впрлане DNS для меня темный лес.

В любом случае огромное спасибо что попытались.

i54854684
() автор топика
Ответ на: комментарий от i54854684

Дружище, смотри сюда:

iptables -t nat -A PREROUTING --dst 10.0.1.1 -p tcp --dport 80 -j DNAT --to-destination 10.0.1.15

iptables -t nat -A POSTROUTING --dst 10.0.1.15 -p tcp --dport 80 -j SNAT --to-source 10.0.1.1

У меня отработало нормально. Вся суть в том, что сервер отдает пакет не тебе, а шлюзу. Курить вот это тыц

the_green
()
Ответ на: комментарий от the_green

Один глупый вопрос. А если я использую MASQUERADE, а не SNAT, то как должно выглядить вторая строчка? Я естественно попрбовал заменить, но правило даже не применилось.

i54854684
() автор топика
Ответ на: комментарий от the_green

Увы :( Сейчас попробую почитать ссыоку, которую вы дали, только проснулся. Еще интересная вещь замечена. Когда применяю эти правила, то система, которая учитывает клики, показывает что все клики пришли с 10.0.1.1. Как только сбрасываю настройки iptables, то все нормально становится. https://picasaweb.google.com/lh/photo/k0pf4DcL_YeEDrmhLAhCyUURBD15VZnos5ehwxI...

i54854684
() автор топика
Ответ на: комментарий от the_green

Я без понятия что я делаю, но всякие эксперементы привили вот к чему. Опять же, читал тут: http://for-invent.com/nat-loopback-using-iptables/ Они говорят ввести:

iptables -t nat -A PREROUTING -s 192.168.0.0/24 -d 58.96.95.114 -p tcp --dport 80 -j DNAT --to-destination 192.168.0.250

и

iptables -t nat -A POSTROUTING -d 192.168.0.250 -s 192.168.0.0/24 -p tcp --dport 80 -j SNAT --to-source 58.96.95.114

Меняю на свои адреса и свою подсеть, за исключение параметра -d 58.96.95.114, так как у меня внешний адрес динамический.

iptables -t nat -A PREROUTING -s 10.0.1.0/24 -p tcp --dport 80 -j DNAT --to-destination 10.0.1.15
iptables -t nat -A POSTROUTING -d 10.0.1.15 -s 10.0.1.0/24 -p tcp --dport 80 -j SNAT --to-source 10.0.1.1

Моя сервер открывается! Но, тогда интернет работает как-то странно, не все открывается. Допустим, попробуем зайти на вк: https://picasaweb.google.com/lh/photo/IPNUrjYJiOFxDRPrhZN1TUURBD15VZnos5ehwxI... Вобщем, мой iptables выглядит так:

[root@hprouter ~]# service iptables status
Table: filter
Chain INPUT (policy ACCEPT)
num  target     prot opt source               destination         
1    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED 
2    ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0           
3    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           
4    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:22 
5    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:53 
6    ACCEPT     udp  --  0.0.0.0/0            0.0.0.0/0           state NEW udp dpt:53 
7    REJECT     all  --  0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited 

Chain FORWARD (policy ACCEPT)
num  target     prot opt source               destination         
1    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED 
2    ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0           
3    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           
4    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           
5    ACCEPT     tcp  --  0.0.0.0/0            10.0.1.15           state NEW tcp dpt:80 
6    REJECT     all  --  0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited 

Chain OUTPUT (policy ACCEPT)
num  target     prot opt source               destination         

Table: nat
Chain PREROUTING (policy ACCEPT)
num  target     prot opt source               destination         
1    DNAT       tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:80 to:10.0.1.15:80 
2    DNAT       tcp  --  10.0.1.0/24          0.0.0.0/0           tcp dpt:80 to:10.0.1.15 

Chain POSTROUTING (policy ACCEPT)
num  target     prot opt source               destination         
1    MASQUERADE  all  --  0.0.0.0/0            0.0.0.0/0           
2    SNAT       tcp  --  10.0.1.0/24          10.0.1.15           tcp dpt:80 to:10.0.1.1 

Chain OUTPUT (policy ACCEPT)
num  target     prot opt source               destination

i54854684
() автор топика
Ответ на: комментарий от i54854684

показывает что все клики пришли с 10.0.1.1.

Совершенно справедливо показывает. В остальном я бессилен.

the_green
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.