Обход ограничения VDS хостера на использование сторонних DNS

Вдруг сегодня утром на одном из своих российских VDS обнаружил, что не работают все функции, который требуют преобразования доменных имён. Веб-сервер работал и пинги шли, и даже 8.8.8.8 прекрасно пинговался, т.е. Интернет-подключение присутствовало. Команды вроде

dig
drill www.archlinux.org @8.8.8.8

и т.п. говорили о разных проблемах, но суть одна – нет доступа к DNS серверу.

Файл /etc/resolv.conf у меня выглядит так:

nameserver 8.8.8.8
nameserver 8.8.4.4

Добавление в него

nameserver 208.67.222.222
nameserver 208.67.220.220

(это OpenDNS) результатов не дало.

На мой запрос в службу поддержку мне ответили:

Здравствуйте, Выполните в консоли сервера команду echo "nameserver 94.142.136.100" >> /etc/resolv.conf Если у вас Windows, Нужно в свойствах подключения к интернет, в свойствах ipv4 протокола сменить один из ДНС на 94.142.136.100 С уважением, Юлия

Т.е. в файл /etc/resolv.conf нужно дописать строку nameserver 94.142.136.100 (фактически добавить и использовать их DNS сервер).

Естественно, после этого всё заработало. Я бы не придал этому какое-либо значение, но, чёрт возьми, я же сам, буквально несколько дней назад делал тесты и показал, какую силу и возможности даёт контроль DNS записей!

На моё недоумённое уточнение, мне ответили:

Это временные проблемы. Приносим свои извинения за доставленные неудобства. С уважением, Юлия

Можно подождать и посмотреть за развитием событий. Но для моего случая я нашёл решение прямо здесь и сейчас как избежать блокировку хостером сторонних DNS серверов и продолжать использовать Google Public DNS.

И у Google Public DNS и у OpenDNS есть IPv6-адреса. Например, для DNS Гугла это:

nameserver 2001:4860:4860::8888
nameserver 2001:4860:4860::8844

Т.е. моя надежда на то, что блокировка сделана, как и многое другое в нашей самой замечательной стране, кое-как и что «авторы» блокировки просто забыли про IPv6-адреса. Чтобы фокус сработал, нужно, чтобы для вашего сервера был настроен IPv6 адрес. Это очень и очень просто. Посмотрите пример здесь (там для Arch Linux/BlackArch), но для Debian всё очень похоже, разве что другие имена сетевых интерфейсов и другие команды перезапуска.

Делаем контрольный тест:

dig

; <<>> DiG 9.10.4-P1 <<>>
;; global options: +cmd
;; connection timed out; no servers could be reached

Ожидаемый фейл. Добавляем в файл /etc/resolv.conf строки:

nameserver 2001:4860:4860::8888
nameserver 2001:4860:4860::8844

Делаем тест:

dig

; <<>> DiG 9.10.4-P1 <<>>
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 57085
;; flags: qr rd ra ad; QUERY: 1, ANSWER: 13, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;.                              IN      NS

;; ANSWER SECTION:
.                       14469   IN      NS      i.root-servers.net.
.                       14469   IN      NS      d.root-servers.net.
.                       14469   IN      NS      g.root-servers.net.
.                       14469   IN      NS      j.root-servers.net.
.                       14469   IN      NS      a.root-servers.net.
.                       14469   IN      NS      e.root-servers.net.
.                       14469   IN      NS      c.root-servers.net.
.                       14469   IN      NS      b.root-servers.net.
.                       14469   IN      NS      m.root-servers.net.
.                       14469   IN      NS      h.root-servers.net.
.                       14469   IN      NS      k.root-servers.net.
.                       14469   IN      NS      l.root-servers.net.
.                       14469   IN      NS      f.root-servers.net.

;; Query time: 25 msec
;; SERVER: 2001:4860:4860::8888#53(2001:4860:4860::8888)
;; WHEN: Wed Jun 08 07:45:05 MSK 2016
;; MSG SIZE  rcvd: 239

Как и следовало доказать – Win! И без всяких навязанных DNS.

01

Кстати, все изменения, внесённые в файл /etc/resolv.conf пропадают после перезагрузки сервера (привет тех.поддержки с грамотными советами!). Поэтому эти DNS сервера нужно прописать в одноимённую директиву в настройках сетевого адаптера. Пример файла с настройками в моём случае:

Description='A basic static ethernet connection'
Interface=ens3
Connection=ethernet
IP=static
Address=('185.117.153.79/22')
#Routes=('192.168.0.0/24 via 192.168.1.2')
Gateway='185.117.152.1'
DNS=('8.8.8.8' '8.8.4.4' '2001:4860:4860::8888' '2001:4860:4860::8844')

## For IPv6 autoconfiguration
#IP6=stateless

## For IPv6 static address configuration
#Routes6=('abcd::1234')
IP6=static
Address6=('2a02:f680:1:1100::3d5f/64' '2a02:f680:1:1100::3d60/64')
Gateway6='2a02:f680:1:1100::1'

Заключение

Естественно, это не последний трюк в рукаве. Но, думаю, те владельцы VDS, которых не устраивает подобное вмешательство, вместо технического противостояния выберут «переезд» VDS в другую страну…

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *