Как стать автором
Обновить

Cisco ASA в GNS3: возможные сценарии и сопутствующие баги

Время на прочтение 7 мин
Количество просмотров 28K
Эмулятору GNS3 на хабре была посвящена не одна статья, и думаю, что многие, кто работает с оборудованием Cisco, сталкивались с необходимостью запуска сетевого оборудования в виртуальной среде для проверки интересующих топологий и решений, при отладке неработающих конфигураций, либо просто при подготовке к сертификации или изучении той или иной технологии.

В последних версиях GNS3 появилась возможность эмуляции такого устройства, как Cisco ASA. Это устройство является многофункциональным межсетевым экраном, может работать в различных режимах (routed/transparent; single/multiple context), применяться в отказоустойчивых конфигурациях (active/standby; active/active) и т.д. В статье приводятся результаты тестирования и выводы, насколько полно поддерживается данный функционал при виртуализации этого устройства в GNS3.

Надеюсь, что данная статья поможет вам определиться с тем, стоит ли эмулировать ту или иную топологию в GNS3, а также сэкономит время при отладке вашего решения в виртуальной среде.

Исходные данные
Тестирование проводилось с использованием следующих средств:
1. Виртуальная машина Windows Server 2003 R2 Standard (Intel Xeon E5420 2,50GHz, 4Gb RAM);
2. Эмулятор GNS3 v.0.7.4;
3. Образ ОС Cisco ASA 8.0(2);
4. Средство графического управления и мониторинга Cisco ASDM 6.4(5);
5. Образ ОС Cisco IOS для маршрутизаторов 3725 (c3725-adventerprisek9-mz.124-25d);
6. Сервер управления доступом Cisco ACS 4.2;
7. FTP-, TFTP-, syslog-сервер на базе 3CDaemon.

Тестовые топологии и методики проверки брались из первого воркбука (WB) Internetwork Expert (INE) для подготовки к CCIE Security. Сами задачи и описание проверяемых технологий я опущу, оставлю только результаты.

Описание того, как запустить Cisco ASA в GNS3, можно найти по ссылкам – на английском, и даже на русском языках.

Тестовые топологии и проверки


1. Динамическая маршрутизация


В первом тесте межсетевой экран (далее – МЭ) Cisco ASA запускался в режимах routed и single (без поддержки виртуальных контекстов).
Топология приведена на рисунке:


В рамках этих проверок проверялась работа протоколов динамической маршрутизации (RIP, OSPF, EIGRP), редистрибьюция, IP SLA трекинг.
В случаях, когда возникала необходимость в управляемом коммутаторе, использовался маршрутизатор Cisco 3725 с модулем NM-16ESW.

Список неподдерживаемых L2-функций при использовании модуля NM-16ESW приведен на официальном сайте.
Интерфейс командной строки немного отличается от коммутаторов Cisco Catalyst. Будьте внимательны.

Собственно с задачами, приведенными в WB1 INE, при эмуляции Cisco ASA проблем не возникло. Да и в целом, забегая вперед, скажу, что только режимы routed/single работают более-менее полноценно в GNS3 в данный момент.
Однако уже на этом этапе появился ряд вспомогательных багов. Возможно слово «баг» не совсем корректно отражает сложности и ошибки, возникшие при эмуляции, однако в целях единства классификации буду использовать именно его.

Баг №1. Необходимость перезагрузки Cisco ASA после задания базовой конфигурации в случае, если коммутация проводилась после старта устройства. В противном случае связность не устанавливалась, устройства друг друга не видели.

Баг №2. В целом это не баг, а особенность базовых настроек GNS3. Т.к. на машине, где запускался GNS3, был установлен Cisco ACS4.2, то порты 2000-2002 слушались непосредственно самим ACS. А GNS3 в качестве консольных портов для маршрутизаторов по умолчанию использует порты, начиная с 2000. Поэтому будьте внимательны, необходимо эти порты сменить при добавлении маршрутизатора.

Баг №3. Не сохраняется конфигурация маршрутизаторов после выключения и включения GNS3. Данный баг наблюдался в старых версиях GNS3 на некоторых образах IOS, в частности при работе с маршрутизаторами серии 3700. В текущей версии у меня проблем при работе с 3725 не возникало, однако есть информация о том, что с 3745 проблема сохраняется… Хотя возможно здесь все зависит от эмулируемого образа. В общем, если кто-то столкнется, то можно попробовать решить эту проблему таким образом.

2. Сетевые настройки


Во втором тесте МЭ Cisco ASA также запускался в режимах routed, single.


В данном тесте проверялась работа списков доступа (ACL), различные варианты NAT (dynamic NAT, PAT; static NAT, PAT; dynamic policy NAT, static policy NAT, PAT; Identity NAT; NAT Exemption; Outside Dynamic NAT), возможность управления с помощью ASDM, функция DNS Doctoring, обработка фрагментированного трафика, пропуск BGP-соединений сквозь МЭ, мультикастинг, работа протокола NTP, протоколирование событий (syslog, SNMP), работа МЭ в качестве DHCP-сервера, трафик-полисинг и шейпинг.

Небольшие сложности возникли с управлением с помощью ASDM (о том, как настроить работу ASDM в GNS3, можете посмотреть в видеоинструкции). После включения ASDM лог устройства заваливается следующими сообщениями:
%ASA-5-402128: CRYPTO: An attempt to allocate a large memory block
failed, size: size, limit: limit

что несколько осложняет отладку. Вы можете использовать фильтры, либо вообще отключить протоколирование данного сообщения (no logging message 402128).

Из критичных недостатков:
Баг №4. МЭ Cisco ASA в качестве DHCP-сервера в среде GNS3 не работает.

3. Cisco ASA в режиме Transparent

В третьем тесте проверялась работа МЭ в прозрачном режиме. ASA в режиме transparent может использовать только два интерфейса (в single mode) для передачи данных (и один выделенный интерфейс для управляющего трафика), несмотря на то, что у неё может быть большее количество интерфейсов.


В этом режиме полноценная работа Cisco ASA в среде GNS3 не поддерживается. Mgmt-интерфейс доступен при проверке с маршрутизаторов, однако трафик через межсетевой экран не проходит, несмотря на то, что попытки установки соединения на межсетевом экране отображаются.
Собственно из-за этого не удалось проверить работу таких механизмов, как ARP Inspection, Ethertype ACL, Transparent Firewall NAT.

Баг №5. Transparent режим в Cisco ASA в среде GNS3 не поддерживается.

4. Cisco ASA в режиме виртуальных контекстов

В данном режиме создавалось два виртуальных контекста: CustomerA, CustomerB.
Интерфейсы, используемые контекстом CustomerA: E0/1.121 (InsideA), E0/2 (DMZ), E0/0 (Outside)
Интерфейсы, используемые контекстом CustomerB: E0/1.122 (InsideB), E0/2 (DMZ), E0/0 (Outside)


Интерфейсы DMZ и Outside разделяются между контекстами.

В среде GNS3 данный режим будет поддерживаться только при отключенной команде mac-address auto (no mac-address auto). Данная команда обеспечивает генерацию виртуального mac-адреса на разделяемом интерфейсе для каждого контекста. Виртуальный mac является одним из критериев при классификации пакета для доставки в нужный контекст. Поэтому при отключении будут использоваться другие критерии для классификации (записи в активных NAT-трансляциях).
В случае если ваш сценарий не предусматривает использование трансляции сетевых адресов, то вы не сможете использовать один и тот же IP и MAC на разделяемом интерфейсе в нескольких контекстах.

Баг №6. Использование виртуальных контекстов возможно только при отключенной команде mac-address auto, что накладывает ограничения на возможные сценария развертывания МЭ Cisco ASA.

5. Отказоустойчивая конфигурация в режиме Active/Standby


В этом режиме активно только одно устройство, второе находится в пассивном состоянии. Устройства синхронизируют друг с другом конфигурацию, а также таблицу состояний соединений, что позволяет в случае отказа активной части не разрывать уже установленные соединения.


При проведении теста маршрутизатор R1 устанавливал telnet-соединение на маршрутизатор R2, после чего имитировался отказ (путем выключения порта коммутатора SW1, подключенного к активному МЭ). По логике должно было произойти переключение отказоустойчивой пары, telnet-соединение должно было продолжить работать, т.к. между МЭ настроен statefull-линк.
Однако в виртуальной среде GNS3 результат оказался иным. Переключение отказоустойчивой пары произошло, но telnet-сессия прервалась. Более того, трафик через межсетевые экраны перестал ходить вообще. Связано это с тем, что, несмотря на то, что активная часть сменилась, кластер продолжал отвечать на ARP-запросы MAC-адресом первого межсетевого экрана (хотя тот уже перешел в пассивный режим). После полной перезагрузки кластерной пары ситуация не изменилась.

Баг №7. Cisco ASA в failover-режиме Active/Standby после переключения активного устройства на пассивное перестает пропускать через себя трафик по причине некорректных ответов на ARP-запросы.

Насколько мне известно, при эмуляции Cisco PIX 7версии такая проблема не возникает. Поэтому при необходимости используйте это решение.

6. Отказоустойчивая конфигурация в режиме Active/Active


В этом режиме активны оба устройства. Достигается это использованием нескольких виртуальных контекстов, часть из которых активны на одной части кластера, часть – на другой.


Проверка планировалась аналогичной той, что описана в предыдущем пункте. Однако закончилась несколько раньше. Причина следующая: устройства объединились в кластер, однако трафик через него не проходит, т.к. в отказоустойчивой конфигурации Active/Active используются виртуальные mac-адреса.

Баг №8. Трафик не проходит через кластер Cisco ASA в failover-режиме Active/Active.

7. Redundant-интерфейсы


В последнем тесте собиралась схема с redundant-интерфейсами на Cisco ASA, которые позволяют объединить несколько физических интерфейсов в логический. При этом активен только один интерфейс, второй активируется только после отказа первого.


В проверке проводилось отключение порта коммутатора, подключенного к активному интерфейсу ASA. После обнаружения отказа должен был стать активным второй интерфейс МЭ. Однако в среде GNS3 МЭ не обнаружил со своей стороны отключение порта на коммутаторе, и соответственно в активном состоянии продолжал находиться нерабочий интерфейс.

Баг №9. Переключение redundant-интерфейса не происходит при отказе физического соединения на соседнем с МЭ устройством.

Выводы


Тесты показали, что не все режимы работы Cisco ASA в среде GNS3 поддерживаются полностью. Меньше всего проблемы возникло при использовании routed, single mode режимов. В целом именно этот режим является наиболее популярным и наиболее полным с точки зрения функционала. В прозрачном режиме добиться корректной работы межсетевого экрана не удалось.
Режим с использованием виртуальных контекстов возможен в GNS3, но при условии отключения функции генерации виртуальных mac-адресов, что не позволит реализовать ряд сценариев при работе с Cisco ASA.
Если вашей целью является проверка объединения двух устройств ASA в отказоустойчивый кластер, то вы можете использовать GNS3. Однако в случае с режимом Active/Standby трафик не будет проходить через кластерную пару при переключении (в случае отказа), а в случае с Active/Active во всех случаях.
Аналогичная варианту с режимом Active/Standby ситуация происходит при использовании redundant-интерфейсов. В случае отказа активного интерфейса трафик через ASA проходить не будет.

Отмечу, что все используемые в тестах конфигурации были проверены на реальном оборудовании и отработали без нареканий.

Возможно есть способы полноценного запуска того или иного режима работы Cisco ASA в GNS3, в этом случае вы можете устроить сеанс разоблачения и поделиться этими знаниями в комментариях.

Если для кого-то это решение является новым, то знакомство с ним вы можете начать на официальном сайте -, и также посмотрев «небольшой» 40-минутный ролик от известного автора учебных пособий CBT Nuggets для подготовки к экзаменам Cisco – Jeremy Cioara.
Теги:
Хабы:
+17
Комментарии 11
Комментарии Комментарии 11

Публикации

Истории

Ближайшие события

PG Bootcamp 2024
Дата 16 апреля
Время 09:30 – 21:00
Место
Минск Онлайн
EvaConf 2024
Дата 16 апреля
Время 11:00 – 16:00
Место
Москва Онлайн
Weekend Offer в AliExpress
Дата 20 – 21 апреля
Время 10:00 – 20:00
Место
Онлайн