Как обойти pi-hole DNS на Debian

Вопрос или проблема

Я настроил pi-hole и некоторые другие вещи на сервере Debian, используя Docker.

Pi-hole выступает в роли DNS для всей моей сети (я добавил IP сервера в конфигурацию dns на роутере)

Проблема в том, что у меня нет интернета, когда pi-hole отключен.

Например, когда я делаю некоторые настройки в моей docker-compose, мне нужно его отключить.

Есть ли способ обойти dns pi-hole только на сервере, на котором он работает?

Я знаю, что у Google есть некоторые DNS-серверы на 8.8.8.8 и 8.8.4.4. Как/где их настроить?

Сегмент сети 2.2.*.* принадлежит Oracle America Inc; публичные DNS-серверы IPv4 Google: 8.8.8.8 и 8.8.4.4.

Так как вы сообщили вашему роутеру использовать pi-hole в качестве DNS-сервера, вероятно, эта информация распространяется по вашей сети с помощью DHCP.

Чтобы обойти это, вам нужно настроить сервер Debian так, чтобы он игнорировал предоставленные DHCP DNS-сервера и настраивал его для использования других. Как это сделать, зависит от того, как управляется IP-конфигурация вашего сервера.

С использованием NetworkManager

Если вы используете NetworkManager, вам следует начать с поиска имени подключения. Это можно сделать с помощью команды nmcli connection show и поиска активных подключений (те, у которых поле DEVICE не пустое и обычно отображается зеленым цветом). Если эта команда выдает только сообщение об ошибке, то, вероятно, вы не используете NetworkManager и вам следует пропустить этот раздел.

Затем вы должны настроить это подключение на игнорирование DHCP-серверов DNS с помощью:

nmcli connection modify "<your connection name>" ipv4.ignore-auto-dns yes

А затем настроить некоторые собственные DNS-серверы, например, публичные DNS-серверы Google:

nmcli connection modify "<your connection name>" +ipv4.dns 8.8.8.8
nmcli connection modify "<your connection name>" +ipv4.dns 8.8.4.4

Последний шаг – обновить подключение, чтобы новые настройки вступили в силу:

nmcli connection up "<your connection name>"

С использованием ifupdown (т.е. с настройками сети в /etc/network/interfaces[.d] только)

В этом случае вам нужно настроить фактическую утилиту DHCP-клиента для замены. Обычно в этом случае в Debian клиентом DHCP является dhclient, а его конфигурация находится в файле /etc/dhcp/dhclient.conf.

Добавьте строку вроде этой в /etc/dhcp/dhclient.conf, чтобы переопределить назначенные DHCP DNS-серверы собственными:

supersede domain-name-servers 8.8.8.8, 8.8.4.4;

Чтобы настройка вступила в силу, отключите и снова включите ваше сетевое подключение, используя ifdown и ifup. Конечно, лучше быть локально вошедшим в сервер, когда вы это делаете, но указание обеих команд на одной строке команды должно работать даже через SSH-соединение, если в конфигурации нет ошибок. Например, если ваша сетевая интерфейс называется eno1, и вы работаете как root:

ifdown eno1; ifup eno1

Другие возможности

Хотя вышеуказанные способы могут быть наиболее распространенными для работы с конфигурациями сети в современных Debian, это, безусловно, не единственные возможные варианты; например, вы можете установить дополнительный netplan, заменить утилиту клиента DHCP по умолчанию dhclient на что-то другое или даже заменить это все своими собственными скриптами, если у вас есть на то причины.

Но два перечисленных выше варианта, вероятно, являются самыми распространенными: NetworkManager вероятен, если на сервере установлена среда рабочего стола, и если вы начали с минимальной установки текстовой консоли, тогда, вероятно, у вас классический ifupdown.

Ответ или решение

Теория

Вопросы управления сетевыми соединениями и конфигурации DNS на сервере Debian требуют основательного подхода, особенно в контексте работы с инструментами, такими как Pi-hole, который используется для блокировки рекламы и нежелательного контента на уровне DNS. Поскольку ваш сервер Debian использует Pi-hole для обработки всех DNS-запросов, его отключение приводит к потере доступа к интернету. Чтобы избежать этого и предоставить вашему серверу возможность обхода Pi-hole, стоит рассмотреть настройку альтернативных DNS-серверов.

Ваш сервер Debian в данный момент настроен так, чтобы получать информацию о DNS через DHCP от маршрутизатора, который, в свою очередь, использует Pi-hole как DNS-сервер. Чтобы настроить обход, необходимо изменить конфигурацию DNS непосредственно на сервере, игнорируя DHCP-настройки. Для этого можно использовать несколько методов в зависимости от конфигурации вашего сетевого интерфейса.

Пример

Рассмотрим два основных способа управления сетевой конфигурацией на Debian — используя NetworkManager и ifupdown. Каждый из этих способов требует некоторых изменений в настройках, чтобы сервер начал использовать альтернативные DNS-серверы.

NetworkManager

Если ваш сервер использует NetworkManager, это, как правило, удобный способ управления сетевыми подключениями в системах, где установлена графическая оболочка. Найдите имя вашего соединения, используя команду:

nmcli connection show

Идентифицируйте активное соединение, используя колонку DEVICE, и затем настройте это соединение на игнорирование DNS, предоставленного через DHCP:

nmcli connection modify "<имя вашего соединения>" ipv4.ignore-auto-dns yes

Далее добавьте альтернативные DNS-серверы, например общественные DNS-серверы Google:

nmcli connection modify "<имя вашего соединения>" +ipv4.dns 8.8.8.8
nmcli connection modify "<имя вашего соединения>" +ipv4.dns 8.8.4.4

Чтобы применить новые настройки, обновите соединение:

nmcli connection up "<имя вашего соединения>"

ifupdown (с конфигурацией в /etc/network/interfaces)

Если ваш сервер управляет сетевыми настройками через ifupdown, необходимо внести изменения в конфигурацию клиента DHCP, обычно dhclient, и расположена она в файле /etc/dhcp/dhclient.conf.

Добавьте следующую строку, чтобы заменить DNS, предоставленные DHCP:

supersede domain-name-servers 8.8.8.8, 8.8.4.4;

Чтобы изменения вступили в силу, перезапустите сетевое соединение:

ifdown eno1; ifup eno1

Замените eno1 на действительное имя вашего сетевого интерфейса.

Применение

Эти изменения позволяют вашему серверу Debian использовать альтернативные DNS-серверы, когда Pi-hole недоступен, что обеспечивает непрерывный доступ к интернету и стабильность работы вашей сети даже при временных отключениях или обслуживании Pi-hole. Надлежащая конфигурация сетевых параметров напрямую влияет на надежность функционирования корпоративной инфраструктуры и может предотвратить простои или потерю производительности.

Другие возможности

Также следует учитывать наличие других утилит и методов, например netplan или использование кастомных скриптов для управления сетевыми подключениями, что может быть оправдано в специфических случаях. Например, netplan часто используется в более современных версиях Ubuntu и может быть настроен на использование статических маршрутов и DNS-серверов.

Внедрение данных изменений потребует от системного администратора не только навыков настройки серверов Debian, но и чуткого понимания архитектуры сети и зависимости от внешних и внутренних DNS-серверов в контексте всей IT-инфраструктуры.

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

Капча загружается...