Автор Тема: Эмуляция роутеров cisco [dynamips + dynagen]  (Прочитано 2472 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Pascal

  • Администратор
  • Сообщений: 7277
  • Репутация: 34
  • OS:
  • Mac OS X 10.6.4 Mac OS X 10.6.4
  • Browser:
  • Safari 5.0 Safari 5.0
    • Просмотр профиля
    • Форум системных администраторов UNIX
Эмуляция роутеров cisco [dynamips + dynagen]
« : Июнь 25, 2010, 11:25:38 am »
Для построения лаборатории для экспериментов\самообучения прекрасно подходит связка dynamips+dynagen

скачать

Port:   dynamips-0.2.7_2
Path:   /usr/ports/emulators/dynamips
Info:   Cisco 3600/7200 Simulator

Port:   dynagen-0.11.0
Path:   /usr/ports/emulators/dynagen
Info:   Text-based front end for Dynamips development version

Эмулятор доступен для Linux/*BSD/Windows/Mac OS X, так же необходимо иметь образ самого ios'а.
После установки вначале надо запустить гипервизор

$ ./dynamips -H 7200
Cisco Router Simulation Platform (version 0.2.8-RC2-x86)
Copyright (c) 2005-2007 Christophe Fillot.
Build date: Nov 11 2007 11:11:35


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
Я приведу пример для трех роутеров которые залинкованны между собой и подключенны эзернетами к виртуальному свитчу в разные vlan'ы

Spoiler for dynagen:
autostart = false
[localhost]
    workingdir = /Users/pascal/Laba/work/2
    [[7200]]
    image = /Users/pascal/Laba/ios/c7200-advsecurityk9-mz.124-11.T.bin
    npe = npe-400
    ram = 160


[[ETHSW sw1]]
     1 = access 10
     2 = access 20
     3 = access 30
     
    [[ROUTER R1]]
     s1/0 = R3 s1/0
     s1/1 = R2 s1/1
     f0/0 = sw1 1
     idlepc = 0x612741dc


    [[ROUTER R2]]
     s1/0 = R3 s1/1
     f0/0 = sw1 2
     idlepc = 0x612741dc


    [[ROUTER R3]]
     f0/0 = sw1 3
     idlepc = 0x612741dc
Не копируйте параметр idlepc, он подбирается индивидуально, для начала просто закомментируйте его.
Запускаем dynagen:

$ ./dynagen ../conf/rip.net
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


=>

Смотрим список роутеров:

=> list
Name       Type       State      Server          Console   
R1         7200       stopped    localhost:7200  2000     
R2         7200       stopped    localhost:7200  2001     
R3         7200       stopped    localhost:7200  2002     
sw1        ETHSW      always on  localhost:7200  n/a

Запускаем первый маршрутизатор:

=> start R1
100-VM 'R1' started

подключаемся к нему:

$ telnet 127.0.0.1 2000
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
Connected to Dynamips VM "R1" (ID 0, type c7200) - Console port


L1R1>

ждем когда ios полностью загрузится и подбираем для него idlepc (без этого параметра роутеры будут сильно съедать cpu)

=> idlepc get R1
Please wait while gathering statistics...
   1: 0x624b22e0 [50]
   2: 0x6176232c [22]
   3: 0x61272d18 [21]
   4: 0x61272f18 [34]
*  5: 0x61273064 [54]
   6: 0x61273914 [29]
   7: 0x61273954 [39]
   8: 0x61273974 [31]
   9: 0x612741dc [21]
  10: 0x612748a8 [43]
Potentially better idlepc values marked with "*"

Наиболее подходящий параметр dynagen пометит звездой *
Копируем его, выключаем dynagen, вносим параметр в конфиг (можно для всех трех роутеров т.к. ios используется один и тот же), запускаем dynagen снова, все ... можно эксперементировать.

=> stop R1
100-VM 'R1' stopped
=> exit
Exiting...
snow:bin pascal$ ./dynagen ../conf/rip.net
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


=> start /all
Warning: Starting R1 with no idle-pc value
100-VM 'R1' started
100-VM 'R2' started
100-VM 'R3' started
=>
« Последнее редактирование: Июнь 25, 2010, 11:38:34 am от Pascal »
#define TRUE FALSE

koDar

  • Участник форума
  • Сообщений: 13
  • Репутация: 0
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Opera 9.80 Opera 9.80
    • Просмотр профиля
Re: Эмуляция роутеров cisco [dynamips + dynagen]
« Ответ #1 : Июнь 25, 2010, 12:39:50 pm »
ай спасибо

FessAectan

  • Супермодератор
  • Сообщений: 5582
  • Репутация: 34
  • OS:
  • Linux (Ubuntu) Linux (Ubuntu)
  • Browser:
  • Firefox 3.6.3 Firefox 3.6.3
    • Просмотр профиля
Re: Эмуляция роутеров cisco [dynamips + dynagen]
« Ответ #2 : Июнь 25, 2010, 12:49:36 pm »
+1024, давно хотел заняться
Сервис, который не мониторится — это не сервис. Без мониторинга вы просто запустили программу. (с) Лимончелли

Pascal

  • Администратор
  • Сообщений: 7277
  • Репутация: 34
  • OS:
  • Mac OS X 10.6.4 Mac OS X 10.6.4
  • Browser:
  • Safari 5.0 Safari 5.0
    • Просмотр профиля
    • Форум системных администраторов UNIX
Re: Эмуляция роутеров cisco [dynamips + dynagen]
« Ответ #3 : Июнь 25, 2010, 01:36:45 pm »
Так же можно прицепить виртуальную циску к интерфейсу TUN/TAP например:

[[ETHSW sw1]]
     1 = access 10 NIO_tap:/dev/tap0
     2 = access 10
   
    [[ROUTER R1]]
     f0/0 = sw1 2


после этого на циску можно будет попасть не через telnet localhost:port а по ее ip хоть по ssh
при желании вообще можно выставить виртуальную машину наружу ...

---
Поправка:

т.к. в Linux'е сетевые устройства не представляются в виде файлов конфиг будет выглядеть иначе:
вместо
1 = access 10 NIO_tap:/dev/tap0
будет
1 = access 10 NIO_tap:tap0
« Последнее редактирование: Август 12, 2011, 10:00:41 am от Pascal »
#define TRUE FALSE

Pascal

  • Администратор
  • Сообщений: 7277
  • Репутация: 34
  • OS:
  • Mac OS X 10.6.4 Mac OS X 10.6.4
  • Browser:
  • Safari 5.0 Safari 5.0
    • Просмотр профиля
    • Форум системных администраторов UNIX
Re: Эмуляция роутеров cisco [dynamips + dynagen]
« Ответ #4 : Июль 01, 2010, 12:52:37 pm »
Обсуждение данной темы
http://unixadmins.su/index.php/topic,139.0.html
#define TRUE FALSE