Всем доброго дня.
Заранее говорю, что доку и форумы читал, примеры находил, но вот не "срастается" у меня сия связка.
Данный топик хочется завести чтоб получить ответы и для себя, и для следующих поколений.
Первое что посетил это:
http://wiki.squid-cache.org/SquidFaq/CompleteFaq#head-182f30...
и
http://www.opennet.me/openforum/vsluhforumID12/5182.htmlИ так, просто скачал образ Fedora 8 (Linux 2.623.1-48-fc8)
и попытался сделать вот такое (как было сказано в первой ссылке):
* In /etc/sysconfig/network-scripts/ifcfg-gre0 I have this:
DEVICE=gre0
BOOTPROTO=static
IPADDR=172.16.1.6
NETMASK=255.255.255.252
ONBOOT=yes
IPV6INIT=noсохраняю, перегружаюсь и получаю сбой при инициализации интерфейса, типа возможно "оборудование не установлено".
Лано думаю я, пошел другим путем как описано по той же первой ссылке:
Ensure that the GRE code is either built as static or as a module by chosing the appropriate option in your kernel config. Then rebuild your kernel. If it is a module you will need to:ip tunnel add wccp0 mode gre remote <Router-External-IP> local <Host-IP> dev <interface>
ip addr add <Host-IP>/32 dev wccp0
ip link set wccp0 upинтерфейс вроде поднялся.
а вот теперь самое не понятное, потому прошу ПРЯМОГО примера.
у меня на fedora стоит iptables, и правило для заворота трафа на squid:
-A PREROUTING -s 192.168.0.0/255.255.255.0 -d ! 192.168.0.0/255.255.255.0 -i gre0 -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.0.5:3128
не фунциклирует, точнее при старе fedora сразу начинает ругаться на проблемы с iptables.:(((
P.S. отдельной эпопеи заслуживают время и нервы потраченные на попытки "загрузиться" с DVD Fedora 8, фразы в форумах типа "х-м, а у меня грузятся" откровенно бесили, так как лично у меня не грузилось ни при каких обстоятельствах. Было убито 7 болванок, настройки всяких там DMA и прочей ерунды, в итоге все оказалось гораздо проще: грузиться надо именно с того DVD привода, на котором образ записывался! И шлейф IDE UDMA 33 - лучше не использовать. Жаль 2 дня потерянных на банальные попытки загрузиться.P.S.2 Компиляция ядра Fedora 8.
Тоже не без греха, точнее она так и не удалась.
Установил Fedora 8, в "Установка удаление программ" добавил установку исходников ядра.запустил make xconfig
отметил что нужно, что не нужно не выбирал, оставил как есть, ибо не знаю че и как там.запускаю make dep - ничего не сделал, только ругнулся одной строкой чего то там now (типа не нужно запускать make dep )
и все, make, make bzImage и другие команды просто вываливаются с ошибками.
Вот такие пироги. Чайник в Linux.
Если кому не в лом, скиньте в эту тему свое видение решение данных проблем.
попробуй после загрузки дать команды:
1)ip addr - ищи Gre0
2)ручками iptables -t nat -A PREROUTING -i gre0 -s 192.168.0.0/255.255.255.0 -d ! 192.168.0.0/255.255.255.0 -p tcp --dport 80 -j DNAT --to-destination 192.168.0.5:3128хотя у меня сомнения можно ли порт указывать в назначении DNAT =)
P.S> Ох уж эти gre туннели
>попробуй после загрузки дать команды:
>1)ip addr - ищи Gre0
>2)ручками iptables -t nat -A PREROUTING -i gre0 -s 192.168.0.0/255.255.255.0 -d !
>192.168.0.0/255.255.255.0 -p tcp --dport 80 -j DNAT --to-destination 192.168.0.5:3128
>
>хотя у меня сомнения можно ли порт указывать в назначении DNAT =)
>
>P.S> Ох уж эти gre туннели1) нету, интерфейс GRE появился только после этих команд:
ip tunnel add wccp0 mode gre remote <Router-External-IP> local <Host-IP> dev <interface>
ip addr add <Host-IP>/32 dev wccp0
ip link set wccp0 upциска показывает что кэш видит, пакеты на него отправляет, но http траф не идет!
squid запустил на 80 порту, чтоб не заморачиваться с перенаправлением.Решил пойти другим путем, поставил RedHat 9 (2.4.20-8). Скомпилил с нужными пунктами (GRE), скомпилилось без проблем (в отличии от ядра Fedora 8, которое ругалось на каждом шагу)
скачал ip_wccp.c (все три версии) отсюда http://www.squid-cache.org/WCCP-support/Linux/
а они компилиться не хотят и все тут!!!! Ругаются на файл /usr/src/linux-2.4.20-8/include/linux/module.hПодскажите где грабли плиз. совсем заворачиваюсь.
Помоему в Debian всё идет без компиляции - попробуй поиграться =)
>Помоему в Debian всё идет без компиляции - попробуй поиграться =)Э.... пошел искать образы в инете - нашел что весят они 12 гектаров, у меня модем "закачается" просто :((((
P.S. Живу там, где "горбушек" нету :((
>>Помоему в Debian всё идет без компиляции - попробуй поиграться =)
>
>Э.... пошел искать образы в инете - нашел что весят они 12
>гектаров, у меня модем "закачается" просто :((((
>P.S. Живу там, где "горбушек" нету :((NetInst смотри 60Mb
не, люди, я сейчас точно "завернусь"На Циске:
aaa session-id common
ip subnet-zero
ip wccp web-cache redirect-list 133
!
!
ip name-server 213.xxx.xxx.2
ip name-server 87.xxx.xxx.208
!
ip cef
vpdn enable....
access-list 133 permit tcp host 213.xxx.xxx.261 any eq www
CISCO5400#sh access-lists 133
Extended IP access list 133
10 permit tcp host 213.xxx.xxx.261 any eq www (916 matches)CISCO5400#
CISCO5400#
CISCO5400#
CISCO5400#
CISCO5400#sh ip wccp
Global WCCP information:
Router information:
Router Identifier: 81.xxx.xxx.129
Protocol Version: 2.0Service Identifier: web-cache
Number of Cache Engines: 1
Number of routers: 1
Total Packets Redirected: 7
Redirect access-list: 133
Total Packets Denied Redirect: 4886
Total Packets Unassigned: 802
Group access-list: -none-
Total Messages Denied to Group: 0
Total Authentication failures: 0CISCO5400#sh ip wccp web-cache detail
WCCP Cache-Engine information:
Web Cache ID: 213.xxx.xxx.22
Protocol Version: 2.0
State: Usable
Initial Hash Info: 00000000000000000000000000000000
00000000000000000000000000000000
Assigned Hash Info: FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
Hash Allotment: 256 (100.00%)
Packets Redirected: 7
Connect Time: 00:01:29Dec 17 18:20:28.620: WCCP-PKT:S00: Received valid Here_I_Am packet from 213.xxx.xxx.22 w/rcv_id 00000015
Dec 17 18:20:28.620: WCCP-PKT:S00: Sending I_See_You packet to 213.xxx.xxx.22 w/ rcv_id 00000016
Dec 17 18:20:38.636: WCCP-PKT:S00: Received valid Here_I_Am packet from 213.Xxx.xxx.22 w/rcv_id 00000016
Dec 17 18:20:38.636: WCCP-PKT:S00: Sending I_See_You packet to 213.xxx.xxx.22 w/ rcv_id 00000017
Dec 17 18:20:48.656: WCCP-PKT:S00: Received valid Here_I_Am packet from 213.xxx.xx.22 w/rcv_id 00000017
Dec 17 18:20:48.656: WCCP-PKT:S00: Sending I_See_You packet to 213.xxx.xxx.22 w/ rcv_id 00000018
Dec 17 18:20:58.684: WCCP-PKT:S00: Received valid Here_I_Am packet from 213.xx.xx.22 w/rcv_id 0000001
На Linux GRE интерфейс:
[root@localhost ~]# ifconfig gre0
gre0 Link encap:UNSPEC HWaddr 00-00-00-00-05-08-90-AC-00-00-00-00-00-00-00-00
inet addr:172.16.1.6 Mask:255.255.255.252
UP RUNNING NOARP MTU:1476 Metric:1
RX packets:1941 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:217688 (212.5 KiB) TX bytes:0 (0.0 b)то есть пакеты ходють!
[root@localhost ~]# uname -a
Linux localhost.localdomain 2.6.23.8-63.fc8 #1 SMP Wed Nov 21 18:10:47 EST 2007 i686 i686 i386 GNU/Linux
конфиг сквида:visible_hostname localhost.localhost
http_port 213.xxx.xxx.22:80 transparent
wccp_version 4
wccp2_router 213.xxx.xxx.1 (адрес 81.xxx.xxx.129 на этом же роутере)
wccp2_forwarding_method 1
wccp2_return_method 1
wccp2_service standard 0
Реально уперся в стену, инета 213.xxx.xxx.261 машины нету :((( если тупа настраиваю ее на использование сквида как прокси - работает на ура, через WCCP нет и все тут!HelpME!!!!!!
C меня пиво.
Разобрался.
Все дело было в кривых исходниках ядра пришедших с дистром Fedora.
Доброго времени суток!
Уважаемый iles, не могли бы вы по подробнее рассказать как решили проблему... потому, что я когда увидел название темы просто абалдел, абсолютно та же проблема... только CISCO не 54-я, а 72-я... тоже Fedora 8, и так же надо настроить прозрачный прокси с перехватом... да и по вашим постам сужу, что и шаги одинаковые... :) единственное отступление, Fedora дистрибутив, который мне большего всего нравиться из всех rpm-based, и проблемы возникшие у вас с установкой, по вашим сообщениям, связаны скорее всего с вашим приводом (CD-ROM/DVD-ROM), потому что вы сказали что потом все таки поставили только с того привода на котором записали...
вернемся к нашим баранам, т.е. к Сквидам... :)
>и попытался сделать вот такое (как было сказано в первой ссылке):
> * In /etc/sysconfig/network-scripts/ifcfg-gre0 I have this:
>DEVICE=gre0
>BOOTPROTO=static
>IPADDR=172.16.1.6
>NETMASK=255.255.255.252
>ONBOOT=yes
>IPV6INIT=no
>
>сохраняю, перегружаюсь и получаю сбой при инициализации интерфейса, типа возможно >"оборудование не установлено".тоже самое и я собирался сделать, но сетевые интерфейсы инициализируются раньше чем загружается модуль ядра из rc.local, поэтому от этого я тоже отказался... кстати, нигде у вас не видел, чтобы вы пытались подгрузить модуль ip_gre (modpobe ip_gre)...
>Лано думаю я, пошел другим путем как описано по той же первой ссылке:
>Ensure that the GRE code is either built as static or as
>a module by chosing the appropriate option in your kernel config.
>Then rebuild your kernel. If it is a module you will
>need to:
>ip tunnel add wccp0 mode gre remote <Router-External-IP> local <Host-IP> dev <interface>
>ip addr add <Host-IP>/32 dev wccp0
>ip link set wccp0 upя прописал все это тоже, после загрузки модуля, в rc.local все поднимается и тунель, и интерфейс...
>а вот теперь самое не понятное, потому прошу ПРЯМОГО примера.
>у меня на fedora стоит iptables, и правило для заворота трафа на
>squid:
>-A PREROUTING -s 192.168.0.0/255.255.255.0 -d ! 192.168.0.0/255.255.255.0 -i gre0 -p tcp >-m tcp --dport 80 -j DNAT --to-destination 192.168.0.5:3128
>не фунциклирует, точнее при старе fedora сразу начинает ругаться на проблемы с >iptables.:(((вот здесь все правильно, но в файле где прописываются правила надо было указать следующее:
*nat
:PREROUTING ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-I PREROUTING -p tcp -m tcp -s ! xxx.xxx.xxx.xxx --dport 80 -j REDIRECT --to-port 3128
должен загружаться модуль ядра и iptables'a NAT и тогда все работает...
но я потом как и вы отказался от этого и заставил сквид слушать на нескольких портах 3128 и 80.
и вот тут начинается самое интересное, как и вы давали логи с Циски, у меня то же самое Циска и сквид видят друг-друга, обмениваются пакетами:
Received valid Here_I_Am packet
Sending I_See_You packet
и самое интересное, что циска перехватывает трафик и направляет сквиду, смотрю tcpdump'ом пакеты приходят, смотрю ifconfig тоже пакеты приходят:
RX packets:15 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
а сквид как слепой ничего не видит, в access логе сквида пусто....... и я не могу понять как ему сказать слушать с этого тунеля и отвечать в тот же тунель....
есть некоторые нюансы, вот например у меня циска почему-то шлет пакеты с адреса Router Identifier. и в разных источниках когда поднимается тунель разные айпишники указываются, кто пишет локальные айпишники указывать надо, кто пишет реальные... но не так, не так не работает... и еще в FAQ'е по сквиду сказано, что нужн отключить rp_filter,
echo 0 >/proc/sys/net/ipv4/conf/wccp0/rp_filter вы отключали???
вобщем был бы благодарен если бы вы развернуто ответили, да и может это еще кому-нибудь поможет...
У меня все решилось после скачивания "нормального" дистрибутива, перекомпиляции ядра включением всего что связано с GRE (поддержку GRE включил в ядро, интерфейс стал загружаться при старте системы без глюков ) и iptables (FORWARD и еще чего то там, уже не помню). После чего тупо взял и сделал все по инструкциям с форумов - и с первого раза все закрутилось, я даже сам не ожидал этого (хотя раньше делал все по тем же инструкциям, но эффекта не было). Сквид поставил на прослушку порта 3128, на 80 порту он не стал крутиться. Все поставил на VM машину, сделал образ диска, и в случае чего просто "Ресторюсь".
Кстати, при компиляция ядра не помешает установить лимит файловых дискрипторов в 8192 (против 1024 в стандарте)
>У меня все решилось после скачивания "нормального" дистрибутива, перекомпиляции ядра включением всего
>что связано с GRE (поддержку GRE включил в ядро, интерфейс стал загружаться при старте >системы без глюков ) и iptables (FORWARD и еще чего то там, уже не помню). После чего >тупо взял и сделал все по инструкциям с форумов - и с первого
>раза все закрутилось, я даже сам не ожидал этого (хотя раньше
>делал все по тем же инструкциям, но эффекта не было). Сквид
>поставил на прослушку порта 3128, на 80 порту он не стал
>крутиться. Все поставил на VM машину, сделал образ диска, и в
>случае чего просто "Ресторюсь".
>Кстати, при компиляция ядра не помешает установить лимит файловых дискрипторов в 8192
>(против 1024 в стандарте)Нормального это, какого??? Не Федора :) или Федора, но скачанную занового???... я боюсь, что дело не в дистрибутиве... может быть в ядре, но я там посмотрел о GRE только в одном месте, что-то вроде поддерживать его и все... тем более, что ядра и так можно заапгрейдить, через тот же yum... у меня уже 2.6.24.3-50, а если ядро заапгрейдить, это каждый раз пересобирать его... поэтому я просто загружаю модуль и все, единственное неудобство это в том же rc.local каждый раз конфигурю тунел и интерфес....
да и еще, можно все-таки увидеть команды какими создавался тунель и интерфейс???
меня больше всего интересует:
ip addr add <Host-IP>/32 dev wccp0
какой адрес указывается тут???
заранее спасибо!
>Нормального это, какого??? Не Федора :) или Федора, но скачанную занового???...Fedora 8, ядро с kernels.org
>меня больше всего интересует:
>ip addr add <Host-IP>/32 dev wccp0
>какой адрес указывается тут???
>заранее спасибо!Интерфейс поднимался файлом ifcfg-gre0 из каталога /etc/sysconfig/network-scripts:
# Interface GRE for WCCP
DEVICE=gre0
BOOTPROTO=none
IPADDR=175.175.175.254 (ip адрес от балды, главное - чтоб он был)
NETMASK=255.255.255.255
ONBOOT=yes
IPV6INIT=no
MTU=1476
TYPE=Ethernet
NM_CONTROLLED=no
USERCTL=no
PEERDNS=yesесли GRE включить в ядро, а не в модуль, то данный файл грузиться при старте без вопросов
а все-таки можно увидеть вывод команды:
ip tunnel show
>а все-таки можно увидеть вывод команды:
>ip tunnel show[root@localhost ~]# ip tunnel show
tunl0: ip/ip remote any local any ttl inherit nopmtudisc
gre0: gre/ip remote any local any ttl inherit nopmtudisc
[root@localhost ~]#
Вопрос к общественности:Вообщем связка уже ясна: Cisco 5350 - WCCP(GRE) - SQUID
Вопрос вот какой: Хочется сделать на серваке со сквидом две сетевухи, чтоб по одной из них работал GRE туннель между сквидом и циской, а по другой - сквид ходил в инет на страничками.
Что конкретно не знаю - как в линухе указать тунелю по какой сетевухе ходить?? и работает ли это в случае с GRE тунелем для нужд WCCP?
Вопрос снят. Связка сделана и работает шустрее чем на одной сетевухе.
Здравствуйте!Уважаемые iles и Андрей!
Когда я нашел эту тему, тоже очень обрадовался, т.к. ваша ситуация практически в точности повторяет мою, поэтому если можно, подробнее о решении...
Дело в том, что Squid 2.0 у меня когда-то работал с циской 5350, настраивал не я, но остались некоторые конфиги, на основе которых я решил возобновить проксирование.
У меня Cisco 7206VXR, сервак с RHEL4 (2.6.18-8.el5). Переделал конфиг squid.conf на новый лад, т.к. на RHEL4 используется SQUID 2.6.STABLE6 и некоторые директивы как "http_accel_..." не работают.
Туннель поднялся, счетчики на циске забегали, но http не шел. Отчаявшись, поставил на отдельную машину RH9 (2.4.20-8) с Squid 2, старыми конфигами (с поправкой на ip-адреса). Тут возникла другая проблема - ни в какую не компилится ip_wccp. Как оказалось, уважаемый iles шел тем же путем :-)
Т.к. хочется решить проксирование всё-таки свежим линуксом, и вам это удалось, привожу конфиги для нового сквида.
Итак, на циске:
ip wccp check services all
ip wccp web-cache redirect-list 97access-list 97 permit xxx.xxx.xxx.34 - адрес моего компа
access-list 97 deny xxx.xxx.xxx.30 - адрес прокси-сервера
access-list 97 deny anyна интерфейсе, который смотрит в инет:
ip wccp web-cache redirect outна интерфейсе, который смотрит на прокси:
interface GigabitEthernet0/2.5
description PROXY
encapsulation dot1Q 5
ip address xxx.xxx.xxx.29 255.255.255.252
ip wccp web-cache group-listenНа прокси-сервере:
Установлен пакет ip_wccp-1.7Сеть:
eth0: xxx.xxx.xxx.2/255.255.255.240 gw xxx.xxx.xxx.1
eth1: xxx.xxx.xxx.30/255.255.255.252 - интерфейс подлючен через vlan5 для связи с цискойСодержимое /etc/sysctl.conf
net.ipv4.ip_forward = 0
net.ipv4.conf.default.rp_filter = 1
kernel.sysrq = 0Содержимое /etc/rc.d/rc.local
modprobe ip_gre
ip tunnel add wccp0 mode gre remote xxx.xxx.xxx.29 local xxx.xxx.xxx.30 dev eth1
ip addr add xxx.xxx.xxx.30/32 dev wccp0
ip link set wccp0 up
modprobe ip_wccpНастройки squid.conf
http_port xxx.xxx.xxx.30:3128 transparent
icp_port 0
hierarchy_stoplist cgi-bin ? yandex.ru mail.ru rambler.ru yahoo.com hotmail.com hotmail.ru list.ru nm.ru
acl QUERY urlpath_regex cgi-bin \? yandex.ru mail.ru rambler.ru yahoo.com hotmail.com hotmail.ru list.ru nm.ru
no_cache deny QUERY
cache_mem 2048 MB
cache_swap_low 97
cache_swap_high 99
maximum_object_size 32 MB
minimum_object_size 0 KB
maximum_object_size_in_memory 20 KB
ipcache_size 8192
fqdncache_size 8192
cache_dir ufs /var/spool/squid 20480 256 256
access_log /var/log/squid/access.log squid
cache_log /var/log/squid/cache.log
cache_store_log none
client_netmask 255.255.255.255
hosts_file /etc/hosts
auth_param basic children 5
auth_param basic realm Squid proxy-caching web server
auth_param basic credentialsttl 2 hours
auth_param basic casesensitive off
request_body_max_size 0 KB
"refresh_pattern ^ftp: 1440 20% 10080"
"refresh_pattern ^gopher: 1440 0% 1440"
"refresh_pattern . 0 20% 7200"
negative_ttl 1 minutes
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 SSL_ports port 443
"acl Safe_ports port 80 # http"
"acl Safe_ports port 21 # ftp"
"acl Safe_ports port 443 # https"
"acl Safe_ports port 70 # gopher"
"acl Safe_ports port 210 # wais"
"acl Safe_ports port 1025-65535 # unregistered ports"
"acl Safe_ports port 280 # http-mgmt"
"acl Safe_ports port 488 # gss-http"
"acl Safe_ports port 591 # filemaker"
"acl Safe_ports port 777 # multiling http"
acl CONNECT method CONNECT
acl cisco src xxx.xxx.xxx.29/255.255.255.255 # ip-адрес циско-интерфейса для прокси
acl net1 src xxx.xxx.xxx.0/255.255.248.0 # вся моя сеть
acl snmpall snmp_community 2ndday
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access deny !localhost !manager !net1
http_reply_access allow all
icp_access deny all
cache_effective_user squid
cache_effective_group squid
visible_hostname proxy.alania.net
cachemgr_passwd unonymizers all
always_direct allow all
acl hotmail_domains dstdomain .hotmail.msn.com
header_access Accept-Encoding deny hotmail_domains
snmp_port 3401
snmp_access allow snmpall all
snmp_access deny all
wccp2_router xxx.xxx.xxx.29
wccp2_forwarding_method 1
wccp2_return_method 1
wccp2_address xxx.xxx.xxx.30
acl slowdown dstdom_regex banthisdomain.com
acl slowdown dstdom_regex banthisdomain.org
delay_pools 1
delay_class 1 1
delay_access 1 allow slowdown
delay_access 1 deny all
delay_parameters 1 100/100
coredump_dir /var/spool/squid
client_persistent_connections off
server_persistent_connections offСразу оговорю, что squid.conf мне непонятен и я привел одну из многочисленных вариаций, которые пробовал.
Содержимое /etc/sysconfig/iptables, относящееся к заруливанию трифика на squid
*nat
-A PREROUTING -m tcp -p tcp -d ! xxx.xxx.xxx.30 --dport 80 -j DNAT --to xxx.xxx.xxx.30:3128
COMMITЦиска в таком раскладе видит прокси, правда показывает ее как xxx.xxx.xxx.30, а себя не как xxx.xxx.xxx.29, а с ip-адресом Loopback-интерфейса. Это может как-то серьезно повлиять? На прокси, как я уже сказал, wccp0 поднимается, но трафика на нем нет. На моей (клиентской) машине после старта сквида httpd пропадает.
Буду очень признателен, если подскажите где ошибка или что попробовать изменить.
Итак по порядку.
Все делалось давно и я собственно уже успел подзабыть все тонкости с которыми пришлось столкнуться.
1. Первое что я запомнил и зарубил себе - не работать с исходниками ядра, идущими в комплекте с дистрибутивом или скачиваемым "установленной" осью с репозитария. Граблей я поймал не мало, возможно для профи это были бы во-все и не грабли, но мне хватило.
исходники ядра скачал тут: http://www.kernel.org/pub/linux/kernel/v2.6/. Скачал 2.6.27.
Далее я скомпилил как уже говорил ранее с включенными в ядро GRE и еще кое-какими параметрами:.......
CONFIG_INET=y
CONFIG_IP_MULTICAST=y
CONFIG_IP_ADVANCED_ROUTER=y
CONFIG_ASK_IP_FIB_HASH=y
# CONFIG_IP_FIB_TRIE is not set
CONFIG_IP_FIB_HASH=y
CONFIG_IP_MULTIPLE_TABLES=y
CONFIG_IP_ROUTE_MULTIPATH=y
CONFIG_IP_ROUTE_VERBOSE=y
# CONFIG_IP_PNP is not set
CONFIG_NET_IPIP=y
CONFIG_NET_IPGRE=y
CONFIG_NET_IPGRE_BROADCAST=y
CONFIG_IP_MROUTE=y
CONFIG_IP_PIMSM_V1=y
CONFIG_IP_PIMSM_V2=y
.....................
CONFIG_NETLABEL=y
CONFIG_NETWORK_SECMARK=y
CONFIG_NETFILTER=y
# CONFIG_NETFILTER_DEBUG is not set
CONFIG_NETFILTER_ADVANCED=y
CONFIG_BRIDGE_NETFILTER=y
....................оригинал файла config здесь: http://narod.ru/disk/4559821000/config.html
2. далее, модуль ip_wccp использовать не стал вообще, так как сквиду 2.6 он не нужен.
В принципе после компиляции ядра все практически сразу стало на свои места. Итак конфиг линукса:/etc/sysconfig/network-scripts/ifcfg-gre0
# Interface GRE for WCCP
DEVICE=gre0
BOOTPROTO=none
IPADDR=175.175.175.254
NETMASK=255.255.255.255
ONBOOT=yes
IPV6INIT=no
MTU=1476
TYPE=Ethernet
NM_CONTROLLED=no
USERCTL=no
PEERDNS=yesкопия файла ifcfg-gre0 сюда
/etc/sysconfig/networking/devices/
и сюда
/etc/sysconfig/networking/profiles/defaultдалее в rc.local добавляем:
/sbin/ip link set dev gre0 upдалее идем в iptables
Я на сквид завел два интерфейса - на одном сквид поднимает GRE тонель с циской и по нему слушает "запросы" (его адрес 192.168.254.2), а по второму сам ходит в инет и "достает" оттуда запрошенные страницы.-A PREROUTING -s 213.xx.xx.0/255.255.255.0 -d 192.168.254.2 -p tcp -m tcp --dport 80 -j ACCEPT
-A PREROUTING -s 213.xx.xx.0/255.255.255.0 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128
-A INPUT -s 213.xx.xx.0/255.255.255.0 -d 192.168.254.2 -p tcp -m tcp --dport 80 -j ACCEPT
на CISCO:ip wccp web-cache redirect-list 133
interface FastEthernet0/0.10
description CONNECT TO WCCP-SQUID
encapsulation dot1Q 10
ip address 79.xx.xx.249 255.255.255.248
no ip redirects
no ip unreachables
no ip proxy-arp
ip nat inside
no ip mroute-cache
no cdp enable
interface FastEthernet0/0.11
description GRE TO SQUID
encapsulation dot1Q 11
ip address 192.168.254.1 255.255.255.252
no ip redirects
no ip unreachables
no ip proxy-arp
no ip mroute-cache
no cdp enable
interface FastEthernet0/1.553
description CONNECT TO PROVAIDER
encapsulation dot1Q 53
ip address 87.xx.xx.66 255.255.255.252
no ip redirects
no ip proxy-arp
ip wccp web-cache redirect out
ip nat outside
no ip mroute-cache
ip policy route-map NAT_NETFLOW
no cdp enable
access-list 133 remark #--------------ZAVOROT-NA-CASHE---------------#
access-list 133 deny ip host 79.xx.xx.253 any
access-list 133 deny ip host 79.xx.xx.254 any
access-list 133 permit tcp any any eq www3. Конфиг самого squid:
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 SSL_ports port 443
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 # https
acl Safe_ports port 70 # gopher
acl Safe_ports port 210 # wais
acl Safe_ports port 1025-65535 # unregistered ports
acl Safe_ports port 280 # http-mgmt
acl Safe_ports port 488 # gss-http
acl Safe_ports port 591 # filemaker
acl Safe_ports port 777 # multiling http
acl CONNECT method CONNECTicp_access allow all
http_port 3128
hierarchy_stoplist cgi-bin ?
acl QUERY urlpath_regex cgi-bin \?
cache deny QUERYcache_mem 64 MB
cache_dir ufs /var/spool/squid 512 16 256
maximum_object_size 512 KB
access_log /var/log/squid/access.log squid
cache_log /var/log/squid/cache.log
cache_store_log /var/log/squid/store.log
logfile_rotate 1
strip_query_terms off
redirector_bypass on
redirect_program /usr/local/bin/squidGuard (это по вкусу)
refresh_pattern ^ftp: &n... 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern . 0 20% 4320acl apache rep_header Server ^Apache
broken_vary_encoding allow apache
acl SNMP_T snmp_community snmp123xx (это для снятия статы MRTG)
acl snmphost13 src 213.xx.xx.20/255.255.255.255
acl snmphost13 src localhostsnmp_access allow SNMP_T snmphost13
snmp_access deny alldns_nameservers 213.xx.xx.20
coredump_dir /var/spool/squid
acl User_net_1 src 79.xx.xx.0/24
acl User_net_2 src 92.Xx.xx.0/24acl User_unlim_1 src 192.168.136.0/24
acl User_unlim_2 src 192.168.154.0/24http_access allow User_net_1
http_access allow User_net_2http_access allow User_unlim_1
http_access allow User_unlim_2
http_access deny alltcp_outgoing_address 79.xx.xx.254 User_net_1
tcp_outgoing_address 79.xx.xx.254 User_net_2tcp_outgoing_address 79.xx.xx.253 User_unlim_1
tcp_outgoing_address 79.xx.xx.253 User_unlim_2----------
тут нужно пояснение. Дело в том, что у меня два вида клиентов - с оплатой по трафу и безлимитчики. И тех и тех нужно зарулить на сквид, но проблема в том, что далее их нужно зарулить на разных операторов, а так как после "прохода" юзера через сквид, определить "ху-из-ху" не вариант, я на "выходном" интерфейсе сервера поставил "secondary" адрес, а сквиду сказал, что юзеров из такой то сетки "выплевывать" с адресом 79.xx.xx.254, а юзеров из другой сетки с адресом 79.xx.xx.253. В итоге, когда это все приходит на маршрутизатор, по SRC адресу он знает кого в какой канал рулить.
----------
visible_hostname localhost.localhost
http_port 3128 transparent
wccp2_router 192.168.254.1 (вот тут мы получаем, что тонель будет организовываться по второму интерфейсу, выделенному чисто под GRE)это полный конфиг моего сквида. Все что указано - активировано, все остальное - закоментировано и соответственно либо заблокировано, либо действуют параметры по умолчанию.
Вот в принципе и все.
Огромное спасибо за оперативный ответ!
Даже не ожидал, что так быстро откликнитесь, iles и Андрей.
Через час после поста iles-a я уже сверял настройки и к 3-м часам ночи у меня уже всё работало :-)Теперь по пунктам.
1. С ядром НИЧЕГО не делал. То есть вообще ничего :-)
2. То что ip_wccp вообще не нужен, стало для меня открытием. С удовольствием от него избавился (убрал все упоминания о нем из конфигов).
3. GRE поднял полностью в rc.local (заменив при этом реальные ip на фейковые)
modprobe ip_gre
ip tunnel add gre0 mode gre local 175.175.175.254 dev eth1
ip addr add 175.175.175.254/32 dev gre0
ip link set gre0 up4. iptables у меня выглядит так:
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:RH-Firewall-1-INPUT - [0:0]
-A INPUT -j RH-Firewall-1-INPUT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp -s xxx.xxx.xxx.0/21 --dport 22 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j DROP
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp -s xxx.xxx.xxx.0/21 --dport 80 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j DROP
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp -s xxx.xxx.xxx.0/21 --dport 5902 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 5902 -j DROP
-A RH-Firewall-1-INPUT -m tcp -p tcp -s xxx.xxx.xxx.0/21 --dport 3128 -j ACCEPT
-A RH-Firewall-1-INPUT -m tcp -p tcp --dport 3128 -j DROP
COMMIT
*nat
:PREROUTING ACCEPT [0:0]
-A PREROUTING -s xxx.xxx.xxx.0/21 -d xxx.xxx.xxx.2 -p tcp -m tcp --dport 80 -j ACCEPT
-A PREROUTING -s xxx.xxx.xxx.0/21 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128
COMMIT
Я закрываю фаерволом ssh,http и vnc с внешних сетей. Прероутинг сделал по iles-у, с поправкой, что к данной машине я обращаюсь на 2-й адрес, а не на 30-й, который настроен на связку с циской.5. На циске убрал "ip wccp web-cache group-listen" с интерфейса GigabitEthernet0/2.5, т.к. нигде в мануалах не встречал такую директиву (её поставил наш цискарь).
В остальном оставил прежние настройки.
Вопрос iles: у вас NAT используется? или мы говорим о прозрачном прокси?6. Конфиг сквида у нас практически не различается, но так по мелочам поправил...
Не знаю, какое из моих действий повлияло, но прокси "мэджикалли" заработал. Пока еще не разбирался, где именно решающее отличие. Сначала надо выспаться :-))
Вообщем, не вижу смысла использовать реальные ip для связки SQUID-Cisco, тем более что задача у меня стоит специфичная. Я поднимаю сквид не для проксирования клиентов, а для
http://wiki.bgbilling.ru/index.php/Детальное_информирование_абонентов_о_причинах_ошибки_691
Так что, мне предстоит еще заточить сквид под конкретную задачу.
Еще раз спасибо.
>Здравствуйте!
>
>Уважаемые iles и Андрей!
>Когда я нашел эту тему, тоже очень обрадовался, т.к. ваша ситуация практически
>в точности повторяет мою, поэтому если можно, подробнее о решении...Доброго времени суток!
В отличие от iles я забил на связку CISCO+Squid, потому как уперся в стеклянную стену... :) настройки как у всех а у меня не работает... :) я понял, что это в ядре проблема, что собственно еще раз и подтвердил уважаемый iles, но с ядром ковыряться не стал. Компилить ядро на рабочем серваке не захотел... так, что у меня он работает как простой сквид.... :) по крайней мере пока... возможно скоро придется перейти на другую систему, тогда вновь возникнет эта проблема... :) так, что вы тоже отпишитесь о ваших успехах...
Спасибо за отзывы и пожелания. :-)
Может вам перейти с Fedora8 на RHEL5? ;-)
Ваш подход мне ближе, т.к. я не сторонник ковыряния в ядре. Вариант с поднятием GRE через rc.local мне как-то больше нравится.
>Спасибо за отзывы и пожелания. :-)
>Может вам перейти с Fedora8 на RHEL5? ;-)
>Ваш подход мне ближе, т.к. я не сторонник ковыряния в ядре. Вариант
>с поднятием GRE через rc.local мне как-то больше нравится.Так, собственно и собираюсь сделать... :) дождусь 3-го Update'а и наверно переставлю...
А у Вас я так понял RHEL4? И на нем завелось без проблем???
>Так, собственно и собираюсь сделать... :) дождусь 3-го Update'а и наверно
>переставлю...
>А у Вас я так понял RHEL4? И на нем завелось без
>проблем???Нет, у меня RHEL5, я же сказал. Ядро 2.6.18-8.el5
Все поднялось без проблем.
Кстати, вы не в курсе насчет того, есть ли в сквиде встроенный редирект? Или надо отдельно ставить редиректор типа Squirm? Задача в том, чтобы по определенной url-маске редиректить на заданную страницу.
>Нет, у меня RHEL5, я же сказал. Ядро 2.6.18-8.el5Просто в одном из постов вы сказали:
"У меня Cisco 7206VXR, сервак с RHEL4 (2.6.18-8.el5). Переделал конфиг squid.conf на новый лад, т.к. на RHEL4 используется SQUID 2.6.STABLE6 и некоторые директивы как "http_accel_..." не работают."
И я обратил больше внимание на RHEL а не на ядро... :)>Все поднялось без проблем.
Это радует!!!
>Кстати, вы не в курсе насчет того, есть ли в сквиде встроенный
>редирект? Или надо отдельно ставить редиректор типа Squirm? Задача в том,
>чтобы по определенной url-маске редиректить на заданную страницу.насколько мне известно, то сам сквид не редиректит... обычно пользуются внешними редиректорами, в конфиге есть даже опция: url_rewrite_program так, что я думаю надо что-то внешнее прикручивать...
Поставил простейший редиректор - Squrm.
Теперь другая проблема... с текущей конфигурацией работает на ура, а с приватными адресами - никак!
Вот что я поменял:
1. на циске
ip wccp web-cache redirect-list 97
access-list 97 deny xxx.yyy.zzz.30 # интерфейс eth1 прокси-сервера
access-list 97 permit 10.69.0.0 0.0.63.255 # клиенты с приватными айпишниками
access-list 97 deny any # остальных не проксировать2. в iptables
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:RH-Firewall-1-INPUT - [0:0]
-A INPUT -j RH-Firewall-1-INPUT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp -s xxx.yyy.zzz.0/21 --dport 22 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j DROP
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp -s xxx.yyy.zzz.0/21 --dport 80 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp -s 10.69.0.0/18 --dport 80 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j DROP
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp -s xxx.yyy.zzz.0/21 --dport 5902 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 5902 -j DROP
-A RH-Firewall-1-INPUT -m tcp -p tcp -s xxx.yyy.zzz.0/21 --dport 3128 -j ACCEPT
-A RH-Firewall-1-INPUT -m tcp -p tcp --dport 3128 -j DROP
COMMIT
*nat
:PREROUTING ACCEPT [0:0]
-A PREROUTING -s 10.69.0.0/18 -d xxx.yyy.zzz.2 -p tcp -m tcp --dport 80 -j ACCEPT
-A PREROUTING -s 10.69.0.0/18 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128
COMMIT
Здесь xxx.yyy.zzz.0/21 - моя сеть, xxx.yyy.zzz.2 - интерфейс eth0 прокси, там слушает апач3. в squid.conf
url_rewrite_program /usr/local/squirm/bin/squirm
url_rewrite_children 10acl net1 src xxx.yyy.zzz.0/255.255.248.0
acl err691 src 10.69.0.0/255.255.192.0## http_access deny !localhost !manager !net1 !err691
http_access allow localhost
http_access allow manager
http_access allow net1
http_access allow err691
http_access deny all4. /usr/local/squirm/etc/squirm.conf
begin
network 10.69.0.0/18
log logs/match.log
abort-log logs/abort.log
pattern squirm.patterns get
end5. /usr/local/squirm/etc/squirm.patterns
regex ^.* http://error691.domain/code21.htmerror691.domain поднят в named, и в апаче. Там есть разные странички codeNN.html, которые я буду использовать уточняя различные подсети из приватного блока 10.69.0.0/18
На внешних адресах редирект работает, с приватного адреса страничка http://error691.domain/code21.htm открывается.
Может быть, подскажите, что я забыл изменить?
И еще, как посмотреть, что приходит на проксю и заруливает ли iptables запросы с 10.69.4.17 на сквид? На циске счетчики бегают.
Надо же, столько искал и не видел.
Нашел через полминуты после того как написал на опеннете и прочел свой пост. Вот же я лол! :-)))
-A RH-Firewall-1-INPUT -m tcp -p tcp -s 10.69.0.0/18 --dport 3128 -j ACCEPT
>>Так, собственно и собираюсь сделать... :) дождусь 3-го Update'а и наверно
>>переставлю...
>>А у Вас я так понял RHEL4? И на нем завелось без
>>проблем???
>
>Нет, у меня RHEL5, я же сказал. Ядро 2.6.18-8.el5
>Все поднялось без проблем.
>Кстати, вы не в курсе насчет того, есть ли в сквиде встроенный
>редирект? Или надо отдельно ставить редиректор типа Squirm? Задача в том,
>чтобы по определенной url-маске редиректить на заданную страницу.В сторону SquidGuard смотрите.
Я его использую и для фильтрации "клубники" и для редиректа "любителя клубники" на страничку с "объяснением морали" ))). Использует базы данных с url, IP и "ключевое слово" в URL. Базы - Berkley DB.в приведенном мною конфиге:
redirect_program /usr/local/bin/squidGuard (это по вкусу)
>[оверквотинг удален]
>
>В отличие от iles я забил на связку CISCO+Squid, потому как уперся
>в стеклянную стену... :) настройки как у всех а у меня
>не работает... :) я понял, что это в ядре проблема,
>что собственно еще раз и подтвердил уважаемый iles, но с ядром
>ковыряться не стал. Компилить ядро на рабочем серваке не захотел...
>так, что у меня он работает как простой сквид.... :)
>по крайней мере пока... возможно скоро придется перейти на другую
>систему, тогда вновь возникнет эта проблема... :) так, что вы
>тоже отпишитесь о ваших успехах...Я решил все сервисы ставить на виртуальную машину (VMWare Workstation 6.0). Физически сервак один, сервак попался к тому же еще и "тонким", всего 1 юнит. много сетевых карт не поставишь. Но тут пришла на помощь интеловская фича - Intel ProSet. C ее помощью из двух физических гигабитных сетевых я получил 10 адаптеров (разнесенные каждые в свой VLAN, хотя это и не обязательно). Далее в настройках VMWare разнес эти адаптеры разным вирутальным серверам. Так у меня на одном физическом сервера работает сквид, MVTS, Asterisk, MikrotikOS (как HOTSPOT сервер). Такая организация позволяет безпроблем и всяких осложнений "вводить" "выводить" и экспериментировать с различными сервисами, не останавливая при этом физический сервер.
Могу поделиться рабочим образом Fedora8+Squid+SquidGUARD+MRTG+FreeSA под VMWare. Все реально настроено и работает.
>[оверквотинг удален]
>помощь интеловская фича - Intel ProSet. C ее помощью из двух
>физических гигабитных сетевых я получил 10 адаптеров (разнесенные каждые в свой
>VLAN, хотя это и не обязательно). Далее в настройках VMWare разнес
>эти адаптеры разным вирутальным серверам. Так у меня на одном физическом
>сервера работает сквид, MVTS, Asterisk, MikrotikOS (как HOTSPOT сервер). Такая организация
>позволяет безпроблем и всяких осложнений "вводить" "выводить" и экспериментировать с различными
>сервисами, не останавливая при этом физический сервер.
>
>Могу поделиться рабочим образом Fedora8+Squid+SquidGUARD+MRTG+FreeSA под VMWare. Все реально настроено и работает.
>А можно поподробнее о ТТХ сервера. У меня тоже появился новый 1 юнитовый Aquarius T50 D51. CPU:2x5310(Quad), RAM 4Г. Я задумывался о виртуализации, правда под XEN. Вот думаю потянет или нет, и смотря сколько гостевых систем...
А настройки Squid+SquidGUARD+MRTG+FreeSA с удовольствием бы посмотрел... так, что если не затруднит, то можно сбросить на почту... Был бы премного благодарен...
>[оверквотинг удален]
>>Могу поделиться рабочим образом Fedora8+Squid+SquidGUARD+MRTG+FreeSA под VMWare. Все реально настроено и работает.
>>
>
>А можно поподробнее о ТТХ сервера. У меня тоже появился новый 1
>юнитовый Aquarius T50 D51. CPU:2x5310(Quad), RAM 4Г. Я задумывался о виртуализации,
>правда под XEN. Вот думаю потянет или нет, и смотря сколько
>гостевых систем...
>А настройки Squid+SquidGUARD+MRTG+FreeSA с удовольствием бы посмотрел... так, что если не
>затруднит, то можно сбросить на почту... Был бы премного
>благодарен...Сервер у меня такой: 2хXEON QUAD E5405, 8ГБ ОЗУ, 2х1000Гб, 2x1000Гбит LAN Intel® 82563EB. Стоил он где то в районе 120 тыс. рублей.
При месячной нагрузки только одного сквида в 1200Гб трафика, сервер даже не чихает выше 20%, про остальные сервисы на этом сервере вообще молчу.
Конфиги - "вытащить" будет сложновато, так я много граблей пройдено и они уже на половину забыты, попробую на народ.диск слить VMWare диск, его потом можно просто у себя "подключить" и он сразу готов к работе как самостоятельная ОС.