Showing posts with label Mech-сети. Show all posts
Showing posts with label Mech-сети. Show all posts

Thursday, July 9, 2015

UNetLab - Строим стенд для подготовки к CCIE RS/SP/DC/SEC

Автор: HunSolo от 31-05-2015, 19:00, посмотрело: 1666
11Что такое UNetLab

UNenLab (Unified Networking Lab, UNL) – это мульти-вендорная и многопользовательская платформа для создания и моделирования самых различных лабораторий и дизайнов, которая позволяет смоделировать виртуальную сеть из маршрутизаторов, коммутаторов, устройств безопасности и др.

UNetLab - Строим стенд для подготовки к CCIE RS/SP/DC/SEC


Unified Networking Lab (UNL) – это продолжение того же девелопера, который в своё время создал веб фронтенд для IOU. Теперь разработка iou-web завершена, и разрабатывается только UNetLab. Незаменимый инструмент для подготовки к CCIE и сетевого инженеринга, в том числе и Troubleshooting

Несмотря на то, что статья в первую очередь про эмулятор UNetLab, обойти тему VIRL стороной было нельзя.

Cisco VIRL и UNetLab

UNetLab - Строим стенд для подготовки к CCIE RS/SP/DC/SEC


История VIRL началась с того, что на конференции CiscoLive было заявлено о создании специальной платформы, которая позволит виртуализировать различное оборудование компании Cisco Systems и собирать всевозможные лаборатории.

Затем последовали первые подробности. Оказалось, что планируется три различные редакции VIRL.
  • Персональная версия — для различных исследований и обучения, ограниченная 15 узлами.
  • Отдельная версия CML (Cisco Modeling Labs), которая в свою очередь будет фокусироваться на корпоративном сегменте, позволяя виртуализировать сотни, а в будущем и тысячи различных узлов.
  • И наконец, бесплатная версия Devnet All-in-one, для тех кто хочет посмотреть на новые IOS роутеры, это самая лимитированная версия, состоит из всего трех роутеров.


И вот, первого декабря 2014го года состоялся ожидаемый многими выход VIRL от Cisco. Речь идет про персональное решение, для тех кто изучает, тестирует и моделирует различные условия. Все подробности и цены можно посмотреть на официальном ресурсеhttp://virl.cisco.com/about-virl-2/

Стоить отметить, что VIRL — это ни разу не IOU. VIRL позиционируется как новая платформой для создания и моделирования различных лабораторий.
IOU же в свою очередь является эмулятором, который позволяет запускать только определенные прошивки, которые были разработаны именно под него.
VIRL на этом фоне выглядит многообещающим и по-настоящему прогрессивным.

Но и здесь не обошлось без неприятных недостатков.
  • L2 коммутация так и не была реализована в полной мере, хотя кое какие продвижения в этом есть. Последний vIOS-L2 умеет уже достаточно много, но не все то, что хотелось бы.
  • VIRL – платная, за исключением бесплатной Devnet. Бесплатная виртуальная машина от Devnet — это и есть ограниченная версия VIRL с максимально порезанным функционалом и всего тремя маршрутизаторами. 

All-in-One представляет собой один OVA файл, который можно бесплатно скачать с сайта Cisco
Затем эту виртуальную машину нужно будет импортировать в VMWare или VirtualBox. После загрузки обнаружится Ubuntu Linux, для входа нужно использовать логин cisco и пароль cisco123.
UNetLab - Строим стенд для подготовки к CCIE RS/SP/DC/SEC


На рабочем столе расположены как несколько файлов с документацией, так и ярлык «Start 3 Node», который и запускает те самые три маршрутизатора.
Сразу же после этого откроется три терминала, которые и предоставят доступ к командной строке маршрутизаторов.

UNetLab - Строим стенд для подготовки к CCIE RS/SP/DC/SEC


Разумеется, рассматривать виртуальную машину «All-in-One» можно исключительно как раннюю, возможно, даже демо версию VIRL, для ознакомления, например, с IOSv версии 15.4.
UNetLab - Строим стенд для подготовки к CCIE RS/SP/DC/SEC



UnetLab – полностью бесплатен. Вы можете запускать столько экземпляров оборудования (роутеров, коммутаторов, устройств безопасности и т.д) сколько вы хотите и какого хотите. В том же VIRL Personal Edition вы ограничены 15-ю узлами и набор устройств довольно скромный. Например полноценную ASA получить не представляется возможным, равно как и маршрутизатор с Serial-интерфейсом.

Поддержка оборудования в UNetLab очень широкая. Вы можете запускать Cisco IOL-образы, образы из VIRL (vIOS-L2 и vIOS-L3), образы ASA Firewall (как портируемые 8.4(2), 9.1(5), так и официальные ASAv), образ Cisco IPS, образы XRv и CSR1000v, образы dynamips из GNS, образы Cisco vWLC и vWSA, а также образы других вендоров, таких как Juniper, HP, Checkpoint и т.д.

На текущий момент поддерживаются следующий спиок оборудования
  •  Aruba ClearPass
  •  Alcatel 7750 SR
  •  Arista vEOS
  •  Brocade Virtual ADX
  •  Citrix Netscaler VPX virtual
  •  Checkpoint Firewall
  •  Cisco ASA (porting)
  •  Cisco ASAv
  •  Cisco CSR 1000V
  •  Cisco IPS (porting)
  •  Cisco IOS 1710/3725/7206 (dynamips, ethernet only)
  •  Cisco IOL (for Cisco internal use only)
  •  Cisco NX-OSv – titanium (for VIRL customers only)
  •  Cisco vIOS (for VIRL customers only)
  •  Cisco vIOS L2 (for VIRL customers only)
  •  Cisco XRv
  •  Cisco WSA virtual appliance
  •  Cisco Wireless controller – vwlc
  •  Extreme Networks virtual
  •  F5 BIG-IP LTM VE
  •  Fortinet FortiGate (new)
  •  HP VSR1000
  •  Juniper Olive (porting)
  •  Juniper Networks vMX router
  •  Juniper vSRX
  •  Palo Alto VM-100 Firewall
  •  VyOS
  •  MS Windows hosts

С более подробным списком можно ознакомится на сайте разработчиков

Кроме того, начиная с версии UNetLab 0.9.54 появилась многопользовательский функционал. На одной и той же VM, каждый авторизованный пользователь может создавать свои стенды независимо друг от друга, а также совместно работать с общим стендом, который разделяют несколько пользователей одновременно. При этом пользователи запускают общий стенд независимо друг от друга.



Самые существенные плюсы UnetLAB по сравнению с VIRL:
  • Полностью бесплатен
  • Практически полноценная поддержка L2 (за счет EOS-коммутатора, который полностью cisco-like)
  • Широкая поддержка Cisco оборудования.
  • Число запускаемых узлов ничем неограничен, кроме ваших ресурсов (CPU, RAM)
  • Мультивендорность
  • Многопользовательский функционал 
  • Низкие требования к ресурсам ПК. 

Данная платформа подойдет как новичкам для подготовки к CCNA/CCNP, так и для профессионалов для подготовки CCIE Routing and Switching, CCIE Security, CCIE Service Provides, CCIE Data Centers и т.д, а также для других разнообразных инженерных задач.

В отличие от предыдущего проекта IOU-WEB, в UNetLAB реализован полностью графический интерфейс дизайна топологии, примерно так, как это делается в GNS. Теперь нет необходимости писать netmap файлы для каждой топологии. UNetLAB сделает это за вас. Недостатком является полное отсутствие совместимости с предыдущим проектом. Файлы топологий собранные в iou-web необходимо переписывать для UNL. Но оно того стоит. Также в UNL включена поддержка так называемой Custom Topology, т.е кликабельных красивых картинок-диаграмм, которые вы можете нарисовать в MS Visio и импортировать в вашу лабу, так как это было в iou-web.

UNetLab - Строим стенд для подготовки к CCIE RS/SP/DC/SEC

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

UnetLAB поставляется в виде отдельной виртуальной машины основанной на Linux Ubuntu 14 x64. В комплект НЕ входят образы какого-либо оборудования. Например, использование образов IOU не законно, если ты не сотрудник Cisco. Даже для обучения. По этой причине сами образы L2IOU и L3IOU не предоставляются, равно как и другие образы (например образы из VIRL). При желании вы можете найти их в Интернете, а также на официальных сайтах производителей, например Cisco ASAv, Cisco XRv, Cisco CSR1000v, Juniper vSRX и т.п.

На сайте разработчика UnetLAB имеются всеобъемлющие инструкции по инсталляции тех или иных образов в среду UNL. Впрочем с следующих статьях мы рассмотрим это более подробно, например инсталляция Cisco ASA или XRv.

Инсталляция образов Cisco ASA рассмотрена в статье Как импортировать образы QEMU в UNetLAB - ASA и ASAv.

Далее мы рассмотрим установку VM UNetLAB на VmWare Workstation или VmPlayer, а также установку под ESXi.

Ставим виртуальную машину

Для начала нам понадобится vmware player для установки нашей виртуальной машины. Скачать можно с сайта VmWare

Как уже говорилось, так же подойдет Vmware Workstation или ESXi vsphere. После установки vmware player необходимо скачатьвиртуальную машину UNetLAB примерно 700Mb с сайта разработчика и открыть при помощи VmWare Player или VM Workstation файл .ova

UNetLab - Строим стенд для подготовки к CCIE RS/SP/DC/SEC


В течении нескольких секунд, VM будет создана.
UNetLab - Строим стенд для подготовки к CCIE RS/SP/DC/SEC


Далее необходимо выбрать меню “Edit virtual machine settings” вашей VM и настроить соответствующее ресурсы CPU и памяти. По умолчанию для VM стоит 1G, 1 CPU и 1 NIC (сетевой интерфейс). Для простейших задач этого хватит, но для серьезного CCIE стенда, данные параметры необходимо увеличить. Я использовал 6 CPU и 12Gb на моем 16G ноутбуке. А под ESXi выделил 8 vCPU и 24Gb. Все зависит от того, что вы хотите запускать. Если например вы готовитесь для сдачи CCIE SP или CCIE Security, то памяти надо выделить побольше. Для CCIE RS хватит 4Gb и 1CPU.
UNetLab - Строим стенд для подготовки к CCIE RS/SP/DC/SEC


В заключении обязательно включите опцию “Virtualize Intel VT-x/EPT or AMD-V/RVI” в настройках CPU. UNetLAB умеет определять в какой среде она запущена, а также доступны ли ей команды виртуализации CPU. Если у вас Поддержка CPU виртуализации выключена в BIOS, или процессор не поддерживает виртуализацию, UnetLAB детектирует это и выдаст соответствующие предупреждение при загрузке. Вы все еще сможете запускать 32бит образы, такие как IOL, но не сможете запускать QEMU образы, такие как ASAv, vSRX, vIOS и т.п. Поэтому обязательно стоит включить поддержку виртуализации для VM UNetLAB. Если UNetLAB развертывается в среде ESXi, то аналогичная опция должна быть включена в настройках CPU виртуальной машины UNetLAB.

Запуск виртуальной машины UNetLAB

После старта VM вы должны зайти на ее Linux-консоль используя root/unl в качестве логина и пароля. Сразу после этого запускается скрипт инициализации который предлагает вам настроить такие параметры как IP адрес сетевого интерфейса, имя хоста, время и т.п. Просто следуйте инструкциям на экране.

UNetLab - Строим стенд для подготовки к CCIE RS/SP/DC/SEC


После первоначальной настройки виртуальная машина перезагрузится. После установки Виртуальной машины, зайдите на нее под пользователем root и выполните обновление с текущей версии до последней. На сегодняшний день это 0.9.54, командами

apt-get update
apt-get -o Dpkg::Options::="--force-overwrite" install unetlab

После обновления, VM желательно еще раз перезагрузить, так как будет обновлен linux-kernel.

Далее с помощью браузера можно зайти на веб интерфейс UNetLAB. Вводим в строке браузера адрес виртуальной машины который мы задали во время начальной установки, например, http://10.0.200.91, и мы увидим интерфейс UNetLAB

UNetLab - Строим стенд для подготовки к CCIE RS/SP/DC/SEC

Начиная с версии 0.9.54 - введена многопользовательская поддержка, в связи с чем был немного изменен web-интерфейс. Теперь необходимо пройти авторизацию. Используйте login: admin и password: unl

Добавляем образы IOU

Первым шагом должно быть импортирование образов того оборудования которое мы хотим использовать. В текущей статье мы импортируем IOU образы, как наиболее простые.
Первая задача здесь, состоит в том, что вам нужна лицензия на IOU. Я не буду вдаваться в подробности, как и где ее получить, но это легко сделать немного помучив Google.

Вторая особенность, это то, что образы IOU должны иметь расширение .bin - поэтому убедитесь, что вы добавляете его к имени файла.
Нам необходимо для работы как минимум два образа - L2 и L3. Cisco идет в ногу со временем, и эти два уровня не разделяются явно на канальный и сетевой. В данный момент L3 более или менее соответствует маршрутизатору уровня ISR, а L2 – коммутатору уровня 3560. Самая свежая версия на сегодня это IOS 15.4T для маршрутизаторов и IOS 15.1 для коммутаторов.

Образы добавляются в UNetLAB из CLI. Т.е вы должны загрузить IOU образ по SCP в папку /opt/unetlab/addons/iol/bin и настроить права доступа к ним с помощью команды
/opt/unetlab/wrappers/unl_wrapper -a fixpermissions


Вот как это может выглядеть в конечном результате
UNetLab - Строим стенд для подготовки к CCIE RS/SP/DC/SEC



Так же помним, что IOU образ заглядывает в файл iourc при каждом своем запуске на предмет лицензионного ключа, который использует информацию о текущем хосте.
# cat /opt/unetlab/addons/iol/bin/iourc
[license]
unl01 = 0123456789abcdef;

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

# cd /opt/unetlab/addons/iol/bin
# touch NETMAP
# LD_LIBRARY_PATH=/opt/unetlab/addons/iol/lib /opt/unetlab/addons/iol/bin/L3-ADVENTERPRISEK9-M-15.4-2T.bin 100

Здесь L3-ADVENTERPRISEK9-M-15.4-2T.bin – это IOU образ L3-маршрутизатора который мы загрузили, а 100 – это просто ID запущенного устройства. Может быть любым числом.

Если у вас появилось на экране, что-то типа
UNetLab - Строим стенд для подготовки к CCIE RS/SP/DC/SEC

То, значит, образы IOU запускаются корректно и могут быть использованы в вашем стенде.

Создаем свою топологию в UNetLAB

Из меню Lab->Actions выбираем “Add a new lab” и назовем ее скажем IOL test и нажимаем кнопку ADD
UNetLab - Строим стенд для подготовки к CCIE RS/SP/DC/SEC


Далее мы попадаем в режим редактирования нашей топологии. Здесь вы должны добавить в вашу топологию те устройства с которыми вы будете работать. Так как мы импортировали только образы IOU мы будем добавлять только L2 и L3 IOU устройства. Из меню Actions выбираем пункт Nodes.
UNetLab - Строим стенд для подготовки к CCIE RS/SP/DC/SEC


Перед вами откроется низ спадающий список со всем поддерживаемым оборудованием. Но так как мы импортировали только IOU образы, нам необходимо выбрать из списка Cisco IOL.

UNetLab - Строим стенд для подготовки к CCIE RS/SP/DC/SEC


В появившимся окне свойств, мы можем выбрать образ IOU который мы хотим запускать, в данном случае это L3 маршрутизаторы, а также количество таких устройств (в данном случае 2), объемы памяти для каждого устройства (по умолчанию 256Mb), имя устройства, его графическое представление в топологии количество портов Ethernet и Serial.
UNetLab - Строим стенд для подготовки к CCIE RS/SP/DC/SEC


Указав все параметры, жмем ADD и на экране появятся два роутра.
UNetLab - Строим стенд для подготовки к CCIE RS/SP/DC/SEC


Давайте сделаем небольшое отступление и добавим ASA Firewall (porting) и IOU коммутатор. IOU –коммутатор, добавляется в топологию так же как и IOU маршрутизатор, выбором пункта меню Cisco IOL. А вот для ASA выбирается пункт Cisco ASA
UNetLab - Строим стенд для подготовки к CCIE RS/SP/DC/SEC


Обратите внимание на объем RAM. По умолчанию там стоит 256Mb. С таким объемом ASA не запустится, минимально можно выставить 512-768Mb.
Добавив, еще два устройства мы получим все четыре устройства нашей топологии на экране.
UNetLab - Строим стенд для подготовки к CCIE RS/SP/DC/SEC


Теперь данные устройства необходимо связать друг с другом. Для этого в UNL есть понятие Networks (сеть) и соответствующий пункт меню.
UNetLab - Строим стенд для подготовки к CCIE RS/SP/DC/SEC


Устройства в UNL не связываются как GNS через прямой провод (Direct Link), а связываются через сеть (Network). Общее правило такое, что два устройства связываются друг с другом через один и тот же Network (сеть), так как если бы вы соединяли их одним проводом. Просто объявите для провода свой уникальный Network.
Для нашего простого стенда необходимо три линка. Устройтва ASA, R1 и R2 все подключаются к коммутатору SW1. Поэтому в меню Networks выбираем количество сетей 3 и ждем ADD.
UNetLab - Строим стенд для подготовки к CCIE RS/SP/DC/SEC


По умолчанию имя для сети начинается с Net и наши сети будут называться Net1, Net2 и Net3. Но имена можно всегда поменять, чтобы точно знать какая сеть куда должна вести. Тип сети ставим по умолчанию Bridge. О типах сетей расскажем в одной из следующих статей. Во вкладке Objects можно увидеть созданные сети, равно как и объекты устройств и их параметры. Сети которые не подключены к интерфейсам устройств в топологии (вкладка Topology) не показываются.
UNetLab - Строим стенд для подготовки к CCIE RS/SP/DC/SEC


Далее нам необходимо соединить устройства друг с другом. Т.к сети определены, мы можем это сделать через контекстное меню Interfaces конкретного
устройства.
Во вкладке Topology нашей топологии выберем нужное устройство, например роутер R1 и кликаем на него правой кнопкой мыши.
UNetLab - Строим стенд для подготовки к CCIE RS/SP/DC/SEC


В появившимся контекстном меню, выбираем Interfaces. Откроется окно в котором показывается все интерфейсы устройства и каким сетям они подключены
UNetLab - Строим стенд для подготовки к CCIE RS/SP/DC/SEC


Если интерфейс не подключен ни какой сети, он показан как Disconnected. В нашем случае R1 имеет 4 Ethernet интерфейса e0/0 – e0/3 и 4 Serial интерфейса s1/0 – s1/3. Нам нужно подсоединить e0/0 к коммутатору e0/0. Поэтому выбираем для интерфейса e0/0 сеть Net1 и нажимаем Save.
UNetLab - Строим стенд для подготовки к CCIE RS/SP/DC/SEC


В топологии появилась сеть Net1 подключенная к интерфейсу e0/0 роутера R1. Повторим туже процедуру, но для коммутатора SW1 и подключим его интерфейс e0/0 к сети Net1.
UNetLab - Строим стенд для подготовки к CCIE RS/SP/DC/SEC


Теперь, R1 и SW1 соединены Ethernet линком и могут взаимодействовать друг с другом. Аналогичным образом соединим R2 e0/0 с SW1 e0/1 через Net2, a ASA e0 c SW1 e0/2 через Net3.
Вот что получилось
UNetLab - Строим стенд для подготовки к CCIE RS/SP/DC/SEC


После того как дизайн закончен можно попробовать запустить наш стенд. Из меню Actions выбираем “Open this Lab”, затем кликаем правой кнопкой на устройство и нажимаем Start
UNetLab - Строим стенд для подготовки к CCIE RS/SP/DC/SEC


Когда устройство запустилось успешно, у него меняется индикатор состояния с квадратика (символ Stop) на треугольник (символ Play).
UNetLab - Строим стенд для подготовки к CCIE RS/SP/DC/SEC


Повторите тоже самое для каждого устройства в топологии. Дадим им минуты три для полной загрузки. Теперь можно получить доступ ко всем устройствам. Однако по умолчанию клик на устройствах будет приводить к запуску стандартного telnet клиента. Это не очень удобно, особенно если учесть, что в последних версиях Windows он уже не предустановлен. Гораздо привычнее использовать PuTTY или SecureCRT.
UNetLab - Строим стенд для подготовки к CCIE RS/SP/DC/SEC


Зайдем на роутер R1, поднимем интерфейс e0/0 в UP и убедимся что все работает. Ротуер R1 видим по CDP наш коммутатор SW1.
Теперь назначим на интерфейс e0/0 маршрутизатора R1 IP адрес 192.168.1.1/24, а на e0/0 ASA интерфейс 192.168.1.12/24 и убедимся, что все работает.
UNetLab - Строим стенд для подготовки к CCIE RS/SP/DC/SEC


Заключение

С появлением UNetLab, работа с образами не представляет особой сложности, все реализовано достаточно логично. Во многих случаях этот эмулятор оставляет далеко позади GNS/Dynamips, VIRL, особенно когда идет речь о разнообразных моделях устройств в стенде, не только коммутаторах и маршрутизаторах. А аж об оборудовании других вендоров, речь вообще не идет. Например если нужно смоделировать взаимодействие оборудование разных вендоров друг с другом, например IPSEC VPN туннель между Cisco ASA и Juniper SRX или Checkpoint Firewall и т.п

Также UNetLab значительно менее ресурсоемок как и IOU, чем тот же VIRL. На сегодняшний день, UNetLab остается лучшим инструментом как для подготовки к CCNP/CCIE, так и для моделирования разнообразных инженерных задач.

В следующих статьях я попытаюсь более подробно описать функционал UNL при работе с различными образами, как импортировать образы в UNL, а так же хитрые трюки для улучшения производительности и подводные камни.

В заключение в качестве примера приведу INE топологии CCIE Security v4 и v3, а также Checkpoint CCSE и инженерная мульвендоная топологии собранные на UNetLab:

CCIE SecurityV4:
UNetLab - Строим стенд для подготовки к CCIE RS/SP/DC/SEC


CCIE SecurityV3:
UNetLab - Строим стенд для подготовки к CCIE RS/SP/DC/SEC


Checkpoint CCSE:
UNetLab - Строим стенд для подготовки к CCIE RS/SP/DC/SEC


Custom MultiVendor Topology:
UNetLab - Строим стенд для подготовки к CCIE RS/SP/DC/SEC


При подготовке использовались материалы из статей:
Новый GNS3 — шаг вперед или прыжок на месте
Documentation about Unified Networking Lab



Posted 04 March 2014 - 09:10 AM
Hi
Please Lets share here emulated images of vWLC, NAC, ISE, WSA, ASA, IPS, etc under this post

PS: Please share Licenses also

I will update this post when you share links. Please share emulations which you have
Please help to me to update this post

Cisco ACS 5.5.0.46.1 Cumulative Patch
http://certcollection.org/forum/topic/214191-cisco-acs-550461-cumulative-patch/page__hl__+acs#entry796963
ACS 5.4.0.46
http://certcollection.org/forum/topic/158625-acs-54/
Cisco ACS 5.4 patch 6
http://certcollection.org/forum/topic/208547-cisco-acs-54-patch-6/
ACS 5.3
http://certcollection.org/forum/topic/189270-x86-cisco-secure-access-control-server-acs-53-53040-torrent/page__hl__+acs#entry789574
ACS 5.3.0.40.8 and 9 cumulative patch
http://certcollection.org/forum/topic/178262-acs-530408-and-9-cumulative-patch/
ACS 5.2.0.26
ACS patch 5-2-0-26-11 
http://certcollection.org/forum/topic/163004-acs-5202611-cumulative-patch/
ACS 4.2.1
http://certcollection.org/forum/topic/163406-cisco-acs-421-patch-10-acs-4211510-swzip/
vWLC
http://certcollection.org/forum/topic/166687-cisco-wlc-vmware/
NAC
(.iso) ISE
(.iso) http://certcollection.org/forum/topic/189718-ise-12-ise-120899x86-64iso-magnet-link-updated/
WSA (shared below by dingdongccie )
WSA Trial License
http://certcollection.org/forum/topic/220484-wsa-trial-license/#entry813379
vWAAS: (This is OVA image of CiscovWAAS-750 Model) (I didn't download it, it is not my upload)
Cisco Wireless Control System 7.0.240 For Windows
http://certcollection.org/forum/topic/184328-cisco-wireless-control-system-70240-for-windows/
http://certcollection.org/forum/topic/172068-wcs-standard-k9-702400exe/
ASAv 9.41
http://certcollection.org/forum/topic/263519-asav941-ovabinqcow2/
ASA 8.42 Vmware Image
ASA 8.02 Vmware image
IPS ver 6
http://certcollection.org/forum/topic/152106-idsips-with-gns-new-files/page__st__14__hl__+ips#entry692674
http://certcollection.org/forum/topic/74269-ips-4235-ver-60/page__st__28__hl__+ips#entry697557
http://certcollection.org/forum/topic/47540-ids-4235-6031-on-gns3/page__st__84__hl__+ips#entry697553
http://certcollection.org/forum/topic/22096-ips-on-gns307/page__st__84__hl__ips#entry643818
http://certcollection.org/forum/topic/33352-ips-6x-on-gns3/page__st__14__hl__ips#entry209306
IPS ver 7
http://certcollection.org/forum/topic/169099-ips-708-on-gns3-with-new-link/page__st__112__hl__+ips#entry842626
IPS on vmware
http://certcollection.org/forum/topic/162014-ips-on-vmware/page__st__14__hl__ips#entry625592
IME 7
http://certcollection.org/forum/topic/141611-cisco-ips-manager-express-ime-711/page__hl__+ips#entry825391
http://certcollection.org/forum/topic/163141-cisco-ips-manager-express-723/page__hl__+ips#entry629460

UPDATED: 1 May 2015

Thursday, May 21, 2015

Wireshark — приручение акулы

Wireshark — приручение акулы tutorial



Wireshark — это достаточно известный инструмент для захвата и анализа сетевого трафика, фактически стандарт как для образования, так и для траблшутинга.
Wireshark работает с подавляющим большинством известных протоколов, имеет понятный и логичный графический интерфейс на основе GTK+ и мощнейшую систему фильтров.
Кроссплатформенный, работает в таких ОС как Linux, Solaris, FreeBSD, NetBSD, OpenBSD, Mac OS X, и, естественно, Windows. Распространяется под лицензией GNU GPL v2. Доступен бесплатно на сайте wireshark.org.
Установка в системе Windows тривиальна — next, next, next.
Самая свежая на момент написания статьи версия – 1.10.3, она и будет участвовать в обзоре.

Зачем вообще нужны анализаторы пакетов?
Для того чтобы проводить исследования сетевых приложений и протоколов, а также, чтобы находить проблемы в работе сети, и, что важно, выяснять причины этих проблем.
Вполне очевидно, что для того чтобы максимально эффективно использовать снифферы или анализаторы трафика, необходимы хотя бы общие знания и понимания работы сетей и сетевых протоколов.
Так же напомню, что во многих странах использование сниффера без явного на то разрешения приравнивается к преступлению.

Начинаем плаванье


Для начала захвата достаточно выбрать свой сетевой интерфейс и нажать Start.



После чего и начнется процесс захвата, причем прилетевшие пакеты будут появляться в реальном времени.
В процессе рассмотрения и изучения пакетов бывают ситуации, когда нужно вернуться предыдущему пакету. Для этого есть две кнопки (см скриншот).



А следующая за ними кнопка позволяет сделать быстрый переход к пакету, указав его номер.
В случае если колонки перекрываются и наползают друг на друга, можно кликнуть по такой колонке правой кнопкой мыши и выбрать“Resize Column”.
Произойдет автоматическая подгонка размеров под текущую ситуацию.
И кроме того, есть кнопка “Resize all Columns”, которая приведет в порядок все колонки.
Используя меню View – Time Display Format, можно, например, настроить, чтобы отсчет времени шел не с начала захвата, а с момента получения предыдущего пакета (Since Previous Captured Packet).
Самое важное в каждой программе (Help – About Wireshark) покажет не только версию и список авторов, но и содержит закладкуFolders, которая покажет пути размещения каталогов с конфигурациями.
Изучая интерфейс, можно выбрать, например, пакет http, и увидеть, что HTTP инкапсулируется в TCP (транспортный уровень), TCP инкапсулируется в IP (сетевой уровень), а IP в свою очередь инкапсулируется в Ethernet (перед этим даже мелькает 802.1Q).



И на самом верху идет нечто вроде небольшого обзора собранной информации о кадре.



Про фильтры мы поговорим дальше, а на данном этапе, если нужно быстро отфильтровать лишние пакеты, достаточно сделать правый клик на пакете, выбрать меню Apply as Filter – Not selected и изменения сразу же вступят в силу.
Если нужно еще что-то убрать, то в следующий раз выбирать “and not Selected”, и новое правило просто добавится к фильтру.

Убираем заусенцы


Довольно часто при работе с Wireshark возникает ошибка IP checksum offload – ошибка контрольной суммы заголовка IP пакета.



Современные сетевые карты насколько умные, что сами считают контрольную сумму, зачем это делать на уровне стека TCP/IP программно, если можно делать хардварно.
А Wireshark натурально перехватывает пакеты, до того как они попадают в сеть.
И до того как эта сумма была просчитана и была добавлена в заголовок пакета.
Соответственно есть два пути решения этой проблемы — выключать функцию offload в настройках сетевой карты или в настройках сниффера указать, чтобы он не обращал внимание на это значение.
Хардваные функции зачастую лучше софтварных, в основном из-за скорости обработки (в железе обычно выше) поэтому лучше изменить настройки самого сниффера.
Для этого нужно зайти в настройки (Edit — Preferences), затем Protocols – IPv4 – и снять флаг с “Validate IPv4 checksum if possible”.



Перед тем как захватывать трафик нужно определиться с тем, что, собственно, нужно захватывать.
Разместить анализатор трафика можно в нескольких местах:
  • Локально на своем хосте;
  • Организовать зеркалирование трафика на коммутаторе;
  • Подключаться непосредственно в интересующие места;
  • или же отравление протокола ARP (еще более незаконно, чем пассивное прослушивание трафика)


Фильтруем поток


Wireshark содержит два вида фильтров – захвата (Capture Filters) и отображения (Display Filters).
Вначале рассмотрим Capture Filters.
Как можно догадаться по названию, они служат для фильтрации еще на этапе захвата трафика.
Но в таком случае, безусловно, можно безвозвратно потерять часть нужного трафика.
Фильтр представляет собой выражение, состоящее из встроенных значений, которые при необходимости могут объединяться логическими функциями (and, or, not).
Для того, чтобы его задействовать, нужно зайти в меню Сapture, затем Options, и в поле Capture Filter набрать, например, host 8.8.8.8(или, например, net 192.168.0.0./24)



Так же, конечно, можно выбрать и заранее созданный фильтр (за это отвечает кнопка Capture Filter).
В любом из вариантов фильтр появится возле интерфейса, можно жать Start.

Теперь перейдем к Display Filters.
Они фильтруют исключительно уже захваченный трафик.
Что можно фильтровать?
— Практически все — протоколы, адреса, специфические поля в протоколах.
Операции, которые можно использовать при построении фильтров:

КомандаЗначениеПример использования
==равенствоip.dst == 193.168.3.10
!=Не равноudp.dst != 53
<меньше чемip.ttl < 24
>больше чемframe.len > 10
<=меньше или равноframe.len <= 0x20
>=больше или равноtcp.analysis.bytes_in_flight >= 1000
matchesрегулярные выраженияframe matches "[Pp][Aa][Ss][Ss]"
containsсодержитdns.resp.name contains google


Как вы, наверное, заметили, в таблице в качестве примеров были разнообразные выражения, достаточно понятные и зачастую говорящие сами за себя.
Например, ip.dst – это поле протокола IP.
Чтобы увидеть это поле, можно просто посмотреть на пакет, и в нижней части окна можно увидеть его значение, которое потом можно применять в любом фильтре.
Например, нас интересует, как создать фильтр, где будет проверяться значение TTL.
Для этого раскрываем L3 часть и становимся на соответствующее поле:



И видим, что для построения фильтра, нужно использовать выражение ip.ttl.
Если начать набирать фильтр, то после точки автоматически появится список возможных значений:



Чтобы применить фильтр, достаточно нажать enter или кнопку Apply.
Само поле для ввода фильтра может менять цвет в зависимости от того, что было набрано.
Зеленый цвет означает, что все в порядке. Красный — допущена ошибка, желтый — получен неожиданный результат, потому что существуют другие варианты написания фильтра (например можно написать ip.dst != 8.8.8.8 или же !ip.dst == 8.8.8.8, именно второй вариант более предпочтительный).
Фильтры можно сохранять для дальнейшего использования, нажав кнопку Save, затем ввести произвольное название



и после нажатия на кнопку ОК фильтр появится как кнопка на панели.



А если кликнуть на расположенную неподалеку кнопку «Expression…», то откроется достаточно мощный конструктор выражений, по которому можно чуть ли не изучать сетевые протоколы. Количество поддерживаемых протоколов постоянно увеличивается.



Как уже упоминалось ранее, можно выделить любой пакет и в контекстном меню выбрать Apply as Filter и в подменю выбрать режим — selected или not selected и соответственно сразу же появится фильтр, который будет показывать только выбранное или наоборот уберет выбранное с экрана.
Таким образом можно гибко выбирать, что видеть на экране, а что — нет.
Это может быть определенный ip-адрес, ttl, порт, dns ответ и многое другое.
Кроме того, есть два варианта для таких быстрых фильтров — Prepare as Filter и Apply as Filter.
Как можно догадаться по названию — разница заключается в том, что в первом случае только появится в поле для ввода Display Filter, но не применится (удобно, если например, добавлять таким способом несколько фильтров, а затем сразу применить готовый результат), а во втором — сразу же и применится.

Фильтры можно объединять, используя знакомые по булевой алгебре логические операции:
(dns) && (http) логическое и

(dns) || (http) это логическое или

Таким образом можно строить большие и сложные фильтры вроде:
(tcp.flags.syn==1) && (ip.src == 172.16.10.2) && (ip.dst == 172.16.10.1)
Здесь видим, что выбираются только TCP SYN сегменты, только с определенным адресом отправителя и получателя. При составлении больших фильтров нужно помнить, что фильтр по сути — логическое выражение, и если оно истинно, то пакет отобразится на экране, если ложно — нет.

Ныряем глубже


Достаточно частая ситуация, когда возникают жалобы на медленную работу сети, причин этого может быть множество.
Попробуем разобраться, в чем может быть причина, и рассмотрим два способа.
Первый состоит в добавлении колонки TCP delta.
Открываем пакет, находим поле Time since previous frame in this TCP frame, правый клик и выбираем Apply as Column. Появится новая колонка.
На ней можно кликнуть правой кнопкой мыши и выбрать режим сортировки, например, Sort Descending.



И сразу же рассмотрим второй способ.
Относительно недавно (в версии 1.10.0) появился фильтр tcp.time_delta, который, собственно, учитывает время с момента последнего запроса.



Если клиент делает запрос и получает ответ через 10 миллисекунд, и клиент говорит, что у него все медленно работает, то, возможно, проблема у самого клиента.
Если же клиент делает запрос и получает ответ через 2-3 секунды, тут уже, возможно, проблема кроется в сети.

Еще глубже


Если посмотреть в TCP пакет (или сегмент если быть точным), то можно увидеть там Stream index, который начинается обычно с нуля.
Само поле будет называться tcp.stream.



По нему можно сделать правый клик и создать фильтр.



Таким образом можно фильтровать нужные соединения.

Еще один способ – сделать правый клик на самом пакете, выбрать Conversation Filter и создать фильтр для l2 l3 l4 уровня соответственно.



В итоге мы опять увидим взаимодействие двух хостов.

И третий вариант — это одна из самых интересных фич — Follow TCP Stream.
Для того чтобы его задействовать, нужно опять таки кликнуть правой кнопкой мыши на пакете и выбрать “Follow TCP Stream”. Появится окно, где будет наглядно продемонстрирован весь обмен между двумя узлами.



Если же зайти в меню Statistics – Conversations, то, выбирая закладки, можно увидеть статистику по таким “разговорам” и различные сессии, при этом можно отсортировать их по различным колонкам, например, по количеству переданных данных.



И прямо в этом окне можно правой кнопкой взывать контекстное меню и опять же применить как фильтр.

Со временем приходит опыт


После некоторого времени, проведенного за захватом разнообразного трафика, можно заметить какую-то шарообразную кнопку в нижнем левом углу, которая еще иногда меняет цвет.



Нажатие на эту кнопку приведет к открытию окна Expert Infos.
Того же результата можно добиться, пройдя в меню Analyze – Expert Info.



В этом окне будет содержаться информация по найденным пакетам, разбитая на группы Errors, Warnings, Notes и Chats.
Цветовая раскраска для этих групп выглядит следующим образом:
Ошибки — красный цвет
Предупреждения — желтый
Примечания — сине-зелёный (cyan)
Чат — серый

Wireshark содержит в себе мощный анализатор и умеет автоматически обнаруживать большое количество проблем, возникающих в сети.
Как вы уже могли заметить, буквально везде можно использовать фильтры и Expert Info не является исключением.
Для того чтобы создать такой фильтр, нужно использовать конструкцию expert.severity.
Например, expert.severity==error.

Грабим трафик!


Можно ли с помощью Wireshark узнать, что было скачано?
Да, можно. И сейчас это увидим.
Вначале возьмем HTTP трафик.
Сделаем правый клик по HTTP пакету — Protocol Preferences – и видим тут массу опций, которые непосредственно влияют на извлечение файлов из веб трафика.
Для того чтобы увидеть, что можно извлечь из текущего дампа нужно перейти в меню File – Export Objects – HTTP.
Появится окно, которое покажет все захваченные http объекты — текстовые файлы, картинки и т.д. Для того чтобы вытащить любой файл из этого списка, достаточно просто выделить его и нажать Save As.



Как можно заметить, рисунок был извлечен без каких-либо проблем.



Таким же способом, можно извлекать и потоковое видео/аудио.



Но на этом возможности Wireshark не заканчиваются!
Он умеет вытаскивать файлы и с протокола FTP.
Для этого можно использовать знакомый уже Follow TCP Stream.
В итоге отобразится только обмен по протоколу FTP, в котором нужно будет найти строку RETR, что собственно и будет означать передачу файла.



Затем опускаемся дальше, находим пакеты уже непосредственно с файлом (FTP-DATA) и опять выбираем Follow TCP Stream, видим содержимое файла, жмем Save As и сохраняем.



VoIP


Wireshark имеет несколько встроенных функций для работы с этой технологией.
Он поддерживает массу голосовых протоколов — SIP, SDP, RTSP, H.323, RTCP, SRTP и другие.
И, конечно же, умеет перехватывать и сохранять голосовой трафик для дальнейшего прослушивания.
Этот функционал как нельзя лучше подойдет для траблшутинга в сетях Voice over IP.
Меню Statistics — Flow Graph покажет наглядную картину, как происходил весь обмен пакетами.



А вообще целое меню Telephony отведено для работы с голосовым трафиком.
Например, Telephony – RTP – Show All Streams покажет подробно, что происходило с RTP, в частности jitter (параметр, который, вероятно, самый важный в голосе), что иногда сразу скажет о наличии проблем.



Нажав на кнопку “Analyze”, можно открыть окно RTP stream Analysis – и, выбрав там поток, можно его даже проиграть, используя кнопку player.
Сначала отроется окно проигрывателя, в котором вначале нужно установить подходящее значение jitter и использовать кнопку decode.



Появится нечто похожее на анализатор спектра, в котором можно отметить требуемый разговор, и после этого кнопка Play станет активной.



Так же существует еще один способ прослушивания голосовых звонков — можно зайти в меню Telephony – VoIP Calls.



Откроется окно со списком совершенных звонков, где опять же можно нажать кнопку player, отменить нужные разговоры флажками и нажать play.
Для того чтобы добиться приемлемого качества звучания, потребуется проиграться со значением поля jitter buffer, меняя его значение.

Небольшое отступление


Некоторое время назад появился сайт CloudShark.org.



Это тот самый сниффер Wireshark, но реализованный в виде онлайн-сервиса. Очевидно, что с его помощью не удастся захватывать сетевой трафик, но выполнять анализ дампа трафика – вполне. Загрузив туда через форму PCAP-файл на анализ, можно будет получить четкую последовательность пакетов, в которой всё данные будут разбиты на понятные поля в зависимости от протокола. В общем, тот же Wireshark, но немного облегченный и доступный из любого браузера.

Финальная битва


Напоследок рассмотрим как выглядит сканирование портов.
Смотрим на дамп и видим, что вначале происходит ARP запрос и затем непосредственно начинается сканирование. Адрес нашего маршрутизатора 192.168.10.11, сканирование идет с адреса 192.168.10.101



Это, так называемое, SYN сканирование, когда идут SYN-пакеты на указанный диапазон портов. Так как большинство портов закрыто, маршрутизатор отвечает пакетами RST, ACK.
Пролистав чуть ниже видим, что открыт telnet (tcp 23).



На это указывает то, что маршрутизатор ответил пакетом SYN, ACK.
К слову, для фильтрации портов в сниффере можно использовать конструкции вида: tcp.srcport, tcp.dstport и tcp.port. Для протокола UDP всё аналогично — udp.srcport, udp.dstport, udp.port.

Итоги


Мы пробежались по самым основным частям функционала лучшего анализатора пакетов.
Получилось несколько сумбурно, вероятно, потому что хотелось затронуть как можно больше его возможностей и не упустить ничего важного.
Оказалось, что анализатор пакетов, как отладчик и дизассемблер, демонстрирует мельчайшие подробности работы сети и сетевых протоколов.
Используя Wireshark и обладая необходимыми знаниями (которые можно почерпнуть изучив серию Сетей для Самых Маленьких на сайте linkmeup.ru) можно достаточно эффективно находить и диагностировать разнообразные проблемы, возникающие в сети.

В процессе написания использовались материалы сайта wiki.wireshark.org/
Дампы с трафиком брались из разных источников, больше всего с сайта packetlife.net