Jump to content
Калькуляторы

CISCO+WCCP2+FREEBSD 9.0+SQUID3 Заезженная темано никак не работает...

Доброго времени суток уважаемые форумчане. Бьюсь почти неделю над такой проблемой. Есть у меня 2 подразделения, естественно в первом подразделении интернет от одного провайдера на втором подразделении интернет от другого провайдера. Имеются 2 циски 2911 и 1841. Между ними поднят GRE тунель. Так-же на подразделении 1 установлена FreeBSD 9.0 и squid 3.1.12 на виртуалке. Решил сделать прозрачное проксирование HTTP траффика при помощи WCCP2 на обоих подразделениях. Все настройки выполнял по данному мануалу http://itadept.ru/posts/freebsd-squid/ эм... и все работает только на подразделении 1, где собственно и стоит сам сервер с фряхой и squidом, но вот второе подразделение которое на удалении находится никак не хочет работать, то есть по ipfw show я вижу, что правило по данному редиректу отрабатыватся, пакетики скачут но на удаленном подразделении интернет не работает, хотя по тому же tcpdump -i gre1 видно что пакеты прилетают с адресами локалки удаленного подразделения. Сначала долго не мог добиться чтобы удаленное подразделение цепанулось по WCCP2, но когда добился то перестали открываться сайты. Выкладываю конфиги цисок и прочего софта и железа, может вы меня направите по правильному пути?. Кстати для того чтобы удаленное подразделение хоть как то увиделось воспользовался данной темой тема на nag.ru Сильно прошу не пинать, так как просто не знаю куда еще то копнуть...

 

Cisco 2911 подразделения 1

 

 

 

version 15.1

service timestamps debug datetime localtime

service timestamps log datetime localtime

service password-encryption

!

!

boot-start-marker

warm-reboot

boot-end-marker

!

!

logging buffered 51200 warnings

enable secret 5 123456789

 

!

!

no ipv6 cef

ip source-route

ip cef

 

!

no ip domain lookup

ip domain name name

ip wccp web-cache redirect-list 101

!

multilink bundle-name authenticated

 

!

interface Tunnel0

ip address 10.135.1.1 255.255.255.252

load-interval 30

tunnel source 1.1.1.2

tunnel destination 217.150.55.84

tunnel protection ipsec profile profile

!

interface GigabitEthernet0/0

description GW

ip address 1.1.1.2 255.255.255.240

no ip proxy-arp

ip nat outside

ip virtual-reassembly in

load-interval 30

duplex auto

speed auto

!

interface GigabitEthernet0/1

description LOCAL

ip address 192.168.1.3 255.255.255.0

no ip proxy-arp

ip wccp web-cache redirect in

ip nat inside

ip virtual-reassembly in

load-interval 30

duplex auto

speed auto

!

interface GigabitEthernet0/2

description -=REZERV=-

no ip address

no ip route-cache cef

no ip route-cache

shutdown

duplex auto

speed auto

 

!

ip forward-protocol nd

!

no ip http server

 

!

ip nat inside source list NAT interface GigabitEthernet0/0 overload

ip route 0.0.0.0 0.0.0.0 1.1.1.1

!

ip access-list extended NAT

permit ip 192.168.1.0 0.0.0.255 any

 

access-list 101 deny tcp host 192.168.1.7 any eq www

access-list 101 permit tcp 192.168.1.0 0.0.0.255 any eq www

 

show ip wccp дает следующий результат

 

Global WCCP information:

Router information:

Router Identifier: 192.168.1.3

Protocol Version: 2.0

 

Service Identifier: web-cache

Number of Service Group Clients: 1

Number of Service Group Routers: 2

Total Packets s/w Redirected: 794051

Process: 0

CEF: 794051

Service mode: Open

Service Access-list: -none-

Total Packets Dropped Closed: 0

Redirect Access-list: 101

Total Packets Denied Redirect: 0

Total Packets Unassigned: 0

Group Access-list: -none-

Total Messages Denied to Group: 0

Total Authentication failures: 0

Total GRE Bypassed Packets Received: 117

 

show ip wccp web-cache view дает такую картину

 

WCCP Routers Informed of:

192.168.1.3

217.150.55.84

 

WCCP Clients Visible:

192.168.1.7

 

WCCP Clients NOT Visible:

-none-

 

 

 

Вот конфиг cisco 1841 со второго подразделения

 

 

 

service timestamps debug datetime msec

service timestamps log datetime msec

service password-encryption

 

boot-start-marker

boot-end-marker

!

card type e1 0 0

logging message-counter syslog

logging buffered 51200 warnings

enable secret 5 123456789

!

no aaa new-model

dot11 syslog

ip source-route

ip wccp web-cache redirect-list 101

!

!

ip dhcp excluded-address 192.168.2.1

!

ip dhcp pool pool

!

ip dhcp pool 192.168.2.0/24

network 192.168.2.0 255.255.255.0

default-router 192.168.2.1

dns-server 217.150.34.129

!

!

ip cef

no ip domain lookup

ip domain name name

ip name-server 217.150.34.129

ip name-server 217.150.35.129

no ipv6 cef

!

multilink bundle-name authenticated

 

archive

log config

hidekeys

!

!

!

controller E1 0/0/0

channel-group 0 timeslots 1-31

!

ip ssh version 2

!

!

interface Loopback0

ip address 217.150.55.84 255.255.255.255

!

interface Tunnel0

ip address 10.135.1.2 255.255.255.252

load-interval 30

tunnel source 217.150.55.84

tunnel destination 1.1.1.2

tunnel protection ipsec profile profile

!

interface FastEthernet0/0

description LOCAL

ip address 192.168.2.1 255.255.255.0

ip nat inside

ip virtual-reassembly

duplex auto

speed auto

!

interface FastEthernet0/1

description -=REZERV=-

no ip address

shutdown

duplex auto

speed auto

!

interface Serial0/0/0:0

description GW

ip unnumbered Loopback0

ip access-group 20 in

ip nat outside

ip virtual-reassembly

encapsulation ppp

load-interval 30

 

ip forward-protocol nd

ip route 0.0.0.0 0.0.0.0 Serial0/0/0:0

no ip http server

!

ip nat inside source list NAT interface Loopback0 overload

!

ip access-list extended NAT

permit ip 192.168.2.0 0.0.0.255 any

!

access-list 101 deny tcp host 192.168.1.7 any eq www

access-list 101 permit tcp 192.168.2.0 0.0.0.255 any eq www

 

Так же прикладываю show ip wccp

Global WCCP information:

Router information:

Router Identifier: 217.150.55.84

Protocol Version: 2.0

 

Service Identifier: web-cache

Number of Service Group Clients: 1

Number of Service Group Routers: 2

Total Packets s/w Redirected: 156

Process: 0

CEF: 156

Service mode: Open

Service Access-list: -none-

Total Packets Dropped Closed: 0

Redirect Access-list: 101

Total Packets Denied Redirect: 0

Total Packets Unassigned: 74

Group Access-list: -none-

Total Messages Denied to Group: 0

Total Authentication failures: 0

Total Bypassed Packets Received: 0

 

а также show ip wccp web-cache view

WCCP Routers Informed of:

192.168.1.3

217.150.55.84

 

WCCP Clients Visible:

82.162.31.82

 

WCCP Clients NOT Visible:

-none-

 

И собственно говоря мне кажется что все кроется вот в этой строчке WCCP Clients Visible:82.162.31.82 но как например сделать её другой ну допустим 192.168.1.7 я не могу понять.

 

 

 

Конфиг фрее 9.0 он по большей части будет рукописный, так как в виртуалбоксе не разобрался как скопировать с терминалки =) (нуб!) разбираться просто некогда. :) Скажу только какие тунели создал и какие правила ipfw прописал.

 

 

ifconfig gre0 create

ifconfig gre0 192.168.1.7 10.20.30.40 netmask 255.255.255.255 link2 tunnel 192.168.1.7 192.168.1.3 up

 

ifconfig gre1 create

ifconfig gre1 192.168.1.7 10.20.30.41 netmask 255.255.255.255 link2 tunnel 192.168.1.7 217.150.55.84 up

 

Далее IPFW

 

IPFW add fwd 127.0.0.1,3128 tcp from any to any 80 via gre0 in

IPFW add fwd 127.0.0.1,3128 tcp from any to any 80 via gre1 in

 

 

 

Ну и последнее настройки squid 3.1.12, собственно по тому же мануалу что писал выше, но продублирую тут.

 

 

http_port 127.0.0.1:3128 intercept

connect_timeout 20 second

shutdown_lifetime 1 seconds

cache_dir ufs /usr/local/squid/cache 3000 16 256

maximum_object_size 320 MB

quick_abort_min 5 MB

coredump_dir /usr/local/squid/cache

access_log /usr/local/squid/log/access.log squid

log_mime_hdrs on

cache_mgr root@localhost

visible_hostname proxy.localnet.local

#

# Определяем списки контроля безопасности

#

acl manager proto cache_object

 

acl localhost src 127.0.0.1/32 ::1

acl to_localhost dst 127.0.0.0/8 0.0.0.0/32 ::1

 

acl localnet src 192.168.1.0/22 # RFC1918 possible internal network

 

acl CONNECT method CONNECT

 

acl MimeAudioVideo rep_mime_type audio video

 

acl UrlIP url_regex -i ^http://[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}/.*

 

http_access allow manager localhost

http_access deny manager

 

 

http_access deny CONNECT

 

http_access deny to_localhost

http_access allow localnet

http_access deny all

http_reply_access allow all

refresh_pattern -i (/cgi-bin/|\?) 0 0% 0

refresh_pattern . 0 20% 4320

 

wccp2_router 192.168.1.3

wccp2_router 217.150.55.84

wccp2_server 192.168.1.7

wccp2_forwarding_method gre

wccp2_return_method gre

 

 

 

Форумчане помогите сделать правильно! Уже весь мозг сломал, в идеале хочется чтобы эти запросы бегали через меня и чтобы я там отдельный прокси не ставил... Читал про WCCP2 в принципе пишут что такое возможно, как я и говорил tcpdump показывает что прилетают пакеты на gre1 с адресами локальной сети подразделения 2 то есть с диапазона 192.168.2.0/24. Буду признателен вам! Также забыл добавить что там еще и OSPF между роутерами настроен. Читал про WCCP написано что он за router identifier берет наибольший ип который есть на интерфейсах. Вот он и взял на себя внешний адрес...

Edited by kolka88

Share this post


Link to post
Share on other sites

Трафик со сквида должен выходить назад к абонентам через ту же циску, которая средиректила, через тот интерфейс, на который смотрит WCCP. Если это условие не выполняется - будет облом.

Edited by Alex/AT

Share this post


Link to post
Share on other sites

Трафик со сквида должен выходить назад к абонентам через ту же циску, которая средиректила, через тот интерфейс, на который смотрит WCCP. Если это условие не выполняется - будет облом.

Так вроде и происходит, если посмотреть, протокол WCCP по моему этим и занимается, то есть когда ключаешь squid они договариваются между собой, и пошло поехало, я говорю по правилу я вижу что пакеты прилетают на squid c ай пи адресами клиентов удаленной машины..., я не могу понять где затык происходит от сквида до циски, и происходит ли он... Может кто то реализовывал данныые вещи? Люди отзовитесь, неужели никто не использовал эту схему у себя?

Edited by kolka88

Share this post


Link to post
Share on other sites

WCCP не занимается передачей данных - он только позволяет клиенту (циске) обнаружить сервер кеширования.

Передача данных от абонента к серверу идет внутри GRE-туннеля между циской и сервером.

А вот назад данные уходят как попало - по роутингу с сервера. Если они не вошли в ту же циску, которая отправила данные от абонента, с интерфейса кеш-сервера - обратной трансляции IP не будет, и трафик абоненту придёт от IP самого сервера, а не целевого хоста.

Естественно, такой трафик будет дропнут, поскольку клиент соединения с сервером кеширования не заказывал.

Edited by Alex/AT

Share this post


Link to post
Share on other sites

WCCP не занимается передачей данных - он только позволяет клиенту (циске) обнаружить сервер кеширования.

Передача данных от абонента к серверу идет внутри GRE-туннеля между циской и сервером.

А вот назад данные уходят как попало - по роутингу с сервера. Если они не вошли в ту же циску, которая отправила данные от абонента, с интерфейса кеш-сервера - обратной трансляции IP не будет, и трафик абоненту придёт от IP самого сервера, а не целевого хоста.

Естественно, такой трафик будет дропнут, поскольку клиент соединения с сервером кеширования не заказывал.

Хорошо я все понял, тогда вопрос. Как можно подружить удаленное подразделение с моим подразделением по WCCP? Что для этого нужно? просто такая необходимость есть, а ставить там ПК со сквидом и тд не хочется, у меня просто еще несколько подразделений на очереди, и всем надо что то подобное делать, представьте что будет если я допустим захочу поменять список фильтров... Это прийдется на каждой машине заходить и менять... Может быть все таки надо прописать какойто обратный маршрут? Если дело в этом то прошу помощи, так как не имел дело с линуксами в принципе, все что знал я выложил...

Share this post


Link to post
Share on other sites

Люди ну помогите пожалуйста разобраться, уже какие только комбинации с гре не пробовал, все бестолку... Прикладываю tcpdump по гре0 на нем все работает. 1 Tcpdump не рабочего тунеля 2, разница есть я так понимаю в запросе ask, я так понимаю проблема в том что не уходит пакет обратно или что?. и соответственно прикладываю ifconfig, разница между гре отметил желтым 3. Люди неужели никто не реализовывал данную схему!? Откликнитесь умельцы! У меня таким макаром в планах цепануть еще штук 7 или 8 удаленных отделений... Или проще везде держать прокси?, нежели реализовыввать схему...

Edited by kolka88

Share this post


Link to post
Share on other sites

Я так понимаю никто ничего посоветовать не может?... ТОгда ладно. Буду наверно на каждой точке по 1 компу ставить и проксировать с него. Всем спасибо.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.