Entries from януари 2003 ↓

Инсталация на wccp2 и squid

Този документ е публикуван с надеждата, че ще бъде полезен някому, но
без НИКАКВА ГАРАНЦИЯ, ВКЛЮЧИТЕЛНО И БЕЗ ГАРАНЦИИТЕ ПО ПОДРАЗБИРАНЕ! С други
думи, ако след прилагането на инструкциите, посочени тук, вашето Cisco 12xxx
или Juniper t640 вземе, че подскочи и се тръшне примряло на една страна, аз
не нося никаква отговорност! Толкоз.

    1. Linux ядро 2.4.х, изпитано с 2.4.20 -
      href=“http://www.kernel.org“>www.kernel.org
    2. Кръпка за ядрото, който осигурява необходимата модификация на
      наличния GRE код. Може да се свали от тук -
      href=“http://squid.visolve.com/developments/ip_wccp-2_4_18.patch“>

      http://squid.visolve.com/developments/ip_wccp-2_4_18.patch

    3. Squid Cache server 2.5, изпитано със Squid 2.5STABLE1 -
      href=“http://www.squid-cache.org/Versions/v2/2.5/“>http://www.squid-cache.org/Versions/v2/2.5/
    4. Кръпка за squid 2.5, допълващ поддръжка за wccp версия 2. Можете да
      я свалите от тук:

      http://squid.visolve.com/developments/wccpv2.patch

    5. Естествено, за цялата тази работа ви е необходим и специфичен хардуер -
      рутер Cisco, за предпочитане модел 7xxx
      ;)
    1. Първо разархивирайте изходния код на ядрото:
    2.  tar jxf linux-2.4.20.tar.bz2 -C /usr/src
       ln -s /usr/src/linux-2.4.20 /usr/src/linux

      Приложете patch за ядрото, като първо проверите дали няма да има
      несъвместимости:

       cd /usr/src/linux
       patch --dry-run -p0 < ../ip_wccp-2_4_18.patch

      Ако програмата patch не се оплаче от несъвместимости (т.е. пропуснати
      редове и т.н.), можете да приложите кръпката окончателно:

      patch -p0 < ../ip_wccp-2_4_18.patch

      След това настройте ядрото по обичайния начин:

      make {menu|x}config

      В раздела Networking options изберете поддръжка на wccp в ядрото, но
      задължително като модул.

          IP: WCCP GRE tunnels over IP
       

      След това компилирайте:

       make dep bzImage modules modules_install
       cp arch/i386/boot/bzImage /boot/vmlinux-2.4.20-wccp

      Редактирайте /etc/lilo.conf и добавете съответния ред като опция за
      избор при стартиране.

      След това не забравяйте да изпълните lilo -v. После рестартирайте
      системата и заредете модула ip_wccp при следващото стартиране.

    3. Компилиране на Squid 2.5STABLE1
    4.  cd /usr/src/
       tar jxf squid-2.5.STABLE1.tar.bz2
       cd squid-2.5.STABLE1

      Прилагане на кръпката:

      patch --dry-run -p0 < ../wccpv2.patch

      Ако мине безпроблемно:

       patch --dry-run -p0 < ../wccpv2.patch
       ./configure --enable-wccpv2
       make && make install
    5. Конфигуриране на squid за работа с wccp2
    6. Във файла squid.conf, който по подразбиране се намира в
      /usr/local/squid/etc, укажете ip адреса на рутера cisco, както
      и версията, по която се работи.

       wccp2_router 192.168.1.1
       wccp2_version 4

      Това никъде не е много ясно обяснено, но на едно-две места се твърди,
      че при версия на IOS-а по-малка от 11.2 е необходимо да се използва
      wccp_version 3. Може би това е някаква вътрешна номерация на версиите на
      протокола? Не съм съвсем наясно.

    7. Прозрачно пренасочване на заявките за порт 80 към порт 3128(8080)
    8. С iptables това става много лесно:

       iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 3128

      С ipchains може да се получи същия ефект:

       ipchains -A forward -p tcp --dport 80 -j REDIRECT 3128
    9. Пускане на ip forwarding.
    10. Това е задължително! Може да ви е смешно, но на мен ми трябваха 2 дни,
      докато открия, че цялата постановка не работи само заради тоя мизерен
      пропуск.

      echo "1" > /proc/sys/net/ipv4/ip_forward
    11. Настройка на цискнята (здрасти, щинков! :)
    12.  enable
       # conf t

      Изберете си wccp версия 2:

      (config)#ip wccp version 2

      Изберете си access list, по който да съвпадате адреси. Разширените
      access листи дават повече гъвкавост, но пък стандартните са
      по-простички:

      (config)#ip wccp web-cache redirect-list 99

      Въведете самата access листа:

      (config)#access-list 99 permit 192.168.2.0 0.0.0.255

      Това е достатъчно, тъй като накрая има имплицитна забрана. С две думи ще
      уцелите пакетите с източник 192.168.2.0/24, а всичко останало ще минава
      необезпокоявано.

      Остава ви да изберете интерфейса, на който ще става пренасочването към
      linux машината със squid. Това може да стане както на интерфейса, през
      който клиентските заявки влизат в cisco-то, така и на изходящия, от
      който потеглят в Нета.

       (config)#interface fastEthernet 0/1
       (config-if)#ip wccp web-cache redirect in
       (config-if)#^Z

      След като проверите дали всичко работи както трябва, можете да запишете
      конфигурацията.

  1. Въведение
  2. Този документ описва (накратко) как да инсталирате и конфигурирате
    кеширащ сървър Squid, променен така, че да поддържа протокола на Cisco
    Systems wccp, версия 2, както и необходимите настройки на рутер Cisco.
    Предимствата на версия 2 са няколко – може да се използва повече от
    един контролен маршрутизатор, а също е възможно пренасочването и
    проксифицирането на други протоколи, различни от http. За повече информация
    погледнете тук:

    http://www.cisco.com/univercd/cc/td/doc/product/software/ios121/121cgcr/fun_c/fcprt3/fcd305.htm

  3. Необходими предварителни условия
  4. За да получите накрая кеширащ сървър, който разбира от wccp2 и умее
    прозрачно да пренасочва www трафик (а също и друг според
    документацията, която може да бъде намерена на www.cisco.com), ви е
    необходим следния софтуер:

  5. Инсталация и конфигуриране

И накрая един съвет: tcpdump е ваш приятел! :)

Пишете ми, ако намерите грешки и/или несъответствия в този текст.