Перехват трафика с помощью Cisco ASR
Прослушивание сети может быть осуществлено не только на аппаратных брандмауэрах Cisco PIX/ASA, о которых мы писали ранее, но также и на маршрутизаторах того же производителя. В данной статье мы расскажем о том, как на одном из самых простых маршрутизаторов линейки ASR можно локально сохранять копию передаваемых по сети пользовательских данных (или пакетов, предназначенных самому устройству) с возможностью их анализа на месте, либо выгрузки на удалённый сервер для более детального разбора. Обсуждаемая нами функциональность носит название Embedded Packet Capture.
В нашем распоряжении была модель ASR 1006 (cisco ASR1006 (RP2)). Хотелось бы отметить, что обсуждаемая технология появилась в IOS XE начиная с версии 3.7S, поэтому на нашем устройстве была прошивка указанной ниже версии.
IOS XE Version: 03.07.01.S
Первое, с чего следует начать, - создать список доступа, с помощью которого будут отфильтровываться нужные данные. Мы хотим получить все ICMP-сообщения.
asr1006#conf t
Enter configuration commands, one per line. End with CNTL/Z.
asr1006(config)#ip access-list extended foxtestacl
asr1006(config-ext-nacl)#permit icmp any any
asr1006(config-ext-nacl)#exi
asr1006(config)#exi
asr1006#sho ip access-lists foxtestacl
Extended IP access list foxtestcap
10 permit icmp any any
Созданный в предыдущем действии список необходимо привязать к конкретному перехвату. Также обязательным параметром, который необходимо указать, является интерфейс, на котором будут собираться передаваемые данные. Среди необязательных параметров можно указать следующие: буфер, в котором будут храниться перехваченные пакеты; пределы, применяемые к процессу перехвата. Лимиты, которые администратор может установить, позволяют сохранять пакеты в течение определённого времени, определённой длины или конкретное их количество. Также можно ограничить скорость поступления пакетов, либо сохранять один из группы.
asr1006#monitor capture foxcap ?
access-list access-list to be attached
buffer Buffer options
class-map class name to attached
clear Clear Buffer
control-plane Control Plane
export Export Buffer
interface Interface
limit Limit Packets Captured
match Describe filters inline
start Enable Capture
stop Disable Capture
asr1006#monitor capture foxcap buffer ?
circular circular buffer
size Size of buffer in MB
asr1006#monitor capture foxcap lim ?
duration Limit total duration of capture in seconds
every Limit capture to one in every nth packet
packet-len Limit the packet length to capture
packets Limit number of packets to capture
pps Limit number of packets per second to capture
Определимся теперь с интерфейсом, на котором будем производить перехват (вывод команд представлен не полностью).
asr1006#sho ip int bri
Interface IP-Address OK? Method Status Protocol
Te0/0/0 unassigned YES NVRAM down down
GigabitEthernet0/1/0 unassigned YES NVRAM up up
GigabitEthernet0/1/1 unassigned YES NVRAM up up
Gi0/1/1.1100 10.27.0.17 YES NVRAM up up
Создадим перехват, ограничив его созданным ранее списком доступа, и прикрепим его к интерфейсу Gi0/1/1.1100 с указанием интересующего нас направления.
asr1006#mon cap foxcap access-list foxtestacl interface gi0/1/1.1100 both
Просмотреть параметры того или иного перехвата можно с помощью команд show monitor capture name и show monitor capture name parameter, где вместо name нужно указать имя интересующего перехвата.
asr1006#sho monitor capture foxcap
Status Information for Capture foxcap
Target Type:
Interface: GigabitEthernet0/1/1.1100, Direction: both
Status : Inactive
Filter Details:
Access-list: foxtestacl
Buffer Details:
Buffer Type: LINEAR (default)
Buffer Size (in MB): 10
Limit Details:
Number of Packets to capture: 0 (no limit)
Packet Capture duration: 0 (no limit)
Packet Size to capture: 0 (no limit)
Maximum number of packets to capture per second: 1000
Packet sampling rate: 0 (no sampling)
asr1006#sho monitor capture foxcap parameter
monitor capture foxcap interface GigabitEthernet0/1/1.1100 both
monitor capture foxcap access-list foxtestacl
monitor capture foxcap buffer size 10
monitor capture foxcap limit pps 1000
Для начала перехвата необходимо дать команду monitor capture name start, для остановки – monitor capture name stop.
asr1006#mon cap foxtcap start
Проверим теперь доступность какого-либо удалённого узла, доступ к которому производится с помощью интерфейса Gi0/1/1.1100.
C:\>ping 10.27.0.18
Обмен пакетами с 10.27.0.18 по с 32 байтами данных:
Ответ от 10.27.0.18: число байт=32 время=1мс TTL=250
Ответ от 10.27.0.18: число байт=32 время=1мс TTL=250
Ответ от 10.27.0.18: число байт=32 время=1мс TTL=250
Ответ от 10.27.0.18: число байт=32 время=1мс TTL=250
Статистика Ping для 10.27.0.18:
Пакетов: отправлено = 4, получено = 4, потеряно = 0
(0% потерь)
Приблизительное время приема-передачи в мс:
Минимальное = 1мсек, Максимальное = 1 мсек, Среднее = 1 мсек
Выгрузка сохранённых с помощью функционала EPC данных может производиться как во время работы процедуры перехвата, так и после её завершения. Мы же остановим перехват.
asr1006#mon cap foxtcap stop
Посмотреть информацию о загруженности буфера, в который сохраняются перехваченные пакеты, можно с помощью команды show monitor capture name buffer.
ag-asr1006-1#sho mon cap foxcap buffer
buffer size : 10485760
buffer used : 7554
packets in buffer: 67
average PPS : 1
Содержимое буфера также доступно для локального анализа (вывод команды сокращён).
ag-asr1006-1#sho monitor capture foxcap buffer bri
-------------------------------------------------------------
# size timestamp source destination protocol
-------------------------------------------------------------
0 82 0.000000 192.168.1.2 -> 10.27.0.18 ICMP
1 82 0.000000 10.27.0.18 -> 192.168.1.2 ICMP
2 82 1.189038 192.168.1.2 -> 10.27.0.18 ICMP
3 82 1.190029 10.27.0.18 -> 192.168.1.2 ICMP
4 82 2.190029 192.168.1.2 -> 10.27.0.18 ICMP
5 82 2.191036 10.27.0.18 -> 192.168.1.2 ICMP
6 82 3.199032 192.168.1.2 -> 10.27.0.18 ICMP
7 82 3.209041 10.27.0.18 -> 192.168.1.2 ICMP
Более детальная информация может быть получена с помощью команд show monitor capture name buffer detailed и show monitor capture name buffer dump (вывод команд сокращён).
asr1006#sho monitor capture foxcap buffer detailed
-------------------------------------------------------------
# size timestamp source destination protocol
-------------------------------------------------------------
122 82 9.320820 10.27.4.14 -> 10.27.0.17 ICMP
0000: 30F70D1E 9611001C F6109438 8100044C 0..........8...L
0010: 08004500 0040C7A8 00003F01 9BC00A1B ..E..@....?.....
0020: 040E0A1B 00110800 01F0F928 0000AB89 ...........(....
0030: A2500000 0000A507 0F000000 00001011 .P..............
asr1006#sho monitor capture foxcap buffer dump
122
0000: 30F70D1E 9611001C F6109438 8100044C 0..........8...L
0010: 08004500 0040C7A8 00003F01 9BC00A1B ..E..@....?.....
0020: 040E0A1B 00110800 01F0F928 0000AB89 ...........(....
0030: A2500000 0000A507 0F000000 00001011 .P..............
0040: 12131415 16171819 1A1B1C1D 1E1F2021 .............. !
0050: 2223 "#
Кроме локального просмотра перехваченных данных администратор может выгрузить их в файл на флеш или удалённый сервер по сети.
asr1006#mon cap foxcap export ?
bootflash: Location of the file
flash: Location of the file
ftp: Location of the file
harddisk: Location of the file
http: Location of the file
https: Location of the file
pram: Location of the file
rcp: Location of the file
scp: Location of the file
tftp: Location of the file
asr1006#mon cap foxcap export flash:/foxcap.cap
Exported Successfully
asr1006#sho fla
-#- --length-- ---------date/time--------- path
1 4096 Nov 13 2012 22:21:14 +00:00 /bootflash/
2 16384 Jul 05 2012 04:32:24 +00:00 /bootflash/lost+found
3 4096 Nov 02 2012 01:46:07 +00:00 /bootflash/vman_fdb
4 6798 Nov 13 2012 22:16:52 +00:00 /bootflash/foxcap.cap
5 4096 Jul 05 2012 04:34:40 +00:00 /bootflash/.installer
6 4096 Jul 05 2012 05:05:46 +00:00 /bootflash/.prst_sync
7 4096 Jul 05 2012 05:05:50 +00:00 /bootflash/.rollback_timer
8 456402504 Aug 30 2012 15:52:32 +00:00 /bootflash/asr1000rp2-advipservicesk9.03.06.02.S.152-2.S2.bin
9 479485768 Nov 01 2012 10:13:08 +00:00 /bootflash/asr1000rp2-adventerprisek9.03.07.01.S.152-4.S1.bin
10 458460744 Sep 21 2012 23:27:44 +00:00 /bootflash/asr1000rp2-adventerprisek9.03.06.02.S.152-2.S2.bin
397017088 bytes available (1395777536 bytes used)
asr1006#cop fl tf
Source filename [foxcap.cap]?
Address or name of remote host []? 192.168.1.2
Destination filename [foxcap.cap]?
!!
6798 bytes copied in 0.017 secs (399882 bytes/sec)
Выгруженный на TFTP-сервер файл может быть просмотрен на компьютере администратора, например, с помощью утилиты Wireshark.
Для удаления существующего перехвата необходимо воспользоваться командой no monitor capture name.
asr1006#no mon cap foxcap
asr1006#sho mon cap
На этом мы завершаем рассмотрение возможностей функции Cisco EPC (Embedded Packet Capture) и желаем успешного решения сетевых проблем с её помощью.