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

Исходное сообщение
"  FreeBSD: squid (прозрачный) + wccp"

Отправлено LoneFoxx , 09-Окт-13 16:56 
Добрый день форумчане!
Знаком с FreeBSD не так много как хотелось... НО нет больше сил терпеть и пытаться победить проблему.. и так начну:
Имеется сервак поднятый на с ip-адресом 172.16.0.9
    root@Squid:# uname -a
    FreeBSD Squid 9.1-RELEASE FreeBSD 9.1-RELEASE #0: Fri Jun  7 16:25:36 MSK 2013     root@squid:/usr/obj/usr/src/sys/MYKERNEL  amd64


Ядро собранное с опциями:

Код: Выделить всё
    options         IPFIREWALL               # сам файрвол
    options         IPFIREWALL_VERBOSE        # логгинг пакетов, если в правиле # написано `log`
    options         IPFIREWALL_FORWARD       # перенаправление (форвардинг) пакетов# например, для прозрачного прокси
    options         DUMMYNET                # если понадобится ограничивать скорость # инета пользователям (обычно - да)
    options         IPFIREWALL_DEFAULT_TO_ACCEPT     # дефолтовое правило (последнее)


в sysctl.conf


    net.inet.ip.fw.one_pass=0
    net.inet.tcp.rfc1323=0
    net.inet.icmp.icmplim=0
    net.inet.tcp.msl=3000
    kern.maxfilesperproc=65536
    kern.maxfiles=262144
    kern.ipc.maxsockets=131072
    kern.ipc.somaxconn=1024
    net.inet.tcp.recvspace=16384
    net.inet.tcp.sendspace=16384
    kern.ipc.nmbclusters=32768
    net.inet.ip.forwarding=1


в rc.conf прописано такое - 172.16.0.7 адрес моего устройства Cisco (Asa 5550) с кем сервер и соединяется для создания wccp :


    cloned_interfaces="gre0"
    ifconfig_gre0="inet 172.16.0.9 10.10.10.10 netmask 255.255.255.255  tunnel 172.16.0.9 172.16.0.7 link2 up"


ipfw такие правила


    00001 allow ip from any to any via lo0
    00002 deny ip from any to 127.0.0.0/8
    00003 deny ip from 127.0.0.0/8 to any
    00004 allow gre from any to any frag
    00200 fwd 172.16.0.9,3130 tcp from any to any dst-port 80 recv gre0
    65535 allow ip from any to any


и на конец настройки на ASA конкретно для wccp


    ciscoasa# sh run | include wccp
    access-list wccp-server extended permit ip host 172.16.0.9 any
    access-list wccp-traffic extended deny ip host 172.16.0.9 any
    access-list wccp-traffic extended permit ip host 172.16.0.154 any
    wccp web-cache redirect-list wccp-traffic group-list wccp-server
    wccp interface inside web-cache redirect in


теперь сам кольмар:


    root@Squid:/etc # squid -v
    Squid Cache: Version 3.3.9
    configure options:  '--with-default-user=squid' '--bindir=/usr/local/sbin' '--sbindir=/usr/local/sbin' '--datadir=/usr/local/etc/squid' '--libexecdir=/usr/local/libexec/squid' '--localstatedir=/var' '--sysconfdir=/usr/local/etc/squid' '--with-logdir=/var/log/squid' '--with-pidfile=/var/run/squid/squid.pid' '--with-swapdir=/var/squid/cache/squid' '--enable-auth' '--enable-build-info' '--enable-loadable-modules' '--enable-removal-policies=lru heap' '--disable-epoll' '--disable-linux-netfilter' '--disable-linux-tproxy' '--disable-translation' '--enable-auth-basic=DB MSNT MSNT-multi-domain NCSA PAM POP3 RADIUS  fake getpwnam' '--enable-auth-digest=file' '--enable-external-acl-helpers=file_userip time_quota unix_group SQL_session' '--enable-auth-negotiate=none' '--enable-auth-ntlm=fake smb_lm' '--enable-storeio=diskd rock ufs aufs' '--enable-disk-io=AIO Blocking DiskDaemon IpcIo Mmapped DiskThreads' '--enable-log-daemon-helpers=file' '--enable-url-rewrite-helpers=fake' '--disable-ipv6' '--enable-delay-pools' '--disable-snmp' '--enable-ssl' '--with-openssl=/usr/local' '--enable-ssl-crtd' '--enable-htcp' '--disable-forw-via-db' '--enable-cache-digests' '--enable-wccp' '--enable-wccpv2' '--disable-http-violations' '--disable-eui' '--enable-ipfw-transparent' '--disable-pf-transparent' '--disable-ipf-transparent' '--enable-follow-x-forwarded-for' '--enable-ecap' '--enable-icap-client' '--disable-esi' '--enable-kqueue' '--with-large-files' '--disable-optimizations' '--enable-debug-cbdata' '--prefix=/usr/local' '--mandir=/usr/local/man' '--infodir=/usr/local/info/' '--build=amd64-portbld-freebsd9.1' 'build_alias=amd64-portbld-freebsd9.1' 'CC=cc' 'CFLAGS=-pipe -I/usr/local/include -I/usr/local/include -g' 'LDFLAGS= -pthread -Wl,-rpath=/usr/local/lib -L/usr/local/lib -L/usr/local/lib' 'CPPFLAGS=' 'CXX=c++' 'CXXFLAGS=-pipe -I/usr/local/include -I/usr/local/include -g' 'CPP=cpp'


некоторые настройки из squid.conf


    acl localnet src 172.16.0.0/16
    http_access allow localnet
    http_access deny all
    #прозрачный порт для 80го порта (Http)

    http_port 172.16.0.9:3130 intercept

    #порт необходим для нормальной работы кольмара
    http_port 127.0.0.1:3128

    wccp2_router 172.16.0.7
    wccp2_forwarding_method gre
    wccp2_return_method gre
    wccp2_service standard 0


И так суть проблемы: при завороте на ASA пользователя на пример 172.16.0.154 то происходит зависание на минутку (в принципе логично пока не создатся маршрутизация на са и не пойдт пакеты по новому) и после начинает отрабатывать как положено всё. Счетчик ipfw растет

    00001     0       0 allow ip from any to any via lo0
    00002     0       0 deny ip from any to 127.0.0.0/8
    00003     0       0 deny ip from 127.0.0.0/8 to any
    00004    44    2112 allow gre from any to any frag
    00200   414  132913 fwd 172.16.0.9,3130 tcp from any to any dst-port 80 recv gre0


Но проблема в другом - если я заворачиваю не одного пользователя, а под сеть 172.16.1.0/24 то у всех пользователей странички интернет не открываются и вываливается сообщение от Squid Operation time out. В общем отваливаются странички по таймауту... я уже не знаю что делать и как победить проблему... Прошу помощи!!! :st: Нет сил, нет нервов...
При этом в access.log тишина - будто пользователь вообще не куда не пытался зайти....... HELP


Содержание

Сообщения в этом обсуждении
"  FreeBSD: squid (прозрачный) + wccp"
Отправлено михалыч , 09-Окт-13 17:25 
> http_port 172.16.0.9:3130 intercept
> http_port 127.0.0.1:3128

А разве так можно?

Ну попробуйте только так
http_port 3128 intercept
или так
http_port 3130 intercept
но не обе строки сразу


"  FreeBSD: squid (прозрачный) + wccp"
Отправлено LoneFoxx , 09-Окт-13 17:27 
>> http_port 172.16.0.9:3130 intercept
>> http_port 127.0.0.1:3128
> А разве так можно?
> Ну попробуйте только так
> http_port 3128 intercept
> или так
> http_port 3130 intercept
> но не обе строки сразу

в версии 3.1 и выше для прозрачности необходимо что бы было http_port 3128 иначе сыпится с ошибками.


"  FreeBSD: squid (прозрачный) + wccp"
Отправлено михалыч , 09-Окт-13 17:31 
>>> http_port 172.16.0.9:3130 intercept
>>> http_port 127.0.0.1:3128
>> А разве так можно?
>> Ну попробуйте только так
>> http_port 3128 intercept
>> или так
>> http_port 3130 intercept
>> но не обе строки сразу
> в версии 3.1 и выше для прозрачности необходимо что бы было http_port
> 3128 иначе сыпится с ошибками.

А вам принципиально порт 3130 использовать?
Попробуйте только порт 3128, ну и fwd на него разумеется.


"  FreeBSD: squid (прозрачный) + wccp"
Отправлено LoneFoxx , 09-Окт-13 17:36 
>[оверквотинг удален]
>>> А разве так можно?
>>> Ну попробуйте только так
>>> http_port 3128 intercept
>>> или так
>>> http_port 3130 intercept
>>> но не обе строки сразу
>> в версии 3.1 и выше для прозрачности необходимо что бы было http_port
>> 3128 иначе сыпится с ошибками.
> А вам принципиально порт 3130 использовать?
> Попробуйте только порт 3128, ну и fwd на него разумеется.

без http_port 3129  в cache.log сыпится:
2013/10/09 17:36:33 kid1| ERROR: No forward-proxy ports configured.
2013/10/09 17:36:33 kid1| ERROR: No forward-proxy ports configured.

http_port 3129
http_port 172.16.0.9:3128 intercept
01200    166    16347 fwd 172.16.0.9,3128 tcp from not me to not me dst-port 80 recv gre0
так же как и было - счетчик растет пакетов - страницы по таймауту вылетают.


"  FreeBSD: squid (прозрачный) + wccp"
Отправлено михалыч , 09-Окт-13 17:40 
>[оверквотинг удален]
>> Попробуйте только порт 3128, ну и fwd на него разумеется.
>  без http_port 3129  в cache.log сыпится:
>  2013/10/09 17:36:33 kid1| ERROR: No forward-proxy ports configured.
> 2013/10/09 17:36:33 kid1| ERROR: No forward-proxy ports configured.
> http_port 3129
> http_port 172.16.0.9:3128 intercept
> 01200    166    16347 fwd 172.16.0.9,3128 tcp
> from not me to not me dst-port 80 recv gre0
> так же как и было - счетчик растет пакетов - страницы по
> таймауту вылетают.

В логах что?
Строка http_port 3129 обязательна? Без неё сквид запускается?


"  FreeBSD: squid (прозрачный) + wccp"
Отправлено LoneFoxx , 09-Окт-13 17:46 
>[оверквотинг удален]
>>  2013/10/09 17:36:33 kid1| ERROR: No forward-proxy ports configured.
>> 2013/10/09 17:36:33 kid1| ERROR: No forward-proxy ports configured.
>> http_port 3129
>> http_port 172.16.0.9:3128 intercept
>> 01200    166    16347 fwd 172.16.0.9,3128 tcp
>> from not me to not me dst-port 80 recv gre0
>> так же как и было - счетчик растет пакетов - страницы по
>> таймауту вылетают.
> В логах что?
> Строка http_port 3129 обязательна? Без неё сквид запускается?

в access.log пустота - от пользователя не было запроса будто бы.

с версии 3.1 строка http_port 3128 (не важно какой порт) стала обязательной при конфигурации прозрачного прокси. иначе в логах постоянно гадит
2013/10/09 17:36:33 kid1| ERROR: No forward-proxy ports configured.
2013/10/09 17:36:33 kid1| ERROR: No forward-proxy ports configured.
а запускаться запускается, он вот результат тот же....


"  FreeBSD: squid (прозрачный) + wccp"
Отправлено михалыч , 09-Окт-13 17:52 
>[оверквотинг удален]
>>> так же как и было - счетчик растет пакетов - страницы по
>>> таймауту вылетают.
>> В логах что?
>> Строка http_port 3129 обязательна? Без неё сквид запускается?
> в access.log пустота - от пользователя не было запроса будто бы.
> с версии 3.1 строка http_port 3128 (не важно какой порт) стала обязательной
> при конфигурации прозрачного прокси. иначе в логах постоянно гадит
> 2013/10/09 17:36:33 kid1| ERROR: No forward-proxy ports configured.
> 2013/10/09 17:36:33 kid1| ERROR: No forward-proxy ports configured.
> а запускаться запускается, он вот результат тот же....

это выглядит сомнительно fwd 172.16.0.9,3128 tcp from not me to not me dst-port 80 recv gre0
лучше так fwd 172.16.0.9,3128 tcp from 172.16.0.0/16 to not me 80

пакеты gre не проскакивают? mtu на сервере понизить?
посмотрите ещё здесь http://www.opennet.me/openforum/vsluhforumID12/4724.html


"  FreeBSD: squid (прозрачный) + wccp"
Отправлено LoneFoxx , 09-Окт-13 19:03 
>[оверквотинг удален]
>> с версии 3.1 строка http_port 3128 (не важно какой порт) стала обязательной
>> при конфигурации прозрачного прокси. иначе в логах постоянно гадит
>> 2013/10/09 17:36:33 kid1| ERROR: No forward-proxy ports configured.
>> 2013/10/09 17:36:33 kid1| ERROR: No forward-proxy ports configured.
>> а запускаться запускается, он вот результат тот же....
> это выглядит сомнительно fwd 172.16.0.9,3128 tcp from not me to not me
> dst-port 80 recv gre0
> лучше так fwd 172.16.0.9,3128 tcp from 172.16.0.0/16 to not me 80
> пакеты gre не проскакивают? mtu на сервере понизить?
> посмотрите ещё здесь http://www.opennet.me/openforum/vsluhforumID12/4724.html

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

c правилом что Вы сказали - результат тот же..  Про mtu стоит 1500


"  FreeBSD: squid (прозрачный) + wccp"
Отправлено михалыч , 10-Окт-13 07:22 
>[оверквотинг удален]
>>> а запускаться запускается, он вот результат тот же....
>> это выглядит сомнительно fwd 172.16.0.9,3128 tcp from not me to not me
>> dst-port 80 recv gre0
>> лучше так fwd 172.16.0.9,3128 tcp from 172.16.0.0/16 to not me 80
>> пакеты gre не проскакивают? mtu на сервере понизить?
>> посмотрите ещё здесь http://www.opennet.me/openforum/vsluhforumID12/4724.html
> пакеты по правилу что я добавляю (в том числе и ваше) ходят
> счетчик растет но страницы не открываются, отваливаются по таймауту.
> c правилом что Вы сказали - результат тот же..  Про mtu
> стоит 1500

Шайтан, однако.
Ну, послушайте tcpdump -i gre0
Пакеты туда-сюда бегают? Или сюда-туда?


"  FreeBSD: squid (прозрачный) + wccp"
Отправлено LoneFoxx , 10-Окт-13 08:32 
>[оверквотинг удален]
>>> лучше так fwd 172.16.0.9,3128 tcp from 172.16.0.0/16 to not me 80
>>> пакеты gre не проскакивают? mtu на сервере понизить?
>>> посмотрите ещё здесь http://www.opennet.me/openforum/vsluhforumID12/4724.html
>> пакеты по правилу что я добавляю (в том числе и ваше) ходят
>> счетчик растет но страницы не открываются, отваливаются по таймауту.
>> c правилом что Вы сказали - результат тот же..  Про mtu
>> стоит 1500
> Шайтан, однако.
> Ну, послушайте tcpdump -i gre0
> Пакеты туда-сюда бегают? Или сюда-туда?

пакеты и запросы только от пользователей направленные cisco. От прокси не каких......



"  FreeBSD: squid (прозрачный) + wccp"
Отправлено LoneFoxx , 10-Окт-13 10:45 
>[оверквотинг удален]
>>>> пакеты gre не проскакивают? mtu на сервере понизить?
>>>> посмотрите ещё здесь http://www.opennet.me/openforum/vsluhforumID12/4724.html
>>> пакеты по правилу что я добавляю (в том числе и ваше) ходят
>>> счетчик растет но страницы не открываются, отваливаются по таймауту.
>>> c правилом что Вы сказали - результат тот же..  Про mtu
>>> стоит 1500
>> Шайтан, однако.
>> Ну, послушайте tcpdump -i gre0
>> Пакеты туда-сюда бегают? Или сюда-туда?
> пакеты и запросы только от пользователей направленные cisco. От прокси не каких......

root@Squid:/ # tcpdump -i gre0
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on gre0, link-type NULL (BSD loopback), capture size 65535 bytes
10:40:43.916786 IP 172.16.0.154.60980 > opennet.ru.http: Flags [P.], seq 3900111775:3900112268, ack 1519792743, win 63582,
10:40:43.975042 IP 172.16.0.154.60980 > opennet.ru.http: Flags [.], ack 1517, win 64240, length 0
10:40:43.976111 IP 172.16.0.154.60980 > opennet.ru.http: Flags [.], ack 2984, win 64240, length 0
10:40:43.980339 IP 172.16.0.154.60980 > opennet.ru.http: Flags [.], ack 5672, win 64240, length 0
10:40:43.982381 IP 172.16.0.154.60980 > opennet.ru.http: Flags [.], ack 7139, win 64240, length 0
10:40:43.984340 IP 172.16.0.154.60980 > opennet.ru.http: Flags [.], ack 9789, win 64240, length 0
10:40:43.985869 IP 172.16.0.154.60980 > opennet.ru.http: Flags [.], ack 12445, win 64240, length 0
10:40:43.986544 IP 172.16.0.154.60980 > opennet.ru.http: Flags [.], ack 13906, win 64240, length 0
10:40:43.987397 IP 172.16.0.154.60980 > opennet.ru.http: Flags [.], ack 15373, win 64240, length 0
10:40:44.016198 IP 172.16.0.154.60975 > opennet.ru.http: Flags [P.], seq 3675161970:3675162432, ack 3512929227, win 63672,
10:40:44.016967 IP 172.16.0.154.60976 > opennet.ru.http: Flags [P.], seq 1753389993:1753390471, ack 4059398955, win 62809,
10:40:44.017068 IP 172.16.0.154.60979 > opennet.ru.http: Flags [P.], seq 4193142386:4193142862, ack 2531488649, win 63672,
10:40:44.026184 IP 172.16.0.154.60980 > opennet.ru.http: Flags [.], ack 18023, win 64240, length 0
10:40:44.029762 IP 172.16.0.154.60980 > opennet.ru.http: Flags [.], ack 19490, win 64240, length 0
10:40:44.031895 IP 172.16.0.154.60980 > opennet.ru.http: Flags [.], ack 22416, win 64240, length 0
10:40:44.033103 IP 172.16.0.154.60980 > opennet.ru.http: Flags [.], ack 23883, win 64240, length 0
10:40:44.039464 IP 172.16.0.154.60980 > opennet.ru.http: Flags [.], ack 26809, win 64240, length 0
10:40:44.041044 IP 172.16.0.154.60980 > opennet.ru.http: Flags [.], ack 28276, win 64240, length 0
10:40:44.043069 IP 172.16.0.154.60980 > opennet.ru.http: Flags [.], ack 31202, win 64240, length 0
10:40:44.044711 IP 172.16.0.154.60980 > opennet.ru.http: Flags [.], ack 32669, win 64240, length 0
10:40:44.080885 IP 172.16.0.154.60980 > opennet.ru.http: Flags [.], ack 35595, win 64240, length 0
10:40:44.082170 IP 172.16.0.154.60980 > opennet.ru.http: Flags [.], ack 37062, win 64240, length 0
10:40:44.086345 IP 172.16.0.154.60980 > opennet.ru.http: Flags [.], ack 39988, win 64240, length 0


"  FreeBSD: squid (прозрачный) + wccp"
Отправлено михалыч , 10-Окт-13 13:27 
Установить в squid.conf Full debugging (level 9)
debug_options ALL,9

"  FreeBSD: squid (прозрачный) + wccp"
Отправлено LoneFoxx , 12-Окт-13 00:36 
> Установить в squid.conf Full debugging (level 9)
> debug_options ALL,9

Добрый день, и так нашел я вроде бы причину. всё описанное выше правда и всё это работает правильно, но....на одной промежуточной cisco стояло ограничение в количестве соединений и моя freebsd просто убивалась в этот предел - команда выглядит что то вроде ip nat translation max-(что то там) 200! то есть 200 соединений максимум на хост поэтому при завороте подсети ничего не открывалось. Спасибо всем!)