Назад | Перейти на главную страницу

Сервер Openvpn может пинговать через IP, но не через имя хоста

У меня есть vserver (Ubuntu 14.04.2 LTS), на котором я запускаю OpenVPN. Почти все работает отлично: клиенты могут подключаться к другим клиентам через их IP-адреса и имена (мне пришлось изменить конфигурацию клиентов с помощью "script-security 2", "up / down / etc / openvpn / update-resolv-conf" и мне пришлось напишите небольшой скрипт, который вводит / обновляет записи DNS, чтобы добиться разрешения имен клиентов).

Единственная проблема в том, что мой сервер не поддерживает разрешение имен: на моем сервере я могу пинговать клиентов через «ping 10.8.0.2», но «ping clientname» приводит к «unknown host» (в то время как «ping clientname» работает, если я делаю это от одного из моих клиентов).

Я знаю, что это проблема, связанная с DNS, но я не могу от нее избавиться. Когда я заглянул в свой файл resolv.conf, я увидел:

nameserver 80.X.X.X
nameserver 80.X.X.X

Ну ладно, похоже, отсутствует локальный сервер имен. Я думал отредактировать resolv.conf. Я пробовал несколько записей («127.0.0.1, 127.0.1.1, 10.8.0.1»), ни одна из них не работала (после перезапуска службы openvpn).

Я также попытался отредактировать /etc/dhcp/dhclienf.conf и добавить «добавить серверы доменных имен 127.0.0.1» (и перезагрузить), но это тоже не имело никакого значения.

Мой server.conf выглядит так:

proto udp6

dev tun

ca   ./easy-rsa2/keys/ca.crt
cert ./easy-rsa2/keys/xxx.xxx.crt
key  ./easy-rsa2/keys/xxx.xxx.key

dh   ./easy-rsa2/keys/dh2048.pem

server 10.8.0.0 255.255.255.0

ifconfig-pool-persist ipp.txt

#this is a script that configures dns-entries for clients
client-connect "/etc/openvpn/scripts/learn-address.sh"
script-security 3 system

push "dhcp-option DNS 10.8.0.1"
push "dhcp-option DOMAIN name.domain"

client-to-client

keepalive 10 120

comp-lzo

persist-key
persist-tun

status openvpn-status.log
log-append  openvpn.log

verb 3

Может кто-нибудь указать, что я делаю не так? Я не могу быть первым, у кого возникла эта проблема. Я думаю, что это обычное поведение, когда сервер, на котором работает openvpn, также хочет разговаривать с клиентами по именам, а не только по IP.

У вас установлен DNS-сервер? OpenVPN не предоставляет никаких функций разрешения имен. Вам нужно запустить отдельный DNS-сервер на вашем сервере (или добавить что-то вроде push "dhcp-option DNS 8.8.8.8" к конфигурации вашего сервера. OpenVPN обновляет файл зоны / хостов только через скрипт обучения.

Пожалуйста, взгляните на эта ссылка.

Это обучающий сценарий, который обновляет файл hosts при подключении или отключении клиента. Он использует dnsmasq в качестве DNS-сервера.

Я установил resolvconf (через apt-get install resolvconf). Затем я настроил файл "/ etc / resolvconf / head" и добавил "nameserver 10.8.0.1" в качестве DNS-сервера. Кажется важным сделать это в главном файле (чтобы 10.8.0.1 был первым сервером имен в списке), а не в хвостовом файле! Я также пробовал это с хвостовым файлом, но получил неверные результаты.

Теперь я могу подключиться ко всем своим VPN-хостам через <vpn-hostname>.<domainname>.