Назад | Перейти на главную страницу

Проверить тег vlan пакета с помощью виртуального интерфейса Tap

Я пытаюсь узнать, как реализовать виртуальные интерфейсы с помощью драйвера Tap.

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

А что, если я подключу коммутатор cisco к своему интерфейсу LAN с помощью канала TRUNK, перенаправлю все пакеты, поступающие в интерфейс LAN, на интерфейс виртуального крана, а затем в моей программе, прикрепленной к этому интерфейсу, сделаю некоторое кодирование для анализа тега vlan в пакет и разрешить пересылку только определенных vlan на интерфейс WAN?

Звучит ли это правдоподобно или в моем основном понимании есть изъян?


Обновление: теперь, когда я больше поиграл с ним, у меня есть еще несколько вопросов:

Итак, у меня создан интерфейс tun (tun0), который принимает пакеты. С этими пакетами я выполняю некоторую фильтрацию (разрешение / удаление) на основе «MAC-адреса SRC» в кадре Ethernet. Вопрос, как мне теперь отправить разрешенные пакеты на один из моих интерфейсов WAN (eth0)?

Это, безусловно, возможно, и это действительно возможно сделать с существующими модулями ядра сегодня:

LAN -> (модуль nic) -> (модуль dot1q) -> (модуль моста) -> (модуль dot1q) -> (модуль nic) -> WAN

Или:

eth0 -> eth0.10 -> br0 -> eth1.20 -> eth1

(берет все, что помечено как vlan 10 с eth0, повторно помечает его как vlan 20 и выталкивает из eth1, и наоборот. Дополнительный контроль доступа можно выполнить с помощью ebtables.)

Если вам не нужно менять теги, вы можете упростить до:

eth0 -> br0 -> eth1

И примените ebtables к br0.

Тем не менее, если ваше приложение может выполнять часть "eth0.10 -> br0 -> eth1.20" внутри, хотя для этого не потребуются устройства Tap, так как вы можете читать кадры с одного интерфейса, фильтровать и записывать в другой.