Издательский дом ООО "Гейм Лэнд"ЖУРНАЛ ХАКЕР 138, ИЮНЬ 2010 г.

Ученье – свет и высокая зарплата: обзор программных эмуляторов сетевого оборудования Cisco Systems и Juniper Networks

Чтобы научиться работать с "серьезным" сетевым оборудованием, совсем необязательно иметь тугой кошелек. Можно воспользоваться специальными эмуляторами, полностью имитирующими нужную среду, а то и целые сети.

Packet Tracert

Разработчик: Cisco Systems Inc.
Web:cisco.com/web/learning/netacad/course_catalog/PacketTracer.html
ОС: Windows XP/Vista/7, Linux (Ubuntu, Fedora)
Лицензия: бесплатно для зарегистрированных преподавателей и студентов курсов

Умение работать с оборудованием Cisco всегда являлось жирным плюсом при приеме на работу, однако оплатить курсы или приобрести циску (даже б/у) может далеко не каждый. Вероятно, поэтому количество кошачьих эмуляторов растет из года в год, и они пользуются популярностью у админов и желающих ими стать. Используя эмулятор, можно самостоятельно подготовиться к получению сертификатов CCNA (Cisco Certified Network Associate, Сертифицированный Cisco Сетевой Специалист), "перепробовав" все доступные девайсы и понастраивав сеть.

Обзор начнем с официальной разработки Cisco – эмулятора Packet Tracert, предлагаемого отделением Networking Academy, отвечающим за образование и подготовку различных курсов. Задача программы: помочь закрепить на практике полученные студентом теоретические навыки. Для ее решения PT обладает всем необходимым, позволяя "строить" сети различной сложности с практически неограниченным количеством устройств. Все установки производятся при помощи логической диаграммы сети, для симуляции представлен весь спектр оборудования, выпускаемого Cisco (роутеры, свитчи, точки доступа и т.п.). Можно изменять настройки объектов, моделировать потоки данных и многое другое. Поддерживается большое количество протоколов и технологий, используемых в оборудовании Cisco (полный список смотри в документации на сайте).

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

Официально в свободном доступе Packet Tracert не найти, он предназначен только для зарегистрированных преподавателей и студентов курсов (его можно найти на дисках, прилагаемых к некоторым книжкам по цисковским курсам). Но – нехитрый запрос к гуглу, и нужная программа будет у тебя на харде. Во время установки никаких ключей не требуется, сам процесс стандартен.

Все настройки производятся в большом окне посередине. Внизу слева находятся группы устройств, после выбора чуть правее появляются сами устройства. Отмечаем нужное и двойным щелчком на свободном месте в поле посередине переносим его на карту сети. Поддержка drag'n'drop делает процесс очень простым, устройства затем можно двигать, удалять и т.п. Удобно, что PT самостоятельно связывает некоторые девайсы, например, при появлении Wireless свитча к нему автоматически подключаются все устройства, поддерживающие этот вид соединения. При протяжке кабеля выбираем порт, к которому его подключаем. Один из значков отвечает за автоматическое определение типа соединения, что ускоряет сборку сети на стадии изучения. Если в процессе будет допущена ошибка, то пользователь получает предупреждение с кратким описанием (например, нет свободного разъема).

Пока все настройки логической сети производились во вкладке Logical Workspace (Ctrl+L). Чтобы перейти к физическому устройству и посмотреть порядок подключения, следует выбрать в верхнем левом углу вкладку Physical Workspace (Ctrl+P). Также PT предоставляет два режима отображения работы сети: Realtime Mode (Ctrl+R) и Simulations Mode (Ctrl+S). Переключение производится при помощи ярлыков в правом нижнем углу или горячих клавиш. В Realtime сеть работает в обычном режиме, в режиме Simulations можно наблюдать и контролировать процессы, происходящие в сети (работу устройств, интервалы времени, механизмы передачи данных и т.д.) Мастер Activity Wizard поможет создать собственные учебные сценарии.

Осталось добавить, что предусмотрена работа в многопользовательском режиме, а также доступно несколько пособий по настройке Cisco и справочная система, помогающая разобраться во всех возможностях.

Эмулятор Dynamips

Разработчик: OpenSource
Web:www.ipflow.utc.fr/index.php/Cisco_7200_Simulator
ОС: Windows 2k/XP/Vista, x32/x64 Linux, Mac OS X
Лицензия: GNU GPL

Проект Dynamips стартовал в августе 2005 года как эмулятор маршрутизатора Cisco 7200 на ПК и предназначался для проверки конфигурации перед использованием на настоящем оборудовании и для обучения. Сегодня Dynamips может эмулировать и другие платформы Cisco – серии 3600, 3700 и 2600. Причем с выбором разных вариантов устройств: CPU (MIPS64 и PowerPC), RAM (DRAM, Packet SRAM, NVRAM), различных типов карт и портов. Предусмотрена возможность создания виртуальных мостов и коммутаторов. Главная особенность – эмулируемое устройство можно подключить к реальной сети, для чего один из выходов виртуального маршрутизатора связывается с реальной сетевой картой. Работа в режиме гипервизора позволяет распределить нагрузку на несколько систем, ведь IOS (Internet Operating System) образы полностью загружаются в ОЗУ и при большом количестве виртуальных систем отбирают много ресурсов.

Нужный пакет доступен в репозиториях некоторых дистрибутивов Linux. Для захвата трафика используется библиотека pcap, при установке в Windows потребуется самостоятельно инсталлировать WinPCAP. В Ubuntu/Debian установка проста:

$ sudo apt-get install dynamips

Все параметры Dynamips легко узнать, запустив его с ключом '--help'. По умолчанию эмулируется Cisco 7206VXR с NPE-200 и 256 Мб ОЗУ DRAM. Чтобы указать другую платформу, следует использовать параметр '-P' (например, "-P 3600"). Дополнительный ключ '-t' позволяет "изменить" внутренности виртуального маршрутизатора (в зависимости от выбранного типа аргументы '-t' будут различны). Для запуска понадобятся реальные IOS образы Cisco, которые не являются частью пакета, и их необходимо скачивать отдельно (легко находятся гуглом, в Сети доступны сборники по несколько гигов). Иногда IOS-образы поставляются в сжатом виде, и перед загрузкой их нужно распаковать:

$ unzip -p c7200-g6ik8s-mz.124-2.T1.bin > c7200.image

Запускаем:

$ dynamips c7200.image

Но в плане настроек Dynamips не очень удобен, чтобы создать на его основе сеть из нескольких маршрутизаторов, придется немало потрудиться. Эту задачу можно облегчить при помощи Dynagen, который является текстовым фронт-эндом к Dynamips. Используя простой файл описания виртуальной среды, мы можем легко соединить несколько устройств. Главное, что все установки собраны в одном месте, имеют простой синтаксис и легко редактируются.

$ nano v_router.net

# Описание узла, на котором установлен Dynamips
[localhost]
# Тип роутера
[[7200]]
# Путь к IOS-файлу
image = /home/grinder/images/c7200.image
# Общие параметры, в данном случае платформа и RAM, при необходимости внутри роутера можно указывать специфические настройки
npe = npe-400
ram = 160

# Первый роутер
[[Router R1]

# Указываем подключение, в нашем случае интерфейс Serial1/0 на R1 будет подключен к Serial1/0 R2
s1/0 = R2 s1/0

[[Router R2]]
# Оставляем все по умолчанию

Это простейший пример, чтобы понять суть настроек. В "боевом" конфиге может быть с десяток самых разных роутеров и конфигураций. Например, чтобы связать один из выходов виртуального маршрутизатора с сетевым интерфейсом реальной или виртуальной системы, пишем:

s2/0 = NIO_linux_eth:eth1

Сначала запускаем dynamips в режиме гипервизора (после отладки можно стартануть в фоне, добавив '&'):

$ sudo dynamips -H 7200
Cisco Router Simulation Platform (version 0.2.8-RC2-amd64)
Copyright (c) 2005-2007 Christophe Fillot.
Build date: May 9 2009 18:06:28

ILT: loaded table "mips64j" from cache.
ILT: loaded table "mips64e" from cache.
ILT: loaded table "ppc32j" from cache.
ILT: loaded table "ppc32e" from cache.
Hypervisor TCP control server started (port 7200).

Теперь Dynagen:

$ dynagen v_router.net

После загрузки образов (процесс будет выводиться в консоли, где запущен dynamips) и настроек виртуальных роутеров получим приглашение консоли управления. Введя знак вопроса или help, получим справку по командам. Набрав "help команда", узнаем обо всех параметрах конкретной команды. Поддерживается автодополнение ввода при помощи клавиши <Tab>. Для остановки, запуска, перезапуска, приостановки и продолжения применяем команды start, stop, reload, suspend, resume с указанием имени роутера или ключа /all для всех устройств:

=> reload R1

Все команды регистрозависимы, поэтому нужно быть внимательнее. Просмотрим список работающих маршрутизаторов:

=> list
Name Type State Server Console
R1 7200 running localhost:7200 2000
R2 7200 running localhost:7200 2001

Теперь при помощи команды:

$ telnet localhost 2000

Можем подключиться к порту, указанному в поле Console. Хотя проще подключиться, указав имя устройства в строке приглашения Dynagen:

=> telnet R1

В отдельном окне откроется окно терминала, в котором уже управляем настройками.

Несколько виртуальных маршрутизаторов могут нехило загрузить систему. Причем вне зависимости от реально выполняющейся работы. Это происходит потому, что Dynamips не знает, когда роутер выполняет полезную работу, а когда находится в режиме ожидания. Команда idlepc позволяет проанализировать IOS-образы в действии и определить циклы простоя. При первом запуске значение не установлено:

*** Warning: Starting R1 with no idle-pc value

Нужную цифирь idle-pc можно получить, введя в консоли dynagen команду "idlepc get имя_роутера":

=> idlepc get R1

Будет выдано несколько значений, наиболее оптимальные отмечены знаком "*". Далее выполнение команды остановится, и потребуется ввести одну из цифр, соответствующих выбранному idlepc. После этого его значение будет добавлено к выполняющемуся процессу. При запуске Dynamips вручную значение idlepc указывается при помощи параметра '--idle-pc=', как вариант, в секции роутера конфига Dynagen дописываем:

idlepc = 0x6076a394

Но лучше просто сохранить значение, чтобы оно считывалось при последующих загрузках:

=> idlepc save R1 db

Повторно просмотреть весь список idlepc просто:

=> idlepc show R1

Все, маршрутизатор можно настраивать.

Проект оброс несколькими субпроектами, делающими использование Dynagen более удобным. Например, gDynagen обеспечивает единую консоль для ввода команд для Dynamips + Dynagen. Генератор настроек для Dynagen –confDynagen добавляет новый режим конфигурирования, который дает возможность изменять параметры Dynagen "на лету", без остановки виртуальной сети.

Симулятор GNS3

Разработчик: OpenSource
Web: ns3.net
ОС: Windows 2k/XP/Vista, *nix, Mac OS X
Лицензия: GNU GPL

GNS3 (graphical network simulator) – очень мощный симулятор, выпускаемый под свободной лицензией и позволяющий эмулировать сети большого размера. Полезен администраторам и инженерам, а также пользователям, которые готовятся к сдаче сертификатов Cisco (CCNA, CCNP, CCIP, CCIE) и Juniper Networks (JNCIA, JNCIS, JNCIE). Чтобы обеспечить максимальную функциональность, также следует установить Dynamips, Dynagen и виртуальную машину Qemu. Для захвата пакетов потребуется Wireshark (wireshark.org). Кроме образов Cisco IOS, GNS3 умеет работать с olive-образами JunOS (juniper.net/ru/ru/products-services/nos/junos) – операционки, используемой в оборудовании компании Juniper Networks.

Возможна эмуляция простых Ethernet, ATM и Frame Relay свитчей и файеров (ASA, PIX). Как и в случае с Dynamips, легко подключить виртуальный свитч к сетевой карте реальной или виртуальной системы. И главное – все настройки производятся в интуитивно понятной графической среде.

Пакет GNS3 уже доступен в репозиториях большинства основных дистрибутивов Linux. В Debian/Ubuntu для установки набираем:

$ sudo apt-get install gns3

Чтобы использовать самые свежие версии, следует подключить репозиторий gpl.code.de. Подробные инструкции для своего дистрибутива ищи по адресуgpl.code.de/oswiki/GplcodedeApt. Для самостоятельной сборки пакетов потребуется наличие Python и ряда библиотек: Qt, PyQt и других.

При первом запуске встречает Setup Wizard, объясняющий два основных требования к запуску программы: проверить правильность пути в Dynamips и при необходимости скорректировать его. Плюс загрузка IOS-образов.

Окно программы можно назвать стандартным. Слева в "Nodes Types" находятся значки устройств, которые простым перетаскиванием помещаем в окно посередине, строя виртуальную сеть. Двойным щелчком вызываем окно свойств, где настраиваются специфические параметры для конкретного роутера, и, в том числе, добавляются адаптеры. Контекстное меню позволяет запустить, остановить устройство, получить IDLE PC, выйти в консоль. В панели сверху доступны примитивные инструменты рисования (вставка круга, прямоугольника, рисунка). Сеть, состоящая из одних маршрутизаторов, не очень наглядна, остальные компоненты сети (серверы, принтеры и т.п.) добавляются через "Edit – Symbol Manager".

Правое окно "Topology Summary" предназначено для быстрой навигации, здесь выводятся все девайсы (работающие подсвечиваются зеленым значком). Если образа, соответствующего выбранному устройству, в коллекции GNS3 нет, то при попытке добавить такой роутер получим предупреждение. Чтобы добавить IOS-образы или указать местонахождение гипервизоров Dynamips, открываем "Edit – IOS images and hypervisors". Указываем на image-файл, при этом платформа, модель и количество RAM отображаются автоматически. Эти значения будут использованы по умолчанию, их можно скорректировать. В поле IDLE PC прописывается нужное значение (если оно известно). Внизу посередине находится консоль Dynagen, предназначенная для непосредственного ввода команд.

После нанесения на карту всех устройств при помощи консоли приступаем к их настройке, в частности, устанавливаем связи щелчком по "Add a link". Созданные настройки сохраняются в файл для повторного использования.

Стоит отметить, что имеется еще один проект –Dynagui, наглядно показывающий подключения между роутерами. Но по функциональности он не дотягивает до GNS3, а последнее обновление датировано 2007 годом.

Заключение

Не стоит пренебрегать программными эмуляторами сетевого оборудования и недооценивать предлагаемые ими возможности, тем более, что разработчики Cisco Systems и Juniper Networks настоятельно рекомендуют их использовать.

Некоторые команды маршрутизаторов Cisco

help – справка по всем командам
setup – запуск мастера конфигурирования маршрутизатора
show config – просмотр текущих настроек
configure terminal – вход в режим настройки хоста
enable [номер уровня] – переход к определенному уровню настроек
hostname Router – вводим имя маршрутизатора
ip http server – запуск веб-интерфейса
ip route 172.1.1.0 255.255.255.0 10.1.1.1 permanent – статический маршрут
clear ip route * – удаление всех маршрутов
show ip route – просмотр маршрутов

Консоль Cisco поддерживает автодополнение с использованием табуляции, поэтому полностью вводить команды не обязательно.

Проекты одной строкой

Network Simulator – симулятор, предназначенный для изучения работы сетевых протоколов и маршрутизации. Опционально включает модуль анимации nam (network animator).

Xentaur – решение для организации сетей, объединяющих реальные устройства, эмуляторы и виртуальные машины Xen.

NetSim – симулятор работы по протоколам нижнего уровня, с 3D визуализацией процессов.

ProfSIMs,RouterSim,CertExams.com – коммерческие симуляторы и визуализаторы, позволяющие подготовиться для сдачи сертификата Cisco.

INFO

С помощью программы Packet Tracert можно строить целые сети между виртуальными офисами.

В Packet Tracert доступны инструменты рисования, которые помогут лучше представить сеть на карте. Так, например, отдельные элементы или группы можно раскрасить разными цветами.

WWW

Сайт проекта Dynagen – dynagen.org

Отличные видеоруководства по работе с Dynamips и Dynagen –blindhog.net

Характеристики IOS устройств Cisco –tools.cisco.com/ITDIT/CFN/Dispatch

Список репозиториев для GNS3 –gpl.code.de/oswiki/GplcodedeApt

Сайт проекта Wireshark – wireshark.org

Некоторое представление по командам IOS можно получить по адресу:www.opennet.ru/docs/RUS/cisco_basic

WARNING

Некоторые старые версии IOS не поддерживают команду idlepc.

Содержание
загрузка...
Журнал Хакер #151Журнал Хакер #150Журнал Хакер #149Журнал Хакер #148Журнал Хакер #147Журнал Хакер #146Журнал Хакер #145Журнал Хакер #144Журнал Хакер #143Журнал Хакер #142Журнал Хакер #141Журнал Хакер #140Журнал Хакер #139Журнал Хакер #138Журнал Хакер #137Журнал Хакер #136Журнал Хакер #135Журнал Хакер #134Журнал Хакер #133Журнал Хакер #132Журнал Хакер #131Журнал Хакер #130Журнал Хакер #129Журнал Хакер #128Журнал Хакер #127Журнал Хакер #126Журнал Хакер #125Журнал Хакер #124Журнал Хакер #123Журнал Хакер #122Журнал Хакер #121Журнал Хакер #120Журнал Хакер #119Журнал Хакер #118Журнал Хакер #117Журнал Хакер #116Журнал Хакер #115Журнал Хакер #114Журнал Хакер #113Журнал Хакер #112Журнал Хакер #111Журнал Хакер #110Журнал Хакер #109Журнал Хакер #108Журнал Хакер #107Журнал Хакер #106Журнал Хакер #105Журнал Хакер #104Журнал Хакер #103Журнал Хакер #102Журнал Хакер #101Журнал Хакер #100Журнал Хакер #099Журнал Хакер #098Журнал Хакер #097Журнал Хакер #096Журнал Хакер #095Журнал Хакер #094Журнал Хакер #093Журнал Хакер #092Журнал Хакер #091Журнал Хакер #090Журнал Хакер #089Журнал Хакер #088Журнал Хакер #087Журнал Хакер #086Журнал Хакер #085Журнал Хакер #084Журнал Хакер #083Журнал Хакер #082Журнал Хакер #081Журнал Хакер #080Журнал Хакер #079Журнал Хакер #078Журнал Хакер #077Журнал Хакер #076Журнал Хакер #075Журнал Хакер #074Журнал Хакер #073Журнал Хакер #072Журнал Хакер #071Журнал Хакер #070Журнал Хакер #069Журнал Хакер #068Журнал Хакер #067Журнал Хакер #066Журнал Хакер #065Журнал Хакер #064Журнал Хакер #063Журнал Хакер #062Журнал Хакер #061Журнал Хакер #060Журнал Хакер #059Журнал Хакер #058Журнал Хакер #057Журнал Хакер #056Журнал Хакер #055Журнал Хакер #054Журнал Хакер #053Журнал Хакер #052Журнал Хакер #051Журнал Хакер #050Журнал Хакер #049Журнал Хакер #048Журнал Хакер #047Журнал Хакер #046Журнал Хакер #045Журнал Хакер #044Журнал Хакер #043Журнал Хакер #042Журнал Хакер #041Журнал Хакер #040Журнал Хакер #039Журнал Хакер #038Журнал Хакер #037Журнал Хакер #036Журнал Хакер #035Журнал Хакер #034Журнал Хакер #033Журнал Хакер #032Журнал Хакер #031Журнал Хакер #030Журнал Хакер #029Журнал Хакер #028Журнал Хакер #027Журнал Хакер #026Журнал Хакер #025Журнал Хакер #024Журнал Хакер #023Журнал Хакер #022Журнал Хакер #021Журнал Хакер #020Журнал Хакер #019Журнал Хакер #018Журнал Хакер #017Журнал Хакер #016Журнал Хакер #015Журнал Хакер #014Журнал Хакер #013Журнал Хакер #012Журнал Хакер #011Журнал Хакер #010Журнал Хакер #009Журнал Хакер #008Журнал Хакер #007Журнал Хакер #006Журнал Хакер #005Журнал Хакер #004Журнал Хакер #003Журнал Хакер #002Журнал Хакер #001