Есть две локальных подсети 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
>[оверквотинг удален]
> 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
так что показывайте таблицы маршрутизации с обоих машин
Да, я опечатался. У меня 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
> Основной шлюз: 192.168.1.254а ifconfig/ip addr, ipconfig?
> Да, я опечатался. У меня GW 192.168.1.254.
>> в 192.168.2.X/24 , 192.168.1.1 шлюзом не может бытьтоже не может быть
> Да, я опечатался. У меня GW 192.168.1.254.
>> в 192.168.2.X/24 , 192.168.1.1 шлюзом не может быть
> сидел думал почему, так и не понял.Потому что это аксиома. Основной шлюз для машин, находящихся в одной подсети, должен находиться в этой же подсети.
> Потому что это аксиома. Основной шлюз для машин, находящихся в одной подсети,
> должен находиться в этой же подсети.Не может или всё-таки "может, но не должен в целях безопасности"? Просто именно так настроено и работает.
Хорошо, вот конфиги, я конфигурацию чуть изменил, но смысл тот же.
$ 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
===========================================================================
Постоянные маршруты:
Отсутствует
>> Потому что это аксиома. Основной шлюз для машин, находящихся в одной подсети,
>> должен находиться в этой же подсети.
> Не может или всё-таки "может, но не должен в целях безопасности"?
> Просто именно так настроено и работает.Не работает. Даже если кажется, что работает, на самом деле это не так. В чем вы сейчас, кстати, наглядно убеждаетесь, пытаясь пройти несуществующими маршрутами из одной сети в другую. Разбирайтесь с маршрутизацией, настраивайте нормальный роутинг между подсетями.
у сервера все путем, а у клиентов винда, разве не ругается, что кривой шлюз?
адрес шлюза для клиентов должен попадать в их подсеть.
если шлюз находится в другой подсети, клиенты не могут узнать по 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
>[оверквотинг удален]
> 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это бред, шлюзами могут быть машины из подсети в которую входит машина, если действительно хотите понять почему именно так, прочитайте как происходит хождение пакетов в сети
так что для начала приведите в соответствие, а потом уже дальше разбираться
> это бред, шлюзами могут быть машины из подсети в которую входит машина,
> если действительно хотите понять почему именно так, прочитайте как происходит хождение
> пакетов в сетиЯ понял почему вы так говорите. Но ведь работает!?!
> так что для начала приведите в соответствие, а потом уже дальше разбираться
тогда надо будет алиас поднять на шлюзе чтобы ввести его во вторую подсеть
> Я понял почему вы так говорите. Но ведь работает!?!ну это зависит от настроек 1.254. вероятно.
>> это бред, шлюзами могут быть машины из подсети в которую входит машина,
>> если действительно хотите понять почему именно так, прочитайте как происходит хождение
>> пакетов в сети
> Я понял почему вы так говорите. Но ведь работает!?!вы постоянно показываете разные данные , притом те которые влияют на работу
там серая сеть покажите уж как есть на самом деле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
Можно на комп-е со Сквидом сделать 192.168.1.1/22 и забыть. Если бы заранее правильно выбрать адресацию, то маска могла бы быть /23 - 23 бита, т.е. именно две подсетки по 255 адресов каждая. Маска 22 даст 4 подсетки по 255 адресов каждая, но главное тут не цифра 4, а то, что две сабжевых сети попадают в диапазон /22, в числе всех 4-х. На остальных машинах можно оставить как есть.Иначе, правильно сказали: надо настраивать маршруты. См. справку по команде route, или по команде ip с параметром route.
И сделайте - что попросил предыдущий оратор. На его просьбу отвечайте ему, а не мне.
Тоже размышлял про пересечение сетей. Но интересует нормальный способ.
А если на интерфейсе смотрящем в локалку поднять алиас 192.168.2.1, а в squid добавить http_port 192.168.2.1:3128. По моему должно все заработать.
> А если на интерфейсе смотрящем в локалку поднять алиас 192.168.2.1, а в
> squid добавить http_port 192.168.2.1:3128. По моему должно все заработать.Я тоже так думаю. Но опять же способ ИМХО не совсем корректный.
>> А если на интерфейсе смотрящем в локалку поднять алиас 192.168.2.1, а в
>> squid добавить http_port 192.168.2.1:3128. По моему должно все заработать.
> Я тоже так думаю. Но опять же способ ИМХО не совсем корректный.как раз таки правильный
> Я тоже так думаю. Но опять же способ ИМХО не совсем корректный.Тогда уж можно поставить вопрос о корректности разных подсеток воткнутых в один коммутатор (простой коммутатор). Всё может сильно зависеть от задумок автора, независимо от прочих технологий. Смотря что принять за корректное. /* Чур авторов не обсуждать! Надо считать не корректным или корректным, значит - надо! */
Всё зависит от софта. Как реализовано, так и работает. Мосты, алиасы, указание подсети - кмк способы нормальные и не выходящие за рамки стандартов.
А вот возможность выйти в ИНет с машины с ip адресом 192.168.1.0, возможность работать с одинаковыми IP адресами у двух машин - да, хоть и реализовано, но противоречит принятым правилам. Для сравнения.
Вы правы, нашёл я свою ошибку. Теперь действительно не работает :)
Попробую сам настроить, потом напишу.
> Вы правы, нашёл я свою ошибку. Теперь действительно не работает :)
> Попробую сам настроить, потом напишу.Шлюз по умолчанию может находиться в другой сети, это не ошибка. Всего лишь надо прописать до него маршрут.
>> Вы правы, нашёл я свою ошибку. Теперь действительно не работает :)
>> Попробую сам настроить, потом напишу.
> Шлюз по умолчанию может находиться в другой сети, это не ошибка. Всего
> лишь надо прописать до него маршрут.Не канифольте человеку мозг, он в простой маршрутизации путается, а вы ему предлагаете решать нетривиальные задачи. Пусть решает свою проблему исходя из того, что default gateway для сети в обязательном порядке принадлежит к этой же сети. А то он нанастраивает маршрутов до другой стороны темной стороны. Поймет, как что работает - будет разбираться дальше.
>>> Вы правы, нашёл я свою ошибку. Теперь действительно не работает :)
>>> Попробую сам настроить, потом напишу.
>> Шлюз по умолчанию может находиться в другой сети, это не ошибка. Всего
>> лишь надо прописать до него маршрут.
> Не канифольте человеку мозг, он в простой маршрутизации путается, а вы ему
> предлагаете решать нетривиальные задачи. Пусть решает свою проблему исходя из того,
> что default gateway для сети в обязательном порядке принадлежит к этой
> же сети. А то он нанастраивает маршрутов до другой стороны темной
> стороны. Поймет, как что работает - будет разбираться дальше.Уговорили)
Согласен, действительно запутался в тривиальном.Долго не отвечал, потому что не мог поднять алиас интерфейса. Затем отключил NetworkManager и получилось. Прокси работает. Спасибо. У меня есть ещё один вопрос.
Если на сервере есть dns-сервер и прокси, то что из них работает первым при обращении клиента в интернет?
И ещё более интересный вопрос, а как найти ответ самому на вопрос выше (трасировкой, по логам или как вообще...)?
> Согласен, действительно запутался в тривиальном.
> Долго не отвечал, потому что не мог поднять алиас интерфейса. Затем отключил
> NetworkManager и получилось. Прокси работает. Спасибо. У меня есть ещё один
> вопрос.
> Если на сервере есть dns-сервер и прокси, то что из них работает
> первым при обращении клиента в интернет?если прокси прописан в браузере, то dns ему не нужны, резолвить будет прокси. если прокси прозрачный, то браузер отправляет запрос к dns, а потом запрос на ip web-сервера, а этот запрос уже заворачивается на прокси.
> И ещё более интересный вопрос, а как найти ответ самому на вопрос
> выше (трасировкой, по логам или как вообще...)?читать как какие технологии работают
спасибо за объснение.> читать как какие технологии работают
читать это конечно хорошо, но ведь можно и опытным путём. Наверняка есть какие-то способы. Процессорное время в логах или ещё что. К тому же я задал этот вопрос не только про этот случай. А вообще.
> спасибо за объснение.
>> читать как какие технологии работают
> читать это конечно хорошо, но ведь можно и опытным путём. Наверняка есть
> какие-то способы. Процессорное время в логах или ещё что. К тому
> же я задал этот вопрос не только про этот случай. А
> вообще.в разных случаях по разному. если логировать каждый чих, то получаются логи огромных размеров, поэтому подробно логируют при решении проблем и при отладке.
проверить ответ про прокси и dns можно с помощью tcpdump желательно с ключом -n , но при большом потоке и большой нагрузке на систему он может пропускать пакеты
> проверить ответ про прокси и dns можно с помощью tcpdump желательно с
> ключом -n , но при большом потоке и большой нагрузке на
> систему он может пропускать пакетыпопробую, спасибо.