Как подружить Cisco и Squid по wccp

Предупреждение: Любые сведения представленные ниже, предоставляются "как есть" без какой-либо поддержки или гарантий.

На написание этой статьи подвигло изучение этого ресурса и обобщение полученного опыта.

Задача: обеспечить прозрачное проксирование http траффика. Используется маршрутизатор Cisco2821 и Debian Etch (4.0).

Схема сети:



Ставим squid из репозитория:

sudo apt-get install squid


Ставим iproute из репозитория:

sudo apt-get install iproute


После того, как все успешно поставилось, редактируем конфигурационный файл /etc/squid/squid.conf:

sudo nano /etc/squid/squid.conf


Меняем значения по умолчанию:

http_port 192.168.100.243:3128 transparent
icp_port 0
hierarchy_stoplist cgi-bin ?
acl QUERY urlpath_regex cgi-bin \?
cache deny QUERY
acl apache rep_header Server ^Apache
broken_vary_encoding allow apache
cache_mem 100 MB
cache_swap_low 90
cache_swap_high 95
maximum_object_size 50 MB
maximum_object_size_in_memory 50 KB
cache_replacement_policy heap LFUDA
cache_dir aufs /var/spool/squid 6000 16 256
access_log /var/log/squid/access.log squid
dns_nameservers *.*.*.*
*.*.*.*
hosts_file /etc/hosts
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern . 0 20% 4320
quick_abort_min 0 KB
quick_abort_max 0 KB
half_closed_clients off
acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl to_localhost dst 127.0.0.0/8
acl purge method PURGE
acl CONNECT method CONNECT
http_access allow manager localhost
http_access deny manager
http_access allow purge localhost
http_access deny purge
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localhost
acl our_networks src 192.168.40.0/24
http_access allow our_networks
http_access deny all
http_reply_access allow all
icp_access allow all
cache_mgr admin@example.com
cache_effective_group proxy
memory_pools off
log_icp_queries off
cachemgr_passwd secret12345wdsfs all
client_db off
buffered_logs on
wccp2_router 192.168.100.1
wccp_version 4
wccp2_forwarding_method 1
wccp2_return_method 1
wccp2_service standard 0 password=******
wccp_address 192.168.100.243
coredump_dir /var/spool/squid




Редактируем /etc/network/interfaces:

sudo nano /etc/network/interfaces

Добавляем в /etc/network/interfaces запуск скриптов для создания GRE тоннеля для WCCP:

auto eth0
iface eth0 inet static
address 192.168.100.253
netmask 255.255.255.0
gateway 192.168.100.1

post-up /etc/network/wccp.up
pre-down /etc/network/wccp.down


Создаем эти скрипты:

Создаём /etc/network/wccp.up:

sudo nano /etc/network/wccp.up


#!/bin/bash
iptunnel add gre1 mode gre remote 192.168.100.1 local 192.168.100.253 dev eth0
ifconfig gre1 127.0.0.2 up
iptables -t nat -I PREROUTING -i gre1 -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.100.253:3128
#end

Создаём /etc/network/wccp.down:

sudo nano /etc/network/wccp.down


#!/bin/bash
iptables -t nat -F
iptunnel del gre1
#end

Рестартуем сеть:

sudo /etc/init.d/networking restart

Рестартуем squd:

sudo /etc/init.d/squid restart

Все, на этом с конфигурацией Squid закончили.

Настраиваем роутер Cisco (приведена только часть конфига, относящаяся к WCCP):

!
ip wccp version 2
ip wccp web-cache redirect-list REDIRECT_HTTP password TESTPASS
!
!
interface Vlan60
description To-INTERNET
ip address х.х.х.13 255.255.255.248
ip nat outside
ip virtual-reassembly
!
interface GigabitEthernet0/0.40
description Clients_LAN
encapsulation dot1Q 40
ip address 192.168.40.1 255.255.255.0
ip helper-address 192.168.100.254
ip wccp web-cache redirect in
ip nat inside
ip virtual-reassembly
!
interface GigabitEthernet0/0.100
description Servers_LAN
encapsulation dot1Q 100
ip address 192.168.100.1 255.255.255.0
ip nat inside
ip virtual-reassembly
!
ip access-list extended REDIRECT_HTTP
deny tcp 192.168.40.0 0.0.0.255 192.168.100.0 0.0.0.255 eq www
permit tcp 192.168.40.0 0.0.0.255 any eq www
!


Все, с этого момента www траффик из локалки должен перенаправляться на Squid.


Проверяем , всё ли работает:

c2821#sh ip wccp web-cache detail
WCCP Client information:
WCCP Client ID: 192.168.100.253
Protocol Version: 2.0
State: Usable
Initial Hash Info: 00000000000000000000000000000000
00000000000000000000000000000000
Assigned Hash Info: FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
Hash Allotment: 256 (100.00%)
Packets s/w Redirected: 1524622
Connect Time: 1d02h
Bypassed Packets
Process: 0
Fast: 0
CEF: 0
Errors: 0


c2821#sh ip wccp
Global WCCP information:
Router information:
Router Identifier: 192.168.100.1
Protocol Version: 2.0

Service Identifier: web-cache
Number of Service Group Clients: 1
Number of Service Group Routers: 1
Total Packets s/w Redirected: 1568775
Process: 30
Fast: 0
CEF: 1568745
Service mode: Open
Service access-list: -none-
Total Packets Dropped Closed: 0
Redirect access-list: REDIRECT_HTTP
Total Packets Denied Redirect: 336896
Total Packets Unassigned: 1068
Group access-list: -none-
Total Messages Denied to Group: 0
Total Authentication failures: 13
Total Bypassed Packets Received: 0


mx2:~# tail -f /var/log/squid/access.log
1207822507.107 169 192.168.40.63 TCP_MISS/200 403 GET http://counter.yadro.ru/hit;HeadHunter? - DIRECT/88.212.196.78 image/gif
1207822507.210 48 192.168.40.63 TCP_MISS/301 524 GET http://hh.ru/images/dot.gif - DIRECT/77.95.131.6 text/html
1207822507.292 133 192.168.40.63 TCP_MISS/200 15436 GET http://hh.ru/poster/file/735976.gif - DIRECT/77.95.131.6 image/gif

Комментариев нет:

Отправить комментарий