Небольшая шпаргалка по Cisco CSS 11500

от автора

Добрый день, уважаемые читатели! К сожалению, на Хабре практически нет упоминаний об этих замечательных устройствах, очевидно ввиду их возраста, но имеются статьи по более молодому оборудованию Cisco ACE. Но, несмотря на некоторую непопулярность, Cisco CSS 11500 Series Content Services Switches всё же встречаются в корпоративных сетях и первое столкновение с неподготовленным администраторм может вызвать у него легкое недоумение. Не обращайте внимания на кажущуюся сложность, эти железки удивительно просты в конфигурировании.

Я, пожалуй, пропущу описание аппаратных особенностей этого оборудования, так как оно есть на сайте производителя и сразу перейду к делу.
Первое, с чего мы начнем — это обновление программного обеспечения и создание комфортного режима работы.

Настройка управляющего интерфейса:

 CSS11503# conf t  CSS11503(config)# boot  CSS11503(config-boot)# ip address 192.168.1.2  CSS11503(config-boot)# subnet mask 255.255.255.0  CSS11503(config-boot)# gateway address 192.168.1.1

Зададим отображаемое в консоли имя устройства (не более 16 символов):

  CSS11503# prompt megabalanser  megabalanser# save_profile

Обращаю ваше внимание, что в строке описания пользователя, из под которого выполняется администрирование, должно быть ключевое слово superuser, иначе вам может потребоваться увлекательнейшее знакомство с процессом восстановления пароля с помощью консоли.

Обновим программное обеспечение:

 megabalanser# archive script admin-profile  megabalanser# save_profile  megabalanser(config)# ftp-record ftpname 10.10.10.10 ftpuser "ftppassword"  megabalanser# copy ftp ftpname sg0820601.adi boot-image  megabalanser(config)# boot  megabalanser(config-boot)# unpack sg0820601.adi  megabalanser(config-boot)# primary boot-file sg0820601  megabalanser(config-boot)# reboot  Are you sure you want to reboot the system, [y/n]:y  ** Message from [admin] **  System Reboot from:vty1, All sessions will terminate...  **  ...  megabalanser# restore admin-profile script

Создаем нашу конфигурацию. Предположим, что у нас есть сеть 192.168.200.0/24, в кторой расположены 2 сервера: 192.168.200.100 и 192.168.200.101. Адрес балансировщика в этой сети — 192.168.200.10. Адрес внешнего интерфейса балансировцика — 192.168.100.10/24. Здесь и далее приводятся примеры из конфигурационного файла, без указания заголовка командной строки.

 ip route 0.0.0.0 0.0.0.0 192.168.100.1 1  interface 2/1    bridge vlan 10  interface 3/1    bridge vlan 20  circuit VLAN10    description "--- External ---"    ip address 192.168.100.10 255.255.255.0  circuit VLAN20    description "--- Internal ---"    ip address 192.168.200.10 255.255.255.0

Порты могут быть настроены и транком 802.1Q:

interface 2/1   trunk   vlan 10    vlan 20  circuit VLAN10    description "--- External ---"    ip address 192.168.100.10 255.255.255.0  circuit VLAN20    description "--- Internal ---"    ip address 192.168.200.10 255.255.255.0 

Выполним конфигурирование простой балансировки между двумя серверами. Для того, чтобы нас на спрашивали подтверждения на создание сервисов, можно включить режим expert. В моем случае, проверка доступности серверов осуществляется путем отправки GET запроса к серверу, получаемый ответ (я оправляю «OK») анализируется и сравнивается с эталонным значением. Первым этапом описываем сервисы.

service server-1    port 80    ip address 192.168.200.100    keepalive type http    keepalive method get    keepalive uri "/ping.html"    keepalive hash "e0aa021e21dddbd6d8cecec71e9cf564"    active  service server-2    port 80    ip address 192.168.200.101    keepalive type http    keepalive method get    keepalive uri "/ping.html"    keepalive hash "e0aa021e21dddbd6d8cecec71e9cf564"    active

Создаем владельца («owner») и контент. Понятие «владелец» необходимо только для удобства администрирования. обратите внимание на используемый метод балансировки — большинство современных приложений потребуют что бы пользователь, в рамках сессии, общался с одной и той же нодой. В качестве адреса контента, куда будут обращаться пользователи, будет выступать 192.168.100.11.

owner site-1    content site-http      vip address 192.168.100.11      add service server-1      add service server-2      advanced-balance sticky-srcip-dstport      port 80      protocol tcp      active

Так как мы, наверняка, хотим, чтобы ответы пользователям так же возвращались с адреса 192.168.100.11, то необходимо создать соответствующую группу:

group site-http    add destination service server-1    add destination service server-2    vip address 192.168.100.11    active

Давайте проверим, что же у нас получилось:

 megabalanser# sh group site-http  Group: site-http - Active (192.168.100.11 Not Redundant)    Session Redundancy: Disabled    Last Clearing of Stats Counters: 01/24/2013 21:44:18  Associated ACLs: NONE    Source Services:     NONE    Destination Services:                                      DNS    Name:       Hits:   State:    Load:    Trans:       Keepalive:     Conn:    -----       -----   ------    -----     ------       ----------     -----    server-1                  0      Alive     2           0        HTTP-80:GET 0    server-2                  0      Alive     2           0        HTTP-80:GET 0    Group Service Total Counters:      Hits/Frames/Bytes: 0/0/0      Connections Total/Current: 0/0      FTP Control Total/Current: 0/0      Total No Portmap Errors: 0

А теперь представим, что у вашего балансировщика есть SSL-модуль, и вы хотите им поспользоваться для организации безопасного подключения пользователей к сервису. Нам понадобиться сформировать запрос на сертификат (или сделать самоподписанный), настроить модуль и создать группы.

Генерируем ключ:

ssl genrsa rsakeyfiletest 1024 "password"

Привязываем ключ к файлу:

ssl associate rsakey rsa-test-name rsakeyfiletest

Вот тут мы можем пойти двумя путями — или создаем самоподписанный сертификат или генерируем Certificate Signing Request (CSR). В случае CSR нам необходимо скопировать вывод и предоставить его в CA, для выдачи сертификата:

 ssl gencsr rsa-test-name  -----BEGIN CERTIFICATE REQUEST-----  MIIB0DCCATkCAQAwgY8xCzAJBgNVBAYTAlJVMQ8wDQYDVQQIEwZNb3Njb3cxDzAN  BgNVBAcTBk1vc2NvdzEcMBoGA1UEChQTUm9zc2dvc3N0YWtoIExyf3RkLjEQMA4G  A1UECxQHVGVsY28gfzERMA8GA1UEAxQIKi5yZ3MucnUxGzAZBgkqhkiG9w0BCQEW  DHRlbGNvQHJncy5ydTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAxZTYAx/o  VA4KzpX7pq4013egDFC1BfVDRzWJJhno7k5K4ydPrmVZhECKormSebSGBL00cFKs  M8ve7WGW370YxaIKbKZBFF88Dz+PbtphpcneN1DWakmz7H063tiUl4zb2cv09cMn  XTKIgL6z5RyVyqjMtC5ba5XWVGdeD25N6OkCAwEAAaAAMA0GCSqGSIb3DQEBBAUA  A4GBABRNbvf4a3SC8RZdSoaOjwuRvqs5rgO3z+CPlgqER7xQZx/FVOHu6y9fv6bZ  hiq0bP1meRmMDmb2aXbk2RysVeKRIY6c6fYrhuddT8gd4E0BkIVF299D4m2nqLyQ  SK0X9VaLIVD59oX2BYNBXpFiXNdv1nmwZL4uNP6I4D5dXgVo  -----END CERTIFICATE REQUEST----- 

Генерируем самоподписанный сертификат:

ssl gencert certkey rsa-test-name signkey rsa-test-name certfiletest "password"

Привязываем сертификат к файлу:

 ssl associate cert cert-test-name certfiletest

Или импортируем сертификат, после чего привязываем его к файлу. Обратите внимание, что пароль должен соответствовать паролю ключа, с которым генерировался CSR. Как вы могли заметить, при использовании SSL модуля у нас появляется функционал сжатия трафика. Если вы используете несколько SSL-модулей, то можно настроить балансировку между ними, добавив строку advanced-balance ssl в описание контента (в примере — «content site-https»).

 copy ssl ftp ftpname import mycert.crt PEM "password"  ssl associate cert mycert-name mycert.crt

Я думаю, что вам должно быть интересно отслеживать срок действия сертификатов, поэтому стоит запомнить команду:

megabalanser# sh ssl cert-expiration Certificate Expiration Summary:   Advanced Warning:    30 days  mycert-name                           2014-01-24(Y-M-D)  TTL:  364 cert-test-name                         2014-01-10(Y-M-D)  TTL:  350  <No CRL records are configured> 

С сертификатами разобрались, теперь настраиваем логику. Обращаю внимание. что эта часть дополняет, а не заменяет настройку сервисов и групп, указанных выше.

 ssl-proxy-list my-ssl    ssl-server 10    ssl-server 10 rsacert mycert-name    ssl-server 10 rsakey rsa-test-name    ssl-server 10 cipher rsa-with-rc4-128-md5 192.168.100.11 80    ssl-server 10 vip address 192.168.100.11  service ssl_module    type ssl-accel    keepalive type none    compress encode force-gzip    slot 3    compress accept-omit gzip    compress type default    add ssl-proxy-list my-ssl    active    content site-https    vip address 192.168.100.11    add service ssl_module    port 443    protocol tcp    application ssl    active

Обратите внимание, что балансировщик весьма вольно обращается с порядком строк внутри сервисов. Если вы привыкли, чтобы все было параллельно и перпендикулярно, то лучше удалять сервис целиком и заводить его заново, а не удалять старые и вставлять новые строки.

Используемая литература:

Cisco CSS 11500 Series Content Services Switches Configuration Guides

P.S. С учетом того, сколько такая техника стоит на ebay, я считаю, это неплохой вариант для организации балансировки ресурсов, несмотря на некоторое моральное устаревание. Большая часть балансировщиков имеет приличный вес (для тщедушных инженеров это может стать проблемой), возможность установки нескольких блоков питания и модулей ввода/вывода, что некоторым образом говорит в пользу надежности этих устройств.

ссылка на оригинал статьи http://habrahabr.ru/post/167037/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *