Запутанность вокруг VLAN на мосту и фильтрации.

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

Я создал на роутере OpenWRT интерфейс с тегом vlan id 1. На одном сервере у меня есть несколько контейнеров lxc, и я хочу, чтобы некоторые из них использовали этот vlan (id 1). Я создал мост:

ip link add name br1 type bridge
ip link set br1 type bridge vlan_filtering 1
ip link set enp7s0.1 up
ip link set br1 up
ip addr add 192.168.179.2 dev br1

добавить тег VLAN

bridge vlan del dev enp7s0.1 vid 1
bridge vlan add dev enp7s0.1 vid 1
bridge vlan del dev br1 vid 1 self
bridge vlan add dev br1 vid 1 self
bridge vlan add dev veth1001_17Yt vid 1

Вот результат:

bridge vlan sh
port              vlan-id  
enp7s0            1 PVID Egress Untagged
wlan0             1 PVID Egress Untagged
br0               1 PVID Egress Untagged
vnet0             1 PVID Egress Untagged
veth1001_LoZK     1 PVID Egress Untagged
veth1001_4Kss     1 PVID Egress Untagged
veth1001_ZF7k     1 PVID Egress Untagged
veth1001_FuzI     1 PVID Egress Untagged
veth1001_1C5W     1 PVID Egress Untagged
veth1001_W2FM     1 PVID Egress Untagged
veth1001_YsU5     1 PVID Egress Untagged
veth1001_823Q     1 PVID Egress Untagged
veth1001_Uf5S     1 PVID Egress Untagged
veth1001_R5zN     1 PVID Egress Untagged
veth1001_9gyW     1 PVID Egress Untagged
lxcbr0            1 PVID Egress Untagged
enp7s0.1          1
br1               1
veth1001_17Yt     1

С компьютера, используя мост, я пытаюсь пинговать IP контейнера lxc (использующего vlan tag 1)

ping 192.168.179.3
PING 192.168.179.3 (192.168.179.3) 56(84) байтов данных.

Не работает!

Но если я отключаю фильтрацию vlan…

ip link set dev br1 type bridge vlan_filtering 0

работает

ping 192.168.179.3
PING 192.168.179.3 (192.168.179.3) 56(84) байтов данных.
64 байта от 192.168.179.3: icmp_seq=1 ttl=63 время=8.75 ms
64 байта от 192.168.179.3: icmp_seq=2 ttl=63 время=6.88 ms

но кажется, теги VLAN не используются

tcpdump -i br1 -e vlan
tcpdump: подробный вывод подавлен, используйте -v[v]... для полного декодирования протокола
прослушивание на br1, тип связи EN10MB (Ethernet), длина снимка 262144 байта
^C
захвачено пакетов: 0
пакетов получено фильтром: 0
пакетов отброшено ядром: 0

Что я упускаю?

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

Для решения вашей проблемы с VLAN, которая связана с использованием bridge и фильтрацией, рассмотрим процесс настройки, а также возможные проблемы и способы их устранения.

Теория

VLAN (Virtual Local Area Network) позволяет сегментировать сеть на подмножества, что предоставляет большую гибкость и управление трафиком. В вашем случае, вы настроили интерфейс на роутере OpenWRT с тегированием VLAN ID 1 и хотите, чтобы LXC контейнеры на сервере использовали эту же VLAN.

Ключевая проблема заключается в понимании того, как работает VLAN-фильтрация на сетевых мостах (bridge). VLAN-фильтрация позволяет контролировать, через какие порты могут проходить трафики с определенными VLAN ID. Это достигается за счёт связывания отдельных VLAN ID с определенными портами на мосте.

Пример

В приведенной вами конфигурации, вы создаете мост br1, включаете VLAN-фильтрацию и ассоциируете различные интерфейсы с VLAN ID 1. Однако, возможно, вы упустили некоторые нюансы:

  1. Настройка фильтрации VLAN: Вы настроили VLAN-фильтрацию для br1, но не настроили PVID для самих портов на мосте. PVID (Port VLAN ID) отвечает за трафик без тегов и нужен для правильной обработки как тегированного, так и нетегированного трафика.

  2. Правильные разрешения для трафика: Ваша конфигурация должна включать правила обработки для входящего и исходящего трафика, чтобы позволить им маршрутизироваться через мост.

  3. Тегирование и Untagged трафик: Убедитесь, что трафик из контейнеров и всех задействованных интерфейсов соответствует ожидаемым VLAN правилам.

Применение

Попробуем подойти к решению задачи.

  1. Проверьте конфигурацию VLAN: Какие именно интерфейсы имеют PVID, и где они настроены как Untagged. Для успешной работы с VLAN и bridge важно, чтобы каждый порт принимал и передавал трафик в соответствии с ожидаемыми настройками.

  2. Настройте PVID: Убедитесь, что интерфейсы в мосту (как enp7s0.1, так и veth парные интерфейсы) корректно настроены:

bridge vlan add dev enp7s0.1 vid 1 pvid untagged
bridge vlan add dev veth1001_17Yt vid 1 pvid untagged

Это гарантирует, что весь не тегированный трафик будет ассоциироваться с VLAN ID 1.

  1. Следите за маршрутизацией: Убедитесь, что маршрутизация между различными элементами правильно настроена. Если какое-либо устройство (например, LXC-конейнер) находится в изолированном сетевом пространстве, нужно убедиться, что bridge может корректно обрабатывать его трафик.

  2. Диагностика и тестирование: Используйте различные утилиты, такие как tcpdump, для мониторинга и отладки сетевого трафика на br1, чтобы убедиться, что он соответствует вашей сетевой политике:

tcpdump -i br1 -e vlan

Заключение

Если при выключении VLAN фильтрации ping и сеть работают, это означает, что проблема именно в конфигурации VLAN. Вам необходимо настроить VLAN-фильтрение для всех порта, включая установку PVID для обработки нетегированного трафика. Таким образом, можно будет обеспечить слаженную работу всех элементов инфраструктуры без отключения VLAN фильтрации.

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

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