CISCO + WCCP + SQUID Прозрачный прокси
Ниже приведены конфигурации используемые мной для настройки и тестирования wccp
Кратко о wccp читаем тут, о настройках wccp в CISCO здесь
Настройки Cisco 871
Приведены настройки только касаемо wccp
ip wccp web-cache redirect-list wccp
ip access-list extended wccp
deny ip host 192.168.202.50 any (исключаем сам squid что бы не зациклилось)
permit tcp 192.168.202.0 0.0.0.255 any (можно создать более строгое правило с указанием того что заворачиваем только http трафик)
deny ip any any
interface Vlan1
description $ETH-SW-LAUNCH$$INTF-INFO-HWIC 4ESW$
ip address 192.168.202.49 255.255.255.0
ip wccp web-cache redirect in (перенаправлять на кеш сервер все пакеты входящие на интерфейс)
ip nat inside
ip virtual-reassembly
Настройки FREBSD
Конфигурация Squid
http_port 3128 transparent
# WCCPv1 AND WCCPv2 CONFIGURATION OPTIONS
# -----------------------------------------------------------------------------
wccp2_router 192.168.202.49
wccp_version 4
wccp2_forwarding_method 1
#Для GRE
wccp2_return_method 1
wccp2_assignment_method 1
wccp2_service_standard 0
# Для L2 method
wccp2_forwarding_method 2
wccp2_return_method 2
Насройка ipwf
Создаем скрипт и размещаем его в директории /usr/local/etc/rc.d/
#!/bin/sh
fwcmd="/sbin/ipfw "
${fwcmd} add 00440 allow tcp from 192.168.202.50 to any
${fwcmd} add 00450 fwd 127.0.0.1,3128 tcp from any to any 80
Настрйока GRE тунеля
Тунель надо поднимать только со строны кеш сервера.
Скрипт также сохраняем в /usr/local/etc/rc.d/
#!/bin/sh
sleep 2
kldload /boot/kernel/if_gre.ko
ifconfig gre0 create
ifconfig gre0 tunnel 192.168.202.50 192.168.202.49
ifconfig gre0 172.44.1.2/32 172.44.1.1 netmask 255.255.255.252
ifconfig gre0 up
ifconfig gre0 link2 (у меня заработало с link2, многие пишут что у них работает с link1)
Настройка на PFSense
Еще один вариант, если вам хочется красивого web-интерфейса и лень конфигурить фрю вручную, можно использовать pfSense
При использовании одного wan интерфейса
1. Через меню Interfaces -> assign настраиваем GRE tunnel через WAN интерфейс на внутренний адрес CISCO. Существует вариант когда необходимо настроить туннель на внешний адрес.
2. Создаем шлюз по умолчанию через меню System -> Routing, шлюзом выступает наш роутер с включенным wccp web-cache redirect
3. Устанавливаем в свойствах интерфейса wan созданный нами шлюз как дефолтный
4. Устанавливаем squid через System->Packages
5. Настраиваем Squid Services -> Proxy:
Proxy interface -WAN (так как других и нет в принципе)
Transparent Proxy - ставим галочку
Enable logging - ставим галочку
Log store directory /var/squid/log
Custom Option :
wccp2_router 192.168.202.49;
wccp_version 4;
wccp2_forwarding_method 1;
wccp2_return_method 1;
wccp2_assignment_method 1;
wccp2_service_standard 0;
Кратко о wccp читаем тут, о настройках wccp в CISCO здесь
Настройки Cisco 871
Приведены настройки только касаемо wccp
ip wccp web-cache redirect-list wccp
ip access-list extended wccp
deny ip host 192.168.202.50 any (исключаем сам squid что бы не зациклилось)
permit tcp 192.168.202.0 0.0.0.255 any (можно создать более строгое правило с указанием того что заворачиваем только http трафик)
deny ip any any
interface Vlan1
description $ETH-SW-LAUNCH$$INTF-INFO-HWIC 4ESW$
ip address 192.168.202.49 255.255.255.0
ip wccp web-cache redirect in (перенаправлять на кеш сервер все пакеты входящие на интерфейс)
ip nat inside
ip virtual-reassembly
Настройки FREBSD
Конфигурация Squid
http_port 3128 transparent
# WCCPv1 AND WCCPv2 CONFIGURATION OPTIONS
# -----------------------------------------------------------------------------
wccp2_router 192.168.202.49
wccp_version 4
wccp2_forwarding_method 1
#Для GRE
wccp2_return_method 1
wccp2_assignment_method 1
wccp2_service_standard 0
# Для L2 method
wccp2_forwarding_method 2
wccp2_return_method 2
Насройка ipwf
Создаем скрипт и размещаем его в директории /usr/local/etc/rc.d/
#!/bin/sh
fwcmd="/sbin/ipfw "
${fwcmd} add 00440 allow tcp from 192.168.202.50 to any
${fwcmd} add 00450 fwd 127.0.0.1,3128 tcp from any to any 80
Настрйока GRE тунеля
Тунель надо поднимать только со строны кеш сервера.
Скрипт также сохраняем в /usr/local/etc/rc.d/
#!/bin/sh
sleep 2
kldload /boot/kernel/if_gre.ko
ifconfig gre0 create
ifconfig gre0 tunnel 192.168.202.50 192.168.202.49
ifconfig gre0 172.44.1.2/32 172.44.1.1 netmask 255.255.255.252
ifconfig gre0 up
ifconfig gre0 link2 (у меня заработало с link2, многие пишут что у них работает с link1)
Настройка на PFSense
Еще один вариант, если вам хочется красивого web-интерфейса и лень конфигурить фрю вручную, можно использовать pfSense
При использовании одного wan интерфейса
1. Через меню Interfaces -> assign настраиваем GRE tunnel через WAN интерфейс на внутренний адрес CISCO. Существует вариант когда необходимо настроить туннель на внешний адрес.
2. Создаем шлюз по умолчанию через меню System -> Routing, шлюзом выступает наш роутер с включенным wccp web-cache redirect
3. Устанавливаем в свойствах интерфейса wan созданный нами шлюз как дефолтный
4. Устанавливаем squid через System->Packages
5. Настраиваем Squid Services -> Proxy:
Proxy interface -WAN (так как других и нет в принципе)
Transparent Proxy - ставим галочку
Enable logging - ставим галочку
Log store directory /var/squid/log
Custom Option :
wccp2_router 192.168.202.49;
wccp_version 4;
wccp2_forwarding_method 1;
wccp2_return_method 1;
wccp2_assignment_method 1;
wccp2_service_standard 0;
Комментарии
В Custom options неверно указан параметр wccp2_service
Одно нижнее подчеркивание лишнее, верным будет wccp2_service standart 0
А в остальном, спасибо за статью!