Я размещаю некоторые веб-сайты в своей сети на сервере с именем WSS, и я хочу иметь возможность доступа к ним через мой WAN-адрес (используя заголовки хоста), а также внутри моей сети. Помимо работы веб-сервера, WSS также запускает службу DNS и сервер OpenVPN.
Например, у меня есть сайт под названием http://lights.foobar.com, и я использую API своего провайдера DNS для обновления источников света, других поддоменов и foobar.com, чтобы они указывали на мой IP-адрес в глобальной сети.
Мой маршрутизатор (172.16.0.1) назначает зарезервированные адреса DHCP на основе MAC-адреса для каждой машины, и WSS всегда назначается 172.16.0.6. Маршрутизатор также дает клиентам адреса DNS-серверов 172.16.0.6 (поле WSS) и 8.8.4.4. Я делаю это, потому что я хочу, чтобы клиенты за моим маршрутизатором использовали DNS-сервер на WSS, записи которого аналогичны тем, которые установлены в моем внешнем DNS-провайдере, за исключением того, что все они указывают на 172.16.0.6. Я использую заголовки узлов в IIS, чтобы каждый поддомен мог быть сопоставлен с нужным веб-сайтом.
Ipconfig /all моего ноутбука возвращает правильные DNS-серверы в правильном порядке.
Когда я пингую lights.foobar.com от клиента, я всегда получаю 172.16.0.6, однако после того, как машина вне моей сети подключается к OpenVPN, при пинге lights.foobar.com начинается показ адреса WAN. Эта проблема сохраняется даже после отключения клиента OpenVPN.
Nslookup на клиенте дает следующее:
C:\Users\MyClient>nslookup lights.foobar.com 172.16.0.6
DNS request timed out.
timeout was 2 seconds.
Server: UnKnown
Address: 172.16.0.6
DNS request timed out.
timeout was 2 seconds.
DNS request timed out.
timeout was 2 seconds.
DNS request timed out.
timeout was 2 seconds.
DNS request timed out.
timeout was 2 seconds.
*** Request to UnKnown timed-out
C:\Users\MyClient>
Но эта же команда на DNS-сервере показывает это:
C:\Users\myserver>nslookup lights.foobar.com 172.16.0.6
Server: lights.foobar.com
Address: 172.16.0.6
Name: lights.foobar.com
Address: 172.16.0.6
C:\Users\myserver>
Я не знаю, уместно ли это, но если я повторяю ту же команду, значение "сервер" циклически перебирает каждую из моих записей DNS и начинается снова.
Вот ipconfig /all для одного из моих клиентов маршрутизатора:
Wireless LAN adapter Wi-Fi:
Connection-specific DNS Suffix . :
Description . . . . . . . . . . . : Dell Wireless 1820A 802.11ac
Physical Address. . . . . . . . . : 54-8C-A0-A3-15-63
DHCP Enabled. . . . . . . . . . . : Yes
Autoconfiguration Enabled . . . . : Yes
Link-local IPv6 Address . . . . . : fe80::4829:6960:76c3:2fbd%5(Preferred)
IPv4 Address. . . . . . . . . . . : 172.16.0.32(Preferred)
Subnet Mask . . . . . . . . . . . : 255.240.0.0
Lease Obtained. . . . . . . . . . : Tuesday, August 16, 2016 11:12:16 PM
Lease Expires . . . . . . . . . . : Wednesday, August 17, 2016 3:12:16 AM
Default Gateway . . . . . . . . . : 172.16.0.1
DHCP Server . . . . . . . . . . . : 172.16.0.1
DHCPv6 IAID . . . . . . . . . . . : 39095456
DHCPv6 Client DUID. . . . . . . . : 00-01-00-01-1F-36-08-3C-54-8C-A0-A3-15-63
DNS Servers . . . . . . . . . . . : 172.16.0.6
8.8.4.4
NetBIOS over Tcpip. . . . . . . . : Enabled
Это файл конфигурации OpenVPN моего сервера:
port 1194
proto tcp
dev tun
ca "C:\\Program Files\\OpenVPN\\config\\ca.crt"
cert "C:\\Program Files\\OpenVPN\\config\\wss.crt"
key "C:\\Program Files\\OpenVPN\\config\\wss.key"
dh "C:\\Program Files\\OpenVPN\\config\\dh1024.pem"
server 10.8.0.0 255.255.255.0
push "redirect-gateway def1"
push "dhcp-option DNS 172.16.0.6"
client-to-client
duplicate-cn
ifconfig-pool-persist ipp.txt
status openvpn-status.log
keepalive 10 120
cipher BF-CBC
comp-lzo
max-clients 10
persist-key
persist-tun
log openvpn.log
verb 3
А вот конфигурация моего клиента (обратите внимание, я разрешаю один и тот же сертификат для подключения более одного раза)
client
dev tun
proto tcp
remote foobar.com 1194
resolv-retry infinite
nobind
persist-key
persist-tun
remote-cert-tls server
comp-lzo
verb 3
<ca>
-----BEGIN CERTIFICATE-----
(snip)
-----END CERTIFICATE-----
</ca>
<cert>
-----BEGIN CERTIFICATE-----
(snip)
-----END CERTIFICATE-----
</cert>
<key>
-----BEGIN PRIVATE KEY-----
(snip)
-----END PRIVATE KEY-----
</key>