Что такое DNS?
Аббревиатура DNS расшифровывается как Domain Name System. В этой «системе доменных имен» располагается информация по каждому домену в интернете, на каком IP-адресе тот расположен.
Благодаря этой системе стало возможным использовать «домены», т.н. имена сайтов. Например, site.com или site.ru, вместо обращения к ним по цифровым IP-адресам.
У самого сайта при этом может измениться сервер и IP-адрес, на котором он расположен, но посетители по-прежнему смогут заходить на него по тому же самому домену.
Запрос к DNS происходит так:
- Ваш компьютер отправляет к DNS-серверу вопрос: «на каком IP-адресе располагается домен site.com?»
- DNS-сервер отвечает: «он расположен по адресу 1.2.3.4».
После получения такого ответа компьютер продолжает отображать в адресной строке вашего браузера site.com, но сам загружает все файлы сайта именно с 1.2.3.4.
Для пользователя это происходит незаметно. Если вы хотите узнать, на каком IP-адресе расположен тот или иной сайт, введите в командной строке: nslookup site.com для Windows или host site.com для macOS и Linux.
Воспользуйтесь VPN c cобственными зашифрованными DNS-серверами
На всех серверах ExpressVPN установлен собственный DNS-сервер. Это означает надежную защиту вашего интернет-трафика и DNS-запросов.
- Без регистрации подключений и действий
- Без блокировки DNS, фильтрации или подмены трафика
- Более быстрая обработка DNS-запросов
- 256-битное шифрование
Видео: что такое DNS
Из этого видео вы узнаете, как незащищенные DNS-запросы ставят вашу конфиденциальность под угрозу и каким образом частные зашифрованные DNS-серверы ExpressVPN обеспечивают более надежную защиту и более высокую скорость.
Видео не воспроизводится? Скачайте текст (PDF, 75 КБ)
Что такое DNS?
IP-адреса и URL
У каждого подключенного к Интернету устройства есть IP-адрес — уникальный адрес в виде последовательности цифр. У вашего компьютера есть IP-адрес, как и у любого другого ПК, смартфона, сервера или сетевого устройства. Некоторые IP-адреса периодически меняются, другие остаются неизменными. При этом запомнить их достаточно сложно.
Вот почему IP-адреса сайтов необходимо переводить в слова и фразы, запомнить которые гораздо проще. Эти слова известны нам как URL (англ. Uniform Resource Locators, унифицированные указатели ресурса).
DNS, или система доменных имен
DNS (англ. Domain Name System, система доменных имен) — это каталог, где собраны все сайты и сервисы. Зная URL, вы можете воспользоваться DNS, чтобы найти соответствующий IP-адрес.
Присоединиться к доменной системе имен можно, запустив собственный сервер. Впрочем, большинство людей предпочитают использовать бесплатные DNS-сервисы, которые запущены интернет-провайдерами, системами доставки контента, рекламными сетями или, реже, волонтерами.
Бесплатные DNS или VPN с собственными DNS-серверами
Бесплатные DNS
Так как бесплатные DNS-серверы знают, какие сайты вы посещаете и какие сервисы используете, их администраторы могут узнать про вас очень многое.
Некоторые бесплатные DNS идут еще дальше и зарабатывают деньги, продавая личные данные своих пользователей — например, компаниям, занимающимся рекламой. С помощью подобных профилей можно оценить рыночную стоимость сайта, его будущую популярность и основную пользовательскую аудиторию.
Такие инновационные разработки, как DoH (DNS-через-HTTPS) и DoT (DNS-через-TLS) могут защитить DNS-запросы. Вот только большинство бесплатных DNS-сервисов, к сожалению, по-прежнему не используют ни DoH, ни DoT, ни какие бы то ни было иные методы шифрования. Это значит, что ваши действия в Сети могут стать известны не только администрации сервиса, но и, фактически, всем желающим.
VPN с собственными DNS-серверами
Многие VPN защищают только интернет-трафик, оставляя DNS-запросы пользователей уязвимыми. ExpressVPN решает эту проблему с помощью собственных DNS-серверов с поддержкой шифрования для каждого отдельного VPN-сервера.
Когда вы используете ExpressVPN, ваши DNS-запросы обрабатываются непосредственно на наших серверах — посторонние в этом процессе не задействованы. При этом вам не нужно нигде отдельно регистрироваться — приложение ExpressVPN защитит ваши DNS-запросы автоматически с помощью того же шифрования и тех же протоколов туннелирования, что и любые другие ваши действия.
Не работает разрешение имен DNS при VPN подключении в Windows
19.12.2023
itpro
Windows 10, Windows 11, Windows Server 2019
комментариев 18
По умолчанию для всех VPN подключений в Windows используется режим Force Tunnel (в настройках VPN включена опция ‘ Use default gateway on remote network ‘/’ Использовать основной шлюз в удаленной сети ‘). В этом режиме для разрешения имен будут использоваться DNS сервера, которые назначены вашему подключению сервером VPN, и вы не сможете разрешать имена устройств в вашей локальной сети.
Онлайн-курс по устройству компьютерных сетей
На углубленном курсе «Архитектура современных компьютерных сетей» вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.
Для VPN подключения в Windows доступно два режима:
-
Force Tunnel ( включена опция Use default gateway ) — весь трафик, в том числе DNS, отправляется в VPN туннель. В таком режиме после подключения к VPN вы теряете возможность резолвить DNS имена хостов в вашей локальной сети (после подключения к VPN вы также теряете доступ в Интернет через свою LAN). Доступ будет работать только по IP адресам (частично в этом случае спасает кэш DNS клиента);
В Google я нашел рекомендации по отключению IPv6 на локальном (LAN) подключении и это работает (если вы хотите использовать Force-Tunnel).
Windows 10/11 отправляет DNS запросы с сетевого интерфейса с наивысшим приоритетом (у которого самое маленькое значение метрики интерфейса). Чтобы вывести значения метрик сетевых интерфейсов компьютера, выполните PowerShell команду:
Get-NetIPInterface | Sort-Object Interfacemetric
На данном компьютере есть два подключение:
Это значит, что ваши DNS запросы отправляются через интерфейс с меньшей метрикой (Ethernet) на ваши локальные DNS сервера, а не на DNS сервера VPN подключения. В такой конфигурации вы не можете резолвить адреса во внешней VPN сети.
Windows 10/11 задают метрики IPv4 сетевым интерфейсам автоматически в зависимости от их скорости и типа:
Скорость и тип подключения | Метрика |
Ethernet 1 Гб | 25 |
Ethernet 100 Мб | 35 |
Wi-Fi интерфейс со скоростью 50-80 Мб | 50 |
Например, вы хотите, чтобы DNS запросы отправлялись через VPN подключение. В нашем примере это означает, что нужно увеличить метрику локального Ethernet адаптера и сделать его больше 100.
Вы можете изменить метрики сетевых интерфейсов из графического интерфейса или из командной строки.
- Откройте панель управления сетевыми подключениями ( ncpa.cpl ), откройте свойства вашего Ethernet подключения, выберите свойства протокола TCP/IPv4, перейдите на вкладку “Дополнительные параметры TCP/IP”. Снимите галку “Автоматическое назначение метрики” и измените метрику интерфейса на 120.
- Также вы можете изменить метрику с помощью команд PowerShell для управления сетевыми настройками (используйте индекс вашего LAN интерфейса, полученный с помощью командлета Get-NetIPInterface ):
Set-NetIPInterface -InterfaceIndex 11 -InterfaceMetric 120
Или netsh (нужно указать имя вашего LAN подключения)
netsh int ip set interface interface=»Ethernet 3″ metric=120
Аналогично вы можете уменьшить значение метрики в свойствах VPN подключения.
В такой конфигурации DNS запросы будут выполняться через VPN подключение.
Также вы можете изменить настройки вашего VPN подключения, изменив режим на SplitTunneling (трафик DNS по умочалнию идет в вашу LAN) и указать DNS суффикс для подключения c помощью PowerShell:
Get-VpnConnection
Set-VpnConnection -Name «VPN» -SplitTunneling $True
Set-VpnConnection -Name «VPN» -DnsSuffix yourdomain.com
Указанный DNS суффикс будет автоматически добавляться к коротким именам при отправке их на DNS сервер.
Также можете указать трафик каких подсетей нужно всегда отправлять в VPN туннель:
Add-VpnConnectionRoute -ConnectionName $VpnName -DestinationPrefix 172.16.10.0/24
Add-VpnConnectionRoute -ConnectionName $VpnName -DestinationPrefix 10.24.2.0/24
См статью об автоматическом добавлении статических VPN маршрутов в Windows.
Если вы используете OpenVPN сервер, вы можете назначить клиентам дополнительные маршруты и DNS сервера с помощью опций:
push "route 10.24.1.0 255.255.255.0" push "dhcp-option DNS 192.168.100.11"
В версиях с Windows 8.1 до Windows 1703 по умолчанию включена опция Smart Multi-Homed Name Resolution (SMHNR). При активной SMHNR Windows отправляет DNS запросы на все известные системе DNS сервера параллельно и использует тот ответ, который пришел быстрее. Это не безопасно, т.к. потенциально внешние DNS сервера (которые указаны в вашем VPN подключении) могут видеть ваши DNS запросы (утечка ваших DNS запросов вовне). Чтобы предотвратить утечку DNS запросов, желательно отключить SMHNR с помощью групповой политики:
Set-ItemProperty -Path «HKLM:\Software\Policies\Microsoft\Windows NT\DNSClient» -Name DisableSmartNameResolution -Value 1 -Type DWord
Set-ItemProperty -Path «HKLM:\SYSTEM\CurrentControlSet\Services\Dnscache\Parameters» -Name DisableParallelAandAAAA -Value 1 -Type DWord
Несколько полезных статей об использовании VPN в Windows:
- Запустить VPN подключение до входа в Windows.
- Автоматически переподключиться к VPN при разрыве соединения
Онлайн-курс по устройству компьютерных сетей
На углубленном курсе «Архитектура современных компьютерных сетей» вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.
Предыдущая статья Следующая статья
Как настроить DNS при использовании VPN?
Всем привет.
Решил я значит воспользоваться таким благом, как VPN-тонель из дома до любимой работы. Наш сисадмин сделал все настройки, прислал мне ключи. Вобщем проблем с подключением вроде нет. Настроил коннект через NetworkManager (у меня LinuxMint 15 KDE). Проблема заключается в том, что я не могу понять каким образом теперь резолвятся имена? Т.е. наши внутриконторские ресурсы живут в нашей сети с постфиксом company.local. При попытке пойти на такой ресурс (с подключенным VPN) ничего не происходит. Ping таких ресурсов тоже неудачен. Подскажите, что делать?
- Вопрос задан более трёх лет назад
- 22110 просмотров
Комментировать
Решения вопроса 1
younghacker @younghacker
Скорее всего имена ресолвятся через вашего провайдера.
Вам правильно подсказали загдянуть в /etc/resolv.conf
Можно ещё посмотреть, что вернёт в качестве сервера
nslookup google.com
Чтобы проверить отвечают ли ваши сервера (мало ли у вас настроен dnsmasq куда-то наружу) попробуйте
nslookup somehost.company.local x.x.x.x
где x.x.x.x адрес вашего фирменного dns
Команда должна вернуть правильный адрес.
Как вариант можно не push-ить адреса dns серверов через vpn, а поднять локально dnsmasq и настроить его чтобы он вашу зону company.local ресолвил с указанного вашего фирменного dns.
cat /etc/dnsmasq.d/intranet.company.local.conf server=/company.local/x.x.x.x cat /etc/dnsmasq.conf interface=lo no-dhcp-interface=* bind-interfaces clear-on-reload local-ttl=3600 neg-ttl=3600 max-ttl=7200 conf-dir=/etc/dnsmasq.d
И в iptables можно перехватить все запросы на внешний tcp/udp 53 и завернуть их в локальный dnsmasq. Только на всякий случай оставить выход наружу только для nobody
*nat :PREROUTING ACCEPT [0:0] :POSTROUTING ACCEPT [0:0] :OUTPUT ACCEPT [0:0] # dns requests from nobody are transparent -A OUTPUT -p tcp -m tcp --dport 53 -m owner --uid-owner nobody -j ACCEPT -A OUTPUT -p udp -m udp --dport 53 -m owner --uid-owner nobody -j ACCEPT # all other dns requests are routed to local resolver (dnsmasq) -A OUTPUT -p tcp -m tcp --dport 53 -j DNAT --to-destination 127.0.0.1 -A OUTPUT -p udp -m udp --dport 53 -j DNAT --to-destination 127.0.0.1
Третий способ — прописать необходимые адреса в
/etc/hosts