User Tools

Site Tools


tssltd:захват_сетевого_трафика_в_формате_pcap

This is an old revision of the document!


Вернуться к оглавлению

Общая информация

Устройство МКСЗ «Diamond Next» поддерживает возможность захватывать сетевой трафик для дальнейшего анализа. Данный механизм позволяет проанализировать сетевые пакеты и их заголовки. Захват и анализ сетевого трафика можно осуществить в двух режимах: raw-режим, pcap-режим.

  • Raw-режим: Данный режим позволяет захватить сетевой пакет и предоставить информацию не только о всех полях и заголовках, но также и о движении сетевого пакета между сетевыми механизмами устройства. Данный режим осуществляет захват сетевого трафика со всех интерфейсов одновременно. Результаты работы можно сохранить в текстовом формате.
  • Pcap-режим: Данный режим позволяет захватить сетевой пакет и предоставить информацию аналогично утилите tcpdump. Сетевой трафик можно захватывать на различных сетевых интерфейсах и записывать результаты работы в формате pcap файла. В pcap-режиме не поддерживается возможность онлайн вывода результатов работы механизма и недоступна фильтрации сетевого трафика по различным параметрам.

Режим захвате RAW

Для захвата сетевого трафик на физическом интерфейсе необходимо подключиться подключиться к устройству по протоколу ssh. Далее необходимо перейти в режим конфигурации на уровне “data plane” с помощью команды “vppctl”.

Необходимо выбрать один из сетевых интерфейсов, на котором требуется осуществить захват сетевого трафика. Перечень доступных сетевых интерфейсов на устройстве можно посмотреть либо через web интерфейс в разделе “Статус - Сетевые интерфейсы”, либо в режиме конфигурации на уровне “data plane” с помощью команды “sh interface”.

Для захвата сетевого трафика необходимо использовать команду “trace add dpdk-input <count_of_packets>”.

# vppctl
vpp# trace add dpdk-input 1000       <----- 1000 Количество сетевых пакетов

Для просмотра результата необходимо выполнить команду “show trace”. В представленном ниже примере показаны сетевые пакет 16 и 17. Для каждого из сетевых пакетов зафиксированы узлы, в которых происходила их обработка, все поля и заголовки, а также результат обработки сетевого пакета.

Packet 16

01:16:54:208566: dpdk-input
  GigabitEtherneta/0/0 rx queue 0
  buffer 0x2cff11: current data 0, length 70, buffer-pool 0, ref-count 1, trace handle 0x100000f
                   ext-hdr-valid
  PKT MBUF: port 6, nb_segs 1, pkt_len 70
    buf_len 9328, data_len 70, ol_flags 0x182, data_off 128, phys_addr 0xd33fc4c0
    packet_type 0x111 l2_len 0 l3_len 0 outer_l2_len 0 outer_l3_len 0
    rss 0x94cebe20 fdir.hi 0x0 fdir.lo 0x94cebe20
    Packet Offload Flags
      PKT_RX_IP_CKSUM_GOOD (0x0080) IP cksum of RX pkt. is valid
      PKT_RX_L4_CKSUM_GOOD (0x0100) L4 cksum of RX pkt. is valid
      PKT_RX_RSS_HASH (0x0002) RX packet with RSS hash result
    Packet Types
      RTE_PTYPE_L2_ETHER (0x0001) Ethernet packet
      RTE_PTYPE_L3_IPV4 (0x0010) IPv4 packet without extension headers
      RTE_PTYPE_L4_TCP (0x0100) TCP packet
  IP4: 6c:9c:ed:7f:d3:48 -> 00:90:0b:63:26:f3 802.1q vlan 480
  TCP: 81.177.120.83 -> 194.135.68.242
    tos 0x20, ttl 52, length 52, checksum 0xa325 dscp CS1 ecn NON_ECN
    fragment id 0xd200, flags DONT_FRAGMENT
  TCP: 50706 -> 443
    seq. 0xad1c6b3b ack 0x19461f07
    flags 0x10 ACK, tcp header: 32 bytes
    window 360, checksum 0x6aff

01:16:54:208567: ethernet-input
  frame: flags 0x3, hw-if-index 7, sw-if-index 7
  IP4: 6c:9c:ed:7f:d3:48 -> 00:90:0b:63:26:f3 802.1q vlan 480
01:16:54:208568: l2-input
  l2-input: sw_if_index 7 dst 00:90:0b:63:26:f3 src 6c:9c:ed:7f:d3:48 [l2-input-feat-arc l2-learn l2-fwd l2-flood l2-flood ]
01:16:54:208568: l2-input-feat-arc
  IN-FEAT-ARC: head 1 feature_bitmap 82a5 ethertype 800 sw_if_index 7, next_index 15
01:16:54:208568: acl-plugin-in-ip4-l2
  acl-plugin: lc_index: 0, sw_if_index 7, next index 1, action: 1, match: acl 0 rule 0 trace_bits 00000000
  ct session_index -1 thread_index 65535 error NONE  pkt info 0000000000000000 0000000000000000 0000000000000000 f24487c25378b151 0007010601bbc612 0310ffff00000000
   lc_index 0 l3 ip4 81.177.120.83 -> 194.135.68.242 l4 lsb_of_sw_if_index 7 proto 6 l4_is_input 1 l4_slow_path 0 l4_flags 0x01 port 50706 -> 443 tcp flags (valid) 10 rsvd 0
01:16:54:208579: l2-input-feat-arc-end
  IN-FEAT-ARC: head 0 feature_bitmap 2a5 ethertype 0 sw_if_index -1, next_index 7
01:16:54:208579: l2-learn
  l2-learn: sw_if_index 7 dst 00:90:0b:63:26:f3 src 6c:9c:ed:7f:d3:48 bd_index 1
01:16:54:208579: l2-fwd
  l2-fwd:   sw_if_index 7 dst 00:90:0b:63:26:f3 src 6c:9c:ed:7f:d3:48 bd_index 1 result [0xb180000000007, 7] none
01:16:54:208580: error-drop
  rx:GigabitEtherneta/0/0
01:16:54:208580: drop
  l2-fwd: Reflection Drop

Packet 17

01:16:54:209266: dpdk-input
  GigabitEtherneta/0/0 rx queue 0
  buffer 0x2b73df: current data 0, length 138, buffer-pool 0, ref-count 1, trace handle 0x1000010
                   ext-hdr-valid
  PKT MBUF: port 6, nb_segs 1, pkt_len 138
    buf_len 9328, data_len 138, ol_flags 0x182, data_off 128, phys_addr 0xd39cf840
    packet_type 0x111 l2_len 0 l3_len 0 outer_l2_len 0 outer_l3_len 0
    rss 0x49de519a fdir.hi 0x0 fdir.lo 0x49de519a
    Packet Offload Flags
      PKT_RX_IP_CKSUM_GOOD (0x0080) IP cksum of RX pkt. is valid
      PKT_RX_L4_CKSUM_GOOD (0x0100) L4 cksum of RX pkt. is valid
      PKT_RX_RSS_HASH (0x0002) RX packet with RSS hash result
    Packet Types
      RTE_PTYPE_L2_ETHER (0x0001) Ethernet packet
      RTE_PTYPE_L3_IPV4 (0x0010) IPv4 packet without extension headers
      RTE_PTYPE_L4_TCP (0x0100) TCP packet
  IP4: 6c:9c:ed:7f:d3:48 -> 00:90:0b:63:26:f3 802.1q vlan 480
  TCP: 46.138.254.34 -> 194.135.68.242
    tos 0x00, ttl 122, length 120, checksum 0x61c7 dscp CS0 ecn NON_ECN
    fragment id 0x6a92, flags DONT_FRAGMENT
  TCP: 58270 -> 873
    seq. 0x358e7882 ack 0x1e2c6d5b
    flags 0x18 PSH ACK, tcp header: 20 bytes
    window 2052, checksum 0x0bae

01:16:54:209267: ethernet-input
  frame: flags 0x3, hw-if-index 7, sw-if-index 7
  IP4: 6c:9c:ed:7f:d3:48 -> 00:90:0b:63:26:f3 802.1q vlan 480
01:16:54:209268: l2-input
  l2-input: sw_if_index 7 dst 00:90:0b:63:26:f3 src 6c:9c:ed:7f:d3:48 [l2-input-feat-arc l2-learn l2-fwd l2-flood l2-flood ]
01:16:54:209268: l2-input-feat-arc
  IN-FEAT-ARC: head 1 feature_bitmap 82a5 ethertype 800 sw_if_index 7, next_index 15
01:16:54:209268: acl-plugin-in-ip4-l2
  acl-plugin: lc_index: 0, sw_if_index 7, next index 1, action: 1, match: acl 0 rule 0 trace_bits 00000000
  ct session_index -1 thread_index 65535 error NONE  pkt info 0000000000000000 0000000000000000 0000000000000000 f24487c222fe8a2e 000701060369e39e 0318ffff00000000
   lc_index 0 l3 ip4 46.138.254.34 -> 194.135.68.242 l4 lsb_of_sw_if_index 7 proto 6 l4_is_input 1 l4_slow_path 0 l4_flags 0x01 port 58270 -> 873 tcp flags (valid) 18 rsvd 0
01:16:54:209279: l2-input-feat-arc-end
  IN-FEAT-ARC: head 0 feature_bitmap 2a5 ethertype 0 sw_if_index -1, next_index 7
01:16:54:209280: l2-learn
  l2-learn: sw_if_index 7 dst 00:90:0b:63:26:f3 src 6c:9c:ed:7f:d3:48 bd_index 1
01:16:54:209280: l2-fwd
  l2-fwd:   sw_if_index 7 dst 00:90:0b:63:26:f3 src 6c:9c:ed:7f:d3:48 bd_index 1 result [0xb180000000007, 7] none
01:16:54:209280: error-drop
  rx:GigabitEtherneta/0/0
01:16:54:209280: drop
  l2-fwd: Reflection Drop

Данный механизм использует буфер для сохранения результатов работы. Чтобы очистить буфер от старых данных и начать новый захват необходимо выполнить команду “clear trace”.

Для сохранения данных в текстовом формате, необходимо вернуть на уровень управления “control-plane” с помощью сочетания клавиш “ctrl+c” и выполнить команду “vppctl show trace max 1000 > /media/storage/trace.log”.

Режим захвате Pcap

tssltd/захват_сетевого_трафика_в_формате_pcap.1736850912.txt.gz · Last modified: 2025/01/14 13:35 by i.sharapov

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki