Определение пакетов VLAN с помощью tcpdump

Вопрос или проблема

Я пытаюсь разобраться с VLAN-тегированными пакетами, которые мой хост получает или отправляет другим хостам. Я попробовал

tcpdump -i eth1 vlan 0x0070

Но это не сработало. Кто-нибудь пробовал просматривать VLAN-пакеты через tcpdump раньше? Не смог найти много помощи в интернете!

Если ваш хост подключен к access порту, коммутатор, вероятно, снимет тег VLAN до того, как он дойдет до вашего хоста. В результате запуск TCPDump на рассматриваемом хосте никогда не покажет теги VLAN.

Вам нужно настроить SPAN-порт и/или ввести сетевой tap в вашем сетевом окружении, чтобы захватить трафик до снятия тегов с пакетов, чтобы видеть их в сетевом дампе/трейсе.

vlan -i eth1 -e vlan

Вывод будет, например:

16:02:26.693223 c4:c1:e2:4a:9a:06 (oui Unknown) > 00:e0:5c:8f:e0:c9 (oui Unknown), ethertype 802.1Q (0x8100), длина 102: vlan 108, p 0, ethertype IPv4 (0x0800), 192.168.118.11 > 192.168.128.2: ICMP echo request, id 52, seq 2, длина 64
16:02:26.694811 c4:c1:e2:4a:9a:06 (oui Unknown) > 00:e0:5c:8f:e0:c9 (oui Unknown), ethertype 802.1Q (0x8100), длина 102: vlan 108, p 0, ethertype IPv4 (0x0800), 192.168.118.11 > 192.168.128.2: ICMP echo request, id 53, seq 2, длина 64
16:02:26.696331 c4:c1:e2:4a:9a:06 (oui Unknown) > 00:e0:5c:8f:e0:c9 (oui Unknown), ethertype 802.1Q (0x8100), длина 102: vlan 108, p 0, ethertype IPv4 (0x0800), 192.168.118.11 > 192.168.128.2: ICMP echo request, id 54, seq 2, длина 64

Обратите внимание на vlan 108 в середине каждой строки.

Вы можете использовать Linux для “декодирования” 802.1q (VLAN-тегирование). Вы можете эффективно превратить Linux в “роутер на палочке” и маршрутизировать между VLAN, используя единственный Ethernet-порт на модном коммутаторе Cisco второго уровня (который имеет много VLAN).

Основной Ethernet имеет “субинтерфейсы”, которые соответствуют идентификатору VLAN. Затем вы можете маршрутизировать и настраивать iptables (брандмауэр) для субинтерфейсов индивидуально.

Это простой способ иметь периметровый Linux брандмауэр, подключенный к интернет-провайдеру, и 10 VLAN за ним, использую лишь один Ethernet-интерфейс.

dot q — это стандарт, даже если Cisco считает, что они его придумали, так что он отлично работает на Linux.

РЕДАКТИРОВАНИЕ: чтобы включить это

modprobe 8021q

Вы можете затем запустить tcpdump для прослушивания на субинтерфейсах

Я думаю, вы используете не тот инструмент, если честно—tcpdump более подходит для работы с IP (L3), в то время как VLAN — это функция L2 — попробуйте использовать Wireshark вместо этого.

Ответ или решение

Если вы хотите определить VLAN-тегированные пакеты с помощью tcpdump, важно понимать, что этот инструмент может обрабатывать такие данные, но есть некоторые ключевые аспекты, которые следует учитывать. Ниже приводится пошаговое руководство и важные советы, чтобы вам было легче справиться с этой задачей.

Причины, по которым вы не видите VLAN теги

  1. Подключение к Access порту: Если ваш хост подключен к Access порту на коммутаторе, то, скорее всего, VLAN теги будут удалены коммутатором, прежде чем пакет достигнет вашего хоста. Это объясняет, почему вы не видите VLAN-теги в tcpdump при стандартной настройке.

  2. Необходимость в SPAN порте или сетевом тапе: Чтобы отслеживать трафик с сохранением VLAN-тегов, необходимо настроить SPAN порт на коммутаторе или использовать сетевой тап, чтобы перехватить пакеты до их обработки свитчем.

Использование tcpdump для просмотра VLAN-тегов

  1. Правильный синтаксис команды: Используйте следующую команду, чтобы убедиться, что вы улавливаете VLAN-тегированные пакеты:

    tcpdump -i eth1 vlan

    Эта команда поможет вам идентифицировать трафик, который все еще имеет VLAN-тэги.

  2. Загрузите модуль 802.1Q: Для того чтобы ваш Linux хост мог декодировать 802.1Q VLAN теги, загрузите соответствующий модуль:

    modprobe 8021q
  3. Создание подинтерфейсов на Linux: Вы можете настроить ваш сетевой интерфейс как "router on a stick" с помощью создания подинтерфейсов, которые будут связаны с конкретными VLAN:

    ip link add link eth1 name eth1.70 type vlan id 70

    Далее вы можете настраивать и управлять этими подинтерфейсами так же, как и с обычными интерфейсами.

Альтернативы tcpdump

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

Заключение

В итоге, важно правильно настроить вашу среду, чтобы успешное выполнение команды, позволяющей видеть VLAN-теги. Использование SPAN или зеркального порта, а также установка подинтерфейсов на Linux, помогут вам эффективно мониторить и анализировать необходимый сетевой трафик.

Оцените материал
Добавить комментарий

Капча загружается...