Pull to refresh

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

Reading time2 min
Views4.9K
Для начинающих сетевых инженеров возможность смоделировать роутер 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%.
Tags:
Hubs:
0
Comments0

Articles

Change theme settings