LINUX.ORG.RU
ФорумAdmin

OpenVPN и dnsmasq: доступ по имени хоста не работает (но nslookup хост видит)

 , , , ,


0

1

Поднял OpenVPN-сервер 10.8.0.0/24, установил на нём dnsmasq: пинг с клиента VPN во внутреннюю сеть по IP идёт, а по имени хоста — нет:

$ ping 192.168.1.35
PING 192.168.1.35 (192.168.1.35) 56(84) bytes of data.
64 bytes from 192.168.1.35: icmp_seq=1 ttl=127 time=47.0 ms
$ ping winpc
ping: unknown host winpc
При этом nslookup IP хоста определяет корректно:
$ nslookup winpc 10.8.0.1
Server:		10.8.0.1
Address:	10.8.0.1#53

Name:	winpc
Address: 192.168.1.35
В чём может быть причина?

/etc/openvpn/server.conf:

port 1194
proto udp
dev tun
ca keys/ca.crt
cert keys/server.crt
key keys/server.key
dh keys/dh2048.pem
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "route 192.168.1.0 255.255.255.0"
client-config-dir ccd
push "dhcp-option DNS 10.8.0.1"
push "dhcp-option WINS 10.8.0.1"
push "dhcp-option NBT 4"
client-to-client
keepalive 10 120
tls-auth easy-rsa/keys/ta.key 0
cipher AES-128-CBC
comp-lzo
max-clients 20
persist-key
persist-tun
status /var/log/openvpn/openvpn-status.log
log         /var/log/openvpn/openvpn.log
verb 4
mute 10
crl-verify keys/crl.pem

/etc/dnsmasq.conf:

no-resolv
address=/winpc/192.168.1.35
interface=tun0
listen-address=127.0.0.1,10.8.0.1

telnet с ovpn-клиента:

$ telnet 10.8.0.1 53
Trying 10.8.0.1...
Connected to 10.8.0.1.
Escape character is '^]'.
^]

telnet>


P.S. Хост winpc прописан в конфиге, потому что без этого даже nslookup его не видит.
Дело в том, что OVPN-сервер ходит в интернет через Zyxel Keenetic GIGA, который, в свою очередь, является DHCP-сервером внутренней сети OVPN-сервера (192.168.1.0/24). Видимо, правильно было бы в конфиге openvpn указать DNS-сервером роутер, но в этом случае не работает ни ping ни nslookup.
Подозреваю, что построил некорректную схему, буду благодарен за рекомендации по теме.



Последнее исправление: vkapas (всего исправлений: 1)

При этом nslookup IP хоста определяет корректно

А по дефолту точно запросы на тот сервер уходят? Что в /etc/resolv.conf у вас (ну или просто nslookup без указания сервера дерните)?

alozovskoy ★★★★★
()

nslookup winpc 10.8.0.1

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

Чувак, тебе надо мозг развивать.

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

Верно, спасибо за наводку, без указания сервера nslookup ходит на 127.0.0.1 и найти хост не может.

Server:		127.0.1.1
Address:	127.0.1.1#53

В /etc/resolv.conf, соответственно,

nameserver 127.0.1.1

Разве push "dhcp-option DNS 10.8.0.1" не за это отвечает?

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

Network-Manager. Но дело всё равно оказалось не в resolv.conf (он не обновлялся как раз из-за Network-Manager — комментирование dns=dnsmasq в /etc/NetworkManager/NetworkManager.conf решило эту проблему).

И сейчас ситуация с пингом с vpn-клиента во внутреннюю сеть OVPN-сервера выглядит вот так:

$ nslookup winpc 
Server:		10.8.0.1
Address:	10.8.0.1#53

Name:	winpc
Address: 192.168.1.35

$ ping winpc 
ping: unknown host winpc
vkapas
() автор топика
Ответ на: комментарий от vkapas

Если у вас после подключения к vpn-серверу не цепляется локальный dns-сервер, в конфиге клиента добавьте:

script-security 2
up /etc/openvpn/update-resolv-conf
down /etc/openvpn/update-resolv-conf

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

Спасибо, да, видел этот рецепт, но в итоге выбрал другой вариант, описанный выше — он тоже решает эту проблему.

vkapas
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.