![](https://habrastorage.org/files/58d/f57/9f7/58df579f7be94d9e9928d7673d927344.jpg)
Всем привет! Периодически при проектировании компьютерных сетей на базе оборудования Cisco возникает вопрос, что поставить на периметр сети: маршрутизатор или межсетевой экран Adaptive Security Appliance (ASA)? Далеко не всегда можно однозначно ответить на данный вопрос. Хотел бы в очередной раз сделать попытку и провести небольшое сравнение этих двух устройств. Вы заметите, что уже много раз это обсуждалось. Согласен. Но устройства постоянно развиваются: появляются новые модели, добавляется функционал. Поэтому иногда стоит отойти подальше и ещё раз посмотреть со стороны на данный вопрос. Вдруг что-то поменялось?
Уточнение
Для строгости отметим, что основное сопоставление будет идти между ASA 5500-X и маршрутизаторами ISR G2 и ISR 4000.
Все мы знаем, что Cisco ASA является устройством безопасности и обычно его имя упоминается вместе с аббревиатурой МЭ (межсетевой экран). Маршрутизатор же Cisco является в первую очередь маршрутизатором. О, как сказал. Собственно, вот и отличие. Но всё не так просто: Cisco ASA умеет маршрутизировать трафик (даже поддерживает протоколы динамической маршрутизации), а маршрутизатор Cisco может выполнять функции МЭ (поддерживается две технологии – CBAC и ZFW). Чувствую, как в сторону автора полетели фразы: да, капитан очевидность, ты прав. Поэтому предлагаю более пристально взглянуть на эти устройства с целью определения, что в них общего, а что разного.
![](https://habrastorage.org/files/68e/932/072/68e93207268a46b09ae8513dc3da76c6.jpg)
Исторически сложилось, что ASA имеет преимущества перед маршрутизатором только в ряде технологий, в первую очередь связанных с безопасностью (классический межсетевой экран и VPN концентратор для подключения удалённых пользователей). Во всём остальном ASA выступает в основном в роли догоняющего. Это обусловлено тем, что ASA позиционируется как средство безопасности, а маршрутизатор Cisco – как универсальный швейцарский нож (на его базе мы можем запустить и функции шифрования, и голосовые функции, и оптимизировать трафик и пр.). Поэтому вопрос выбора устройства возникает только в разрезе вопроса обеспечения сетевой безопасности.
На первый взгляд, для реализации такой задачи, как обеспечение защищенного подключения офиса к сети интернет, оба устройства предоставляют всё необходимое:
- есть маршрутизация (статическая, динамическая, PBR), а также функция трансляции адресов NAT;
- можно завести два и более провайдера (поддерживается IP SLA, BGP);
- присутствуют функции межсетевого экранирования.
Если необходимо, на обоих устройствах можно поднять VPN (site-to-site и remote-access). Везде есть поддержка Netflow, для получения статистики по трафику. Если нужны функции NG FW (МЭ нового поколения) или NG IPS (система предотвращения вторжений нового поколения) как на ASA, так и на маршрутизаторе мы можем это сделать. Таким образом, в целом оба устройства имеют относительно сходный функционал (ещё раз отмечу, что речь идёт только о технологии маршрутизации трафика и безопасности). Более того, периодически функционал одного из устройств плавно перетекает в другое. Это привносит дополнительные трудности с выбором решения. Например, расширенные возможности SSL VPN всегда были прерогативой ASA. Но со временем многие функции SSL VPN появились и на маршрутизаторе (режим clientless, smart tunnels и пр.). Возможность захвата пакетов на интерфейсах (packet capture) также долгое время поддерживалась только на ASA. Схожая ситуация и с использованием различных конструкций при настройке списков доступа ACL. Речь идёт об объектах (Object Groups), позволяющих группировать IP-адреса/сети, сервисы в сети. Всё это плавно перешло в ОС маршрутизатора. Аналогично ситуация складывается в обратную сторону: на ASA появилась поддержка протокола BGP, маршрутизация трафика на основании политик — Policy Base Routing и пр. Поэтому выбор в пользу одного или другого решения далеко не всегда предопределён. Как обычно дьявол кроется в деталях.
Так как ASA является более узкопрофильным решением, попробуем провести наше сравнение относительно неё. ASA позиционируется как устройство безопасности, поэтому многие функции безопасности работают уже “из коробки”. По умолчанию в Cisco ASA “завинчены все гайки”, в то время как на маршрутизаторе функции безопасности требуется включать принудительно (настраивать с нуля МЭ, отключать лишние сервисы и пр.). Давайте пройдёмся по основным функциям ASA:
- Функции трансляции адресов NAT. На ASA присутствуют все возможные вариации (статический и динамический NAT, PAT), в том числе двойной (twice NAT). Есть возможность влиять на порядок применения правил NAT. В этом плане ASA превосходит маршрутизатор.
- Классический межсетевой экран с глубоким анализом содержимого протоколов, а также функцией обнаружения угроз (сканирования и DoS атак). Как межсетевой экран ASA способна работать в двух режимах: маршрутизируемом и прозрачном (Transparent Firewall). Также ASA может работать в режиме множественных контекстов (виртуальные межсетевые экраны, multiple context) либо в режиме единственного контекста. Основные отличия от маршрутизатора: в ASA базовые функции МЭ включены по умолчанию, МЭ является более функциональным (например, Identity Firewall даёт возможность предоставлять доступ на основании имён пользователей или групп в MS Active Directory), при этом его конфигурирование более интуитивно понятно. Маршрутизатор старается не отставать: обеспечивает работу МЭ также в двух режимах (маршрутизируемом и прозрачном), а вместо контекстов, поддерживает функционал Virtual Routing and Forwarding (VRF). Правда, настраивая Zone-Based Policy Firewall (ZFW) на маршрутизаторе, можно легко запутаться с созданием политик под каждую пару интерфейсов, настройкой классов, списков доступа и их связкой в конфигурации. Нужно также не забыть о правилах self-зоны и взаимодействии ZFW с remote-access VPN (тут появляются virtual template интерфейсы для возможности прикрепления зоны безопасности). В общем, есть где
ошибитьсяразвернуться.
- Межсетевой экран нового поколения (NG FW) Cisco Firepower — безопасность с учетом контекста, контроль использования приложений для пользователей и групп, WEB фильтр с проверкой репутации, ретроспективный анализ файлов и пр. Для запуска сервисов Firepower на ASA требуется наличие SSD диска (новые модели всегда идут со встроенным SSD диском: ASA 5506-X, 5508-X и 5516-X). Сервисы Firepower до недавнего времени не были доступны на маршрутизаторах. Однако теперь их возможно запустить на универсальном блейд-сервере (например, UCS E-Series Servers или Cisco UCS E-Series Network Compute Engines), который может быть установлен непосредственно в маршрутизатор. При этом необходимо учитывать, что получить на базе маршрутизатора относительно бюджетный вариант не получится: потребуется минимум 1921 и блейд-сервер UCS EN120E.
- Система предотвращения вторжений нового поколения (NG IPS) Cisco Firepower. Как мы помним, раньше функция IPS на ASA была реализована в качестве отдельного модуля, а далее стала доступна в виде виртуального лезвия (а ля виртуальной машины). Но после приобретения компании SourceFire традиционный IPS был отправлен в лету и на его смену пришёл NG IPS Cisco Firepower. С точки зрения требований по железу, они аналогичны решению NG FW. Отметим: на одном устройстве у нас есть возможность запустить одновременно сервисы NG IPS и NG FW.
- VPN для подключения удалённых работников – на ASA существует несколько видов:
- AnyConnect VPN Client — туннели SSL или IPSec IKEv2 с использованием AnyConnect Secure Mobility Client. Поддерживается большинство современных платформ ПК и мобильных устройств. Опционально интегрируется с сервисами и услугами Cloud Web Security, Host Scan, 802.1x.
- Бесклиентский (Clientless) SSL VPN – доступ к приложениям осуществляется через web-портал, или обеспечивается проброс портов через тонкий клиент (Java-аплеты/Active-X скрипт) и SSL VPN Smart Tunnels.
- Remote Access IPsec VPN и L2TP over IPsec (IKEv1) – в качестве клиента может выступать любой IPSec или L2TP-клиент (например, Microsoft Windows).
- Easy VPN — туннели IPSec IKEv1. Раньше данное решение активно использовалось для подключения удалённых пользователей через Cisco VPN Client. Сейчас Cisco VPN Client умер, и остался только режим, при котором в качестве удалённого клиента выступает аппаратное устройство.
Маршрутизатор уступает по функциональности в плане работы с AnyConnect VPN Client и Clientless SSL VPN. Например, не поддерживается модуль Host Scan — оценка состоянии подключаемого клиента (версия ОС, антивирус, клиентский МЭ и пр.). Нет динамических политик доступа (Dynamic Access Policies — DAP). DAP позволяют нам применять различные политики доступа (например, предоставить доступ только к определённым ресурсам) на основании авторизационных данных или данных, полученных при оценке состоянии подключаемого клиента. Не поддерживаются Java-аплеты/Active-X скрипты в режиме Clientless SSL VPN и пр. Отметим, что на маршрутизаторах Cisco 4000 на данный момент SSL VPN вообще не представлен. Правда есть поддержка AnyConnect IKEv2.
- AnyConnect VPN Client — туннели SSL или IPSec IKEv2 с использованием AnyConnect Secure Mobility Client. Поддерживается большинство современных платформ ПК и мобильных устройств. Опционально интегрируется с сервисами и услугами Cloud Web Security, Host Scan, 802.1x.
- Отказоустойчивость и кластеризация. Резервирование ASA обеспечивается за счёт функций отказоустойчивости (failover) или кластеризации (clustering).
В режиме отказоустойчивости два устройства объединяются в одно логическое. Данные с одного устройства реплицируются на второе для обеспечения сохранения состояния всех сессии при отказе одного из них. Доступны два режима работы: active/standby (с единственным контекстом) и active/active (в режиме множественных контекстов). Режим отказоустойчивости удобен тем, что после объединения двух устройств, необходимо настраивать только одно устройство — активное.
Второй режим – кластеризация (clustering), позволяет объединить в одно логическое устройство до 16 устройств ASA. Необходимо оговориться, что в кластер из 16 устройств мы можем объединить на данный момент только ASA 5585-X. Для остальных моделей в кластер объединяются только два устройства. Кластеризация обеспечивает резервирование устройств, единую точку управления (все устройства объединяются в одно логическое) и повышение производительности (речь идёт о том, что мы получаем одно виртуальное устройство с бОльшей производительностью нежели одно физическое устройство).
А что с маршрутизаторами? Там нет функций failover и clustering. Отказоустойчивость обеспечивается соответствующей настройкой каждого протокола и функции. Для маршрутизации трафика настройки будут свои, для МЭ свои, а для VPN – свои. Failover на ASA в этом плане более удобен: объединил устройства и далее все настроил из одной консоли, как будто у нас оно одно. С маршрутизатором так не получится.
- Маршрутизация – статическая, динамическая (EIGRP, OSPF, BGP), маршрутизация трафика на основании политик (PBR), маршрутизация multicast-трафика (PIM). В этом плане ASA сделала большой шаг вперёд. Не так давно BGP и PBR были прерогативой только маршрутизаторов. Но в плане маршрутизации есть определённые «но». Во-первых, не все работает так как надо (периодически проскакивают небольшие глюки), плюс по каждому протолку (EIGRP/OSPF/BGP) присутствуют ограничения и нюансы. Лучше лишний раз заглянуть в документацию. Например, ASA при работе с BGP не рассчитана на обработку полной таблицы маршрутизации интернет (full view). Во-вторых, на ASA нет логических туннельных интерфейсов GRE/VTI. А значит, будут трудности с реализацией туннелей через публичные сети. Безусловно, маршрутизатор в данном аспекте существенно превосходит ASA по функциональности. Кто бы, собственно, сомневался. Стоит также отметить, что маршрутизация трафика на ASA в некоторых аспектах отличается от аналогичного процесса на маршрутизаторе. В чем именно, рассмотрим дальше.
- Site-to-site VPN. ASA поддерживает только чистый IPSec. Можно его настроить совместно с протоколом L2TP. Но больших плюсов это нам не даёт. Так как нет GRE-интерфейсов, связку IPSec+GRE мы тоже не сможем реализовать. В этом плане маршрутизатор существенно функциональнее: IPSec+GRE, VTI, DMVPN, GET VPN, FlexVPN и пр. Отдельный вопрос – обеспечение отказоустойчивого подключения по VPN. Так как мы имеем чистый IPSec, в нашем распоряжении есть только возможность указывать несколько пиров в крипто-карте и использовать связку OSPF+IPSec. При указании нескольких пиров в крипто-карте на ASA мы сразу сталкиваемся с тем, что там нет preemption (т.е. после восстановления основного пира, переключение VPN-соединения на него не происходит). А значит, не всегда можно чётко определить, через каких провайдеров сейчас работает наш VPN (усугубляется эта ситуация, когда у нас по несколько провайдеров с каждой стороны). Конечно, эту проблему можно обойти, но не всегда элегантным путём (например, принудительно разорвав IPSec-соединение с помощью Embedded Event Manager). Работа связки OSPF+IPSec тоже имеет свою специфику: с обеих сторон туннеля должны стоять только устройства ASA. Сделать связку ASA-маршрутизатор не получится. В дополнение, с сайта вендора пропал документ, описывающий работу в таком режиме. Это наталкивает на определённые мысли. Эх, как же не хватает GRE-туннелей на ASA…
- Качество обслуживания (QoS). Настройки ASA в этом плане достаточно ограничены. Фактически мы можем сделать несколько очередей и к каждой очереди применить или свойство приоритетной, или назначить ограничитель (policer). Пакеты в приоритетной очереди будут отправляться устройством в сеть в первую очередь. Ограничитель (policer) позволяет для очереди задать максимальную скорость, с которой будут передаваться пакеты из неё. В плане QoS маршрутизатор существеннее функциональнее.
- Управление. Командная строка ASA отличается от командной строки маршрутизатора. Различие не фатальное, но есть. Отличается особенно конфигурация некоторых функций, например, NAT.
У ASA есть очень неплохой WEB-интерфейс – Adaptive Security Device Manager (ASDM). Он полнофункциональный и ряд функций рекомендуется настраивать именно через него (например, SSL VPN), так как есть достаточно удобные помощники (wizard). Как мы знаем, WEB-интерфейс маршрутизаторов (Cisco Configuration Professional) оставляет желать лучшего.
На ASA не так давно появилась поддержка Embedded Event Manager, что позволяет получить частичную автоматизацию. На маршрутизаторе этот функционал присутствует достаточно давно.
![](https://habrastorage.org/files/ee5/25e/415/ee525e41540947589f16f02d1dcede5e.jpg)
На этом основная функциональность ASA практически исчерпывается. Хотел бы ещё отметить на ASA достаточно удобную утилиту – packet-tracer. Она позволяет провести первичную диагностику прохождения пакета через устройство. Packet-tracer выводит информацию по каждой стадии обработки пакета внутри устройства. Предполагаю, что отсутствие packet-tracer на маршрутизаторе обусловлено тем, что маршрутизатор существенно функциональнее.
![](https://habrastorage.org/files/cbb/b15/1fa/cbbb151faeac42feb1e8b985dfc67949.jpg)
Коснёмся чуточку архитектурных особенностей программно-аппаратной частей. Сразу заметим, что программный код ASA и маршрутизатора абсолютно разный. Поэтому некоторые процессы реализованы по-разному.
Например, маршрутизация. На ASA нет привычного для маршрутизаторов Cisco Express Forwarding (CEF). Используется своя собственная логика: маршрут определяется для сессии единожды при её установлении (чем-то напоминает fast-switching). Можно сказать, что маршрутизатор оперирует пакетами, а ASA – сессиями. На маршрутизацию в ASA может влиять NAT (правильнее сказать: NAT в ряде случаев определяет, куда будут отправлены пакеты той или иной сессии). На маршрутизаторах такого нет, всем «рулит» таблица маршрутизации или PBR. При переключении маршрутизации с одного интерфейса на другой на ASA далеко не всегда сессия будет также переброшена (она может остаться работать на старом интерфейсе). ASA для каждой сессии запоминает не только исходящий интерфейс (т.е. куда слать), но и входящий (откуда изначально пришли пакеты). Эта особенность работы наиболее ярко проявляется, когда у нас есть несколько провайдеров (подключенных через статическую маршрутизацию) и на них есть какие-то публикации. В случае ASA ответные пакеты всегда пойдут через того провайдера, через которого пришёл запрос. Т.е. все публикации будут рабочими. В случае маршрутизатора ответные пакеты будут идти через провайдера по умолчанию. Т.е. только на одном провайдере будут работать публикации (такое поведение можно обойти с помощью плясок с бубном: VRF+BGP).
Давайте теперь посмотрим на производительность. Конечно, сравнивать устройства по данному параметру очень непросто, так как методика замеров для каждого типа устройств может отличаться, да и департамент маркетинга не дремлет. Плюс производительность зависит от сервисов, которые запущены на устройстве. Но всё-таки попробуем отметить несколько моментов. Раньше (для старых моделей ISR и ISR G2) по соотношению цена/производительность маршрутизаторы уступали (как по цифрам, так и из опыта). Например, при сходной стоимости ISR G2 2921-SEC и ASA5512-X первое устройство обеспечивало 50 Мбит/с (именно на эту цифру рекомендует ориентироваться вендор), а второе в худшем случае 100 Мбит/с (Application Control, пакеты HTTP 440 байт). Может быть, не совсем точное сравнение, но для грубой оценки, надеюсь, подойдёт. За одни и те же деньги чаще всего ASA нам давала бОльшую производительность. Но с появлением маршрутизаторов 4000 картина поменялась. Теперь нужно смотреть каждый отдельный случай. Связано это с тем, что на маршрутизаторах 4000 производительность не так сильно деградирует при включении сервисов.
Заключение
Пора подвести итоги и ответить на поставленный в заголовке статьи вопрос. Существуют рекомендации вендора на это счёт, оформленные в виде различных дизайнов в рамках архитектуры Cisco SAFE. Но далеко не всегда мы строим какие-то сложные сети, где присутствуют все виды устройств, выполняющие наиболее подходящие для них функции. Например, в качестве устройства МЭ мы ставим ASA с сервисами Firepower, а для организации подключения к WAN-каналам – маршрутизаторы. Часто бывают ситуации, когда нужно поставить что-то одно (причина может быть самая банальная — бюджет). И вот тут нам и приходится задумывать, что же выбрать.
Случай 1. Относительно небольшая компания с одним офисом. Нужно обеспечить защищённый доступ в Интернет (используется один или два провайдера).
![](https://habrastorage.org/files/187/d40/b0a/187d40b0a20a4a73b3d2708fff54108a.jpg)
В данной ситуации решение ASA может выглядеть более интересным по следующим причинам:
- функционал ASA достаточен для реализации поставленной задачи;
- на базе ASA можно запустить сервисы Firepower для получения функций NG FW и NG IPS (совокупная стоимость будет ниже, чем в случае использования связки маршрутизатор+модуль+сервисы Firepower);
- если необходимо обеспечить подключение удалённых пользователей к корпоративной сети, ASA предоставит наиболее широкие возможности;
- в ряде случаев мы получим бОльшую производительность устройства за те же деньги.
Случай 2. Есть центральный и удалённые офис(ы). Что поставить в удалённый офис?
![](https://habrastorage.org/files/7e8/0ff/e49/7e80ffe498f2477ab19ab982e534fcc8.jpg)
Думаю, многим уже понятно, что site-to-site VPN не самая сильная сторона ASA. Если у нас много офисов, несколько провайдеров и нужен full-mesh (прямая связность всех офисов), лучше для этой задачи использовать маршрутизаторы. Одна только технология DMVPN позволит снять бОльшую часть головной боли. В центральном офисе в этом случае также должен стоять маршрутизатор.
Если у нас везде один провайдер и офисов не так и много, ASA вполне подойдёт. Более того, решение может получиться дешевле аналогичного на базе маршрутизаторов. Но не стоит забывать, что сегодня провайдер один, а завтра два, да и компания может чуточку подрасти. Безусловно, на ASA в удалённом офисе можно настроить резервный VPN до центрального офиса, используя в центре двух провайдеров. Просто слишком много «но», которые порядком могут подпортить репутацию такого решения. Их, конечно, вендор старается убрать, однако пока эти «но» приходится принимать во внимание.
Подытожим: ASA прекрасно подходит для таких задач, как межсетевое экранирование и remote-access VPN. Если мы можем себе позволить поставить это устройство для решения только этих вопросов, стоит так и сделать. Если же необходимо в одной «коробке» получить смесь функций, возможно, стоит присмотреться к маршрутизатору.
Если у Вас есть свои мысли по поводу вопроса в заголовке статьи, добро пожаловать в комментарии.
UPD:
В статье указывается, что в маршрутизаторах нет аналогичной функции packet-tracer как на ASA. Это утверждение не совсем корректно. В IOS XE присутствует схожая функциональность — Datapath Packet Trace.