Добрый день, уважаемые читатели! К сожалению, на Хабре практически нет упоминаний об этих замечательных устройствах, очевидно ввиду их возраста, но имеются статьи по более молодому оборудованию Cisco ACE. Но, несмотря на некоторую непопулярность, Cisco CSS 11500 Series Content Services Switches всё же встречаются в корпоративных сетях и первое столкновение с неподготовленным администратором может вызвать у него легкое недоумение. Не обращайте внимания на кажущуюся сложность, эти железки удивительно просты в конфигурировании.
Я, пожалуй, пропущу описание аппаратных особенностей этого оборудования, так как оно есть на сайте производителя и сразу перейду к делу.
Первое, с чего мы начнем — это обновление программного обеспечения и создание комфортного режима работы.
Настройка управляющего интерфейса:
Зададим отображаемое в консоли имя устройства (не более 16 символов):
Обращаю ваше внимание, что в строке описания пользователя, из под которого выполняется администрирование, должно быть ключевое слово superuser, иначе вам может потребоваться увлекательнейшее знакомство с процессом восстановления пароля с помощью консоли.
Обновим программное обеспечение:
Создаем нашу конфигурацию. Предположим, что у нас есть сеть 192.168.200.0/24, в кторой расположены 2 сервера: 192.168.200.100 и 192.168.200.101. Адрес балансировщика в этой сети — 192.168.200.10. Адрес внешнего интерфейса балансировцика — 192.168.100.10/24. Здесь и далее приводятся примеры из конфигурационного файла, без указания заголовка командной строки.
Порты могут быть настроены и транком 802.1Q:
Выполним конфигурирование простой балансировки между двумя серверами. Для того, чтобы нас на спрашивали подтверждения на создание сервисов, можно включить режим expert. В моем случае, проверка доступности серверов осуществляется путем отправки GET запроса к серверу, получаемый ответ (я оправляю «OK») анализируется и сравнивается с эталонным значением. Первым этапом описываем сервисы.
Создаем владельца («owner») и контент. Понятие «владелец» необходимо только для удобства администрирования. обратите внимание на используемый метод балансировки — большинство современных приложений потребуют что бы пользователь, в рамках сессии, общался с одной и той же нодой. В качестве адреса контента, куда будут обращаться пользователи, будет выступать 192.168.100.11.
Так как мы, наверняка, хотим, чтобы ответы пользователям так же возвращались с адреса 192.168.100.11, то необходимо создать соответствующую группу:
Давайте проверим, что же у нас получилось:
А теперь представим, что у вашего балансировщика есть SSL-модуль, и вы хотите им поспользоваться для организации безопасного подключения пользователей к сервису. Нам понадобиться сформировать запрос на сертификат (или сделать самоподписанный), настроить модуль и создать группы.
Генерируем ключ:
Привязываем ключ к файлу:
Вот тут мы можем пойти двумя путями — или создаем самоподписанный сертификат или генерируем Certificate Signing Request (CSR). В случае CSR нам необходимо скопировать вывод и предоставить его в CA, для выдачи сертификата:
Генерируем самоподписанный сертификат:
Привязываем сертификат к файлу:
Или импортируем сертификат, после чего привязываем его к файлу. Обратите внимание, что пароль должен соответствовать паролю ключа, с которым генерировался CSR. Как вы могли заметить, при использовании SSL модуля у нас появляется функционал сжатия трафика. Если вы используете несколько SSL-модулей, то можно настроить балансировку между ними, добавив строку advanced-balance ssl в описание контента (в примере — «content site-https»).
Я думаю, что вам должно быть интересно отслеживать срок действия сертификатов, поэтому стоит запомнить команду:
С сертификатами разобрались, теперь настраиваем логику. Обращаю внимание. что эта часть дополняет, а не заменяет настройку сервисов и групп, указанных выше.
Обратите внимание, что балансировщик весьма вольно обращается с порядком строк внутри сервисов. Если вы привыкли, чтобы все было параллельно и перпендикулярно, то лучше удалять сервис целиком и заводить его заново, а не удалять старые и вставлять новые строки.
Используемая литература:
Cisco CSS 11500 Series Content Services Switches Configuration Guides
P.S. С учетом того, сколько такая техника стоит на ebay, я считаю, это неплохой вариант для организации балансировки ресурсов, несмотря на некоторое моральное устаревание. Большая часть балансировщиков имеет приличный вес (для тщедушных инженеров это может стать проблемой), возможность установки нескольких блоков питания и модулей ввода/вывода, что некоторым образом говорит в пользу надежности этих устройств.
Я, пожалуй, пропущу описание аппаратных особенностей этого оборудования, так как оно есть на сайте производителя и сразу перейду к делу.
Первое, с чего мы начнем — это обновление программного обеспечения и создание комфортного режима работы.
Настройка управляющего интерфейса:
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, я считаю, это неплохой вариант для организации балансировки ресурсов, несмотря на некоторое моральное устаревание. Большая часть балансировщиков имеет приличный вес (для тщедушных инженеров это может стать проблемой), возможность установки нескольких блоков питания и модулей ввода/вывода, что некоторым образом говорит в пользу надежности этих устройств.
