zolt85
@zolt85
Программист

Как настроить DNS при использовании VPN?

Всем привет.
Решил я значит воспользоваться таким благом, как VPN-тонель из дома до любимой работы. Наш сисадмин сделал все настройки, прислал мне ключи. Вобщем проблем с подключением вроде нет. Настроил коннект через NetworkManager (у меня LinuxMint 15 KDE). Проблема заключается в том, что я не могу понять каким образом теперь резолвятся имена? Т.е. наши внутриконторские ресурсы живут в нашей сети с постфиксом company.local. При попытке пойти на такой ресурс (с подключенным VPN) ничего не происходит. Ping таких ресурсов тоже неудачен. Подскажите, что делать?
  • Вопрос задан
  • 22381 просмотр
Решения вопроса 1
@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
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
merryjane
@merryjane
Системный администратор
Сравните содержимое /etc/resolv.conf на рабочей машине и дома. Скорее всего при подключении vpn дома у вас не пропушились dns-сервера в этот файл. Попробуйте их прописать туда руками.
Ответ написан
zolt85
@zolt85 Автор вопроса
Программист
Всем спасибо, ребята, благодаря Вам, nslookup начал отдавать правильные адреса. Вот только браузер с ним не согласен, ни в какую по имени не открывает ресурс... Благо ресурсов не много, и прописать нужные имена в /etc/hosts не составило труда.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы