Ізоляція клієнтів Wi-Fi проти локального доступу через VPN: що вас блокує
Два пристрої в одній мережі SSID усе одно можуть не бачити одне одного. Порівняйте, що блокує ізоляція клієнтів Wi-Fi і що маршрутизує тунель VPN.
Поставте два телефони в одну гостьову мережу SSID, і жоден не бачить іншого, хоч обидва виходять в інтернет. Додайте VPN-клієнт на одному з них, і принтер за три метри залишається невидимим, тоді як сервер на іншому континенті відповідає на ping. У тунелі нічого не зламано; тут задіяні два окремі рішення про доступ, і лише одне з них про маршрутизацію. Точка доступу вирішує, чи можуть бездротові клієнти говорити одне з одним, а клієнт VPN вирішує, які призначення виходять через тунель. Плутанина між цими двома дає години безглуздих змін конфігурації.
Дві брами незалежні
Ізоляція клієнтів — це рішення комутації. Точка доступу приймає кадр від однієї асоційованої станції, дивиться на призначення, помічає, що призначення — інша станція на тому самому мосту, і відкидає його. IP-адреса станції для цього рішення не має значення, як і VPN.
Маршрутизація — інше рішення, ухвалене на клієнті. Таблиця маршрутів VPN вирішує, чи пакет до 192.168.1.50 потрапить у тунель, чи вийде через інтерфейс Wi-Fi. Якщо пакет виходить через Wi-Fi, а точка доступу ізолює клієнтів, він гине на точці доступу. Якщо пакет входить у тунель, точка доступу ніколи не бачить початкового призначення і не може нічого ізолювати.
Що блокує ізоляція на типовій точці доступу
Виробники постачають це під кількома назвами: ізоляція клієнтів, ізоляція AP, ізоляція станцій або гостьова мережа, яка це передбачає. У OpenWrt опція для кожного інтерфейсу — isolate всередині бездротової конфігурації, як описано в документації з бездротових мереж, а гостьовий SSID зазвичай отримує власний міст і зону брандмауера. Ефект у тому, що unicast-кадри між клієнтами не передаються через міст, тому ping, з’єднання SMB або завдання друку до сусіда не вдається, хоч обидва пристрої показують повний сигнал.
Протоколи виявлення страждають першими й найпомітніше. mDNS для принтерів і медіапристроїв іде multicast на 224.0.0.251, SSDP використовує 239.255.255.250, і те, чи ці кадри перетинають міст, залежить від виробника та від того, чи ввімкнене перетворення multicast у unicast. Пристрій, якого немає в списку, — слабший доказ, ніж невдале пряме з’єднання з відомою адресою.
Що VPN змінює, а що змінити не може
Повний тунель забирає маршрут за замовчуванням, тому локальні підмережі доступні лише якщо клієнт зберігає для них конкретніший маршрут. Розділені тунелі роблять навпаки і за задумом зберігають локальний доступ. Жодне з цих налаштувань не може змусити точку доступу, що ізолює, передати кадр між двома її клієнтами, тому дозвіл локального трафіку в клієнті VPN необхідний, але недостатній.
Зворотний випадок так само частий. Точка доступу дозволяє трафік між клієнтами, клієнт VPN виключає локальну підмережу з тунелю, а принтер усе одно не відповідає, бо брандмауер хоста вважає мережу Wi-Fi публічною. Три шари, три різні значення за замовчуванням, і лише маршрут видно в більшості журналів VPN.
Визначте, яка брама зачинена
Почніть із тесту, який прибирає VPN із картини: підключіть два звичайні пристрої до одного SSID і спробуйте дістатися одного з іншого за адресою. Якщо це не вдається, точка доступу ізолює, і жодне налаштування VPN цього не виправить. Якщо вдається, перейдіть до клієнта і виконайте ip route get 192.168.1.50 у Linux або Find-NetRoute -RemoteIPAddress 192.168.1.50 у Windows; вивід називає інтерфейс, який використає пакет.
Коли маршрут указує на інтерфейс Wi-Fi, пакет виходить без шифрування, і питання стає в тому, чи дозволяють це точка доступу і брандмауер хоста. Коли маршрут указує на тунель, призначення надсилається на сервер VPN, що є неправильним для пристрою в тій самій локальній мережі й зазвичай означає, що список дозволених у тунелі занадто широкий.
Пряме підключення до порту принтера — кращий тест, ніж список виявлення. nc -vz 192.168.1.50 9100 у Linux або Test-NetConnection 192.168.1.50 -Port 9100 у PowerShell повідомляє, чи адреса взагалі доступна, перш ніж у розмову вступить будь-яке спарювання на рівні застосунку.
Виберіть виправлення для мережі, у якій ви перебуваєте
У готельній або гостьовій мережі ізоляція навмисна, і намагатися її побороти не варто. Вважайте локальний пристрій недоступним, використовуйте VPN, щоб дістатися хоста, який може друкувати або ділитися, і перестаньте ставитися до SSID як до локальної мережі.
Удома вимикати ізоляцію в основному SSID розумно, коли пристрої ваші, а гостьовий SSID залишається ізольованим. Налаштування живе в бездротовій конфігурації точки доступу, і місце йому там, а не у винятках брандмауера на кожному клієнті.
В офісі припускайте, що точка доступу, VLAN і брандмауер хоста навмисні. Ескалуйте з результатами тестів замість прохання вимкнути ізоляцію, бо мережа, що розділяє клієнтів, зазвичай щось захищає.
Перевіряйте застосунок, а не лише ping
Успішний ping доводить шлях, а не службу. Принтери часто приймають необроблений 9100 або IPP на 631, але відмовляють у виявленні, а файловому ресурсу потрібні 445 і робоче розв’язання імен. Підтвердьте порт, який використовує застосунок, потім повторіть реальне завдання на пристрої.
Тримайте два шари окремо у своїх нотатках: що дозволяє мережа Wi-Fi і що маршрутизує VPN. Наступного разу, коли пристрій зникне зі списку, цей поділ підкаже, де шукати перш за все.