Для захвата трафика можно использовать маршрутизаторы Cisco, при помощи утилиты Cisco Embedded Packet Capture, которая доступна, начиная с версии IOS 12.4.20T. В этой статье мы расскажем, как настроить EPC для захвата пакетов на роутере, сохранять их на flash памяти или экспортировать на ftp/tftp сервер для будущего анализа, при помощи анализатора пакетов, например, такого как Wireshark.
Давайте рассмотрим некоторые из основных функций, которые предлагает нам Embedded Packet Capture:
- Экспорт пакетов в формате PCAP, обеспечивающий анализ с помощью внешних инструментов
- Возможность задать различные параметры буфера захвата
- Отображение буфера захвата
- Захват IPv4 и IPv6 пакетов в пути Cisco Express Forwarding
Прежде чем начать конфигурацию Cisco EPC необходимо разобраться с двумя терминами, которые будут использоваться в процессе – Capture Buffer(буфер захвата) и Capture Point (точка захвата)
Capture buffer – это зона в памяти для хранения пакетных данных. Существует два типа буферов захвата Linear (линейный) и Circular (кольцевой):
- Linear Capture Buffer – когда буфер захвата заполнен, он перестает захватывать данные
- Circular Capture Buffer – когда буфер заполнен, он продолжает захватывать данные, перезаписывая старые данные
Capture Point – это точка транзита трафика, в которой фиксируется пакет. Тут определяется следующее:
- IPv4 или IPv6
- CEF (Cisco Express Forwarding) или Process-Switched
- Интерфейс (например Fast Ethernet 0/0, Gigabit Ethernet 1/0)
- Направление трафика: входящий (in), исходящий (out) или оба
Настройка Cisco Embedded Packet Capture
Рассмотрим настройку на примере нашей схемы, где мы хотим захватить входящие и исходящие пакеты на интерфейсе FastEthernet 0/0 от ПК с адресом 192.168.1.5 до веб-сервера wiki.merionet.ru с адресом 212.193.249.136
Первым делом мы создадим буфер, который будет хранить захваченные пакеты. Для этого используем команду monitor capture buffer [имя] size[размер] [тип] . Создадим буфер merionet_cap, размером 1024 килобайта (1 мегабайт, стандартный размер) и сделаем его линейным.
Router#monitor capture buffer merionet_cap size 1024 linear
Далее мы можем настроить захват определенного трафика. В нашем случае нужно захватить трафик между 192.168.1.5 и 212.193.249.136. Это достигается при помощи списков контроля доступа ACL. Мы можем использовать стандартные или расширенные списки доступа в зависимости от требуемой детализации. Если список доступа не настроен, то захвачен будет весь трафик.
Router(config)#ip access-list extended web-traffic Router(config-ext-nacl)#permit ip host 192.168.1.5 host 212.193.249.136 Router(config-ext-nacl)#permit ip host 212.192.249.136 host 192.168.1.5
Наш список доступа включает трафик, исходящий от обоих хостов, потому что мы хотим захватить двунаправленный трафик. Если бы мы включили только один оператор ACL, тогда был бы зафиксирован только односторонний трафик. Теперь свяжем наш буфер с access-list’ом, при помощи команды monitor capture buffer [название_буфера] filter access-list [название_ACL]
Router#monitor capture buffer merionet_cap filter access-list web-traffic
Затем следующем шагом мы определяем, какой интерфейс будет точкой захвата. В нашем случае это FastEthernet 0/0, и мы будем захватывать как входящие, так и исходящие пакеты. Во время этой фазы конфигурации нам нужно предоставить имя для точки захвата.
Также очень важно ввести команду ip cef для обеспечения минимального влияния на процессор маршрутизатора, при помощи Cisco Express Forwarding. Если ip cef не включен, то появится сообщение IPv4 CEF is not enabled.
Используем команду monitor capture point ip cef [имя_точки] [интерфейс] [направление] .
Router#monitor capture point ip cef MNpoint FastEthernet0/0 both
Теперь мы связываем сконфигурированную точку захвата с буфером захвата командой monitor capture point associate [название_точки][название_буфера] . На этом этапе мы готовы начать сбор пакетов.
Router#monitor capture point associate MNpoint merionet_cap
Чтобы начать сбор пакетов используем команду monitor capture point start [название_интерфейса] .
Router# monitor capture point start MNpoint
Чтобы остановить процесс захвата используется команда monitor capture point stop [название_интерфейса] .
Router# monitor capture point stop MNpoint
Полезные команды проверки:
- show monitor capture buffer – показывает состояние буфера захвата
- show monitor capture point – показывает состояние точки захвата
- show monitor capture buffer [название_буфера] – показывает информацию о захваченных пакетах
- show monitor capture buffer [название_буфера] dump – показывает содержание буфера
Экспорт данных
В большинстве случаев захваченные данные необходимо будет экспортировать в сетевой анализатор трафика (например, WireShark) для дополнительного анализа в удобном для пользователя интерфейсе. Захваченный буфер можно экспортировать в несколько местоположений, включая: flash: (на маршрутизаторе), ftp, tftp, http, https, scp и другие.
Для экспорта буфера используется команда monitor capture buffer[имя_буфера] export [адрес] .
Router#monitor capture buffer merionet_cap export tftp://192.168.1.10/capture.pcap
После этого файл capture.pcap появится на нашем TFTP сервере, и мы можем открыть его в сетевом анализаторе.