94

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

Я хотел бы, чтобы запустить локальный сервер 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, получить мой внутренний ....

13 ответов13

80

В основном вам нужно запустить свой собственный сервер 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. Похоже, у вас есть небольшой опыт с этим, и для меня это прекрасно работает.

15

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

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

208.67.222.222
208.67.220.220
15

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

6

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

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

5

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

4

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

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

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

2

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

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

2

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

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

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
1

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

0

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

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

0

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

-2

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

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

192.168.0.80 studiopc.local

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .