Idle pc gns3 что это
Firstly let me say thanks to Jeremy Grossmann (principal programmer for GNS3) for helping me finally get my head around this concept. I have to admit that I’d I had only a vague idea of what was happening when I wrote this post on the GNS3 forum, but recently I decided I had to nail it.
In a nutshell:
Without an Idle-PC set, dynamips attempts to emulate instructions one at a time as fast as it can, consuming up to 100% of the available CPU.
The Idle-PC is a guess at where the Program Counter might be pointing to an idle-loop in the emulated router.
When emulator has visits this PC value Idle-Max times, it suspends itself for Idle-Sleep ms to allow other processes to get on their tasks.
Details
To understand the dynamips/GNS3 Idle-PC concept, you have to start by looking at the way software operates.
A normal piece of software generally has one or more places in the code where the program just sits in an “idle” loop – say waiting for a key press. Or a message to arrive. Or for a timer to expire to remind it to send a message.
However dynamips is a different kind of program. It is an emulator. It takes a binary image of MIPS machine code and interprets each instruction one at a time and then executes that instruction on the host computer. The basic logic is something like this:
So there are no idle states – dynamips just screams through those instructions one at a time around and around – except that there will be many, many places where the instruction that is executed is one that changes the program counter, causing dynamips to extract the instructions in a non-linear sequence.
And some of those instructions will be be in little groups where the emulated router is sitting in an idle state – as in waiting for a packet to arrive or a key to be pressed at the console. The problem is, dynamips has no idea whether the current Program Counter (PC) is pointing to an instruction that is doing something important, or one that is just part of the few instructions that get repeated over and over in an idle loop.
Now if dynamips could somehow know that when the Program Counter (PC) was pointing to a certain pice of code that was just an idle loop, it could suspend itself for a while, so the logic would change to:
But dynamips has no way of knowing “IF the new PC is pointing to an idle loop” – because dynamips cannot predict future instructions nor understand them. This makes it impossible to optimise the executed code like compilers do or to know if the instructions are worth being executed.
So we make some guesses at when the Program Counter MIGHT be executing an idle loop. We call this value the Idle-PC value.
If we guess at a place where the emulated router spends a lot of idle time, then the host computer gets lots of chances to get on with other stuff. If we guess a PC (remember PC=Program Counter) where the code is only executed rarely, then the host computer will spend 100% of its CPU executing the dynamips simple loop.
Since every Cisco router image has a different set of instructions, these idle lops will be in different places on different images. But once a good Idle-PC has been found for one image, it should be good for all emulations of that image – no matter whether you are running your dynamips on a Windows computer, and OS X Macintosh, a Linux box or an iPad :J
The only other issue then, is how long and low often should dynamips sleep for when it has found the PC for the idle loop? This is where the Idle-Max and Idle-Sleep values found under the Advanced settings of the GNS3 IOS images and hypervisors dialogue come in. (Note: This feature was added to GNS3 in version 0.8.4)
Dynamips doesn’t go to sleep EVERY time the PC hits the Idle-PC. It waits until it has hit the Idle-PC Idle-Max times before sleeping for Idle-Sleep ms. That way the router still gets a chance to do the things it needs to do between visits to the Idle-PC value. If you adjust the Idle-Max too low or the Idle-Sleep too high, your emulated routers will slow to a crawl, they will loose connections with their neighbours and bad things will happen. However some folk have had good success at playing with these numbers.
To summarise:
Without an Idle-PC set, dynamips attempts to emulate instructions one at a time as fast as it can, consuming up to 100% of the available CPU.
The Idle-PC is a guess at where the Program Counter might be pointing to an idle-loop in the emulated router.
When emulator has visits this PC value Idle-Max times, it suspends itself for Idle-Sleep ms to allow other processes to get on their tasks.
Remember, if you found this post helpful, you can make it easier for others to find by giving it a good rating, or by clicking on one of the sharing options.
Сети для самых маленьких. Микровыпуск №1. Переход на GNS3
Мы немножко нарушим хронологию цикла Сети для самых маленьких.
Компания ЛифтМиАП разрастается, покупая новые филиалы по всей стране. Поэтому следующая наша статья будет посвящена технологиям VPN и подключению удалённых офисов к центральному. Будут обсуждаться такие темы, как GRE, IPSec и DMVN. Тут Packet Tracer уже едва ли может нам чем-то помочь.
Пришло время для больших игр и перехода на профессиональное ПО для симулирования сети. Да и темы, положа руку на сердце, уже не для самых маленьких.
На выбор в сегодняшнем меню:
- GNS3 — Graphical Network Simulator
- IOU — IOS on UNIX
Под катом аргументы за и против и частичный перенос топологию из РТ в GNS, а сначала традиционное видео, на этот раз умеренной длины.
GNS или IOU? IOU или GNS? Начнём с IOU, потому что его мы использовать не будем.
IOS On UNIX
Как видно из названия — ставится поверх UNIX. Раньше это был только Solaris, теперь же поддерживается и Linux.
Самые существенные его плюсы:
1) Практически полноценная поддержка как L3, так и L2. Этот эмулятор используется при сдаче лабораторных экзаменов CCIE.
2) Низкие требования к ресурсам ПК. Точнее к CPU. Памяти тоже надо немало.
3) Нет ограничений по платам и интерфейсам. В настройках вы просто указываете сколько и чего вы хотите.
Минусы:
1) Самое главное — это проприетарный софт, который официально не распространяется вообще никак. В торрентах существуют образы L2IOU, L3IOU, но это незаконно.
Вообще ходит легенда, что на сайте cisco одно время было написано:
Это основная причина, по которой мы отказались от идеи использования IOU в нашем цикле.
2) Установка и настройка IOU не отличается простотой. Нужно обладать недюжим спокойствием и кое-каким опытом работы в никсах, чтобы разобраться с топологиями, файлами настройки и сохранением конфигурации устройств.
Тоже немаловажная причина — нам бы с меньшими жертвами осуществить переход и не отпугнуть “самых маленьких”.
3) Нет графического интерфейса.
В общем это годная утилита для беспринципных тру ИТшников. Если вам нужна лаба из 20+ устройств или надо поработать с QinQ, Rapid PVST (и прочие L2-технологии) или хочется всерьёз заняться Tshoot, то это для вас.
Graphical Network Simulator
Наш выбор. Имеет два серьёзных недостатка:
— Сильно требователен к CPU и памяти. 10 маршрутизаторов уже всерьёз нагрузят ПК. Использование процессора можно снизить с помощью механизма Idle PC. Без этого и 3-4 с трудом бы, пожалуй, пошли.
— Очень слабо поддерживает функции L2. Есть только подобие коммутаторов, на которых можно максимум настроить Access/Trunk порты и свичовые платы для маршрутизаторов, L2-функционал которых также очень ограничен.
Необходимо ещё где-то раздобыть образы IOS. GNS — это практически виртуальный маршрутизатор и для запуска ему также необходимо ПО, которым и является IOS.
Взять его можно с сайта cisco, если у вас там есть аккаунт с необходимыми правами, скачать с имеющегося у вас оборудования или другой всем известный способ.
Зато при этом GNS имеет графический интерфейс (технически это и есть GUI для Dynamips), что сильно облегчает создание виртуальных лабораторий.
Компьютер можно подключить в реальную сеть в качестве виртуального маршрутизатора.
Установка и подготовка к работе
Скачать можно тут. Для Ubuntu, Debian GNS доступен из репозитария.
apt-get install gns3
После установки выполняем начальную настройку.
Полагаем, что образы у вас уже есть. Добавим их:


Автоматически определяется модель маршрутизатора.
Обратите внимание на поле IDLE PC. Пока не трогаем.
Save.
При создании нового проекта вам предлагается ввести название и параметры.

Самое главное тут не забудьте поставить галку «Save nvram and other disk files», иначе после перезапуска приложения у вас не сохранится конфигурация.
Перетаскиваем маршрутизатор на рабочую площадку. Естественно, берём ту модель, для которой есть образ. Ошибок быть не должно.
Жмакаем сверху на кнопку
. Обратите внимание на то, как возросла нагрузка на CPU:
. Теперь волнение нужно успокоить. Для этого выбираем в контекстном меню Idle PC. 
Именно этот механизм позволяет оптимизировать использование ресурсов процессора.
ПК вычисляет несколько значений и предлагает вам целый их список. Рекомендуется выбирать значения со знаком *. Как только они применяются, загрузка CPU падает

Если вдруг не получилось, итерируем до тех пор, пока не достигнем желаемого.
Теперь самое удачное значение перепишите на листочек, откройте окно управления образами Edit->IOS Image and hyervisors и заполняете то самое поле IDLE PC. Теперь при следующем запуске после загрузки IOS GNS не должен отожрать всё процессорное время.
Всё готово для подключения.
У GNS есть стандартные средства для этого:

По умолчанию он использует приложение xTerm, которое, наверняка, есть почти в любом дистрибутиве.
Признаться, у меня почему-то он не работает — нельзя набирать символы. В настройках терминальных программ можно выбрать другое приложение, например, Konsole — оно у меня заработало.

Для оболочки Gnome (Unity) при настройке терминала можно выбрать родной терминал, несмотря на то, что его нет в списке по-умолчанию. Достаточно вставить следующую строчку в поле Preconfigurated terminal commands:
gnome-terminal -t %d -e ‘telnet %h %p’ >/dev/null 2>&1 &
Но на самом деле вы можете пользоваться любым другим терминальным приложением, к которому привыкли. Более того, вы можете подключаться даже с другого компьютера в сети, потому что выполняется это командой:
telnet a.b.c.d 2000
Что такое telnet — понятно, a.b.c.d — адрес компьютера (если вы подключаетесь с этого же ПК, то адрес 127.0.0.1), 2000 — номер TCP порта, выделенного для этого устройства (как правило начинается с 2000 для таких программ). У каждого маршрутизатора будет свой.
Номер порта можно посмотреть так:



Перенос конфигурации из РТ в GNS
Тут кроется дьявол. В GNS у нас максимум 3 интерфейса: FE0/0, Fe0/1 и можно добавить ещё плату с FE1/0, а в лабе на РТ мы иногда используем FE1/1. Поэтому нельзя просто скопировать и вставить — местами придётся переработать конфигурацию.
Схема, которую мы будем воспроизводить:

Мы взяли только Сибирское кольцо, чтобы показать, как это делается, и не загружать схему другими филиалами.
Добавляем маршрутизаторы. Будем работать, например, с 2691-ми.

Названия устройств ограничены в используемых символах, поэтому мы добавим им описания:

Также добавляем коммутаторы: один для «Балаган Телеком», второй для «Филькин сертификат».

Прежде чем, запускать, добавим в МСК плату.

В списке только одна плата с FE портами. Мы вполне могли бы добавить платы с последовательными портами, но зачем?
Настроим так называемые коммутаторы. Для этого доступен только GUI.
Удаляем все порты.
Добавляем несколько новых, но в качестве номера влана указываете 0, а тип порта dot1q. Это означает транковый порт, который пропускает все вланы.

То же и со вторым.
Перед запуском маршрутизаторов, нужно создать все линки хотя бы примерно согласно старой схеме.
Выбрать нужно Manual, тогда можно указывать конкретные порты.

А можно вообще в настройках указать, чтобы всегда выбиралось только Manual.



Если до этого не подбирали значение Idle PС для этого образа, лучше запустить одно устройство и сделать это.
Запускаем остальные. Можно можно по очереди, можно все разом, если поставили паузу между запусками в настройках.

Если у вас старый компьютер, в этот момент он может серьёзно повиснуть. Нужно будет подождать.
Конфигурацию для маршрутизатора в Москве можно просто скопировать — с интерфейсами всё в порядке.
- Будьте аккуратнее при копировании команды
- После вставки конфигурации интерфейсы остаются в состоянии shutdown.
Neighbor ID Pri State Dead Time Address Interface
172.16.255.112 1 FULL/DR 00:00:36 172.16.2.197 FastEthernet1/0.911
172.16.255.80 1 FULL/BDR 00:00:34 172.16.2.130 FastEthernet0/1.8
msk-arbat-gw1#sh ip route
Codes: C — connected, S — static, R — RIP, M — mobile, B — BGP
D — EIGRP, EX — EIGRP external, O — OSPF, IA — OSPF inter area
N1 — OSPF NSSA external type 1, N2 — OSPF NSSA external type 2
E1 — OSPF external type 1, E2 — OSPF external type 2
i — IS-IS, su — IS-IS summary, L1 — IS-IS level-1, L2 — IS-IS level-2
ia — IS-IS inter area, * — candidate default, U — per-user static route
o — ODR, P — periodic downloaded static route
Gateway of last resort is 198.51.100.1 to network 0.0.0.0
172.16.0.0/16 is variably subnetted, 17 subnets, 3 masks
O 172.16.255.80/32
[110/11] via 172.16.2.130, 01:32:53, FastEthernet0/1.8
O 172.16.2.160/30 [110/20] via 172.16.2.130, 01:32:53, FastEthernet0/1.8
O 172.16.255.96/32
[110/12] via 172.16.2.197, 01:32:53, FastEthernet1/0.911
O 172.16.255.112/32
[110/2] via 172.16.2.197, 01:32:53, FastEthernet1/0.911
C 172.16.2.128/30 is directly connected, FastEthernet0/1.8
C 172.16.255.1/32 is directly connected, Loopback0
C 172.16.2.196/30 is directly connected, FastEthernet1/0.911
O 172.16.2.192/30
[110/11] via 172.16.2.197, 01:32:53, FastEthernet1/0.911
C 172.16.2.32/30 is directly connected, FastEthernet0/1.7
C 172.16.2.16/30 is directly connected, FastEthernet0/1.5
C 172.16.4.0/24 is directly connected, FastEthernet0/0.102
C 172.16.5.0/24 is directly connected, FastEthernet0/0.103
C 172.16.6.0/24 is directly connected, FastEthernet0/0.104
C 172.16.0.0/24 is directly connected, FastEthernet0/0.3
C 172.16.1.0/24 is directly connected, FastEthernet0/0.2
C 172.16.2.0/30 is directly connected, FastEthernet0/1.4
C 172.16.3.0/24 is directly connected, FastEthernet0/0.101
198.51.100.0/28 is subnetted, 1 subnets
C 198.51.100.0 is directly connected, FastEthernet0/1.6
S* 0.0.0.0/0 [1/0] via 198.51.100.1
Type escape sequence to abort.
Tracing the route to 172.16.255.96
1 172.16.2.197 860 msec 64 msec 4 msec
2 172.16.2.193 412 msec 56 msec *
msk-arbat-gw1(config)#int fa1/0.911
msk-arbat-gw1(config-subif)#sh
*Mar 1 00:57:43.995: %OSPF-5-ADJCHG: Process 1, Nbr 172.16.255.112 on FastEthernet1/0.911 from FULL to DOWN, Neighbor Down: Interface down or detached
msk-arbat-gw1#
Type escape sequence to abort.
Tracing the route to 172.16.255.96
1 172.16.2.130 4 msec 12 msec 12 msec
2 172.16.2.162 28 msec 20 msec *
msk-arbat-gw1(config)#int fa1/0.911
msk-arbat-gw1(config-subif)#no sh
msk-arbat-gw1(config-subif)#
*Mar 1 00:59:21.179: %OSPF-5-ADJCHG: Process 1, Nbr 172.16.255.112 on FastEthernet1/0.911 from LOADING to FULL, Loadingping 172.16.255.96
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 172.16.255.96, timeout is 2 seconds:
.
Success rate is 100 percent (5/5), round-trip min/avg/max = 12/28/60 ms
msk-arbat-gw1#tracer 172.16.255.96
Type escape sequence to abort.
Tracing the route to 172.16.255.96
1 172.16.2.197 8 msec 16 msec 12 msec
2 172.16.2.193 12 msec 8 msec *
После возвращения интерфейса в исходное, маршрут тоже переключается обратно на Владивосток.
С помощью GNS можно легко снимать дампы трафика. Для этого достаточно Wireshark. Но под линуксом у меня почему-то не получилось запустить.
Для этого нужно сделать всего лишь следующее:
1) кликнуть правой кнопкой на линк между двумя устройствами
2) Выбрать capture в контекстном меню. Если после этого запустился вайршарк, его можно закрыть — в реальном времени он не собирает данные. Чтобы он не запускался в будущем, можно убрать галочку в настройках:

3) Выполнить запланированные действия.
4) Из контекстного меню линка выберите Start Wireshark.
В открывшемся окне будут все пакеты, которые вы хотели отловить.
Существуют и другие сетевые симуляторы, которые не охвачены данной статьёй.
Например, Bosson, который просит вменяемых денег за свой продукт для подготовки к сдаче CCNA/CCNP. К сожалению, не тестировал его, не могу сказать ничего о его качестве.
В русскоязычном сегменте совершенно незаслуженно обделён вниманием OpenSource проект NS3. Очень мощная утилита без привязки к конкретным вендорам.
Совершенная иная парадигма создания топологий и настройки, напоминающая скорее язык программирования.
Продукт хорошо документирован, но, видимо, в силу своей сложности всё же не сыскал большой известности в сети.
NS3 используется преимущественно в зарубежных ВУЗах, но даже у нас на его основе проворачивали интересные проекты.
Кроме того, наверняка, у каждого вендора есть какой-то внутренний симулятор их оборудования.
Точно могу сказать за Huawei, что у них имеется два мощных приложения:
WVRP — внутренний продукт, требует лицензий и работает только в корпоративной сети. Аналог GNS3, но с большими возможностями и меньшим потреблением ресурсов.
eNSP — публичный симулятор оборудования Huawei. Имеет урезанный функционал по сравнению с WVRP. Скорее похож на Packet Tracer по простоте работы, но с гораздо большими возможностями.
Есть видеоинструкция.
Бесплатен, свободен для загрузки (достаточно завести аккаунт на сайте). Скорее всего, на нём мы и будем в будущем отрабатывать Multicast — в eNSP это можно сделать довольно наглядно.
Я находил в сети симулятор Juniper, но не знаю, насколько он функционален и является ли официальным.
Полезные ссылки по теме
Данную статью вы также можете читать на нашем сайте: linkmeup.ru/blog/36.html.
Возможно, вам будет удобнее воспользоваться ЖЖ
Друзья и коллеги, наша команда ведущих подкаста остро нуждается в женском голосе, который скрасит мужские басы в эфире.
Создание простейшей топологии GNS3.

В этой статье я опишу, как сделать маршрутизатор на рабочем столе, запустить его, и напишу ,как работает консоль. После этого вы узнаете, как найти значение idlepc для IOS,которое мы используем. Это очень важный шаг. Когда IOS запущен, он будет потреблять до 100% процессорного времени. Это приведет к тому,что компьютер становятся очень вялыми и будет препятствовать созданию более сложных топологий. Однако, если вы будете использовать idlepc значение, мы сможем резко уменьшить загрузку процессора . Это ставит IOS в состояние сна, когда он не находится в активном использовании и будет работать только тогда, когда это необходимо. Дополнительные технические объяснения будут даны позже.
По умолчанию окно GNS3 разделено на четыре панели . Самая левая панель содержит список доступны типов узлов . Вы увидите, иконку маршрутизатора для различных платформ: PIX и ASA брандмауэры, коммутатор, мост ATM, ATM выключатель, переключатель Frame Relay, Облако, Qemu и VirtualBox гостей и т.д.

Самая правая панель обеспечивает резюме топологий , которые дадут лучшее понимание, когда мы будем построили более сложные топологии. Средняя часть состоит из двух частей. В верхней панели есть свое рабочее место, где топология может быть построена графически . В нижней панели, называемой консоль , показывает Dynagen в работе. Dynagen, как вы помните, является текстовым интерфейсом для Dynamips,используется ядром эмулятора. Научиться использовать Dynagen это как научиться использовать DOS в первый раз, поэтому мы не будем вдаваться в подробности в этой статье . Тем не менее, мы будем использовать очень мало простых, но полезных команд в панели Dynagen.
Настройка маршрутизатора

Нажмите на иконку Типы — Types в узле маршрутизатора, соответствующую платформе IOS,которую вы используете. В нашем примере мы используем платформу 3640 . Вы должны использовать платформу, для которой определены IOS. Перетащите нужный тип узла маршрутизатора в рабочую панель в середине и отпустите. Теперь у нас есть маршрутизатор готовый к использованию. Щелкните правой кнопкой мыши и выберите Настройки — Configure маршрутизатора .
Нажмите на R1 , а затем на вкладку Слоты — Slots . Нажмите стрелку внизу рядом с slot0 и выберите адаптер, который включает в себя ИП в его описании. Это позволит добавить адаптер FastEthernet к маршрутизатору. Затем щелкните стрелку рядом с slot1 и выберите PA-4T + PA-4Т, или NM-4T (если у вас нет таких точных адаптеров, просто выберите что-то близкое.). Это добавит четыре последовательных интерфейса к маршрутизатору. Нажмите кнопку ОК.
Щелкните правой кнопкой мыши и выберите Начать — Start маршрутизатор . Щелкните правой кнопкой мыши на маршрутизатор снова и выберите Console . Открывается консоль.
Возможно, вам придется нажать Ввод — Enter ещё раз в окне консоли. Через несколько секунд, виртуальный маршрутизатор должен начать работать.
Применить idlepc значение
Теперь пришло время выбрать idlepc значение. Убедитесь, что вы можете видеть строку вашего маршрутизатора в окне Putty. Щелкните правой кнопкой мыши и выберите R1 Idle PC . GNS3 будет тратить время расчета на значение Idle PC, прежде чем представит данные на экране справа. При нажатии на стрелку внизу, вы увидите список возможных idlepc значений. Потенциальные лучшие idlepc значения, отмеченные звездочкой. Выберите одно из значений с asterick (в нашем примере, мы будем выбирать номер 1) и нажмите кнопку OK .


Если вы выберете образы IOS и гипервизор ,в меню Edit дважды щелкните на картинке под вкладкой образы IOS ,и вы увидите новое значение idlepc,которое отображается в Настройки — Settings.
Вы можете повторить этот процесс, чтобы найти значение, которое сокращает использование процессора больше всего, но на этот раз используйте кнопку Применить — Apply , чтобы вы могли сразу увидеть эффект значения idlepc при соблюдении процессора. Для наблюдением за ЦП в ОС Windows, нажмите CTRL + ALT + DEL и выберите Диспетчер задач . Нажмите на закладку Производительность , чтобы посмотреть загрузку процессора. В Ubuntu, выберите System Monitor в меню Администрация системы . Нажмите вкладку Ресурсы — Resources .
Вы увидите, что без значения idlepc , использование процессора будет на уровне или близко к 100%, а с idlepc значением , использование процессора упадет до очень низкого значения.
Приятного использования маршрутизатора!
Теперь вы можете вернуться к окну Putty и использовать маршрутизатор. Вы на самом деле работаете в Cisco IOS, которое вы выбрали. Доступны все команды, поддерживаемые IOS .
Помните, раньше мы выбрали адаптер FastEthernet и четыре порта последовательного адаптера. Если вы выполните команду interface brief command as shown , как показано выше на скринншоте, вы увидите, что эти обозначения для четырех портов на маршрутизаторе. В нашем примере они fa0/0, s1/0 s1 /1, s1 /2, s1/3 (в сокращенном виде).