Надходять два запити майже з однаковим формулюванням: розмістити кожного клієнта VPN у вибраному VLAN або протягнути наявний VLAN trunk через VPN. Це різні продукти. Вбудований режим OpenVPN з підтримкою VLAN — це модель комутатора для першого запиту, і він не є синонімом прозорої передачі тегів. Неправильний вибір дає проєкт, який виглядає налаштованим і мовчки відкидає кадри, які були вам важливі.

Що насправді будує режим з підтримкою VLAN

Коли vlan-tagging увімкнено в розгортанні TAP лише для сервера, демон моделює свій пристрій TAP і кожного підключеного клієнта як порти внутрішнього комутатора. Клієнтські порти не теговані, а їхній зв'язок із VLAN задається на сервері через контекст vlan-pvid для кожного клієнта, а не тим, що надсилає клієнт. У цьому весь сенс моделі: членство — це рішення на боці сервера про автентифікованого партнера. Ніщо в профілі клієнта не повинно знати, до якого VLAN він належить.

Бік TAP сервера отримує власну політику приймання тегованих або нетегованих кадрів через vlan-accept. Пересилання всередині цього комутатора відбувається лише між однаковими VID, зокрема коли задано client-to-client, тому два клієнти в різних VLAN не можуть дістатися один одного через сервер, хоча обидва до нього підключені.

Ця модель — модель порту доступу. Кадри, що залишають клієнт, не теговані, а зв'язок нав'язує сервер на основі ідентичності. Просити ноутбук самостійно тегувати свій трафік — означає просити інший проєкт.

Призначення мають відповідати автентифікованій ідентичності клієнта, а не значенню, яке клієнт пропонує про себе. Пропущене призначення теж не стан карантину: клієнт потрапляє на PVID за замовчуванням, тому відсутній запис ccd — це тихе рішення політики, а не нейтральне.

Що натомість вимагає прозорий trunk

Перенесення вже тегованих кадрів від краю до краю починається з вимкнення обробки з підтримкою VLAN. Модель комутатора та збереження тегів — це альтернативи, і ввімкнення обох вимагає, щоб одна функція виконувала роботу іншої.

Вимкнення — лише початок. Міст на кожному кінці та фізичні порти комутатора мають узгодити, які VLAN дозволені, який тег є рідним і як обробляються нетеговані кадри. Розширення необмеженого trunk відкриває значно більше широкомовних доменів, ніж ті два, які ви хотіли з'єднати.

Розмір кадру потребує власного бюджету. Тегований кадр Ethernet плюс інкапсуляція більший за число корисного навантаження, яке люди копіюють із посібника, а MTU, що підходив для маршрутизованого тунелю, не доводить, що шлях trunk працює.

Три умови, що визначають відповідь

По-перше, чи підтримує клієнтська платформа TAP узагалі? Android і iOS — ні, а підтримка macOS обмежена, тому парк мобільних користувачів виключає обидва проєкти TAP, хоч би як були влаштовані VLAN. Маршрутизований сеанс TUN передає IP-пакети, а не кадри Ethernet, і жодне налаштування VLAN на сервері цього не змінює. Перевірте парк до проєктування топології, бо цю умову обійти неможливо. Це також умова, яку найчастіше виявляють уже після завершення робіт із комутатором.

По-друге, хто призначає VLAN? Якщо відповідь «сервер, за тим, хто автентифікувався», підходить модель комутатора. Якщо відповідь «наявна інфраструктура комутаторів, із тегами, які вже є», потрібен проєкт trunk.

По-третє, яка частина мережі має бути доступною? Модель комутатора за побудовою тримає кожного клієнта в одному VLAN. Проєкт trunk — це міст, а неправильно налаштований міст з'єднує широкомовні домени, які мали залишатися розділеними.

Перевірка зробленого вибору

Підключіть одного клієнта, який має бути в дозволеному VLAN, і одного, який не має, а потім перевіряйте з реального кінця, а не із самого сервера. Доступність із боку сервера доводить, що міст або комутатор існує; вона не доводить, у якому VLAN опинився клієнт.

ip -d link show tap0
bridge vlan show

На сервері друга команда показує членство у VLAN для кожного порту мосту, зокрема те, чи порт тегований. Порівняйте це із задуманим призначенням, перш ніж налагоджувати будь-що вище другого рівня.

Запишіть, який із двох проєктів використовує розгортання. Примітка «з підтримкою VLAN» неоднозначна, і наступний інженер виходитиме з того варіанта, який вивчив першим. Довідка OpenVPN щодо VLANописує поведінку комутатора та контекст для кожного клієнта, і це найкоротший шлях переконатися, яка модель у вас працює.

Схожі статті