У меня есть 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>
.