Здравствуйте!
OpenSuse 12.1, squid 2.7.STABLE9 и lightsquid - требуется только подсчёт использованного трафика. Проблема заключается в периодическом отсутствии доступа к прокси-серверу. Проблема может возникать при включении клиентского компьютера либо смене ip адреса на клиентском компьютере. Также мне кажется, что чаще возникает на win7 или vista. Ранее ещё стояли SAMS и STC.
В cache.log ничего не пишется в моменты отсутствия доступа, только при реконфигурировании сквида и изредка какие-то запросы.
вот конфиг брандмауера SuSEfirewall2 - http://pastebin.com/RZ2X4fGk
вот конфиг сквида - http://pastebin.com/HBQFmZft
Аутентификации нет, подключаются пользователи по ip из локальной сети. Firefox говорит, что прокси сервер отказывается принимать соединения. В то время как tcpdump показывает активное соединение у других пользователей. По telnet с клиентов не удаётся так же подключиться в момент отсутствия доступа
Доступ есть:
13:18:21.362316 IP 192.168.1.22.nm-game-admin > linux-server-1.internet.ndl-aas: Flags [P.], seq 681781189:681781771, ack 2096111033, win 65535, length 582
13:18:21.362385 IP linux-server-1.internet.ndl-aas > 192.168.1.22.nm-game-admin: Flags [.], ack 582, win 21080, length 0
13:18:21.462784 IP linux-server-1.internet.ndl-aas > 192.168.1.22.nm-game-admin: Flags [P.], seq 1:395, ack 582, win 21080, length 394
13:18:21.462814 IP linux-server-1.internet.ndl-aas > 192.168.1.22.nm-game-admin: Flags [P.], seq 395:1599, ack 582, win 21080, length 1204
13:18:21.463528 IP linux-server-1.internet.ndl-aas > 192.168.1.22.nm-game-admin: Flags [.], seq 1599:3059, ack 582, win 21080, length 1460
13:18:21.463547 IP linux-server-1.internet.ndl-aas > 192.168.1.22.nm-game-admin: Flags [P.], seq 3059:3473, ack 582, win 21080, length 414
13:18:21.463682 IP 192.168.1.22.nm-game-admin > linux-server-1.internet.ndl-aas: Flags [.], ack 1599, win 65535, length 0
13:18:21.464225 IP 192.168.1.22.nm-game-admin > linux-server-1.internet.ndl-aas: Flags [.], ack 3473, win 65535, length 0
13:18:27.978856 IP linux-server-1.internet.ndl-aas > 192.168.1.22.icpv2: Flags [P.], seq 2938041819:2938041822, ack 3454722009, win 56940, length 3
13:18:28.119045 IP linux-server-1.internet.ndl-aas > 192.168.1.22.icpv2: Flags [P.], seq 3:13, ack 1, win 56940, length 10
13:18:28.119511 IP 192.168.1.22.icpv2 > linux-server-1.internet.ndl-aas: Flags [.], ack 13, win 64213, length 0
13:18:28.119560 IP 192.168.1.22.icpv2 > linux-server-1.internet.ndl-aas: Flags [P.], seq 1:5, ack 13, win 64213, length 4
13:18:28.119578 IP linux-server-1.internet.ndl-aas > 192.168.1.22.icpv2: Flags [.], ack 5, win 56940, length 0
Доступа нет:
13:18:19.211656 IP 192.168.1.3.ssdp > 239.255.255.250.ssdp: UDP, length 485
13:18:19.757621 IP 192.168.1.3.ssdp > 239.255.255.250.ssdp: UDP, length 513
13:18:20.054011 IP 192.168.1.3.ssdp > 239.255.255.250.ssdp: UDP, length 499
13:18:20.178826 IP 192.168.1.3.ssdp > 239.255.255.250.ssdp: UDP, length 497
13:18:20.443996 IP 192.168.1.3.ssdp > 239.255.255.250.ssdp: UDP, length 433
13:18:20.880816 IP 192.168.1.3.ssdp > 239.255.255.250.ssdp: UDP, length 442
13:18:22.222478 IP 192.168.1.3.ssdp > 239.255.255.250.ssdp: UDP, length 485
13:18:48.447169 ARP, Request who-has 192.168.1.3 tell linux-server-1.internet, length 46
13:19:02.580856 IP 192.168.1.3.netbios-ns > 192.168.1.255.netbios-ns: NBT UDP PACKET(137): QUERY; REQUEST; BROADCAST
13:19:03.344846 IP 192.168.1.3.netbios-ns > 192.168.1.255.netbios-ns: NBT UDP PACKET(137): QUERY; REQUEST; BROADCAST
во первых, очень желательно кидать логи без лишних комментариев, пролистывать 4к строк комментариев не очень приятно ( egrep -v "^#|$^" /etc/squid/squid.conf )
что вы хотели получить этой строкой "FW_REDIRECT="192.168.0.0/24,0/0,tcp,80,3128 192.168.0.101/32,0/0,udp,53,3128 192.168.0.101/32,0/0,udp,6881,3128 192.168.0.101/32,0/0,tcp,6881,3128 192.168.0.101/32,0/0,tcp,2773,3128"
заворот 80 на 3128 понятен (условно), остальное совершенно нет, зачем dns завёртнут на сквид, а так же стандартные порты торрента?
зачем использовать вообще заворот портов когда сквид не настроен в прозрачный режим?
ошибка скорее всего в том что забыли включить прозрачный режим, надо добавить к http_port в конце transparent (для сквида 2, в 3-ем будет немного иначе)
С заворотом портов просто надо внимательно подумать, сквид это только http/ftp прокси, и не более. он не проксирует торренты и днс.
openSUSE 13.1 x86_64 / Xfce 4.10
Windows 8.1 Pro x64
Прошу прощения за комментарии в конфиге. (поправил)
DNS заворачивал - пытался решить "udp port domain unreachable" - по выводу tcpdump - когда в основном касперский на клиентских машинах коннектится к своим серверам.
Мне не совсем понятно пока с заворотом портов, поэтому экспериментирую изо всех сил. То есть если я включаю прозрачный режим, то заворот портов необходим или это не обязательно?
Сейчас указал transparent , перезапустил сквид, убрал в редиректе всё ,кроме 80 порта. Но изменений не произошло, на тестовой машине доступа нет к сожалению. Уже неделю как бы не больше бьюсь над проблемой.
Дополняю: через несколько минут доступ появился на тестовой машине, поменял на ней ip и доступа снова нет. Всё это происходит постоянно, то появляется доступ, то пропадает.
Было у меня как то аналогичное поведение сети, настроил шлюз, некоторые клиентские компьютеры, не могли выходить в интернет, но через какое то время, интернет на них сам собой начинал работать. Целый день возился не мог понять в чем дело. Проблема оказалось в том что у одного из свичей был веб интерфейс и его ip совпал с ip шлюза, и неработающие машины отправляли пакеты не туда. Проверьте может у вас тоже что то подобное. Например отключите шлюз из сети и попробуйте пингануть его адрес, если кто-то ответит на пинги, значит у вас в сети есть машина или устройство с таким же адресом.
А по поводу прозрачного режима, думаю вам стоит еще почитать, что бы было хорошее понимание как это работает. Вкратце rioky полностью прав. Если сквид настроен на прозрачный режим, в фаерволе можно настроить редерект любого http трафика на сквид, обычно это порт 80. Но http трафик может идти и по другому порту. Но трафик других протоколов в прозрачном режиме через сквид прогнать не получится. Другие протоколы можно гнать через сквид, только в обычном режиме, когда приложение знает что должно работать через прокси и настроено соответствующие. В этом случае приложение шлет пакеты не на конечный сервер, а непосредственно на сквид и просит его отправить пакет дальше.
ХВОСТ — электронный журнал об openSUSE
Это хорошая мысль. сейчас проверю. А может ли быть такое, что на один свитч поступает трафик и непроксированый и проксированый и поэтому возникают такие проблемы ?
Это была более чем хорошая мысль! Спасибо за наводку, gankov! Всё так и оказалось - в сети присутствовал свитч с таким же адресом. Изменил адрес шлюза и всё тип топ)
Спасибо, rioky, буду продолжать изучать документацию.