LINUX.ORG.RU
решено ФорумAdmin

Проблемы с DNS на VPN

 , , , ,


0

0

Прошу помощи знатаков!

Ubuntu 20.04

Что имеем. Есть локальная сеть с VPN сервером L2TP+IPSec, есть сервер на VDS Ubuntu 20.04, сервер VDS подключен клиентом в локальную сеть со всеми маршрутами через xl2tp+strongswan+ipsec, все видят друг друга и общаются между собой в локальной сети, все работало хорошо и при поднятии VPN благополучно прописывался DNS VPN’а в /etc/resolv.conf, но после видимо какого то обновления пакетов настала беда, каким то образом начал свою работу systemd-resolved, файл /etc/resolve.conf стал символической ссылкой на /run/systemd/resolve/stub-resolve.conf и при подключении VPN не работает DNS который в локальной сети, 3 дня борюсь не могу починить, прошу помощи кто сталкивался с таким?


Есть 2 варианта:

  1. Разобраться с существующим вариантом (например, при использовании systemd-resolved и OpenVPN ставится дополнительно пакет openvpn-systemd-resolved), проверяя до и после соединения resolvectl status и настраивая systemd-resolved.

  2. Откатиться обратно. Скорее всего, у тебя ранее был вариант ifupdown + resolvconf (при использовании resolvconf /etc/resolv.conf будет так же симлинком, но на другой путь)

Dimez ★★★★★
()
Последнее исправление: Dimez (всего исправлений: 2)

и при подключении VPN не работает DNS который в локальной сети, 3 дня борюсь не могу починить, прошу помощи кто сталкивался с таким?

У тебя в openvpn указан DNS для использования туннеля.
смотри в /etc/openvpn/server/server.conf
push "dhcp-option DNS yourbestDNS(чаще всего публичный, чтобы не палить контору)"
Клиент полностью берёт настройки DNS у openvpn.

masterOf
()
Ответ на: комментарий от anonymous

Какая часть предложенного в сообщении смутила бьющего себя по лицу?

Вполне рабочий вариант. Если systemd-resolved создаёт проблемы - в топку его.

Если автор не готов его настроить - его можно убрать.

Но вообще, systemd-resolved умеет перенаправлять запроси исходя из DNS зоны доменов, к которым идёт обращение, но VPN подключение должно передавать DNS зону и свои DNS сервера.

А при запросах до серверов этой зоны нужно использовать FQDN имена серверов.

anonymous
()
Ответ на: комментарий от anonymous

Какая часть предложенного в сообщении смутила бьющего себя по лицу?

Естественно, что «Удали ссылку, создай файл».

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

Dimez ★★★★★
()
Ответ на: комментарий от Dimez

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

Попробуй.

anonymous
()
Ответ на: комментарий от Dimez
  1. У нас не OpenVPN
  2. В том то и дело что было изначально без каких либо симлинков и с файлом /etc/resolv.conf все работало и я видел что при подключении к VPN туда добавлялся DNS сервера от VPN
Kot837
() автор топика
Ответ на: комментарий от masterOf

/etc/resolv.conf стоит симлинк

так же пробовал симлинк переделывать на /run/systemd/resolve/resolv.conf и так же пробовал на /run/systemd/resolve/stub-resolv.conf все безрезультатно

Kot837
() автор топика
Ответ на: комментарий от anonymous

В том то и дело что по какой-то причине VPN перестал передавать DNS сервера, потому что до он записывал и удалял сервер DNS в /etc/resolv.conf я пробовал и в скрипте /etc/ppp/ip-up.d/0000usepeerdns переписывать адрес до resolv.conf бесполезно, можно конечно в глобальных DNS прописать да DNS имена начинают работать но, 1 момент если VPN соединение обрывается и вновь поднимается то он потом не работает, вообщем это дикие все костыли, должно быть по человечески VPN поднялся DNS добавился и наоборот

Kot837
() автор топика

Внесу еще ясность, у нас локалка домашняя, частная сеть, состоит из 4 сегментов, везде стоят MikroTik`и все они соединены по VPN L2TP+IPSec с маршрутизацией, поэтому возможные варианты перейти на OpenVPN или еще что то отпадают так как нам перенастраивать сеть да и L2TP+IPSec нас вполне устраивает, я почти неделю убил чтоб настроить клиент, автозагрузки, маршруты и тд на Ubuntu все работает хорошо единственный момент остался с этим DNS.

Kot837
() автор топика
Ответ на: комментарий от anonymous

Вообщем попробывал данный вариант но есть но, удалил симлинк и файл, создал новый resolv.conf с nameserver 127.0.0.53, после перезагрузки файл не переделывается на симлинк и находиться как изначально конфигом но, 1 момент при отключении и подключении а так же при перезагрузке VPN так и не вносит в него изменения и не добавляет свой DNS от VPN`а следовательно получается проблема кроется где то дальше именно в VPN так как VPN не может внести свой DNS не в родной resolv не в resolv system-resolved по симлинке, 2 момент если прописываю DNS от VPN вручную в /etc/resolv.conf да DNS начинает работать но DNS сервер прописывается в глобальные сервера и идут затупы в случае отпада VPN это тоже костыль, DNS должен нужным образом присваиваться в интерфейсе ppp0 как положено, в случает отпада он убирается.

Global LLMNR setting: no MulticastDNS setting: no DNSOverTLS setting: no DNSSEC setting: no DNSSEC supported: no Current DNS Server: 10.0.0.1 DNS Servers: 10.0.0.1 DNSSEC NTA: 10.in-addr.arpa

Link 4 (ppp0) Current Scopes: none DefaultRoute setting: no LLMNR setting: yes MulticastDNS setting: no DNSOverTLS setting: no DNSSEC setting: no DNSSEC supported: no

Link 2 (eth0) Current Scopes: DNS DefaultRoute setting: yes LLMNR setting: yes MulticastDNS setting: no DNSOverTLS setting: no DNSSEC setting: no DNSSEC supported: no Current DNS Server: 8.8.8.8 DNS Servers: 8.8.8.8 8.8.4.4

Kot837
() автор топика
Ответ на: комментарий от anonymous

А вот проверил - да, сейчас не заменяется ни при перезагрузке, ни при обновлении системы (когда systemd* пакеты обновляются)

Не знаю, почему у меня в голове была инфа, что файл безусловно ссылкой заменяется. Видимо, застряло из старых переходных версий.

Спасибо, век живи - век учись.

Dimez ★★★★★
()
Ответ на: комментарий от Kot837

Посмотри в файл /etc/ppp/ip-up.d/0000usepeerdns

Там есть магическая строчка

# exit if systemd-resolved is running
[ -e /run/systemd/system ] && \
  systemctl is-active --quiet systemd-resolved.service &&
  exit 0

Как ты думаешь, что она означает? :)

Ну т.е. тебе надо тушить systemd-resolved (и тогда 0000usepeerdns будет работать), либо настраивать systemd-resolved.

Dimez ★★★★★
()
Последнее исправление: Dimez (всего исправлений: 1)
Ответ на: комментарий от anonymous

Пробовал все так же по этим мануалам прописывается ДНС в глобальные, в случае падения VPN и не доступности идут затупы это все костыли, проблема именно в VPN почему он не присваевает именно ДВС себе на интерфейс ppp0

Kot837
() автор топика
Ответ на: комментарий от Dimez

Я в линуксах не спец но уже понятно к чему, я до этого пробовал этот файл где есть /etc/resolv.conf переписывать адрес на прямую до конфигов systemd-resolv но не чего не получилось, и тут все пробы уже все ведет к тому что это сам VPN виноват, так как с удалением ссылки на resolv.conf VPN перестал в него вносить изменения как было раньше следовательно если дело не в systemd-resolved и не в файле resolv.conf остаеться виновником VPN, сейчас попробую

Kot837
() автор топика
Ответ на: комментарий от Dimez

Чтение списков пакетов… Готово Построение дерева зависимостей Чтение информации о состоянии… Готово Уже установлен пакет resolvconf самой новой версии (1.82). Обновлено 0 пакетов, установлено 0 новых пакетов, для удаления отмечено 0 пакетов, и 0 пакетов не обновлено.

Kot837
() автор топика
Ответ на: комментарий от Dimez

/etc/resolv.conf nameserver 127.0.0.1

dpkg -l | grep libnss ii libnss-resolve:amd64 245.4-4ubuntu3.23 amd64 nss module to resolve names via systemd-resolved ii libnss-systemd:amd64 245.4-4ubuntu3.23 amd64 nss module providing dynamic user and group name resolution ii libnss3:amd64 2:3.98-0ubuntu0.20.04.2 amd64 Network Security Service libraries

Kot837
() автор топика
Ответ на: комментарий от Dimez

по одной тут инструкции в интернете вырубил systemd-resolved и resolvconf чтоб использовался только /etc/resolv.conf но по какой то причине VPN как делал раньше в файл не добавляет свой днс

Kot837
() автор топика
Ответ на: комментарий от Kot837

Значит должно работать.

Проверяй утилитами

dig ya.ru +short
nslookup ya.ru

dig ya.ru @IP_твоего_DNS
nslookup ya.ru IP_твоего_DNS

Если будешь отправлять вывод команд на форум приложи содержимое /etc/resolv.conf

cat /etc/resolv.conf
ls -ls /etc/resolv.conf

Используй разметку для помещения выводов и содержимого файлов.

anonymous
()