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

<p>у меня небольшая домашняя сеть, которая только что выросла (новая соседка по комнате, моя соседка по комнате получила ноутбук (поверх ее компьютера), мои друзья пришли с ноутбуками и т.д.).</p><p>я хотел бы запустить локальный dns-сервер для поиска содержимого моей локальной сети (<code>fileserver.local</code>, <code>windowstv.local</code>, <code>machinea.local</code>, <code>machineb.local</code>, <code>appletv.local</code>). раньше у меня была бизнес-линия со статическим ip, и я запускал bind/named изнутри. однако сейчас у меня нормальный аккаунт.</p><p>dns-серверы моего интернет-провайдера постоянно меняются (по каким-либо причинам мой интернет-провайдер не любит долго сохранять один и тот же диапазон ip-адресов). мне нужно, чтобы мой локальный dns автоматически обновлялся, чтобы использовать dns моего интернет-провайдера для внешнего трафика, но чтобы я мог поддерживать внутренний dns-сервер (получение обновления файла hosts является проблемой с каждой новой машиной в дополнение к перестройке существующих машин с win7 или ubuntu 9.04).</p><p>кроме того, dns-серверы моего провайдера часто дают сбой или перестают отвечать на запросы. существуют ли открытые dns-серверы, которые являются надежными (я не хочу переконфигурировать каждый день), которые я мог бы использовать в качестве основного, а затем, если они потерпят неудачу, использовать моих интернет-провайдеров?</p><p>обновление: также ищет каждую рабочую станцию, чтобы иметь возможность использовать dhcp для подключения, но вместо того, чтобы получить dns-серверы isp, получить мой внутренний ....</p>

<p>если вы хотите, чтобы внутренние поддельные домены работали, вы не можете настроить свои рабочие станции на какие-либо dns-серверы, кроме ваших собственных. после того, как вы настроили bind, он может работать сам по себе, и вам вообще не нужны ваши интернет-провайдеры или другие неавторизованные dns-серверы.</p>

<p>в основном вам нужно запустить свой собственный сервер dhcp и dns. вы уже используете свой собственный сервер dhcp, если у вас есть типичный маршрутизатор, который выдает частные ip-адреса.</p><p>ваш dhcp-сервер должен быть настроен на передачу ip-адреса вашего маршрутизатора в качестве адреса шлюза, а ip-адрес вашего dns-сервера - в качестве адреса dns-сервера.</p><p>ваш dns-сервер должен быть настроен для локального разрешения неофициального домена верхнего уровня, такого как <code>.local</code>, а затем пересылать любые другие запросы в другой dns. в bind вам нужно добавить раздел <code>forwarders { }</code> в ваш файл /etc/bind/named.conf.options, который содержит общедоступные dns-серверы, которые вы хотите использовать для разрешения нелокальных адресов. как показывают другие комментарии, если вы не хотите пересылать данные на dns-серверы вашего провайдера, вы можете использовать opendns, общедоступные dns-серверы google или 4.2.2.1/4.2.2.2 (я забыл, кто это делает).</p><p>если вы используете свой собственный 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, и перезагрузиться.</p><p>если вы можете запустить локальный dns на своем широкополосном маршрутизаторе, это прекрасно, но dns-сервер может выиграть от большого количества ram для кэширования запросов, в зависимости от того, какое программное обеспечение dns вы используете. в моей сети я просто использую прямой <a href="https://www.isc.org/downloads/bind/">bind</a> . похоже, у вас есть небольшой опыт с этим, и для меня это прекрасно работает.</p>

<blockquote> <p>есть ли открытые dns-серверы, которые являются надежными</p> </blockquote><p>вы сказали это: <a href="http://opendns.com">opendns</a> .</p><pre> 208.67.222.222 208.67.220.220 </pre>

<p>если вы используете windows - вам следует взглянуть на <a href="http://www.simpledns.com">simple dns plus</a> - это полный dns-сервер, который также поставляется с плагином dhcp-сервера - и имеет простой в использовании графический интерфейс.</p><p>[примечание: продукт разработан автором этого поста]</p>

<p> <a href="http://unbound.net/">unbound</a> довольно прост, поддерживает конфигурационные файлы в стиле bind и довольно надежен. если сервер будет автономным типом «шлюза», и вам понадобится несколько дополнительных тонкостей, вы можете также взглянуть на дистрибутив брандмауэра/шлюза, называемый untangle.</p>

<p>если у вас есть окно linux, вам нужно настроить dnsmasq на получение локальных адресов и использовать его в качестве dns-сервера для пересылки/кэширования внешних адресов. это также часто используется в дистрибутивах linux для домашних маршрутизаторов, таких как openwrt/ddwrt/tomato.</p><p>с другой стороны, в большинстве сетей apple/mac вы будете использовать bonjour/zeroconf, на котором компьютеры linux и apple могут взаимодействовать для широковещательного разрешения dns/службы.</p><p>при этом в чисто гибридной сети с работающими всеми тремя ос вам определенно понадобится локальный dns-сервер с пересылкой на opendns, googledns или локальный dns-провайдер в зависимости от вашего местоположения/потребностей.</p>

<p>4.2.2.1 и 4.2.2.2 - это то, что я использую</p><p>правка: то есть в отношении публичных серверов. легко запомнить, и я не думаю, что видел их неудачу, так как я их использовал.</p>

<p>любой широкополосный маршрутизатор предоставляет службы dns и dhcp для локальной сети. если вы хотите подключать incomming из интернета к локальным компьютерам, вам нужен маршрутизатор, который также поддерживает dyndns и incomming portforwarding.</p><p>если вы выберете один из <a href="http://www.dd-wrt.com/wiki/index.php/supported\_devices">dd-wrt поддерживаемого аппаратного обеспечения</a> списка, вы можете прошить его с этой микропрограммой, и она будет поддерживать любую функцию, которая может вам понадобиться в вашей небольшой сети.</p>

<p>некоторые бесплатные dns-серверы, которые вы можете использовать для пересылки:</p><pre><code>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 </code></pre>

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

<p>если вы загрузите программу сравнения dns из <a href="http://grc.com">текст ссылки</a> , она сравнит список общедоступных dns-серверов, а также ваш локальный dns-сервер. после запуска этой программы попробуйте поместить копию самых быстрых серверов в настройку dns на маршрутизаторе, а затем возобновите сеанс dhcp и снова запустите тест.</p><p>если ваш маршрутизатор разрешает это, добавьте маршрутизатор и один из быстрых внешних dns-серверов в список dns-серверов, которые он передает dhcp-клиенту (но выберите другой из тех, которые вы указали для адресов dns-серверов маршрутизатора).</p>

<p>у меня была похожая проблема. я купил openwrt-совместимый маршрутизатор и установил openwrt. он предлагает статическую привязку ip и разрешение имен в маршрутизаторе, что позволило мне назначать имена своим компьютерам и устройствам в сети по своему желанию.</p>