URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID8
Нить номер: 6787
[ Назад ]

Исходное сообщение
"Как SQUID посылает запросы на внутренний Apache"

Отправлено vadim007 , 19-Мрт-10 19:21 
Разрулите такой затык: на шлюзе стоят SQUID и Apache. SQUID - кеширующий, порт - 3128. Из локалки идет запрос странички, размещенной на Apache. SQUID, как и положено, обращается к DNS, получает внешний адрес своего шлюза. И вот тут неясно: SQUID пошлет запрос на внешний IP шлюза, или на localhost?

Содержание

Сообщения в этом обсуждении
"Как SQUID посылает запросы на внутренний Apache"
Отправлено cuad0 , 20-Мрт-10 01:11 
>Разрулите такой затык: на шлюзе стоят SQUID и Apache. SQUID - кеширующий,
>порт - 3128. Из локалки идет запрос странички, размещенной на Apache.
>SQUID, как и положено, обращается к DNS, получает внешний адрес своего
>шлюза. И вот тут неясно: SQUID пошлет запрос на внешний IP
>шлюза, или на localhost?

Несильно я юзал сквид, но если апач настроен только на внешний ифейс (и у dns-а view для локалки не юзаются), дальше этого внешнего ифейса запрос не уйдет.
У вас как сеть организована?
Есть локалка 192.168, воткнута в одну сетевую на сервере (шлюз для локалки, сквид, апач); сервер роутит локалку через нат в интернеты через внешний интерфейс с внешним_ip?

Ответ на ваш текущий вопрос: зависит от настройки dns.
А выражение "SQUID, как и положено, обращается к DNS, получает внешний адрес своего шлюза" малость некорректно.


"Как SQUID посылает запросы на внутренний Apache"
Отправлено vadim007 , 20-Мрт-10 13:18 
1)
>Несильно я юзал сквид, но если апач настроен только на внешний ифейс
>(и у dns-а view для локалки не юзаются), дальше этого внешнего
>ифейса запрос не уйдет.

2)
>У вас как сеть организована?
>Есть локалка 192.168, воткнута в одну сетевую на сервере (шлюз для локалки,
>сквид, апач); сервер роутит локалку через нат в интернеты через внешний
>интерфейс с внешним_ip?

3)
>Ответ на ваш текущий вопрос: зависит от настройки dns.
>А выражение "SQUID, как и положено, обращается к DNS, получает внешний адрес
>своего шлюза" малость некорректно.

2)
Так и есть: шлюз с двумя сетевыми, 192.168.Х.Х - локалка, 91.Х.Х.Х - внешний белый ip. Свой DNS не поднят - используется провайдерский.
1)
Где-то на задворак памяти осталось, что ядро будет слать пакеты на localhost, если ip назначения соответствует локальному хосту. Суть этого утверждения уже не помню, потому и решил уточнить. Если оно так и есть, то выходит такая непонятная картина: любые пакеты с dst=192.168.1.1 (eth1 в локалке) или dst=91.123.23.45 (eth0 наружу) поступят на localhost. Что при этом будет в заголовках пакетов?
3)
Почему?


"Как SQUID посылает запросы на внутренний Apache"
Отправлено начинающиий , 20-Мрт-10 16:58 
>1)
>Где-то на задворак памяти осталось, что ядро будет слать пакеты на localhost,
>если ip назначения соответствует локальному хосту. Суть этого утверждения уже не
>помню, потому и решил уточнить. Если оно так и есть, то
>выходит такая непонятная картина: любые пакеты с dst=192.168.1.1 (eth1 в локалке)
>или dst=91.123.23.45 (eth0 наружу) поступят на localhost. Что при этом будет
>в заголовках пакетов?

Если адрес назначения соответствует одному из локальных интерфейсов (локалхост или другой, не важно), то ядро обычно передает пакет на следующий уровень соответссвующей программе.
В заголовке пакета на протяжении всего его следования в_общем_случае остаются те адреса отправителя и получателя, которые вписала программа-отправитель.


"Как SQUID посылает запросы на внутренний Apache"
Отправлено cuad0 , 21-Мрт-10 00:30 
>3)
>Почему?

Ай, сорри, тогда по невыспанности совсем вылетела из головы очевидная вещь, что dns может быть не локальным, а провайдерским...
Может, быть смутила фраза "squid ... получает внешний адрес своего шлюза".
От dns сквид получит отрезолвленный из доменного имени ip. Т.к. днс - провайдерский, этот адрес в любом случае будет ip_внешнего_ифейса. Туда запросы и пойдут. Если сквид биндится на внутренний ифейс (192.168) и запросы посылает с него, до апача запросы также пройдут через gated (шлюз) и nat. Если сквид биндится и на внешний ифейс, запрос он пошлет туда же.
Насчет того, что в этом случае dst будет равен (заменен) на localhost, совсем не уверен. По сути, быстрее отправить пакет, где получатель=отправитель, чем дополнительно роутить пакет с внешнего ифейса на loopback.
Да и вообще, localhost не означает всю машину как таковую, как напр. "from/to me" в правилах ipfw, а обозначает отдельную машину в сети 127.0.0.1/32, которая работает с этой сетью через loopback-интерфейс lo0. И строго говоря, эта сеть - точно такая же, как и 192.168 с внутр. интерфейсом и внеш_ip с внеш_интерфейсом.

Так что, имхо, ответ на ваш вопрос: на внешний ip.


"Как SQUID посылает запросы на внутренний Apache"
Отправлено vadim007 , 21-Мрт-10 08:33 
>Да и вообще, localhost не означает всю машину как таковую, как напр.
>"from/to me" в правилах ipfw, а обозначает отдельную машину в сети
>127.0.0.1/32, которая работает с этой сетью через loopback-интерфейс lo0. И строго
>говоря, эта сеть - точно такая же, как и 192.168 с
>внутр. интерфейсом и внеш_ip с внеш_интерфейсом.
>
>Так что, имхо, ответ на ваш вопрос: на внешний ip.

Благодарю за развернутый ответ. Особенно убедительным был довод с ipfw :)