Страницы покупки роутеров показывают VPN-маршрутизацию как один флажок, и эта фраза скрывает три разных вопроса. Правило совпадает с устройством, которое отправляет трафик, с сервером, который его получает, или с обоими? Что происходит с трафиком, который не совпадает ни с одним? И когда два правила перекрываются, какое побеждает? Если записать ответ как пару источника и назначения, расплывчатый список функций превращается в проверяемый дизайн.

Название функции скрывает два конца

Медиаплеер, который должен использовать туннель, — это совпадение по источнику. Частный офисный префикс, который должен быть доступен через туннель, — это совпадение по назначению. Рабочая станция, которой туннель нужен только для одной службы, — это оба, и такое пересечение — случай, с которым большинство потребительских прошивок справляется плохо.

Запишите требование как пару до сравнения продуктов. Именно эту пару вы проверите позже.

Продукт со списком устройств или глобальным списком назначений может не выражать «только это устройство, только эти назначения». Разница не косметическая: глобальное правило назначения отправляет трафик каждого устройства к этому сайту через туннель, а правило устройства отправляет весь трафик этого устройства. Ни то, ни другое не является требованием. Проверьте этот случай на двух устройствах, прежде чем доверять экрану.

Постройте правило как пересечение

Таблица держит дизайн честным. Поместите сценарий слева, затем назовите отдельно совпадение отправителя и совпадение цели:

ScenarioSender matchTarget matchRule shape
Media player uses the tunnelPlayer addressAny internet destination except the LANSource only
Office prefix reachableAuthorized LAN devices10.40.0.0/16Target only
One app on one laptopLaptop addressThe service address setSource and target
Guest network never tunnelsGuest subnetAnyDeny, evaluated first

Третья строка — самая интересная, потому что ей нужны обе половины сразу. Если прошивка умеет выражать только одну ось, требование нужно разделить на два правила или перенести на устройство, которое это умеет.

Держите идентичность источника стабильной. Резервирование DHCP, выделенный сегмент или механизм идентичности устройства работают, а адрес, который меняется после истечения аренды, — нет. Включите IPv6, потому что один адрес IPv4 не идентифицирует весь трафик устройства.

Перекрытие решает приоритет

Перекрытие правил — это нормально. Широкое правило устройства и узкое правило назначения могут описывать один поток, и задокументированный порядок приоритета решает, какое победит. Привлекательный экран настроек не сообщает этот порядок.

Прочитайте в руководстве о порядке и о случае без совпадения, затем проверьте оба на трафике, который можно наблюдать:

ip rule show
ip route get 203.0.113.10

Если документация не указывает порядок, исходите из того, что более узкое правило может не победить, и проектируйте с учётом этого. Два правила, которые не могут конфликтовать, поддерживать легче, чем одно умное правило с недокументированным приоритетом.

Именам нужна политика обновления

Назначение, записанное как домен, добавляет проблему обслуживания. Роутер должен разрешить его, обновлять сопоставление, обрабатывать несколько адресов и поддоменов и справляться с DNS приложений, который обходит ожидаемый резолвер.

Копирование одного результата поиска в правило IP — это снимок, а не политика домена.

Решите, насколько старым может быть ответ, прежде чем правило станет неверным, и что делает роутер, когда разрешение не удаётся. Правило, которое сохраняет последний известный адрес, может пережить миграцию службы; правило, которое отбрасывает запись, может тихо остановить туннелирование. Оба поведения приемлемы, если они записаны рядом с правилом.

Определите состояние недоступности

Предпочтение маршрута не заставляет трафик идти только через VPN. Когда туннель не работает, роутер может блокировать поток, отправить его напрямую или использовать другой туннель, и у каждого выбора своя сигнатура отказа.

Решите, какое нужно требованию, затем проверьте это, остановив туннель и наблюдая за потоком:

curl -sS -o /dev/null -w "%{http_code}" --max-time 5 https://service.example/
ping -c 2 203.0.113.10

Трафик, исходящий от самого роутера, — отдельная область. Пересылка DNS, проверки обновлений и мониторинг могут запускать новые потоки от самого роутера, а не наследовать совпадение источника устройства. Учитывайте эти потоки явно, иначе они появятся в журналах как необъяснимые утечки.

Похожие статьи