Доброго времени.
Когда речь заходит о том как эмулировать Cisco IOS все сразу в голове прокручивают : dynamips, dynagen или gns3 в конце концов, если хочется все в комплекте, да еще и с GUI Front end.
Не так давно я писал о том, что Cisco с 17 января, в лабораторную CCIE RS в секцию TroubleShooting добавила Layer 2, используя виртуальную эмуляцию на основе L2IOU.
Я раньше не знал, что у Cisco есть свой эмулятор, начал искать информацию. Оказалось что некоторым успешно удалось у себя запустить все это дело, причем все работает неплохо, и что самое главное не ест столько процессорного времени как dynamips.
В общем меня это заинтересовало и я решил попробовать.
IOU запускается на unix-like системе, я установил виртуальную машину (vmware fusion под Mac OS), скачал последнюю версию Linux Ubuntu, установил и принялся за работу.
Во-первых, нужно найти IOU, ссылку здесь прямую выкладывать не буду, но кто хочет тот найдет в гугле без проблем 🙂
В моем случае файл называется так: i86bi_linux-ipbase-ms
Если мы его попробуем запустить, то получим следующее:
./i86bi_linux-ipbase-ms
***************************************************************
IOS On Unix — Cisco Systems confidential, internal use only
Under no circumstances is this software to be provided to any
non Cisco staff or customers. To do so is likely to result
in disciplinary action. Please refer to the IOU Usage policy at
wwwin-iou.cisco.com for more information.
***************************************************************IOURC: Could not open iourc file
Так, видим что не удалось открыть некий iourc файл, давайте его создадим командой touch iourc и попробуем запустить заново:
./i86bi_linux-ipbase-ms
***************************************************************
IOS On Unix — Cisco Systems confidential, internal use only
Under no circumstances is this software to be provided to any
non Cisco staff or customers. To do so is likely to result
in disciplinary action. Please refer to the IOU Usage policy at
wwwin-iou.cisco.com for more information.
***************************************************************
Missing application IDUsage: [options]
: unix-js-m | unix-is-m | unix-i-m | …
: instance identifier (0 < id <= 1024)
Options:
-e Number of Ethernet interfaces (default 2)
-s Number of Serial interfaces (default 2)
-n Size of nvram in Kb (default 16KB)
-b IOS debug string
-c Configuration file name
-d Generate debug information
-t Netio message trace
-q Suppress informational messages
-h Display this help
-C Turn off use of host clock
-m Megabytes of router memory (default 128MB)
-L Disable local console, use remote console
-u UDP port base for distributed networks
-R Ignore options from the IOURC fileВидим Missing application ID, ну просит, значит давайте введем какой-нибудь, например 10:
./i86bi_linux-ipbase-ms 10
***************************************************************
IOS On Unix — Cisco Systems confidential, internal use only
Under no circumstances is this software to be provided to any
non Cisco staff or customers. To do so is likely to result
in disciplinary action. Please refer to the IOU Usage policy at
wwwin-iou.cisco.com for more information.
***************************************************************IOU License Error: host not found in iourc file
License for key 10ac82b5 required on host «ubuntu».
Obtain a license for this key and host from the following location:http://wwwin-enged.cisco.com/ios/iou/license/index.html
Place in your iourc file as follows (see also the web page
for further details on iourc file format and location)[license]
ubuntu = <16 char license>;
Хорошо, теперь мы понимаем (IOU License Error: host not found in iourc file, что нужно в файл iourc поместить следующие строчки:
[license]
ubuntu = 1010101010101010;
где, 1010101010101010 это некие числа, любые, 16 штук 🙂
После того как прописали это в файл iourc пробуем запустить:
./i86bi_linux-ipbase-ms 10
***************************************************************
IOS On Unix — Cisco Systems confidential, internal use only
Under no circumstances is this software to be provided to any
non Cisco staff or customers. To do so is likely to result
in disciplinary action. Please refer to the IOU Usage policy at
wwwin-iou.cisco.com for more information.
***************************************************************IOU License Error: invalid license
License for key 10ac82b5 required on host «ubuntu».
Obtain a license for this key and host from the following location:http://wwwin-enged.cisco.com/ios/iou/license/index.html
Place in your iourc file as follows (see also the web page
for further details on iourc file format and location)[license]
ubuntu = <16 char license>;
Теперь мы видим IOU License Error: invalid license, было бы глупо рассчитывать на другое 🙂
Теперь нам придется немного «пошаманить».
А именно, нам нужно дизассемблировать файл, найти где проверяется валидность лицензии, ну и исправить там один битик.
Я делал это с помощью IDA.
Нашел вот такую проверку:
Видим jnz, вот здесь нам и надо изменить адрес перехода.
Переходим в Hex, затем с помощью hexeditor ищим 75148B45FCE8DB и заменяем первые 75, на 74. Сохраняем, пробуем запустить:
Router#sh ver
Cisco IOS Software, Linux Software (I86BI_LINUX-IPBASE-M), Experimental Version 12.4(20090407:185408) [yuiu-redbuild-V124_24_5_6_PIC1 166]
Copyright (c) 1986-2009 by Cisco Systems, Inc.
Compiled Wed 08-Apr-09 01:29 by yuiuROM: Bootstrap program is Linux
Router uptime is 30 minutes
System returned to ROM by reload at 0
System image file is «unix:./i86bi_linux-ipbase-ms»Linux Unix (Intel-x86) processor with 86409K bytes of memory.
Processor board ID 2048010
8 Ethernet interfaces
8 Serial interfaces
16K bytes of NVRAM.Configuration register is 0x0
Router#
Видим что все работает 🙂
В следующих статьях мы будем разбираться как построить топологию на основе IOU.
До скорых встреч 🙂
p.s. я описал процесс запуска весьма поверхностно, если кто-то столкнулся с какими-то проблемами, отписываемся в комментариях, или на форуме.
p.s.s. по просьбе трудящихся, англоязычная ссылка, которая помогла вссе это дело реализовать. http://evilrouters.net/
Там же есть видео. Так же если поискать информацию по этому вопросу есть еще китайские источники, где так же можно найти полезную информацию.