На заре ИТ «пещерные» люди использовали корпоративные сети исключительно для передачи файлов между компьютерами и радовались, как дети, если это удавалось сделать.
Время шло, технологии развивались, а вместе с ними росли запросы пользователей. В наши дни корпоративная сеть передачи данных (СПД) является инструментом бизнеса, поэтому основное требование к ней любого серьезного заказчика состоит в максимальной эффективности работы.
Под эффективностью следует понимать комплекс характеристик, а именно производительность, надежность и безопасность СПД. Осуществим краткую обзорную экскурсию по методам и протоколам, применяемым для повышения производительности корпоративных сетей.
Для начала необходимо определить, от чего зависит производительность. Практический опыт и здравый смысл позволяют выделить пять основных факторов, влияющих на скорость передачи пакетов:
-
пропускная способность каналов связи;
-
количество активных сетевых узлов между конечными точками передачи трафика;
-
производительность промежуточного активного сетевого оборудования;
-
структура трафика;
-
используемые в процессе его передачи сервисы (шифровка, трансляция адресов, туннелирование, средства обеспечения безопасности и т.п.).
Теперь рассмотрим способы повышения производительности. На наш взгляд, решить эту проблему помогают восемь основных инструментов: изменение типа канала, увеличение пропускной способности и установка более производительного оборудования, оптимизация структуры сети, использование механизмов QoS, распределение (балансировка) нагрузки, выделение специализированных вычислительных ресурсов, условное зеркалирование трафика и оптимизация маршрутов (с помощью протоколов маршрутизации и traffic engineering).
Первые три способа очевидны. Их реализация целиком зависит от имеющихся средств. Однако при дефиците ИТ-бюджета впору задуматься о более специфических методах повышения производительности, например таких, как оптимизация сетевой инфраструктуры. Она преследует две задачи:
-
уменьшить число промежуточных сетевых устройств на пути следования пакетов;
-
разумно распределить функции и нагрузки между устройствами.
В основе оптимизации сетевой инфраструктуры — применение иерархического подхода. Чаще всего используются трех- и двухуровневая модели, позволяющие структурировать сетевое оборудование по типу выполняемых задач. Например, классическая трехуровневая модель построения сети предполагает наличие уровней доступа (access), распределения (distribution) и ядра (core). Оборудование доступа отвечает за подключение к сети оконечных устройств, таких как компьютеры и серверы. Устройства уровня распределения осуществляют интеллектуальную обработку пакетов. На уровне ядра все узлы освобождены от какой бы то ни было интеллектуальной деятельности; их задача — максимально быстро перемещать пакеты между интерфейсами. При совмещении уровней распределения и ядра мы получаем двухуровневую модель, но идея иерархии от этого не страдает.
Следующий метод — внедрение механизмов, обеспечивающих качество обслуживания. Сразу отметим, что использование этих средств бессмысленно в двух случаях: если канал связи всегда свободен или если суммарный приоритизированный трафик стабильно превышает пропускную способность канала. В остальных ситуациях средства QoS позволяют существенно повысить эффективность работы сетевых приложений без значительных вложений в модернизацию инфраструктуры. Средств и методов QoS — довольно много, но их суть сводится к двум задачам: обеспечить приоритетную передачу важного трафика и ограничить (или даже исключить) пересылку неприоритетного либо нежелательного трафика.
Зачастую между двумя узлами сети имеется более одного маршрута. Грех было бы не воспользоваться этим! Один из вариантов заключается в распределении нагрузки между каналами или узлами сети. Производители современного сетевого оборудования предлагают несколько алгоритмов ее балансировки.
Стандарт Etherchannel, известный как IEEE 802.3ad, позволяет объединить несколько Ethernet-линков в один высокоскоростной канал, продолжающий функционировать даже при выходе из строя одной или нескольких его составляющих. Однако Etherchannel имеет существенный недостаток: он работает только между парой устройств или между парой стеков коммутаторов — третьего, к сожалению, не дано.
Некоторые производители коммутаторов Ethernet постарались устранить данный недостаток. Например, это сделал Nortel Networks при помощи технологии SplitMLT, основанной на двукратном резервировании каналов. Применение SplitMLT повышает производительность и надежность корпоративных сетей благодаря объединению каналов в группы, отвечающие за равномерную балансировку нагрузки и подключаемые к двум параллельно функционирующим магистральным устройствам. SplitMLT позволяет организовать территориально-распределенное ядро корпоративной сети, к которому можно подключать совместимые со стандартом 802.3ad коммутаторы и прочие устройства (в том числе серверы) любых производителей. Максимальное время восстановления работоспособности транка при использовании данной технологии составляет сотни миллисекунд, а чаще всего — не более 50 мс.
Идем дальше. Если у нас уже есть быстрые надежные каналы, внедрены средства балансировки загрузки и качества обслуживания, но сетевые приложения все равно «притормаживают», можно сделать вывод о том, что центральные процессоры каких-либо устройств в сети не справляются с возложенными на них задачами. Другими словами, будет своевременным выделить дополнительные вычислительные мощности под специфические сервисы, не связанные с непосредственными функциями передачи пакетов.
В качестве примера можно упомянуть известные своей производительностью маршрутизаторы Juniper. Для ускорения работы дополнительных сервисов (таких как туннелирование, криптография, сбор статистики, трансляция адресов и т.п.) они используют специализированные сервисные модули, снимающие нагрузку с центрального процессора, а также коммутаторы Extreme Networks, каждый порт которых оснащен отдельным процессором ASIC.
Говоря о решениях Extreme Networks, уместно упомянуть механизмы условного перенаправления трафика, к которым относится зеркалирование подозрительных пакетов на внешнее анализирующее устройство. Такой механизм называется CLEAR-Flow (Continuous Learning, Examination, Action, and Reporting of Flows). Коммутатор самостоятельно выполняет постоянный предварительный анализ проходящего через него трафика и при возникновении заранее определенных условий автоматически перенаправляет поток (скажем, на систему обнаружения/предотвращения вторжений). Предварительная экспертиза трафика позволяет снять нагрузку как с коммутатора, так и с системы IDS/IPS.
Последнее, о чем мы хотели сказать, — это оптимизация маршрутов. Правильный выбор маршрута влечет за собой повышение скорости передачи данных. Другими словами, первейший способ обеспечения производительности на уровне 3 — выбор наиболее подходящего для каждого конкретного случая протокола маршрутизации. Такой же вывод можно сделать в отношении распределения нагрузки: большинство протоколов маршрутизации позволяют одновременно использовать несколько альтернативных маршрутов между сетями, причем они не обязательно должны быть равнозначными и могут различаться по применяемым метрикам.
Скорость передачи трафика в сети L3 зависит от скорости принятия маршрутизатором решения об интерфейсе, на которой необходимо передать пакет. В свое время для повышения быстродействия на этом уровне была разработана технология MPLS, позволяющая снять задачу принятия такого решения почти со всех устройств сети, за исключением пограничных (PE). Со временем проблема производительности MPLS-устройств отошла на второй план, а основными их достоинствами стали чрезвычайно гибкие возможности обеспечения качества обслуживания.
Итак, мы рассмотрели основные способы повышения производительности корпоративных сетей. Напомним, что оптимальных результатов можно добиваться, лишь комбинируя указанные методы и опираясь в каждом конкретном случае на опыт и здравый смысл.
Денис Дыжин (dyzhin@jet.msk.su) — PMP, CCIE, менеджер отдела инженерной поддержки продаж компании «Инфосистемы Джет»;
Максим Клочков (mk@jet.msk.su) — инженер-консультант «Инфосистемы Джет»