Как я могу захватить трафик на коммутаторах Cisco IOS?

Для исследования проблемы при взаимодействии клиента с сервером мне нужно собрать пакеты для анализа. Однако не разрешается устанавливать пакетный анализатор, такой как Wireshark или tcpdump, на клиент или сервер. Они подключаются к Catalyst 3560 и серверу к коммутатору Catalyst 3750.

Могу ли я подключить свой ноутбук к коммутатору для захвата трафика с помощью анализатора пакетов моего ноутбука и как?

20 голосов | спросил Stefan 20 Maypm13 2013, 14:55:26

4 ответа


32

Можно контролировать клиентский коммутатор или серверный коммутатор. Третий коммутатор можно настроить как зеркальный порт . Это означает, что этот зеркальный порт будет получать копии всех пакетов на соответствующем исходном порту, в то время как исходный трафик не будет затронут.

Например, на Catalyst 3560:

  1. Введите режим конфигурации:

    conf t
    
  2. Определите источник и установите номер сеанса:

    мониторинг сеанса 1 исходный интерфейс fa 0/24
    

    Здесь номер сеанса может быть от 1 до 66, вы также можете указать VLAN или Ethernet-канал. Кроме того, возможны диапазоны интерфейса, такие как fa 0/25 - 26, и список интерфейсов, например fa 0/24, fa 0/26, если вы хотите одновременно контролировать несколько клиентов. Также, повторяя команду, вы можете добавлять порты или удалять с помощью no. Смешивание портов и VLAN невозможно в одном сеансе, другое ограничение заключается в том, что вы не можете использовать порт назначения в качестве исходного порта.

  3. Определите порт назначения:

    сеанс мониторинга 1 интерфейс назначения gi 0/1
    

    Вы можете использовать обычный порт, но не VLAN. Аналогично выше, порт назначения не может быть исходным портом: используемый здесь порт может быть источником или портом назначения и только одним сеансом. Опять же, вы можете указать несколько портов, как указано выше.

  4. Вы можете выбрать режим exit и сохранить конфигурацию.

  5. Возможно, вы посмотрите на свой определенный сеанс - здесь несколько портов, как описано выше:

    #show monitor session 1
    Сессия 1
    ---------
    Тип: локальная сессия
    Исходные порты:
        Оба: Fa0 /24, Fa0 /25-26
    Порты назначения: Fa0 /48, Gi0 /1
        Инкапсуляция: родная
              Ingress: отключено
    

    Здесь вы можете увидеть инкапсуляцию - при необходимости вы можете установить его для replicate для репликации метода инкапсуляции исходного интерфейса, например, путем добавления encapsulation replicate после интерфейса источника. Кроме того, вы можете указать направление (tx, rx, как), фильтровать VLAN и многое другое. Строка Ingress: Disabled означает, что коммутатор не будет принимать какие-либо фреймы, представленные ему вашим устройством захвата, на порт назначения. Для получения более подробной информации и дополнительных ограничений и настроек по умолчанию смотрите ссылку на команду версии IOS вашего коммутатора.

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

Количество сеансов источника может быть ограничено, например, 3560 поддерживает максимум 2.

После захвата не забудьте удалить эту конфигурацию сеанса.

ответил Stefan 20 Maypm13 2013, 14:55:26
16

Если ваш трафик проходил через маршрутизатор с поддержкой Cisco IOS 12.4 (20) T или выше, другая возможность заключается в использовании функции встроенного пакетного захвата.

Эта функция НЕ доступна на платформах коммутаторов, таких как 3560 или 3750.

Что это за функция, это захват и сохранение небольшого файла PCAP на маршрутизаторе, который вы можете загрузить и проанализировать с помощью Wireshark.

A несколько ссылки с details .

ответил Mike Marotta 20 Maypm13 2013, 17:21:50
5

Я хочу добавить ELAM в микс. ELAM поддерживается на PFC3 (6500, 7600).

У вас должно быть включено «сервисное внутреннее», но это вполне безопасная функция для запуска, я заработал ее в производственных сетях и еще не испытал негативного воздействия.

По существу, что делает ELAM, он показывает вам, что было отправлено для обработки запросов в PFC через DBUS (Data BUS), и что PFC дал в качестве результата поиска в RBUS (Result BUS).

  1. show plat cap elam asic слот супермена DFC /PFC_SLOT_YOU_WANT_TO_LOOK
  2. show plat cap elam trigger dbus ipv4, если ip_sa = 192.0.2.1
  3. show plat cap elam start
  4. показать данные о крышке elat

Для триггеров есть интерактивная справка, IP_SA == IP Source Address, IP_DA == IP Destination Address, доступно множество других. ЕСЛИ то, что вы хотите проверить, недоступно, вы можете выполнить сопоставление данных + маска для произвольных данных на первом 64B.
Произвольный триггер немного неудобен, но может быть lifesafer, вы будете использовать его следующим образом:

  

show platform capture elam trigger dbus другие, если данные = DATA1 DATA2 DATAn [MASK1 MASK2 MASKn]

Данные начинаются с DMAC. Поэтому скажем, что мы хотим поймать входящий стек MPLS [0 1951], но нам не нужны MAC-адреса, мы могли бы сделать это:

  

show platform capture elam trigger dbus other if data = 0 0 0 0x88470000 0x00000079 0xF0000000 [0 0 0 0xffffffff 0xf000ffff 0xf0000000]


Пример вывода может быть:

7600 # показать данные захвата платформы
Данные DBUS:
SEQ_NUM [5] = 0x1D
QOS [3] = 1
QOS_TYPE [1] = 0
ТИП [4] = 0 [ETHERNET]
STATUS_BPDU [1] = 0
IPO [1] = 1
NO_ESTBLS [1] = 0
RBH [3] = b000! хеш-канал канала
CR [1] = 1! рециркуляция
TRUSTED [1] = 1
NOTIFY_IL [1] = 0
NOTIFY_NL [1] = 0
DISABLE_NL [1] = 0
DISABLE_IL [1] = 0
DONT_FWD [1] = 0
INDEX_DIRECT [1] = 0
DONT_LEARN [1] = 0
COND_LEARN [1] = 0
BUNDLE_BYPASS [1] = 0
QOS_TIC [1] = 1
INBAND [1] = 0
IGNORE_QOSO [1] = 0
IGNORE_QOSI [1] = 0
IGNORE_ACLO [1] = 0
IGNORE_ACLI [1] = 0
PORT_QOS [1] = 0
CACHE_CNTRL [2] = 0 [НОРМАЛЬНО]
VLAN [12] = 4086
SRC_FLOOD [1] = 0
SRC_INDEX [19] = 0xC0! divmod64 (0xc0) = 3,0, добавьте 1 к каждому, 4/1 == наш физический порт
LEN [16] = 102
FORMAT [2] = 0 [IP]
MPLS_EXP [3] = 0x0
REC [1] = 0
NO_STATS [1] = 0
VPN_INDEX [10] = 0x7F
PACKET_TYPE [3] = 0 [ETHERNET]
L3_PROTOCOL [4] = 0 [IPV4]
L3_PT [8] = 1 [ICMP]
MPLS_TTL [8] = 0
SRC_XTAG [4] = 0xF
DEST_XTAG [4] = 0xA
FF [1] = 0
MN [1] = 0
RF [1] = 1
SC [1] = 0
CARD_TYPE [4] = 0x0
DMAC = 8843.e1de.22c0
SMAC = 0000.0000.0000
IPVER [1] = 0 [IPV4]
IP_DF [1] = 1
IP_MF [1] = 0
IP_HDR_LEN [4] = 5
IP_TOS [8] = 0x0
IP_LEN [16] = 84
IP_HDR_VALID [1] = 1
IP_CHKSUM_VALID [1] = 1
IP_L4HDR_VALID [1] = 1
IP_OFFSET [13] = 0
IP_TTL [8] = 63
IP_CHKSUM [16] = 0xBCF1
IP_SA = x.x.x! защищать виновных
IP_DA = y.y.y.y! защищать виновных
ICMP_TYPE [8] = 0x8
ICMP_CODE [8] = 0x0
ICMP_DATA [104]
0000: A0 8B 18 A5 00 39 46 35 BF 51 00 6F 3C "..... 9F5.Q.o <"
CRC [16] = 0x71B3

Данные RBUS:
SEQ_NUM [5] = 0x1D
CCC [3] = b100 [L3_RW]! нормальный L3_RW, мы знаем, что он не был сброшен, L2 /mls контролируется и т. д.
CAP1 [1] = 0
САР2[1] = 0
QOS [3] = 0
EGRESS [1] = 0
DT [1] = 0 [IP]
TL [1] = 0 [B32]
FLOOD [1] = 1
DEST_INDEX [19] = 0x3E8! такие же, как VLAN, но не всегда
VLAN [12] = 1000! вам может потребоваться проверить внутренний vlan
RBH [3] = b111! снова, хеш-канал канала
RDT [1] = 0
GENERIC [1] = 0
EXTRA_CICLE [1] = 0
FABRIC_PRIO [1] = 0
L2 [1] = 0
FCS1 [8] = 0x1
IP_TOS_VALID [1] = 1
IP_TOS_OFS [7] = 15
IP_TOS [8] = 0x0
IP_TTL_VALID [1] = 1
IP_TTL_OFS [7] = 22
IP_TTL [8] = 62
IP_CSUM_VALID [1] = 1
IP_CSUM_OFS [7] = 24
IP_CSUM [16] = 0xBDF1
DELTA_LEN [8] = 0
REWRITE_INFO
 i0 - заменить байты от 0 до 11 с секцией D0 D0 FD 09 34 2D 88 43 E1 DE 22 C0 '. ! это фактические данные перезаписи L2, поэтому вы должны явно увидеть DMAC и SMAC здесь
FCS2 [8] = 0x0
7600 #

Практически все более крупные платформы имеют этот тип низкоуровневых захватов для транзитных пакетов, которые исключительно полезны, когда вам нужно проверить, что HW делает то, что говорит конфигурация, иногда есть дефекты программного обеспечения, и он делает что-то еще, чем ожидалось. < ш> Я знаю, что в GSR вы можете видеть транзит в памяти, в Juniper Trio есть неплохой инструмент для него. Брокер может это сделать. Это довольно сложно, они не документированы на страницах поставщиков.

ответил ytti 17 J0000006Europe/Moscow 2013, 20:24:30
1

Я задал несколько подобных вопросов по serverfault, и ответы могут быть полезны здесь.

Отладочные команды Cisco IOS и мониторинг пакетов

устранить неисправность Ethernet (уровень 2) без слоя 3

ответил T. Webster 21 Mayam13 2013, 11:42:12

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132