Smart TV у VPN: чому трансляція й DNS ламаються окремо
Спрямуйте трафік телевізора через маршрутизатор, а потім розглядайте селектор, резолвер, IPv6 і шлях трансляції як чотири окремі перевірки.
Ваш телевізор показує закордонний каталог, а кнопка трансляції на телефоні більше його не перелічує. Обидві скарги починаються з однієї фрази, яка називає чотири налаштування на чотирьох сторінках маршрутизатора. Виправте вихід — і виявлення ламається; виправте виявлення — і наступна оренда віддає вихід іншому пристрою. Порядок нижче йде від селектора до шляху трансляції.
Де живе кожне з чотирьох рішень
Запишіть усі чотири до відкриття меню, бо кожне живе на окремій сторінці й ламається в іншому місці. Селектор вибирає, до якого клієнта застосовується тунель, резолвер вирішує, де відповідають на імена, родина адрес вирішує, чи охоплено IPv6 взагалі, а локальний шлях вирішує, чи бачать телефон і телевізор одне одного досі. Зміна одного виглядає завершеною зі сторінки, на якій ви стоїте. Шкода від решти трьох з'являється пізніше, в іншому меню, як інша скарга.
Меню прошивок різняться, але чотири місця — рідко. Селектор — це статичне зіставлення на DHCP-сервері плюс відповідне правило брандмауера. Резолвер сидить біля служби DNS, де запис переспрямування або список вищих серверів вирішує, на які імена відповідає маршрутизатор і звідки виходять запити. Налаштування родини належить самому інтерфейсу, де IPv4 і IPv6 налаштовуються окремо і політика може охоплювати лише першу. Локальний шлях — це перемикач точки доступу, або ізоляція клієнтів, або гостьова мережа з власним брандмауером.
Зробіть так, щоб селектор пережив оренду
Працюють і політика для кожного пристрою, і окремий сегмент, а кращий вибір — той, який прошивка може підтримувати без пам'яті другої людини. Пастка — правило, прив'язане до адреси, яку DHCP-сервер видав за власним розкладом: воно працює, доки оренда не зміниться, а потім спрямовує ноутбук через іншу країну з причин, яких власник не бачить. Стійкість, а не охайність, — ось властивість, яку варто оптимізувати.
| Rule names the TV by | After the next lease | What it costs |
|---|---|---|
| whatever address it has now | may point at another client | silent misrouting weeks later |
| a reserved address | holds, if the reservation ships with it | one more entry to keep in step |
| a hardware address | holds, unless the device rotates it | privacy features can break it |
| a whole segment | holds for every device on it | neighbours inherit the exit |
Надішліть резервування й правило як одну зміну, бо правило, що переживає своє резервування, націлене на чуже обладнання. Правило для цілого сегмента — найдовговічніший і найгрубіший селектор, оскільки кожен пристрій за цим інтерфейсом успадковує вихід, потрібен він йому чи ні. Який би селектор ви не обрали, далі постає питання покриття: політика лише для IPv4 — половина рішення, а непокрита родина — та, що йде непоміченою.
З'ясуйте, який резолвер телевізор справді використовує
Відкрийте власні мережеві налаштування телевізора, перш ніж торкатися маршрутизатора, бо цю суперечку вирішує пристрій. Поле DNS, виставлене вручну, продовжує використовувати той сервер, що б не пропонував DHCP, а приставка, колись налаштована для іншого регіону, може досі вказувати на адресу, яка вже не відповідає. Якщо поле автоматичне, вирішує параметр DHCP маршрутизатора, і власний резолвер маршрутизатора стає наступним питанням. У будь-якому разі відповідь на екрані пристрою, а не в посібнику з прошивки.
На боці маршрутизатора важлива відмінність — між іменами, на які маршрутизатор відповідає сам, і іменами, які він пересилає, бо ці два шляхи можуть виходити через різні інтерфейси. Тому успішно розв'язаний запит нічого не каже про те, куди йде запит медіа, а на шлюзі Linux таблиця політик плюс один пошук маршруту відповідають на обидва питання, нічого не перехоплюючи на телевізорі:
ip rule show
ip route get 203.0.113.10
Прочитайте першу команду для правила, що позначає трафік телевізора, і другу — для інтерфейсу, який пакет до прикладної адреси справді використав би. Коли ці двоє розходяться, винен не резолвер, а політика. Змініть одну річ, потім знову запустіть пару, бо список правил чутливий до порядку і новий запис може затінити правило, що несло трафік. Призначення зарезервоване для документації, тому вставлений вивід читається як приклад.
Трансляція ламається на виявленні, а не на потоці
Трансляція — це щонайменше три розмови, і лише одна з них несе відео. Телефон виявляє телевізор через multicast або broadcast у локальному сегменті, відкриває канал керування, щоб сказати, що відтворювати, а потім телевізор або сам забирає потік, або отримує його пересланим із телефона. Виявлення ніколи не перетинає маршрутизатор, який не пересилає цей трафік, і саме так телевізор може бути спрямований точно як задумано і все ж ніколи не з'явитися в списку трансляції.
Гостьові мережі та ізоляція клієнтів — звична причина, і обидві роблять рівно те, для чого налаштовані. Вимкнення ізоляції в усій бездротовій мережі, щоб один пристрій знову з'явився, — звичне надмірне виправлення, і воно знову відкриває кожен шлях телефон-у-телефон, який налаштування мало закрити. Є вужчі відповіді: правило пропуску для трафіку виявлення й керування між двома адресами, окремий SSID для телевізорів або один задокументований виняток у гостьовій мережі.
Перевірте трансляцію, доки правило ізоляції ще на місці, потім додайте лише виняток виявлення і перевірте знову. Якщо друга спроба знаходить телевізор, виняток і є рішенням, а решта сегмента може залишитися як була.
Зупиніть тунель і подивіться, у який бік він ламається
Остання перевірка — та, яку більшість налаштувань пропускає: опустіть тунель і подивіться, чи телевізор зупиниться, чи тихо піде через локальне з'єднання. Політика, що виражає перевагу, ламається відкрито, і цю відмову легко проґавити, бо відтворення триває, поки вихід повертається до провайдера. Правило kill-switch ламається, навпаки, закрито, і телевізор нічого не повідомляє, доки тунель не повернеться. Жодна з двох поведінок не є неправильною; неправильно не знати, яку ви налаштували.
Після будь-якої зміни перевірте чотири речі в цьому порядку. Селектор досі відповідає пристрою після наступної оренди або перезавантаження. Резолвер відповідає на тому шляху, який задумує політика, а не з сервера, який запам'ятав пристрій. Родина адрес у політиці охоплює кожну родину, яку телевізор і мережа доступу справді використовують. Трансляція досі знаходить телевізор із того телефона, який буде справді використаний, а не з тестового телефона в тому самому SSID.
Тримайте ці чотири рядки поруч із конфігурацією маршрутизатора, а не в чаті: що зіставляє правило, який резолвер питає телевізор, яка родина охоплена і який локальний шлях потрібен трансляції. Наступна людина, яка відкриє брандмауер, прочитає конфігурацію значно раніше, ніж тікет. До того часу цією людиною можете бути ви.