The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"Не тривиальная проблема с прозрачным прокси "
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Настройка Squid и других прокси серверов (Public)
Изначальное сообщение [Проследить за развитием треда]

"Не тривиальная проблема с прозрачным прокси " 
Сообщение от Sergey emailИскать по авторуВ закладки(??) on 26-Авг-05, 11:37  (MSK)
Привет всем, надеюсь, что кто-нибудь мне все-таки поможет, уже бьюсь около недели не могу понять, в чем проблема.

Настроено прозрачное проксирование. C циски средствами wccp заворачивается трафик на проксю это FreeBSD5.4 Squid
2.5Stable8 собран руками (перед этим стоял из портов stabl10, версия сквида была понижена в надежде, что проблема уйдет).
Собирался сквид вот с такими параметрами:
configure options:  --bindir=/usr/local/sbin --sysconfdir=/usr/local/etc/squid --datadir=/usr/local/etc/squid --libexecdir=/usr/local/libexec/squid --localstatedir=/usr/local/squid '--enable-removal-policies=lru heap' '--enable-storeio=ufs diskd null' --enable-wccp --enable-delay-pools --enable-snmp  '--enable-err-languages=English Russian-1251 Russian-koi8-r' --enable-default-err-language=Russian-1251 --prefix=/usr/local  --enable-ipf-transparent

в дефолтовом конфиге сквида были изменены лишь несколько строк:
cache_mem 320 MB
cache_dir ufs /usr/local/squid/cache 61500 16 256
acl intranet  src 80.80.85.0/255.255.255.192
http_access allow manager intranet
http_access allow   intranet
httpd_accel_host virtual
httpd_accel_port 80
httpd_accel_with_proxy on
httpd_accel_uses_host_header on
wccp_router  80.80.86.89

скрипт с правилами для ipfw содержит следующее:
#!/bin/sh

fw="/sbin/ipfw -q"
$fw -f flush


$fw add fwd 127.0.0.1,3128 ip from any to any via gre0 in
$fw add permit ip from any to any

В ядро включены опции(все не стану перечислять):
options         SMP                     # Symmetric MultiProcessor Kernel
options         SCHED_4BSD              # 4BSD scheduler
options         INET                    # InterNETworking
options         IPFIREWALL              # firewall
options         IPFIREWALL_VERBOSE      # enable logging to syslogd(8)
options         IPFIREWALL_FORWARD      # enable transparent proxy support
options         IPDIVERT                # divert sockets
options         IPSTEALTH               # support for stealth forwarding
options         DUMMYNET                # enables the "dummynet" bandwidth limiter
options         HZ=1000                 # used to achieve a smoother scheduling of the traffic
options         TCP_DROP_SYNFIN         # drop TCP packets with SYN+FIN
options         FFS                     # Berkeley Fast Filesystem
options         SOFTUPDATES             # Enable FFS soft updates support
options         UFS_ACL                 # Support for access control lists
options         UFS_DIRHASH             # Improve performance on big directories
options         MSDOSFS                 # MSDOS Filesystem
options         CD9660                  # ISO 9660 Filesystem
options         PSEUDOFS                # Pseudo-filesystem framework
options         PROCFS                  # Process filesystem (requires PSEUDOFS)
options         GEOM_GPT                # GUID Partition Tables.
options         COMPAT_43               # Compatible with BSD 4.3 [KEEP THIS!]
options         COMPAT_FREEBSD4         # Compatible with FreeBSD4
options         KTRACE                  # ktrace(1) support
options         _KPOSIX_PRIORITY_SCHEDULING # POSIX P1003_1B real-time extensions
options         KBD_INSTALL_CDEV        # install a CDEV entry in /dev

В rc.conf  следующее:
defaultrouter="80.80.86.89"
hostname="proxy.mydomain.ru"
ifconfig_fxp0="inet 80.80.86.90 netmask 255.255.255.248"
cloned_interfaces="gre0"
ifconfig_gre0="link0 tunnel 80.80.86.90 80.80.87.237 up"
sshd_enable="YES"
usbd_enable="NO"
firewall_enable="YES"
firewall_script="/etc/ipfw.sh"
firewall_logging="YES"
squid_enable="YES"

# Apache HTTP Server
apache_enable="YES"

Введем обозначения для простаты:

mail.yandex.ru --  тестовый web ресурс к которому идет обращение со стороны пользователя
user.mydomain.ru   -- собственно юзер обращающийся к веб ресурсу трафик которого мы заворачиваем через proxy.mydomain.ru  --
proxy.mydomain.ru  --  мой "прозрачный" прокси

И вот присутствует проблема:

Трафик от клиента заворачивается на проксю (wccp отрабатывает), если сделать tcpdump -i gre0 то я вижу:
listening on gre0, link-type NULL (BSD loopback), capture size 96 bytes
10:47:07.109619 IP user.mydomain.ru.1919 > mail.yandex.ru.http: S 126138710:126138710(0) win 65535 <mss 1460,nop,nop,sackOK>
10:47:07.110870 IP user.mydomain.ru.1919 > mail.yandex.ru.http: . ack 1996908588 win 65535
10:47:07.111933 IP user.mydomain.ru.1919 > mail.yandex.ru.http: P 0:384(384) ack 1 win 65535
10:47:07.366717 IP user.mydomain.ru.1919 > mail.yandex.ru.http: . ack 2921 win 65535
10:47:07.424560 IP user.mydomain.ru.1919 > mail.yandex.ru.http: . ack 5629 win 65535
10:47:07.451213 IP user.mydomain.ru.1921 > css.yandex.ru.http: S 126254449:126254449(0) win 65535 <mss 1460,nop,nop,sackOK>
10:47:07.452002 IP user.mydomain.ru.1922 > css.yandex.ru.http: S 126300999:126300999(0) win 65535 <mss 1460,nop,nop,sackOK>
10:47:07.452867 IP user.mydomain.ru.1921 > css.yandex.ru.http: . ack 3646506445 win 65535
10:47:07.453853 IP user.mydomain.ru.1922 > css.yandex.ru.http: . ack 1696665147 win 65535
10:47:07.454567 IP user.mydomain.ru.1921 > css.yandex.ru.http: P 0:221(221) ack 1 win 65535
10:47:07.455046 IP user.mydomain.ru.1922 > css.yandex.ru.http: P 0:226(226) ack 1 win 65535
10:47:07.460697 IP user.mydomain.ru.1921 > css.yandex.ru.http: . ack 2921 win 65535
10:47:07.463086 IP user.mydomain.ru.1922 > css.yandex.ru.http: . ack 2921 win 65535
10:47:07.467097 IP user.mydomain.ru.1921 > css.yandex.ru.http: . ack 5115 win 65535
10:47:07.467510 IP user.mydomain.ru.1922 > css.yandex.ru.http: . ack 5841 win 65535

если снять лог с правила момент обращения юзера к ресурсу add fwd 127.0.0.1,3128 log ip from any to any via gre0 in
то в /var/log/security появляються строки:

Aug 26 10:44:41 sizif kernel: ipfw: 100 Forward to 127.0.0.1:3128 TCP 80.80.85.27:1902 213.180.204.8:80 in via gre0
Aug 26 10:44:41 sizif last message repeated 3 times
Aug 26 10:44:41 sizif kernel: ipfw: 100 Forward to 127.0.0.1:3128 TCP 80.80.85.27:1904 213.180.204.19:80 in via gre0
Aug 26 10:44:42 sizif last message repeated 3 times
Aug 26 10:45:41 sizif kernel: ipfw: 100 Forward to 127.0.0.1:3128 TCP 80.80.85.27:1902 213.180.204.8:80 in via gre0
Aug 26 10:45:41 sizif kernel: ipfw: 100 Forward to 127.0.0.1:3128 TCP 80.80.85.27:1904 213.180.204.19:80 in via gre0
Aug 26 10:45:46 sizif kernel: ipfw: 100 Forward to 127.0.0.1:3128 TCP 80.80.85.27:1904 213.180.204.19:80 in via gre0
Aug 26 10:46:08 sizif kernel: ipfw: 100 Forward to 127.0.0.1:3128 TCP 80.80.85.27:1906 213.180.204.25:80 in via gre0
Aug 26 10:46:08 sizif last message repeated 5 times
Aug 26 10:46:08 sizif kernel: ipfw: 100 Forward to 127.0.0.1:3128 TCP 80.80.85.27:1907 213.180.204.25:80 in via gre0
Aug 26 10:46:09 sizif last message repeated 4 times
Aug 26 10:46:09 sizif kernel: ipfw: 100 Forward to 127.0.0.1:3128 TCP 80.80.85.27:1909 213.180.204.21:80 in via gre0
Aug 26 10:46:09 sizif kernel: ipfw: 100 Forward to 127.0.0.1:3128 TCP 80.80.85.27:1910 213.180.204.21:80 in via gre0
Aug 26 10:46:09 sizif kernel: ipfw: 100 Forward to 127.0.0.1:3128 TCP 80.80.85.27:1909 213.180.204.21:80 in via gre0
Aug 26 10:46:09 sizif kernel: ipfw: 100 Forward to 127.0.0.1:3128 TCP 80.80.85.27:1910 213.180.204.21:80 in via gre0

далее если просто запустить tcpdump я вижу:

10:47:07.109575 IP 80.80.87.237  > proxy.mydomain.ru: gre-proto-0x883e
10:47:07.109758 IP mail.yandex.ru.http > user.mydomain.ru.1919: S 1996908587:1996908587(0) ack 126138711 win 65535 <mss 1460,nop,nop,sackOK>
10:47:07.110841 IP 80.80.87.237  > proxy.mydomain.ru: gre-proto-0x883e
10:47:07.111905 IP 80.80.87.237  > proxy.mydomain.ru: gre-proto-0x883e
10:47:07.112492 IP proxy.mydomain.ru.54437 > mail.yandex.ru.http: S 1857800636:1857800636(0) win 65535 <mss 1460,nop,nop,sackOK,nop,wscale 1,n
op,nop,timestamp 51806619 0>
10:47:07.186420 IP mail.yandex.ru.http > proxy.mydomain.ru.54437: S 4146630913:4146630913(0) ack 1857800637 win 5592 <mss 1410,sackOK,timestam
p 2415101161 51806619,nop,wscale 2>
10:47:07.186513 IP proxy.mydomain.ru.54437 > mail.yandex.ru.http: . ack 1 win 32853 <nop,nop,timestamp 51806693 2415101161>
10:47:07.186811 IP proxy.mydomain.ru.54437 > mail.yandex.ru.http: P 1:498(497) ack 1 win 32853 <nop,nop,timestamp 51806694 2415101161>
10:47:07.211686 IP mail.yandex.ru.http > user.mydomain.ru.1919: . ack 385 win 65535
10:47:07.263985 IP mail.yandex.ru.http > proxy.mydomain.ru.54437: . ack 498 win 1666 <nop,nop,timestamp 2415101257 51806694>
10:47:07.315073 802.1d config 81f4.00:0f:f7:ba:20:c0.800b root 81f4.00:0f:f7:ba:20:c0 pathcost 0 age 0 max 20 hello 2 fdelay 15
10:47:07.318447 IP mail.yandex.ru.http > proxy.mydomain.ru.54437: . 1399:2797(1398) ack 498 win 1666 <nop,nop,timestamp 2415101269 51806694>
10:47:07.318591 IP proxy.mydomain.ru.54437 > mail.yandex.ru.http: . ack 1 win 32853 <nop,nop,timestamp 51806825 2415101257,nop,nop,sack sack 1
{1399:2797} >
10:47:07.325313 00:0f:f7:ba:20:cb > 00:0f:f7:ba:20:cb, ethertype Loopback (0x9000), length 60:
        0x0000:  0000 0100 0000 0000 0000 0000 0000 0000  ................
        0x0010:  0000 0000 0000 0000 0000 0000 0000 0000  ................
        0x0020:  0000 0000 0000 0000 0000 0000 0000       ..............
10:47:07.338972 IP mail.yandex.ru.http > proxy.mydomain.ru.54437: . 2797:4195(1398) ack 498 win 1666 <nop,nop,timestamp 2415101269 51806694>
10:47:07.339055 IP proxy.mydomain.ru.54437 > mail.yandex.ru.http: . ack 1 win 32853 <nop,nop,timestamp 51806846 2415101257,nop,nop,sack sack 1
{1399:4195} >
10:47:07.360871 IP mail.yandex.ru.http > proxy.mydomain.ru.54437: . 1:1399(1398) ack 498 win 1666 <nop,nop,timestamp 2415101269 51806694>
10:47:07.360929 IP proxy.mydomain.ru.54437 > mail.yandex.ru.http: . ack 4195 win 30756 <nop,nop,timestamp 51806868 2415101269>
10:47:07.361035 IP proxy.mydomain.ru.54437 > mail.yandex.ru.http: . ack 4195 win 32853 <nop,nop,timestamp 51806868 2415101269>
10:47:07.361573 IP mail.yandex.ru.http > user.mydomain.ru.1919: . 1:1461(1460) ack 385 win 65535
10:47:07.361600 IP mail.yandex.ru.http > user.mydomain.ru.1919: . 1461:2921(1460) ack 385 win 65535
10:47:07.366677 IP 80.80.87.237  > proxy.mydomain.ru: gre-proto-0x883e
10:47:07.366837 IP mail.yandex.ru.http > user.mydomain.ru.1919: P 2921:4231(1310) ack 385 win 65535
10:47:07.421117 IP mail.yandex.ru.http > proxy.mydomain.ru.54437: . 4195:5593(1398) ack 498 win 1666 <nop,nop,timestamp 2415101371 51806825>
10:47:07.421322 IP mail.yandex.ru.http > user.mydomain.ru.1919: P 4231:5629(1398) ack 385 win 65535
10:47:07.424527 IP 80.80.87.237  > proxy.mydomain.ru: gre-proto-0x883e
10:47:07.451152 IP 80.80.87.237  > proxy.mydomain.ru: gre-proto-0x883e
10:47:07.451350 IP css.yandex.ru.http > user.mydomain.ru.1921: S 3646506444:3646506444(0) ack 126254450 win 65535 <mss 1460,nop,nop,sackOK>
10:47:07.451960 IP 80.80.87.237  > proxy.mydomain.ru: gre-proto-0x883e
10:47:07.452110 IP css.yandex.ru.http > user.mydomain.ru.1922: S 1696665146:1696665146(0) ack 126301000 win 65535 <mss 1460,nop,nop,sackOK>
10:47:07.452839 IP 80.80.87.237  > proxy.mydomain.ru: gre-proto-0x883e
10:47:07.453824 IP 80.80.87.237  > proxy.mydomain.ru: gre-proto-0x883e
10:47:07.454521 IP 80.80.87.237  > proxy.mydomain.ru: gre-proto-0x883e
10:47:07.455015 IP 80.80.87.237  > proxy.mydomain.ru: gre-proto-0x883e
10:47:07.455550 IP css.yandex.ru.http > user.mydomain.ru.1921: . 1:1461(1460) ack 222 win 65535
10:47:07.455580 IP css.yandex.ru.http > user.mydomain.ru.1921: . 1461:2921(1460) ack 222 win 65535
10:47:07.456458 IP css.yandex.ru.http > user.mydomain.ru.1922: . 1:1461(1460) ack 227 win 65535
10:47:07.456487 IP css.yandex.ru.http > user.mydomain.ru.1922: . 1461:2921(1460) ack 227 win 65535
10:47:07.460636 IP 80.80.87.237  > proxy.mydomain.ru: gre-proto-0x883e
10:47:07.460847 IP css.yandex.ru.http > user.mydomain.ru.1921: . 2921:4381(1460) ack 222 win 65535
10:47:07.460866 IP css.yandex.ru.http > user.mydomain.ru.1921: P 4381:5115(734) ack 222 win 65535
10:47:07.463056 IP 80.80.87.237  > proxy.mydomain.ru: gre-proto-0x883e
10:47:07.463177 IP css.yandex.ru.http > user.mydomain.ru.1922: . 2921:4381(1460) ack 227 win 65535
10:47:07.463196 IP css.yandex.ru.http > user.mydomain.ru.1922: . 4381:5841(1460) ack 227 win 65535
10:47:07.463217 IP css.yandex.ru.http > user.mydomain.ru.1922: . 5841:7301(1460) ack 227 win 65535

В логах сквида я вижу:
1125038681.869     40 80.80.85.27 TCP_IMS_HIT/304 249 GET http://img.yandex.ru/i/logo76x44.gif - NONE/- image/gif
1125038768.393    444 80.80.85.27 TCP_MISS/302 577 GET http://mail.yandex.ru/ - DIRECT/213.180.204.25 text/plain
1125038769.631      2 80.80.85.27 TCP_HIT/200 5014 GET http://img.yandex.ru/i/fp2.js - NONE/- application/x-javascript
1125038769.739   1340 80.80.85.27 TCP_SWAPFAIL_MISS/200 12048 GET http://mail.yandex.ru/login - DIRECT/213.180.204.25 text/html
1125038770.159    565 80.80.85.27 TCP_REFRESH_HIT/200 9326 GET http://css.yandex.ru/css/mail/_yandex-mail-2.css - DIRECT/213.180.204.21 tex
t/css
1125038770.183    629 80.80.85.27 TCP_REFRESH_HIT/200 5105 GET http://css.yandex.ru/css/_yandex-global.css - DIRECT/213.180.204.21 text/css
1125038770.332    147 80.80.85.27 TCP_HIT/200 1479 GET http://img.yandex.ru/i/logo76x33.gif - NONE/- image/gif
1125038770.373     17 80.80.85.27 TCP_HIT/200 632 GET http://img.yandex.ru/mail2/newaddress-arrow.gif - NONE/- image/gif
1125038770.427     53 80.80.85.27 TCP_HIT/200 5169 GET http://img.yandex.ru/mail2/vedro2.gif - NONE/- image/gif
1125038770.427      1 80.80.85.27 TCP_HIT/200 978 GET http://img.yandex.ru/mail2/artlebedev.gif - NONE/- image/gif
1125038770.767    435 80.80.85.27 TCP_MISS/200 167 GET http://clck.yandex.ru/click/dtype=morda/*http://mail.yandex.ru/ - DIRECT/213.180.204
.14 image/gif
1125038770.822    489 80.80.85.27 TCP_MISS/200 738 GET http://img.yandex.ru/mail2/logo.gif - DIRECT/213.180.204.19 image/gif
1125038770.851    519 80.80.85.27 TCP_MISS/200 670 GET http://img.yandex.ru/i/cards.gif - DIRECT/213.180.204.19 image/gif
1125038827.456      2 80.80.85.27 TCP_HIT/200 5114 GET http://css.yandex.ru/css/_yandex-global.css - NONE/- text/css
1125038827.456      1 80.80.85.27 TCP_HIT/200 9335 GET http://css.yandex.ru/css/mail/_yandex-mail-2.css - NONE/- text/css
1125038827.540      1 80.80.85.27 TCP_HIT/200 5014 GET http://img.yandex.ru/i/fp2.js - NONE/- application/x-javascript
1125038827.584     42 80.80.85.27 TCP_HIT/200 1479 GET http://img.yandex.ru/i/logo76x33.gif - NONE/- image/gif


Внимание вопрос к знатокам!
почему со сквида не отдается трафик для user.mydomain.ru, несмотря на то, что сквид закачивает, то о чем его просили и
пишет в своих логах об этом?
То есть почему нет пакетов вида  IP proxy.mydomain.ru  > user.mydomain.ru.

а так же почему идет движение mail.yandex.ru.http > user.mydomain.ru.: в результате, которого юзер забирает трафик напрямую
а не с прокси?

В случае если настраивать браузер на прокси, то трафик ходит нормально от клиента к прокси и обратно
    

  Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

1. "Не тривиальная проблема с прозрачным прокси " 
Сообщение от Sergey emailИскать по авторуВ закладки(??) on 02-Сен-05, 11:20  (MSK)
разобрался, это сквид соурс адрес устанавливает адрес узла с которого было скачано.
  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх


Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ]
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру