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

Исходное сообщение
"Squid и две подсети"

Отправлено zRPG , 16-Авг-12 19:31 
Есть две локальных подсети 192.168.1.0/24 и 192.168.2.0/24. Обе они находятся в одной физической.
Есть комп с адресом 192.168.1.1 на котором стоит Squid3. Компы из первой подсети (родной для компа с squid) могут ходить в инет через него. Со второй нет.
Объясните пожалуйста почему, и как заставить, если это вообще возможно?

PS: на компе с squid всего один внутренний интерфейс с адресом 192.168.1.1 смотрящий в локалку.
Пинги из обоих подсетей ходят до squid.
nc -z 192.168.1.1 3128 тоже работает из обоих подсетей.
Фаервол отключен вообще, selinux тоже.
Конфиг на самом деле у меня сложнее, но там много лишнего, поэтому создал и проверил такой, проблема та же:
*** squid.conf ***
http_access allow all
http_access deny all
http_port 192.168.1.1:3128
http_port 127.0.0.1:3128
coredump_dir /var/spool/squid
** end file ***
На проверочных машинах, конфигурацию тоже упростил и проверил работу с ней. Проблема та же самая. Там прописано IP 192.168.2.X NETMASK 255.255.255.0 GW 192.168.1.1 DNS 8.8.8.8
В фаерфоксе в настройках прописан HTTP-прокси 192.168.1.1 3128


Содержание

Сообщения в этом обсуждении
"Squid и две подсети"
Отправлено reader , 16-Авг-12 20:54 
>[оверквотинг удален]
> http_access allow all
> http_access deny all
> http_port 192.168.1.1:3128
> http_port 127.0.0.1:3128
> coredump_dir /var/spool/squid
> ** end file ***
> На проверочных машинах, конфигурацию тоже упростил и проверил работу с ней. Проблема
> та же самая. Там прописано IP 192.168.2.X NETMASK 255.255.255.0 GW 192.168.1.1
> DNS 8.8.8.8
> В фаерфоксе в настройках прописан HTTP-прокси 192.168.1.1 3128

в 192.168.2.X/24 , 192.168.1.1 шлюзом не может быть, машина с squid так же должна знать где искать 192.168.2.0/24

так что показывайте таблицы маршрутизации с обоих машин


"Squid и две подсети"
Отправлено zRPG , 17-Авг-12 00:47 
Да, я опечатался. У меня GW 192.168.1.254.
> в 192.168.2.X/24 , 192.168.1.1 шлюзом не может быть

сидел думал почему, так и не понял. До сих пор думаю что может если например маскарад интерфейсов включен и пинги идут до него, то все будет работать. Объясните пожалуйста почему не может?
> так что показывайте таблицы маршрутизации с обоих машин

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.0.0     0.0.0.0         255.255.255.0   U     1      0        0 eth0
0.0.0.0         192.168.1.254   0.0.0.0         UG    0      0        0 eth0

Активные маршруты:
Сетевой адрес           Маска сети      Адрес шлюза       Интерфейс  Метрика
          0.0.0.0          0.0.0.0    192.168.1.254     192.168.2.1       20
        127.0.0.0        255.0.0.0        127.0.0.1       127.0.0.1       1
      192.168.2.0    255.255.255.0      192.168.2.1     192.168.2.1       20
      192.168.2.1  255.255.255.255        127.0.0.1       127.0.0.1       20
    192.168.2.255  255.255.255.255      192.168.2.1     192.168.2.1       20
        224.0.0.0        240.0.0.0      192.168.2.1     192.168.2.1       20
  255.255.255.255  255.255.255.255      192.168.2.1     192.168.2.1       1
Основной шлюз:       192.168.1.254


"Squid и две подсети"
Отправлено write2net , 17-Авг-12 09:37 
> Основной шлюз:       192.168.1.254

а ifconfig/ip addr, ipconfig?


"Squid и две подсети"
Отправлено write2net , 17-Авг-12 09:41 
> Да, я опечатался. У меня GW 192.168.1.254.
>> в 192.168.2.X/24 , 192.168.1.1 шлюзом не может быть

тоже не может быть



"Squid и две подсети"
Отправлено Аноним , 17-Авг-12 09:52 
> Да, я опечатался. У меня GW 192.168.1.254.
>> в 192.168.2.X/24 , 192.168.1.1 шлюзом не может быть
> сидел думал почему, так и не понял.

Потому что это аксиома. Основной шлюз для машин, находящихся в одной подсети, должен находиться в этой же подсети.


"Squid и две подсети"
Отправлено zRPG , 17-Авг-12 11:37 
> Потому что это аксиома. Основной шлюз для машин, находящихся в одной подсети,
> должен находиться в этой же подсети.

Не может или всё-таки "может, но не должен в целях безопасности"? Просто именно так настроено и работает.

Хорошо, вот конфиги, я конфигурацию чуть изменил, но смысл тот же.
$ ifconfig
eth0      Link encap:Ethernet  HWaddr  
          inet addr:192.168.7.1  Bcast:192.168.127.255  Mask:255.255.128.0
          inet6 addr:                            Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:59 errors:0 dropped:0 overruns:0 frame:0
          TX packets:37 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:18639 (18.2 KiB)  TX bytes:5249 (5.1 KiB)
lo
          ...........

$ route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.0.0     0.0.0.0         255.255.128.0   U     1      0        0 eth0
0.0.0.0         192.168.1.254   0.0.0.0         UG    0      0        0 eth0

> ipconfig /all

Настройка протокола IP для Windows

        Имя компьютера  . . . . . . . . . : virt2-1
        Основной DNS-суффикс  . . . . . . :
        Тип узла. . . . . . . . . . . . . : неизвестный
        IP-маршрутизация включена . . . . : нет
        WINS-прокси включен . . . . . . . : нет

Подключение по локальной сети - Ethernet адаптер:

        DNS-суффикс этого подключения . . :
        Описание  . . . . . . . . . . . . : AMD PCNET Family Ethernet Adapter (PCI)
        Физический адрес. . . . . . . . . : 08-00-27-66-8A-EB
        Dhcp включен. . . . . . . . . . . : нет
        IP-адрес  . . . . . . . . . . . . : 192.168.200.1
        Маска подсети . . . . . . . . . . : 255.255.128.0
        Основной шлюз . . . . . . . . . . : 192.168.1.254
        DNS-серверы . . . . . . . . . . . : 8.8.8.8

> route print

===========================================================================
Список интерфейсов
0x1 ........................... MS TCP Loopback interface
0x10003 ...08 00 27 66 8a eb ...... AMD PCNET Family Ethernet Adapter (PCI) - Минипорт планировщика пакетов
===========================================================================
===========================================================================
Активные маршруты:
Сетевой адрес           Маска сети      Адрес шлюза       Интерфейс  Метрика
          0.0.0.0          0.0.0.0    192.168.1.254   192.168.200.1      20
        127.0.0.0        255.0.0.0        127.0.0.1       127.0.0.1      1
    192.168.128.0    255.255.128.0    192.168.200.1   192.168.200.1      20
    192.168.200.1  255.255.255.255        127.0.0.1       127.0.0.1      20
  192.168.200.255  255.255.255.255    192.168.200.1   192.168.200.1      20
        224.0.0.0        240.0.0.0    192.168.200.1   192.168.200.1      20
  255.255.255.255  255.255.255.255    192.168.200.1   192.168.200.1      1
Основной шлюз:       192.168.1.254
===========================================================================
Постоянные маршруты:
  Отсутствует


"Squid и две подсети"
Отправлено Аноним , 17-Авг-12 11:47 
>> Потому что это аксиома. Основной шлюз для машин, находящихся в одной подсети,
>> должен находиться в этой же подсети.
> Не может или всё-таки "может, но не должен в целях безопасности"?
> Просто именно так настроено и работает.

Не работает. Даже если кажется, что работает, на самом деле это не так. В чем вы сейчас, кстати, наглядно убеждаетесь, пытаясь пройти несуществующими маршрутами из одной сети в другую. Разбирайтесь с маршрутизацией, настраивайте нормальный роутинг между подсетями.


"Squid и две подсети"
Отправлено write2net , 17-Авг-12 11:57 
у сервера все путем, а у клиентов винда, разве не ругается, что кривой шлюз?
адрес шлюза для клиентов должен попадать в их подсеть.
если шлюз находится в другой подсети, клиенты не могут узнать по ARP его MAC-адрес, чтобы отправлять ему пакеты в чужие подсети.

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

ставьте альтернативный ip сквиду из сети 192.168.128.0/17 и не страдайте.

$ ipcalc -b 192.168.7.1 255.255.128.0
Address:   192.168.7.1          
Netmask:   255.255.128.0 = 17  
Wildcard:  0.0.127.255          
=>
Network:   192.168.0.0/17      
HostMin:   192.168.0.1          
HostMax:   192.168.127.254      
Broadcast: 192.168.127.255      
Hosts/Net: 32766                 Class C, Private Internet


$ ipcalc -b 192.168.200.1 255.255.128.0
Address:   192.168.200.1        
Netmask:   255.255.128.0 = 17  
Wildcard:  0.0.127.255          
=>
Network:   192.168.128.0/17    
HostMin:   192.168.128.1        
HostMax:   192.168.255.254      
Broadcast: 192.168.255.255      
Hosts/Net: 32766                 Class C, Private Internet


"Squid и две подсети"
Отправлено reader , 17-Авг-12 11:12 
>[оверквотинг удален]
>     192.168.2.255  255.255.255.255      
> 192.168.2.1     192.168.2.1      
>  20
>         224.0.0.0    
>     240.0.0.0      192.168.2.1
>     192.168.2.1      
> 20
>   255.255.255.255  255.255.255.255      192.168.2.1  
>    192.168.2.1       1
> Основной шлюз:       192.168.1.254

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

так что для начала приведите в соответствие, а потом уже дальше разбираться


"Squid и две подсети"
Отправлено zRPG , 17-Авг-12 12:04 
> это бред, шлюзами могут быть машины из подсети в которую входит машина,
> если действительно хотите понять почему именно так, прочитайте как происходит хождение
> пакетов в сети

Я понял почему вы так говорите. Но ведь работает!?!

> так что для начала приведите в соответствие, а потом уже дальше разбираться

тогда надо будет алиас поднять на шлюзе чтобы ввести его во вторую подсеть



"Squid и две подсети"
Отправлено write2net , 17-Авг-12 12:07 
> Я понял почему вы так говорите. Но ведь работает!?!

ну это зависит от настроек 1.254. вероятно.



"Squid и две подсети"
Отправлено reader , 17-Авг-12 12:12 
>> это бред, шлюзами могут быть машины из подсети в которую входит машина,
>> если действительно хотите понять почему именно так, прочитайте как происходит хождение
>> пакетов в сети
> Я понял почему вы так говорите. Но ведь работает!?!

вы постоянно показываете разные данные , притом те которые влияют на работу
там серая сеть покажите уж как есть на самом деле

Address:   192.168.0.0          11000000.10101000.00000000. 00000000
Netmask:   255.255.255.0 = 24   11111111.11111111.11111111. 00000000
Wildcard:  0.0.0.255            00000000.00000000.00000000. 11111111
=>
Network:   192.168.0.0/24       11000000.10101000.00000000. 00000000
HostMin:   192.168.0.1          11000000.10101000.00000000. 00000001
HostMax:   192.168.0.254        11000000.10101000.00000000. 11111110
Broadcast: 192.168.0.255        11000000.10101000.00000000. 11111111
Hosts/Net: 254                   Class C, Private Internet

##
Address:   192.168.1.0          11000000.10101000.00000001. 00000000
Netmask:   255.255.255.0 = 24   11111111.11111111.11111111. 00000000
Wildcard:  0.0.0.255            00000000.00000000.00000000. 11111111
=>
Network:   192.168.1.0/24       11000000.10101000.00000001. 00000000
HostMin:   192.168.1.1          11000000.10101000.00000001. 00000001
HostMax:   192.168.1.254        11000000.10101000.00000001. 11111110
Broadcast: 192.168.1.255        11000000.10101000.00000001. 11111111
Hosts/Net: 254                   Class C, Private Internet

##
Address:   192.168.2.0          11000000.10101000.00000010. 00000000
Netmask:   255.255.255.0 = 24   11111111.11111111.11111111. 00000000
Wildcard:  0.0.0.255            00000000.00000000.00000000. 11111111
=>
Network:   192.168.2.0/24       11000000.10101000.00000010. 00000000
HostMin:   192.168.2.1          11000000.10101000.00000010. 00000001
HostMax:   192.168.2.254        11000000.10101000.00000010. 11111110
Broadcast: 192.168.2.255        11000000.10101000.00000010. 11111111
Hosts/Net: 254                   Class C, Private Internet

##
Address:   192.168.0.0          11000000.10101000.0 0000000.00000000
Netmask:   255.255.128.0 = 17   11111111.11111111.1 0000000.00000000
Wildcard:  0.0.127.255          00000000.00000000.0 1111111.11111111
=>
Network:   192.168.0.0/17       11000000.10101000.0 0000000.00000000
HostMin:   192.168.0.1          11000000.10101000.0 0000000.00000001
HostMax:   192.168.127.254      11000000.10101000.0 1111111.11111110
Broadcast: 192.168.127.255      11000000.10101000.0 1111111.11111111
Hosts/Net: 32766                 Class C, Private Internet

##
Address:   192.168.200.0        11000000.10101000.1 1001000.00000000
Netmask:   255.255.128.0 = 17   11111111.11111111.1 0000000.00000000
Wildcard:  0.0.127.255          00000000.00000000.0 1111111.11111111
=>
Network:   192.168.128.0/17     11000000.10101000.1 0000000.00000000
HostMin:   192.168.128.1        11000000.10101000.1 0000000.00000001
HostMax:   192.168.255.254      11000000.10101000.1 1111111.11111110
Broadcast: 192.168.255.255      11000000.10101000.1 1111111.11111111
Hosts/Net: 32766                 Class C, Private Internet


"Squid и две подсети"
Отправлено And , 16-Авг-12 21:22 
Можно на комп-е со Сквидом сделать 192.168.1.1/22 и забыть. Если бы заранее правильно выбрать адресацию, то маска могла бы быть /23 - 23 бита, т.е. именно две подсетки по 255 адресов каждая. Маска 22 даст 4 подсетки по 255 адресов каждая, но главное тут не цифра 4, а то, что две сабжевых сети попадают в диапазон /22, в числе всех 4-х. На остальных машинах можно оставить как есть.

Иначе, правильно сказали: надо настраивать маршруты. См. справку по команде route, или по команде ip с параметром route.

И сделайте - что попросил предыдущий оратор. На его просьбу отвечайте ему, а не мне.


"Squid и две подсети"
Отправлено zRPG , 17-Авг-12 00:49 
Тоже размышлял про пересечение сетей. Но интересует нормальный способ.



"Squid и две подсети"
Отправлено _uznik_ , 17-Авг-12 10:09 
А если на интерфейсе смотрящем в локалку поднять алиас 192.168.2.1, а в squid добавить http_port 192.168.2.1:3128. По моему должно все заработать.


"Squid и две подсети"
Отправлено zRPG , 17-Авг-12 11:08 
> А если на интерфейсе смотрящем в локалку поднять алиас 192.168.2.1, а в
> squid добавить http_port 192.168.2.1:3128. По моему должно все заработать.

Я тоже так думаю. Но опять же способ ИМХО не совсем корректный.


"Squid и две подсети"
Отправлено reader , 17-Авг-12 11:14 
>> А если на интерфейсе смотрящем в локалку поднять алиас 192.168.2.1, а в
>> squid добавить http_port 192.168.2.1:3128. По моему должно все заработать.
> Я тоже так думаю. Но опять же способ ИМХО не совсем корректный.

как раз таки правильный


"Squid и две подсети"
Отправлено And , 17-Авг-12 15:13 
> Я тоже так думаю. Но опять же способ ИМХО не совсем корректный.

Тогда уж можно поставить вопрос о корректности разных подсеток воткнутых в один коммутатор (простой коммутатор). Всё может сильно зависеть от задумок автора, независимо от прочих технологий. Смотря что принять за корректное. /* Чур авторов не обсуждать! Надо считать не корректным или корректным, значит - надо! */

Всё зависит от софта. Как реализовано, так и работает. Мосты, алиасы, указание подсети - кмк способы нормальные и не выходящие за рамки стандартов.

А вот возможность выйти в ИНет с машины с ip адресом 192.168.1.0, возможность работать с одинаковыми IP адресами у двух машин - да, хоть и реализовано, но противоречит принятым правилам. Для сравнения.


"Squid и две подсети"
Отправлено zRPG , 17-Авг-12 15:29 
Вы правы, нашёл я свою ошибку. Теперь действительно не работает :)
Попробую сам настроить, потом напишу.

"Squid и две подсети"
Отправлено bill , 17-Авг-12 19:38 
> Вы правы, нашёл я свою ошибку. Теперь действительно не работает :)
> Попробую сам настроить, потом напишу.

Шлюз по умолчанию может находиться в другой сети, это не ошибка. Всего лишь надо прописать до него маршрут.


"Squid и две подсети"
Отправлено Аноним , 17-Авг-12 20:02 
>> Вы правы, нашёл я свою ошибку. Теперь действительно не работает :)
>> Попробую сам настроить, потом напишу.
> Шлюз по умолчанию может находиться в другой сети, это не ошибка. Всего
> лишь надо прописать до него маршрут.

Не канифольте человеку мозг, он в простой маршрутизации путается, а вы ему предлагаете решать нетривиальные задачи. Пусть решает свою проблему исходя из того, что default gateway для сети в обязательном порядке принадлежит к этой же сети. А то он нанастраивает маршрутов до другой стороны темной стороны. Поймет, как что работает - будет разбираться дальше.


"Squid и две подсети"
Отправлено bill , 17-Авг-12 20:06 
>>> Вы правы, нашёл я свою ошибку. Теперь действительно не работает :)
>>> Попробую сам настроить, потом напишу.
>> Шлюз по умолчанию может находиться в другой сети, это не ошибка. Всего
>> лишь надо прописать до него маршрут.
> Не канифольте человеку мозг, он в простой маршрутизации путается, а вы ему
> предлагаете решать нетривиальные задачи. Пусть решает свою проблему исходя из того,
> что default gateway для сети в обязательном порядке принадлежит к этой
> же сети. А то он нанастраивает маршрутов до другой стороны темной
> стороны. Поймет, как что работает - будет разбираться дальше.

Уговорили)


"Squid и две подсети"
Отправлено zRPG , 20-Авг-12 15:08 
Согласен, действительно запутался в тривиальном.

Долго не отвечал, потому что не мог поднять алиас интерфейса. Затем отключил NetworkManager и получилось. Прокси работает. Спасибо. У меня есть ещё один вопрос.
Если на сервере есть dns-сервер и прокси, то что из них работает первым при обращении клиента в интернет?
И ещё более интересный вопрос, а как найти ответ самому на вопрос выше (трасировкой, по логам или как вообще...)?


"Squid и две подсети"
Отправлено reader , 20-Авг-12 15:39 
> Согласен, действительно запутался в тривиальном.
> Долго не отвечал, потому что не мог поднять алиас интерфейса. Затем отключил
> NetworkManager и получилось. Прокси работает. Спасибо. У меня есть ещё один
> вопрос.
> Если на сервере есть dns-сервер и прокси, то что из них работает
> первым при обращении клиента в интернет?

если прокси прописан в браузере, то dns ему не нужны, резолвить будет прокси. если прокси прозрачный, то браузер отправляет запрос к dns, а потом запрос на ip web-сервера, а этот запрос уже заворачивается на прокси.

> И ещё более интересный вопрос, а как найти ответ самому на вопрос
> выше (трасировкой, по логам или как вообще...)?

читать как какие технологии работают


"Squid и две подсети"
Отправлено zRPG , 20-Авг-12 16:01 
спасибо за объснение.

> читать как какие технологии работают

читать это конечно хорошо, но ведь можно и опытным путём. Наверняка есть какие-то способы. Процессорное время в логах или ещё что. К тому же я задал этот вопрос не только про этот случай. А вообще.



"Squid и две подсети"
Отправлено reader , 20-Авг-12 16:21 
> спасибо за объснение.
>> читать как какие технологии работают
> читать это конечно хорошо, но ведь можно и опытным путём. Наверняка есть
> какие-то способы. Процессорное время в логах или ещё что. К тому
> же я задал этот вопрос не только про этот случай. А
> вообще.

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

проверить ответ про прокси и dns можно с помощью tcpdump желательно с ключом -n , но при большом потоке и большой нагрузке на систему он может пропускать пакеты


"Squid и две подсети"
Отправлено zRPG , 20-Авг-12 18:17 
> проверить ответ про прокси и dns можно с помощью tcpdump желательно с
> ключом -n , но при большом потоке и большой нагрузке на
> систему он может пропускать пакеты

попробую, спасибо.