Прикручиваем эмулятор Cisco IOU к физическим интерфейсам

4 Окт
2011

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

Наткнувшись на статью, о существовании пакета IOS on UNIX, ожидал когда же автор опишет построение топологии сети. Но терпение не бесконечно, и я заглянул на сайт оригинальных публикаций — evilrouters.net/.
Как запустить эмулятор (i86bi_linux-adventerprisek9-ms) описано в вышеупомянутых источниках.
Мы же рассмотрим построение топологии.
Для построения топологии сети используется файл NETMAP располагающийся в директории с запускаемым файлом эмулятора (i86bi_linux-adventerprisek9-ms). Рассмотрим общий случай моделирования трех маршрутизаторов, соединенных в некоторую логическую сеть:
image
таким образом структура файла NETMAP будет иметь следующий вид:
10:1/1 11:1/0
10:1/2 12:1/0

— где 10 (11, 12) это ID маршрутизатора в логической топологии и к имени хоста неимеет никагого отношения.
Теперь рассмотрим самое интересное, подключение одного маршрутизатора к физическим интерфейсам.
Для запуска эмулятора (i86bi_linux-adventerprisek9-ms) использовался компьютер с двумя сетевыми адаптерами и установленной OC Unbuntu, а для подключения к физическим адаптерам использовался perl-скрипт из следующей статьи.
В папке с эмулятором создаем файл:
touch iou2net.pl

и копируем в него содержимое статьи после слова Scritp
меняем права на запуск
chmod +x ./iou2net.pl

скрипт требует следующих пакетов
sudo apt-get install libnet-pcap-perl libpcap0.8

если модули перла не установлены то устанавливаем используя CPAN
perl -MCPAN -e 'install Net::Pcap'

для запуска скрипта на Ubuntu потребовалось добавить ссылку
sudo ln -s /usr/lib/libcrypto.so.0.9.8 /usr/lib/libcrypto.so.4

После всех приготовлений запускаем скрипт следующей командой:
sudo ./iou2net.pl -i eth0 -p 20 &

— после ключа i указывается сетевой адаптер на который будет подцеплен порт маршрутизатора, ID которого в свою очередь должен быть указан в файле NETMAP;
— после ключа p указывается псевдо-ID маршрутизатора (фактически это виртуальный ID сетевой карты).
Чтобы подвязать к нескольким сетевым адаптерам, необходимо несколько раз запустить скрипт, пример:
$ cat NETMAP
10:1/0@hostname 20:0/0@hostname
10:1/1@hostname 21:0/0@hostname
[…]
$ sudo ./iou2net.pl -i eth0 -p 20 &
[…]
$ sudo ./iou2net.pl -i eth1 -p 21 &
[…]
— маршрутизатор с ID 10 с портом 1/0 подключен к псевдо-маршрутизатору с ID 20, который фактически через скрипт, является сетевым адаптером eth0, второй порт 1/1 подключен к псевдо ID 21 — к сетевой карте eth1.
hostname — имя хоста на котором запускается эмулятор.
Для тестов на виртуальном роутере был настроен статический NAT, а на машине за натом был запущен торрент клиен со скоростью скачивания 6Мбит/с и одновременно было инициализированно скачивание большого объема мелких файлов находящихся за натом по протоколу SMB. Нагрузка на процессор виртуального роутера составляла не более 60%, а физический процессор был нагружен всего на 30%.
По материалам Хабрахабр.



загрузка...

Комментарии:

Наверх