LXF170:Сети: DNS-серверы
|
|
|
DNS-серверы
Нейл Ботвик показывает, как настроить локальный сервер доменных имен (DNS) с dnsmasq.
Были времена, когда и один компьютер дома считался дивом. Потом мы начали пользоваться Интернетом и утруждаться всякими сетевыми затеями, но о них в основном заботились провайдер и модем. Если появлялся второй компьютер, было довольно просто настроить статическую адресацию и следить за тем, что есть что. А теперь в каждом доме по нескольку подключенных устройств, и некоторые из них подключаются из разных мест. А значит, нам нужно некое средство автоматической настройки для управления адресами, выделения их устройствам при необходимости и выдачи другим устройствам адреса устройства, с которым они хотят пообщаться. Здесь действуют два отдельных протокола. DNS (Domain Name Service – сервис доменных имен) – это телефонная книга Интернета: он находит IP-адрес компьютера, с которым вы хотите пообщаться, будь то ноутбук в соседней комнате или большая поисковая система. DHCP (Dynamic Host Configuration Protocol – протокол динамической настройки хоста) – средство, с помощью которого устройство говорит сети: «Привет, я здесь» и получает в ответ IP-адрес, а также другую полезную информацию: о маршрутизации сети и расположении серверов DNS.
Сервис доменных имен
Серверы DNS обычно предоставляются вашим провайдером или большими публичными серверами, но они знают только о публичных адресах. Что произойдет, если вам понадобится адрес другого устройства в вашей сети? Раньше для этого использовалась статическая адресация, и список всех локальных хостов хранился в файле /etc/hosts на каждом локальном компьютере, но сегодня это непрактично. Это не только обременительно из-за увеличения количества устройств: статическая адресация для мобильных устройств – где-то посередине между неудобной и невозможной.
dnsmasq – локальный кэширующий сервер DNS для использования в локальных сетях. У него есть пара преимуществ по сравнению с DNS-серверами в Интернете. Во-первых, ему можно сообщить параметры своей локальной сети, и он сможет разрешать имена хостов для всех ваших устройств. Во-вторых, в нем есть кэширование. Если он не находит имени хоста в своем файле hosts, он запрашивает информацию у публичных DNS-серверов, как и прежде, но ответ запоминает, и когда тот же адрес понадобится другому компьютеру в сети, ответ будет уже готов.
- Метамодернизм в позднем творчестве В.Г. Сорокина
- ЛитРПГ - последняя отрыжка постмодерна
- "Ричард III и семиотика"
- 3D-визуализация обложки Ridero создаем обложку книги при работе над самиздатом.
- Архитектура метамодерна - говоря о современном искусстве, невозможно не поговорить об архитектуре. В данной статье будет отмечено несколько интересных принципов, характерных для построек "новой волны", столь притягательных и скандальных.
- Литература
- Метамодерн
- Рокер-Прометей против изначального зла в «Песне про советскую милицию» Вени Дркина, Автор: Нина Ищенко, к.ф.н, член Союза Писателей ЛНР - перепубликация из журнала "Топос".
- Как избавиться от комаров? Лучшие типы ловушек.
- Что делать если роблокс вылетает на windows
- Что делать, если ребенок смотрит порно?
- Почему собака прыгает на людей при встрече?
- Какое масло лить в Задний дифференциал (мост) Visco diff 38434AA050
- О чем может рассказать хвост вашей кошки?
- Верветки
- Отчетность бюджетных учреждений при закупках по Закону № 223-ФЗ
- Срок исковой давности как правильно рассчитать
- Дмитрий Патрушев минсельхоз будет ли преемником Путина
- Кто такой Владислав Поздняков? Что такое "Мужское Государство" и почему его признали экстремистским в России?
- Как правильно выбрать машинное масло в Димитровграде?
- Как стать богатым и знаменитым в России?
- Почему фильм "Пипец" (Kick-Ass) стал популярен по всему миру?
- Как стать мудрецом?
- Как правильно установить FreeBSD
- Как стать таким как Путин?
- Где лучше жить - в Димитровграде или в Ульяновске?
- Почему город Димитровград так называется?
- Что такое метамодерн?
- ВАЖНО! Временное ограничение движения автотранспортных средств в Димитровграде
- Тарифы на электроэнергию для майнеров предложено повысить
Загрузите его исходный код с www.thekelleys.org.uk/dnsmasq или установите dnsmasq из менеджера пакетов своего дистрибутива обычным образом. Чтобы dnsmasq работал как простой кэширующий сервер DNS для локальной сети, специальной настройки не требуется. Если компьютер, на который вы его устанавливаете, уже имеет выход в Интернет благодаря верно заданным настройкам в /etc/resolv.conf (/etc/resolv.conf содержит адреса используемых серверов имен) и общается с сетью LAN благодаря тому, что все нужные адреса есть в /etc/hosts, достаточно просто установить и запустить dnsmasq, так как по умолчанию при разрешении адресов программа сначала смотрит в /etc/hosts и затем в /etc/resolv.conf. На других компьютерах сети задайте адрес первичного сервера DNS в соответствии с адресом компьютера, на котором запущен dnsmasq. В Linux для этого нужно изменить /etc/resolv.conf так, чтобы в нем была строка
nameserver 192.168.1.1
Замените 192.168.1.1 на адрес сервера dnsmasq. Если компьютеры получают информацию о подключении от маршрутизатора (роутера) по DHCP, нужно задать этот адрес в web-интерфейсе роутера, чтобы он всем объявил: нужно пользоваться dnsmasq.
Иметь под рукой локальный сервер имен очень удобно, если все устройства настроены статически, так как всю информацию о сети можно хранить в одном месте; но большинство устройств ожидает динамической конфигурации по DHCP. Как же dnsmasq узнает адреса этих устройств? Здесь есть очень простое решение: у dnsmasq есть встроенный сервер DHCP.
Так как DHCP-сервер раздает IP-адреса, то он знает адрес каждого устройства в сети; поэтому в небольшой сети есть смысл объединить две операции, что и делает dnsmasq. Если мы хотим, чтобы он выступал в качестве DHCP-сервера, придется изменить его файл настройки – /etc/dnsmasq.conf. Он содержит все параметры по умолчанию и устанавливается вместе с программой, что повышает риск перезаписи этого файла при обновлении программы; поэтому я создал отдельный файл в /etc/dnsmasq.d/ и раскомментировал следующую строку в конце файла /etc/dnsmasq.conf:
conf-dir=/etc/dnsmasq.d
Чтобы включить сервер, нужно активировать параметр dhcp-range – строка в dnsmasq.conf по умолчанию имеет вид
- dhcp-range=192.168.0.50,192.168.0.150,12h
Скопируйте ее в свой файл настройки, удалите символ комментария и измените адреса, чтобы они соответствовали вашей сети. Это начало и конец диапазона адресов, из которого dnsmasq может выделять адреса. Третий параметр задает время действия адреса по умолчанию – 12 часов. Если DHCP у вас предоставляет роутер, отключите этот DHCP: два DHCP-сервера в одной сети могут привести к путанице. После изменения любого из файлов настройки dnsmasq нужно перезапустить сервис или отправить ему сигнал SIGHUP, чтобы он перезагрузил свои настройки:
killall -HUP dnsmasq
Маршрутизация Интернета
Теперь любое устройство, подключенное к сети, получит адрес от dnsmasq и начнет использовать dnsmasq в качестве сервера имен по умолчанию, но скорее всего не сможет подключиться к Интернету. За это отвечает третий важный параметр, предоставляемый сервером DHCP – шлюз по умолчанию. Так как мы не указали dnsmasq, где находится шлюз, тот предполагает, что шлюз на том же компьютере. Если dnsmasq запущен на роутере, никаких проблем нет; в противном случае нужно добавить в настройки адрес роутера:
dhcp-option=option:router,192.168.1.2
Иногда бывает нужен статический адрес – от файлового сервера мало пользы, если вы не знаете, где он. Настроить такое устройство можно вручную со статическим адресом, но чтобы его имя хоста можно было разрешить, нужно добавить информацию о нем в dnsmasq. Более чистый вариант – оставить в нем автоматическую настройку и велеть dnsmasq назначать этому устройству всегда один и тот же адрес. Здесь становится удобным отдельный каталог для хранения конфигурации – так можно иметь один файл для общих настроек и отдельный файл для специфичных настроек каждого хоста, что делает управление сетью гораздо комфортнее. Вот пример из моей домашней сети:
dhcp-host=B8:27:EB:8B:6F:CF,192.168.1.11,jeltz
txt-record=jeltz,”Raspberry Pi file server”
Здесь важен параметр dhcp-host – он состоит из трех частей, разделенных запятыми. Первая – MAC-адрес сетевого интерфейса, используемого для подключения этого компьютера к сети. Чтобы его узнать, выполните команду ifconfig или ip link show или загляните в графическую утилиту настройки сети (если на компьютере есть графический интерфейс). Вторая часть – IP-адрес, выделяемый устройству. Этот адрес не должен быть ранее выданным другому устройству. Чтобы точно этого избежать, эти адреса должны быть вне диапазона, заданного ранее в параметре dhcp-range. Третья часть – имя хоста, которое будет выделено устройству и которое dnsmasq затем сможет разрешить при запросе от другого устройства в сети.
- Метамодернизм в позднем творчестве В.Г. Сорокина
- ЛитРПГ - последняя отрыжка постмодерна
- "Ричард III и семиотика"
- 3D-визуализация обложки Ridero создаем обложку книги при работе над самиздатом.
- Архитектура метамодерна - говоря о современном искусстве, невозможно не поговорить об архитектуре. В данной статье будет отмечено несколько интересных принципов, характерных для построек "новой волны", столь притягательных и скандальных.
- Литература
- Метамодерн
- Рокер-Прометей против изначального зла в «Песне про советскую милицию» Вени Дркина, Автор: Нина Ищенко, к.ф.н, член Союза Писателей ЛНР - перепубликация из журнала "Топос".
- Как избавиться от комаров? Лучшие типы ловушек.
- Что делать если роблокс вылетает на windows
- Что делать, если ребенок смотрит порно?
- Почему собака прыгает на людей при встрече?
- Какое масло лить в Задний дифференциал (мост) Visco diff 38434AA050
- О чем может рассказать хвост вашей кошки?
- Верветки
- Отчетность бюджетных учреждений при закупках по Закону № 223-ФЗ
- Срок исковой давности как правильно рассчитать
- Дмитрий Патрушев минсельхоз будет ли преемником Путина
- Кто такой Владислав Поздняков? Что такое "Мужское Государство" и почему его признали экстремистским в России?
- Как правильно выбрать машинное масло в Димитровграде?
- Как стать богатым и знаменитым в России?
- Почему фильм "Пипец" (Kick-Ass) стал популярен по всему миру?
- Как стать мудрецом?
- Как правильно установить FreeBSD
- Как стать таким как Путин?
- Где лучше жить - в Димитровграде или в Ульяновске?
- Почему город Димитровград так называется?
- Что такое метамодерн?
- ВАЖНО! Временное ограничение движения автотранспортных средств в Димитровграде
- Тарифы на электроэнергию для майнеров предложено повысить
Вы можете недоумевать, что делает вторая строка. А она назначает компьютеру некое описание, выводимое при запуске
dig +short hostname txt
Это удобно при разрастании сети или ухудшении памяти, и это просто напоминание, вроде комментария в коде.
Хранение всех сетевых настроек в одном месте упрощает управление сетью и резервное копирование настроек. Так как настройка всех устройств по-прежнему автоматическая, на них не нужно ничего менять, скажем, при установке нового роутера с другим адресом. Если вы пользуетесь ноутбуком, у него может быть два интерфейса, проводной и беспроводной, с различными MAC-адресами, но вам, наверное, было бы удобнее, чтобы каждый раз при подключении он получал один и тот же адрес. Для этого нужно лишь указать оба MAC-адреса, разделенных запятыми, таким образом:
dhcp-host=20:68:9d:bc:08:f5,50:46:5d:32:e2:51,192.168.1.8,hostname
В этом случае dnsmasq предполагает, что вы знаете, что делаете, поэтому не пытайтесь одновременно включить оба интерфейса, иначе что-нибудь может выйти из строя.
На нашем уроке мы лишь поверхностно коснулись возможностей dnsmasq. Когда вы начнете им пользоваться, комментарии в конфигурационном файле по умолчанию и FAQ на сайте проекта дадут вам гораздо больше новых идей. |