Запуск DNS локально для домашней сети

102

У меня небольшая домашняя сеть, которая только что стала больше (новая соседка по комнате, моя соседка по комнате получила ноутбук (поверх ее компьютера), мои друзья пришли с ноутбуками и т. Д.).

Я хотел бы, чтобы запустить локальный сервер DNS для поиска в моих локальной сети (вещи fileserver.local, windowsTV.local, machineA.local, machineB.local, appletv.local). Раньше у меня была бизнес-линия со статическим IP, и я запускал bind / named изнутри. Однако сейчас у меня нормальный аккаунт.

DNS-серверы моего интернет-провайдера постоянно меняются (по каким-либо причинам мой интернет-провайдер не любит долго сохранять один и тот же диапазон IP-адресов). Мне нужно, чтобы мой локальный DNS автоматически обновлялся, чтобы использовать DNS моего интернет-провайдера для внешнего трафика, но иметь возможность поддерживать внутренний DNS-сервер (получение обновления файла hosts является проблемой с каждой новой машиной в дополнение к перестройке существующих машин с win7 или Ubuntu 9.04).

Кроме того, DNS-серверы моего провайдера часто дают сбой или перестают отвечать. Существуют ли надежные открытые DNS-серверы (я не хочу переконфигурировать каждый день), которые я мог бы использовать в качестве основного, а затем, если они потерпят неудачу, использовать моих интернет-провайдеров?

ОБНОВЛЕНИЕ: также ищет каждую рабочую станцию, чтобы иметь возможность использовать dhcp для подключения, но вместо того, чтобы получить DNS-серверы ISP, получить мой внутренний ....

Рой Рико
источник
2
Здесь есть как минимум 2 вопроса: локальная конфигурация DNS, публичные DNS-серверы. Отправьте 2 вопроса в следующий раз.
HyperSlug
18
Я согласен, но я ищу общее решение. на каждый свой вопрос будет правильный ответ, но он может не совпадать, я пытаюсь найти решение обеих проблем, которые работают вместе.
Рой Рико
@RoyRico Вы когда-нибудь находили хорошее решение? Я пытаюсь сделать то же самое с помощью томатного маршрутизатора и бегу в стены во всех направлениях.
Джефф
Если у вас есть окно Linux, здесь подробно описано,
xpt
Новые DNS-серверы Google - это 8.8.8.8 и 8.8.4.4 на случай, если кому-то будет интересно ...
Tmanok

Ответы:

16

Если вы хотите, чтобы внутренние поддельные домены работали, вы не можете настроить свои рабочие станции на какие-либо DNS-серверы, кроме ваших собственных. После того, как вы настроили BIND, он может работать сам по себе, и вам вообще не нужны ваши интернет-провайдеры или другие неавторизованные DNS-серверы.

клещи
источник
9
Однако хороший пользователь сети по возможности перенаправит кеши DNS своего провайдера. Нагрузка на корневые DNS-серверы ужасна. Особенно для небольших сайтов, таких как этот, потому что он не будет масштабироваться, если каждое домохозяйство решит пойти прямо. (Если вас беспокоит взлом ISP, используйте DNSSEC).
sourcejedi
1
@sourcejedi, вы неправильно понимаете, что на самом деле делает кеширующий DNS-сервер ... он, конечно, не работает на корневых серверах, он беспокоит их, может быть, только раз в неделю.
Милли
7
Есть другая причина, почему вы должны перенаправлять на свои DNS-серверы интернет-провайдера ... вы будете выглядеть для них как обычный клиент. Если вы этого не сделаете, и они увидят, что у вас есть система, которая отправляет DNS-запросы по всему миру, они предположат, что вы используете DNS-сервер, и, возможно, просто бросят вам правила брандмауэра и будут вас раздражать. Вы будете изо всех сил пытаться выяснить, что сломалось и, вероятно, потратить часы, пытаясь выяснить, если / когда это произойдет.
Милли
1
В дополнение к точке зрения @ milli, DNS вашего интернет-провайдера может также переопределить разрешение некоторых доменов на их частных компьютерах с более быстрым / кэшированным / неизмеренным контентом. Использование публичного DNS может сломать эти услуги или стоить вам дороже.
Уолф
85

В основном вам нужно запустить свой собственный сервер DHCP и DNS. Вы уже используете свой собственный сервер DHCP, если у вас есть типичный маршрутизатор, который выдает частные IP-адреса.

Ваш DHCP-сервер должен быть настроен на передачу IP-адреса вашего маршрутизатора в качестве адреса шлюза, а IP-адрес вашего DNS-сервера - в качестве адреса DNS-сервера.

Ваш DNS-сервер должен быть настроен для локального разрешения неофициального домена верхнего уровня, такого как .local, а затем пересылать любые другие запросы другому DNS. В BIND вам нужно добавить forwarders { }в ваш файл /etc/bind/named.conf.options раздел, содержащий общедоступные DNS-серверы, которые вы хотите использовать для разрешения нелокальных адресов. Как показывают другие комментарии, если вы не хотите пересылать данные на DNS-серверы вашего интернет-провайдера, вы можете использовать OpenDNS, общедоступные DNS-серверы Google или 4.2.2.1/4.2.2.2 (я забыл, кто это делает).

Если вы используете свой собственный DNS-сервер, вам нужен ящик, который будет включен все время, так как все DNS-запросы в вашей домашней сети будут проходить через него. Для этого поля требуется фиксированный IP-адрес в вашей домашней подсети. Удостоверьтесь, что это не может быть снесено бульдозером по DHCP, и сам ящик не должен получать IP через DHCP. Если ваш DHCP настроен на раздачу адресов, например, от 192.168.1.1 до 192.168.1.100, тогда присвойте вашему DNS-серверу IP 192.168.1.101. В обычной ситуации домашних маршрутизаторов вам просто нужно сообщить маршрутизатору, что DNS-сервер 192.168.1.101, и перезагрузиться.

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

LawrenceC
источник
3
4.2.2.1/4.2.2.2/4.2.2.3 из Уровня 3.
Hengjie
1
Отличный ответ! Спасибо за полную, ясную информацию. Я постараюсь настроить это в моей локальной сети в ближайшее время.
Форма
2
Успех! Этот подход обоснован. Установка фиксированного IP-адреса вне диапазона адресов / исключение DHCP для DNS-бокса особенно актуально. Спасибо!
Форма
@Hengjie, что такое уровень 3?
Джонатан
Уровень 3 является поставщиком центра обработки данных, а также поставщиком сети. Они также предоставляют надежные DNS-серверы.
Hengjie
15

Есть ли открытые DNS-серверы, которые являются надежными

Вы сказали это: OpenDNS .

208.67.222.222
208.67.220.220
hyperslug
источник
3
Я также хотел бы посмотреть на aboutdebian.com/dns.htm для хорошего обзора различных способов настройки вашего собственного DNS-сервера.
Кеннет Кокран
1
+1 для OpenDNS. Я использую его как на работе, так и дома. Фантастический сервис.
DWilliams
4
Будьте осторожны, поскольку серверы имен OpenDNS являются лжецами: они переписывают ответы DNS, чтобы направить вас в рекламную службу или подвергнуть цензуре некоторые места назначения.
Борцмейер
1
@bortz, я не видел, чтобы они лгали об этом, но они перенаправляют на свою целевую страницу + рекламу в случае некорректных URL-адресов. Цензура включена и по умолчанию отключена.
HyperSlug
12
Общедоступные DNS-серверы Google на 8.8.8.8 и 8.8.4.4 также довольно хороши.
LawrenceC
6

Если вы используете Windows - вам стоит взглянуть на Simple DNS Plus - это полноценный DNS-сервер, который также поставляется с плагином DHCP-сервера - и имеет простой в использовании графический интерфейс.

[Примечание: продукт разработан автором этого поста]

Jesper
источник
Я использую Windows как одну из моих машин, но она не всегда включена. Linux машина обычно включена.
Рой Рико
Просто упомянуть это не бесплатное решение. Предлагается 14-дневная пробная и образовательная лицензия. В противном случае вы
потянете
5

Unbound довольно прост, поддерживает конфигурационные файлы в стиле bind и довольно надежен. Если сервер будет автономным типом «шлюз», и вы захотите несколько дополнительных тонкостей, вы можете также взглянуть на брандмауэр / межсетевой интерфейс, называемый также untangle.

Подмастерье Компьютерщик
источник
4

Если у вас есть окно linux, вам нужно настроить DNSMASq на получение локальных адресов и использовать его в качестве DNS-сервера пересылки / кэширования для внешних адресов. Это также часто то, что используется в дистрибутивах Linux для домашних маршрутизаторов, таких как openwrt / ddwrt / tomato.

С другой стороны, в большинстве сетей Apple / Mac вы будете использовать Bonjour / Zeroconf, на котором компьютеры Linux и Apple могут взаимодействовать для широковещательного разрешения DNS / службы.

При этом в чисто гибридной сети с работающими всеми тремя ОС вам определенно понадобится локальный DNS-сервер с переадресацией на OpenDNS, GoogleDNS или локальный DNS-провайдер в зависимости от вашего местоположения / потребностей.

jonathanserafini
источник
2

4.2.2.1 и 4.2.2.2 - это то, что я использую

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

DHayes
источник
Я видел их раньше. Кто управляет этим? Разрешено ли их использовать общественности? Насколько они надежны?
Рой Рико
Verizon. Кажется, им все равно. Очень.
HyperSlug
Это открытые DNS-серверы, бесплатные для публичного использования. Они оба быстрые и надежные.
Уолтер
3
Я обнаружил, что 4.2.2.2 дает сбой достаточно для наших клиентов (которым требуется надежный DNS для обработки кредитных карт!), Что я всегда меняю их на общедоступный DNS или OpenDNS от Google всякий раз, когда я их вижу. Отказ от серверов Verizon всегда сразу решает эту проблему.
Стивен Дженнингс
2

Любой широкополосный маршрутизатор предоставляет службы DNS и DHCP для локальной сети. Если вы хотите подключать INcomming из Интернета к локальным компьютерам, вам нужен маршрутизатор, который также поддерживает DynDNS и Incomming PortForwarding.

Если вы выберете один из списка поддерживаемого оборудования DD-WRT, вы можете прошить его этой микропрограммой, и он будет поддерживать любую функцию, которая может вам понадобиться в вашей небольшой сети.

Nikolaas
источник
4
Я не думаю, что большинство широкополосных маршрутизаторов предоставляют услуги DNS, по крайней мере, не с помощью встроенного программного обеспечения. Большинство просто предоставляют DHCP и используют его, чтобы сообщить своим системам использовать DNS-серверы вашего провайдера. Теперь, если вы прошиваете на сторонние прошивки, такие как DD-WRT, OpenWRT или Tomato, то они также могут предоставлять услуги DNS.
фрезер
1

Для запуска DNS-сервера в вашей локальной сети, посмотрите на 'pdnsd', который является сервером имен для * nix.

Зуу
источник
1

Некоторые бесплатные DNS-серверы, которые вы можете использовать для пересылки:

1.1.1.1 - Cloudflare
1.0.0.1 - Cloudflare
4.2.2.1 - Layer 3
4.2.2.2 - Layer 3
4.2.2.3 - Layer 3
8.8.8.8 - Google
8.8.4.4 - Google
208.67.222.222 - OpenDNS
208.67.220.220 - OpenDNS
JCA122204
источник
0

Если вы загрузите программу сравнения DNS из текста ссылки , она сравнит список общедоступных DNS-серверов, а также ваш локальный DNS-сервер. После запуска этой программы попробуйте поместить копию самых быстрых серверов в настройку DNS на маршрутизаторе, а затем возобновите сеанс DHCP и снова запустите тест.

Если ваш маршрутизатор разрешает это, добавьте оба маршрутизатора и один из быстрых внешних DNS-серверов в список DNS-серверов, которые он передает DHCP-клиенту (но выберите другой из тех, которые вы указали для адресов DNS-серверов маршрутизатора).

Вальтер
источник
0

У меня была похожая проблема. Я купил OpenWRT-совместимый маршрутизатор и установил OpenWRT. Он предлагает статическую привязку IP-адреса и разрешение имен в маршрутизаторе, что позволило мне назначать имена своим компьютерам и устройствам в сети по своему желанию.

парень
источник
-1

Может быть, я говорю что-то глупое. В этом случае я просто добавил бы IP и имена к файлам хостов на отдельных машинах.

192.168.0.120 тв. локальный

192.168.0.80 studiopc.local

Стефано
источник