Чтение поля VLAN исходного пакета Ethernet в Python - PullRequest
2 голосов
/ 18 июня 2019

У меня низкий уровень связи между двумя узлами с использованием пакетов Ethernet (2-х слойный, без UDP / IP или TCP / IP).Эти пакеты имеют поле VLAN внутри, мой интерфейс настроен в случайном режиме, и он может прочитать их полностью, потому что я вижу тег VLAN в Wireshark в моей системе Ubuntu.

Используя python, явозможность прочитать весь пакет, кроме поля VLAN.Поле исчезает, и после исходного поля MAC появляется Ethertype.

import socket

sock = socket.socket(socket.AF_PACKET, socket.SOCK_RAW, socket.htons(0x0003))

msg = sock.recvmsg(4096)

Возможно ли это сделать с помощью модуля python socket?Я что-то упустил в своей конфигурации или это проблема с NIC?

Заранее спасибо,

1 Ответ

0 голосов
/ 22 июня 2019

Необходимо настроить драйвер сетевого адаптера, чтобы оставить тег 802.1Q на месте. Не все сетевые карты могут сделать это, и я не верю, что есть стандартный способ сделать это.

...