WCCPv2, cisco, freeBSD, squid

Дано: cisco 3750, сервер с freeBSD. Надо настроить WCCPv2.
3750 умеет редиректить пакеты к проксе только через L2. Похоже, она просто подменяет destination mac в пакете пользователя. Получать пакеты обратно, однако, 3750 хочет уже только через GRE. При использовании такой схемы, необходимо, чтобы сервер с проксёй и циска находились в одном L2 сегменте. Судя по описанию, цисковские роутеры умеют перенаправлять пакеты от пользователей через GRE, а значит нахождение в одном сегменте уже не является необходимостью.

Для начала надо поставить squid с поддержкой WCCPv2. Я ставил из портов версию 3.0stable8. Хотя на 2.7 тоже должно всё работать. При установке порта мне предложили вкомпилировать поддержку WCCPv2, которая по умолчанию отключена.
# /usr/ports/www/squid30/make install clean
Далее конфигурим /usr/local/etc/squid/squid.conf:

acl all src all
acl LocalNet src 93.100.x.x/24
acl LocalNet src 88.201.x.0/24
acl LocalNet src 93.100.x.x

http_port 127.0.0.1:3128 transparent

http_access allow LocalNet
http_access deny all

error_directory /usr/local/etc/squid/errors/sknt
httpd_suppress_version_string on
cache deny all
cache_dir null /tmp

### WCCPv2 ####
# тут обязательно должен быть айпишник циски в том же L2 сегменте что и прокси сервер
wccp2_router 88.201.x.x

#gre method
#wccp2_forwarding_method 1
#L2 method
wccp2_forwarding_method 2

#GRE
wccp2_return_method 1
#L2
#wccp2_return_method 2

wccp2_service standard 0

Создаем кэш squid: # squid -z
Запускаем squid: # squid -f /usr/local/etc/squid/squid.conf

Теперь надо создать gre туннель на freeBSD по которому будет ходить wccp:
# ifconfig gre0 create
# ifconfig gre0 link2
# ifconfig gre0 tunnel server_ip cisco_ip

Т.к. используется прозрачный прокси, то надо внести изменения в фаерволе. Я использую pf:
rdr proto tcp from any to any port 80 -> 127.0.0.1 port 3128 #squid
Применяем правила. Прокси готов, теперь свитч.
Создаем стандартный acl по которому будет приниматься решение форвардить ли ip на прокси или нет:
access-list 25 permit host 10.101.64.250
access-list 25 deny any

Айпишник 10.101.64.250 будет форвардиться на прокси, остальные нет. Теперь настраиваем сам wccp:
ip wccp web-cache redirect-list 25
На L3 интерфейсе пользователей: ip wccp web-cache redirect in
Всё. WCCP должен заработать.

Диагностика на циске:
sh ip wccp
sh ip wccp web-cache detail

На самый край:
debug ip wccp events
debug ip wccp packets

Advertisements

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s