Как настроить лабораторию Cisco на Linux (CentOS 5.2)
Version 1.0
Author: Andrew Colin Kissa
Предпосылки
Для выполнения инструкций потребуются навыки работы с командной строкой Linux и базовое знание Cisco IOS/PIX. Обратите внимание: вам необходимо иметь собственные образы Cisco IOS/PIX — не запрашивайте их у автора.
Важно: использование образов Cisco может подпадать под лицензионные ограничения. Убедитесь, что у вас есть право запускать эти образы.
Кому это подходит
- Студентам и инженерам, готовящимся к сертификациям Cisco (например, CCSP).
- Тем, у кого нет Windows-машины, но есть Linux-сервер/рабочая станция.
- Инженерам, которые хотят тестировать сетевые сценарии локально, без физического оборудования.
Необходимое ПО и концепция
Коротко о компонентах (в одной строке):
- Dynamips — эмулятор аппаратной платформы Cisco, запускает реальные IOS-образы.
- Dynagen — текстовый интерфейс/конфиг-обёртка над Dynamips (ini-подобный формат).
- PEMU — эмулятор для Cisco PIX/ASA (обёртка для образов PIX/ASA).
Все инструкции ориентированы на RPM-основанную систему (CentOS 5.2). При желании команды можно адаптировать под другие дистрибутивы.
Установка ПО
Автор использовал собственные собранные RPM-пакеты и ключ для проверки подписи. Вы можете собрать пакеты из исходников сами или воспользоваться готовыми RPM (при наличии доверия к источнику).
Скачайте и импортируйте ключ автора:
wget http://www.topdog-software.com/oss/roundcube/andrew_topdog-software.com_key.txt
rpm --import andrew_topdog-software.com_key.txtУстановка Dynamips:
rpm -Uvh http://www.topdog-software.com/oss/dynamips/dynamips-0.2.8RC2-1.i386.rpmУстановка Dynagen:
rpm -Uvh http://www.topdog-software.com/oss/dynagen/dynagen-0.11.0-1.noarch.rpmУстановка PEMU:
rpm -Uvh http://www.topdog-software.com/oss/pemu/pemu-0.0.1-20070420.i386.rpmПримечание: если вы предпочитаете собирать из исходников, соответствующие source RPM доступны у проектов (за исключением PEMU, для которого автор собрал RPM самостоятельно).
Пример лаборатории: SNPA (IOS + PIX)
Для демонстрации возьмём лабораторию из модуля SNPA, где видно взаимодействие IOS-устройств и PIX/ASA.
Запустите сервисы:
service dynamips start
service pemu startРаспакуйте образы и скопируйте их в рабочую директорию PEMU (это ускорит загрузку):
unzip snrs.bin
cp C3640-JK.BIN /var/lib/pemu/images/snrs.bin
unzip asa722-k8.bin
cp target/f1/pix /var/lib/pemu/images/pixСоздайте файл конфигурации dynagen, например /tmp/snpa.net, со следующим содержимым:
autostart = false
model = 3640
ghostios = true
sparsemem = true
[localhost]
workingdir = /var/lib/pemu
[[3640]]
image = /var/lib/pemu/images/snrs.bin
#idlepc = 0x60ba8df4
[[router inside]]
# This router will be on the "inside" of the firewall
# Connect this router's e0/0 interface to fw1's e1 interface
e0/0 = fw1 e1
[[router outside]]
# This router will be on the "outside" of the firewall
# Connect this router's e0/0 interface to fw1's e0 interface
e0/0 = fw1 e0
[[ethsw s1]]
1 = access 1
# Bridge the below interface to allow fw1's e2 interface access to real networks
# e.g. for using ASDM from a PC to manage the firewall, change the interface to
# reflect your system
2 = access 1 NIO_gen_eth:eth1
[pemu localhost]
[[525]]
#for pix 7 & 8
serial = 0x1234568
key = 0xffffffff,0xffffffff,0xffffffff,0xffffffff
image = /var/lib/pemu/images/pix
[[fw fw1]]
# Connect the firewall's e2 interface to the virtual switch, which will bridge it
# to the real network
e2 = s1 1
Запустите dynagen с этой конфигурацией:
dynagen /tmp/snpa.netВас встретит консоль dynagen:
Reading configuration file...
Network successfully loaded
Dynagen management console for Dynamips and Pemuwrapper 0.11.0
Copyright (c) 2005-2007 Greg Anuzelli, contributions Pavel Skovajsa
=> Основные команды dynagen
Внутри консоли dynagen доступно множество команд — краткий вывод по вопросу:
=> ?
Documented commands (type help ):
========================================
capture confreg cpuinfo export hist list py save show suspend
clear console end filter idlepc no reload send start telnet
conf copy exit help import push resume shell stop ver
=> Список устройств в лаборатории (пример вывода):
=> list
Name Type State Server Console
inside 3640 stopped localhost:7200 2000
outside 3640 stopped localhost:7200 2001
fw1 525 stopped localhost:10525 4000
s1 ETHSW always on localhost:7200 n/a
=> Запуск устройств:
=> start outside
100-VM 'outside' started
=> start inside
100-VM 'inside' started
=> start fw1
100-PEMU 'fw1' started
=>Повышение производительности: idlepc
Чтобы снизить загрузку CPU и повысить производительность, подберите значение idlepc для каждой виртуальной машины:
=> idlepc get inside
Please wait while gathering statistics...
1: 0x605a39c8 [61]
2: 0x605a3a40 [25]
3: 0x604fd014 [78]
4: 0x604fd044 [64]
5: 0x6048daa0 [80]
6: 0x604fe168 [75]
* 7: 0x604fe584 [59]
8: 0x604fe734 [46]
9: 0x604fe75c [49]
Potentially better idlepc values marked with "*"
Enter the number of the idlepc value to apply [1-9] or ENTER for no change: 7 Повторите подбор для всех устройств, где это релевантно.
Доступ к консоли устройств
Каждое устройство предоставляет консоль на TCP-порту. Узнать порты можно командой list в dynagen. Подключение к консоли маршрутизатора:
telnet localhost 2000Первичное подключение может предложить войти в начальный диалог конфигурации:
Trying 127.0.0.1...
Connected to localhost.localdomain (127.0.0.1).
Escape character is '^]'.
Connected to Dynamips VM "inside" (ID 0, type c3600) - Console port
% Please answer 'yes' or 'no'.
Would you like to enter the initial configuration dialog? [yes/no]: Подключение к PIX/ASA (PEMU):
telnet localhost 4000Ожидаемый вывод:
Trying 127.0.0.1...
Connected to localhost.localdomain (127.0.0.1).
Escape character is '^]'.
pixfirewall> Дополнительные образцы лабораторий
В комплекте с Dynagen есть директория с примерами: /usr/share/doc/dynagen-0.11.0/sample_labs
GUI-альтернатива
Если вы предпочитаете графический интерфейс, рассмотрите проект GNS (GNS3). Автор не использовал GNS лично, но проект популярен среди тех, кто любит визуальное управление.
Чек-листы по ролям
Инженер по сетям:
- Подготовить образы IOS/PIX и убедиться в лицензии.
- Настроить рабочую директорию (/var/lib/pemu).
- Подобрать idlepc для всех VM.
Тестировщик/студент:
- Запустить базовую топологию, проверить доступ к консоли.
- Протестировать маршрутизацию/ACL/функции PIX.
Администратор системы:
- Настроить автозапуск сервисов (dynamips/pemu).
- Контролировать потребление CPU и сетевые мосты.
Мини-методология быстрой проверки (по шагам)
- Установить RPM-пакеты и импортировать ключ.
- Поместить образы в /var/lib/pemu/images.
- Подготовить .net файл для dynagen.
- Запустить dynagen и проверить список устройств.
- Запустить VM, подключиться к консоли, определить и применить idlepc.
- Протестировать сценарий (ping, маршруты, доступ ASDM при необходимости).
Устранение неполадок — распространённые ситуации и решения
- Динамипс не запускается: проверьте права на /var/lib/pemu и SELinux.
- Образы не загружаются или падают: убедитесь, что образ совместим с моделью (например, 3640).
- Высокая загрузка CPU: подобрать idlepc, убедиться в параметре ghostios/sparsemem.
- Нет доступа к реальной сети через NIO_gen_eth: проверьте, что интерфейс eth1 существует и не занят.
Альтернативы и когда это не подходит
- Если вам нужна полная аппаратная точность (тайминги/физические порт-особенности), эмуляция может не подойти — лучше физические устройства.
- Для легкой визуальной отладки и простых лабораторий GNS (GNS3) может быть удобнее.
Совместимость и миграция
- Инструкции ориентированы на CentOS 5.2 и RPM-пакеты. На современных дистрибутивах пути и системные сервисы (systemd) будут отличаться — адаптируйте команды запуска и пути к демонам.
- PEMU и Dynamips — старые проекты; при переносе на новые ядра/ядра realtime-патчи могут потребоваться патчи или сборка из исходников.
Критерии приёмки
- Все указанные виртуальные устройства запускаются без фатальных ошибок.
- Есть доступ по telnet к консоли каждого устройства.
- Idlepc подобран для основных VM, нагрузка CPU в простое приемлемая.
Факт-бокс: ключевые версии и пути
- Dynamips: 0.2.8RC2 (в примерах).
- Dynagen: 0.11.0.
- PEMU: 0.0.1-20070420.
- Рабочая директория примера: /var/lib/pemu.
- Примеры конфигураций: /usr/share/doc/dynagen-0.11.0/sample_labs.
Короткое объявление для команды (100–200 слов)
Я настроил реплику лаборатории Cisco на CentOS 5.2 с помощью Dynamips, Dynagen и PEMU. Это позволяет запускать реальные IOS- и PIX/ASA-образы для тренировок и тестирования сетевых сценариев без физического железа. В руководстве описаны шаги по установке RPM-пакетов, размещению образов, созданию конфигурации dynagen (/tmp/snpa.net), запуску виртуальных машин и подключению к их консоли через telnet. Также включены рекомендации по подбору idlepc для снижения загрузки CPU, чек-листы для ролей и советы по устранению типичных проблем. Убедитесь в наличии прав на использование образов Cisco и в адаптации команд запуска для современных дистрибутивов при миграции.
Благодарности
Спасибо разработчикам проектов Dynagen, Dynamips и PEMU; рассмотрите возможность пожертвований этим проектам.
- Dynagen
- Dynamips
- PEMU
Резюме
- Можно развернуть полноценную лабораторию Cisco на CentOS с использованием Dynamips/Dynagen/PEMU.
- Важные шаги: установка RPM, размещение образов, создание .net, запуск и подбор idlepc.
- Для GUI-альтернативы есть GNS3; для продвинутых сценариев может потребоваться физическое оборудование.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента