В продолжение OpenVPN: настройка OpenVPN Access Server и AWS VPC peering – пример настройки DNS.
UPD: решение, описанное в этом посте – рабочее, но есть более правильный вариант. См пост AWS: VPC peering DNS resolution и настройки DNS для OpenVPN AS.
Дано: домен ci.example.com, который должен резолвиться на публичный IP сервера с Jenkins при подключении напрямую, через Интернет, и на приватный IP – при подключении через VPN-соединение.
Для этого на сервере с OpenVPN устанавливаем dnsmasq
:
[simterm]
# apt -y install dnsmasq
[/simterm]
Создаём файл /etc/dnsmasq.hosts
, в котором хардкодим приватные адреса для нужных доменов:
10.0.5.10 ci.example.com 172.31.36.107 nexus-repo.example.com 10.0.3.105 rabbitadmin-production.example.com 10.0.1.6 monitor.example.com
Обновляем /etc/dnsmasq.conf
– добавляем addn-hosts
:
listen-address=127.0.0.1 listen-address=10.0.10.4 bind-interfaces log-queries addn-hosts=/etc/dnsmasq.hosts
Перезапускаем dnsmasq
:
[simterm]
root@openvpnas2:~# service dnsmasq restart
[/simterm]
Проверяем локально:
[simterm]
root@openvpnas2:~# dig @localhost ci.example.com +short 10.0.5.10
[/simterm]
Переходим в админпанель OpenVPN AS, и в VPN Settings включаем Have clients use specific DNS servers:
Где в Primary DNS Server указываем приватный IP хоста с OpenVPN сервером.
Перезапускаем подключение локально:
[simterm]
$ sudo openvpn --config vpnroot-client.ovpn ... Fri Feb 22 16:53:58 2019 /usr/bin/ip link set dev tun0 up mtu 1500 Fri Feb 22 16:53:58 2019 /usr/bin/ip addr add dev tun0 172.27.240.25/20 broadcast 172.27.255.255 Fri Feb 22 16:53:58 2019 /etc/openvpn/update-resolv-conf tun0 1500 1553 172.27.240.25 255.255.240.0 init dhcp-option DNS 10.0.10.4 ...
[/simterm]
Проверяем локальный resolv.conf
на рабочей машине:
[simterm]
$ cat /etc/resolv.conf # Generated by resolvconf nameserver 10.0.10.4
[/simterm]
Проверяем разрешение имён:
[simterm]
$ dig ci.example.com +short 10.0.5.10
[/simterm]
И любой другой:
[simterm]
$ dig google.com +short 74.125.193.100 74.125.193.101 74.125.193.102
[/simterm]
Готово.