Маршрутизация и DNS
Цель
Показать, почему маршрутизация и DNS являются центральными частями VPN-сценария, а не второстепенными настройками.
Теория
VPN или proxy-соединение отвечает только за доставку трафика до определенной точки. Решение о том, какой трафик отправлять через туннель, какой выпускать напрямую и какие DNS-серверы использовать, задается маршрутами и правилами DNS.
Неправильная маршрутизация приводит к недоступности ресурсов, утечкам DNS, обходу ожидаемого канала или к тому, что весь трафик уходит через сервер без реальной необходимости.
История
В корпоративных VPN маршрутизация часто строилась вокруг доступа к внутренним подсетям. В современных пользовательских и proxy-сценариях чаще встречаются split tunneling, доменные правила, географические списки, отдельная DNS-маршрутизация и разные outbound-направления.
Архитектура
Базовая модель включает:
- таблицу маршрутов операционной системы;
- правила клиента;
- DNS-резолвер;
- серверные routing-правила;
- outbound-направления;
- исключения для локальных сетей;
- правила для доменов, IP-диапазонов и приложений.
Настройка
Перед настройкой нужно выбрать режим:
- full tunnel — весь трафик идет через туннель;
- split tunnel — через туннель идет только часть трафика;
- domain-based routing — решение принимается по доменному имени;
- IP-based routing — решение принимается по IP-адресу;
- app-based routing — решение зависит от приложения, если клиент это
поддерживает.
Пример выбора режима:
| Сценарий | Подходящий режим | Почему |
|---|---|---|
| Доступ ко всем ресурсам через сервер | Full tunnel | Упрощает контроль маршрута и DNS |
| Доступ только к отдельным ресурсам | Split tunnel | Снижает нагрузку на сервер |
| Разные правила для доменов | Domain-based routing | Удобно для пользовательских сценариев |
| Корпоративные подсети | IP-based routing | Явно задает доступные сети |
Разбор параметров
default route— маршрут по умолчанию для трафика без специальных правил.split tunnel— выборочная отправка трафика через туннель.dns server— сервер, который разрешает доменные имена.dns leak— ситуация, когда DNS-запрос уходит вне ожидаемого канала.domain rule— правило маршрутизации по имени домена.ip rule— правило маршрутизации по адресу или подсети.outbound— направление, через которое сервер выпускает трафик.
Типовые ошибки
- настроить туннель, но оставить DNS у локального провайдера;
- направить весь трафик через сервер без оценки нагрузки;
- забыть исключения для локальной сети;
- создать конфликтующие routing-правила;
- считать доменное правило достаточным после того, как домен уже разрешен в IP;
- не проверять IPv6.
Безопасность
DNS может раскрывать больше информации, чем кажется: домены, время запросов и часть поведенческого профиля клиента. Для чувствительных сценариев нужно контролировать DNS-канал, исключать утечки и проверять, что IPv4 и IPv6 маршрутизируются согласованно.
Чек-лист
- Выбран full tunnel или split tunnel.
- Проверены DNS-серверы.
- Проверены утечки DNS.
- Описаны исключения для локальной сети.
- Проверены IPv4 и IPv6.
- Routing-правила упорядочены и не конфликтуют.