Навчання - світло і висока зарплата: огляд програмних емуляторів мережевого устаткування 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: wwwipflow.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 вересня 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 можна отримати за адресою: wwwopennet.ru / docs / RUS / cisco_basic

    WARNING

    Деякі старі версії IOS не підтримують команду idlepc.