bind9 named nslookup dns DNS - штука которая преобразует буквы в ip пример dns.google = 8.8.8.8
Рекурсивный DNS-запрос — это запрос, в котором DNS-сервер получает доменное имя и просит возвратить IP-адрес запрошенного домена. При этом сервер может обращаться к другим DNS-серверам.
Не рекурсивный DNS-запрос — это запрос, в котором DNS-сервер получает доменное имя и просит возвратить IP-адрес запрошенного домена. При этом сервер может обращаться к другим DNS-серверам только в своей доменной зоне.
Роли DNS
Кэширующий DNS сервер
Задача: Обработать DNS-запрос и сохранить результат в памяти на N’ый промежуток времени. Если же кэш домена отсутствует или истек, кэширующий DNS сервер посылает запрос другому DNS серверу.
Когда кэширующий DNS-сервер отслеживает ответ на запрос клиента, он возвращает ответ клиенту, а также сохраняет его в кэше в течение периода времени, разрешенного значением TTL соответствующих DNS-записей. Затем кэш можно использовать в качестве источника ответов на последующие запросы, чтобы ускорить общее время обработки запроса.
Перенаправляющий DNS сервер
Задача: В отличии от кэширующего сервера такой сервер не обрабатывает DNS запросы, а только отправляет рекурсивные запросы вышестоящему серверу в виде рекурсивных запросов. А также как и кэширующий сервер он .
Перенаправляющий DNS-сервер имеет те же преимущества, что и кэширующий сервер. Однако на самом деле он не выполняет ни одного рекурсивного запроса. Вместо этого он перенаправляет все запросы на внешний разрешающий сервер, а затем кэширует результаты для последующих запросов сохраняет результат в памяти на N’ый промежуток времени.
Авторитетный DNS сервер
Задача: отвечает на запросы определенных доменных зон. Дополнительно может иметь роль master или slave:
master- отвечает на запросы к зоне, обеспечивает самые актуальные записиslave- отвечает на запросы к зоне, получает базу записей сmasterсервера
Настройка DNS сервера
Установка
bind9 Для работы с DNS требуется установить пакет bind9, но перезагружать нужно службу named.
apt install bind9 -yКэширующий DNS сервер
Для настройки кэширующего DNS сервера необходимо выполнить следующие действия:
- Открыть файл
/etc/bind/named.conf.options - Перед блоком
options {}укажите следующее:
acl clients { # clients = название сети, которое вы даете сами
localhost; # Разрешить
192.168.1.0/24; # Сеть клиентов
};- Разрешить доступ к службе DNS только клиентам из списка. Для этого в тот же файл, но уже в конец блока options добавить строку:
allow-query { clients; }; # Где, clients это название вашего списка доступа.
# Который вы создали на прошлом этапе - Можно также обойтись без списка клиентов
allow-query { 192.168.1.0/24; }; # Внутрии указываете сеть клиента DNS- При необходимости можно через ”;” можно записать несколько сетей.
- Разрешить DNS серверу рекурсивные запросы в блок options:
recursion yes;- Включить dnssec-validation Это немного защиты
dnssec-validation yes;- Указать на каких адресах DNS должен принимать запросы. Речь про адресы сервера.
listen-on { 192.168.1.1; };- Перезагрузить службу
service named restartСервер пересылки
Для настройки роли сервера пересылки, в дополнение к параметрам указанных для кэширующего DNS, нужно указать следующее в блок options:
forwarders { 8.8.8.8; }; - Где, 8.8.8.8 это название DNS сервера на который будут пересылаться все неразрешимые запросы.
Авторитетный DNS сервер
Master DNS Сервер
- Сделать копию локальной зоны (будет использоваться в качестве шаблона), задав ей имя db.имя_зоны
cd /etc/bind
cp db.local /var/lib/bind/db.vm- Привести полученный шаблон к требуемому по заданию виду
$TTL 604800
@ IN SOA srv1.vm.local. root.vm.local. (
2 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
@ IN NS srv1.vm.local.
srv1 IN A 192.168.1.11 # адрес сервера
RTR IN A 192.168.1.1
Client IN A 192.168.1.5
DNS1 IN A 192.168.1.11
DNS2 IN A 192.168.1.12- Сверху меняется только “vm.local.”
- @ - это сам сервер
- Добавить новую зону в конфигурацию службы DNS
- Открыть файл /etc/bind/named.conf.local и добавить следующие строчки:
zone "vm.local" {
type master; # Обозначает что сервер будет главным для
# Этой зоны
file "/etc/bind/db.vm"; # Путь до файла зоны
allow-transfer { 192.168.1.12; }; # Разрешить передачу зоны на DNS2
};- Создать список клиентов, которым разрешен доступ к DNS серверу
- Разрешить доступ к службе DNS только клиентам из списка
- Включить
dnssec-validation - Указать на каких адресах DNS должен принимать запросы
- Перезагрузить службу
- (c 4 по 7) По сути также как в кэширующем, только без рекурсии
Slave DNS Сервер
Создавать файл зоны vm.local не надо, slave будет брать его у master’а
- Добавить новую зону в конфигурацию службы DNS
- Открыть файл /etc/bind/named.conf.local и добавить следующие строчки:
zone "vm.local" {
type slave; # Обозначает что сервер будет подчиненным
masters { 192.168.1.11; }; #
file "/var/lib/bind/db.vm"; # Путь до файла зоны
# Критична именно эта директория, так как в стандартную у bind нет прав на запись
};- Создать список клиентов, которым разрешен доступ к DNS серверу
- Разрешить доступ к службе DNS только клиентам из списка
- Включить dnssec-validation
- Указать на каких адресах DNS должен принимать запросы
- Перезагрузить службу
- (c 2 по 6) По сути также как в кэширующем, только без рекурсии
Зоны обратного просмотра
Ранее мы рассматривали только зоны прямого просмотра, позволяющие узнать адрес по имени. Зона обратного просмотра обеспечивает обратную функцию, сопоставляя адрес устройства к имени. Они имеют некоторые различия в настройке:
- Название зоны формируется иначе.
- Для IPv4 — это префикс сетевой адреса в обратном порядке с добавлением суффикса .in-addr.arpa.
- Для IPv6 имя зоны обратного просмотра формируется в формате IPv6 network prefix in reverse order.ip6.arpa.
- В обоих случаях используется блок на основе октета (гекстета для IPv6), покрывающего диапазон
- Так для сетей 192.168.1.0/24, 192.168.1.64/26, 192.168.1.120/30 имя будет одно:
- 168.192.in-addr.arpa
zone "1.168.192.in-addr.arpa" {
type master; # Обозначает что сервер будет главным для
# Этой зоны
file "/etc/bind/vm.local.in-addr"; # Путь до файла зоны
allow-transfer { 192.168.1.12; }; # Разрешить передачу зоны на DNS2
};- В зоне обратного просмотра используются записи PTR. Пример зоны обратного просмотра:
$TTL 604800 ; 1 week
@ IN SOA vm.local. root.vm.local. (
3 ; serial # Это надо поменять
604800 ; refresh (1 week)
86400 ; retry (1 day)
2419200 ; expire (4 weeks)
604800 ; minimum (1 week)
)
IN NS dns1.vm.local.
IN NS dns2.vm.local.
1.1 IN PTR rtr.vm.local
1.11 IN PTR dns1.vm.local
1.12 IN PTR dns2.vm.localОбратная зона ipv6
2001:db8:1001:10::10 - адрес
2001:db8:1001:0010:0000:0000:0000:0010 - адрес со всеми нулями
2.0.0.1.0.d.b.8.1.0.0.1.0.0.1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.1.0 - адрес где поставили точки
0.1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.1.0.0.1.0.0.1.8.b.d.0.1.0.0.2 - адрес перевернули
vi /etc/bind/named.conf.local
zone 0.1.0.0.1.0.0.1.8.b.d.0.1.0.0.2.ip6.arpa {
type master;
file "/var/lib/bind/local/ipv6.arpa";
allow-transfer { servers; };
};
vi /var/lib/bind/local/10.ip6.arpa
@ IN SOA int.ws.kz. root.int.ws.kz. (
2 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire 604800 ) ; Negative Cache TTL
;
IN NS int.ws.kz.
0.1.0.0.0.0.0.0.0.0.0.0.0.0.0.0 IN PTR int.ws.kz.
0.1.0.0.0.0.0.0.0.0.0.0.0.0.0.0 IN PTR int-srv01.int.ws.kz.
Автоматическая регистрация/обновление DNS имен устройств в сети
Для упрощения работы администратора (а в некоторых случаях и некоторых пользователей) полезно обеспечить автоматическое создание записей DNS для устройств получающих адрес по DHCP. Что позволит подключаться к ним по доменному имени, в не зависимости от того к какой подсети организации они подключены.
Настройка DHCP
- Действия выполняются в конфигурационном файле службы DHCP
- Необходимо включить режим interim для ddns:
#vi /etc/dhcp/dhcpd.conf
update-static-leases on; # Обновлять статически выданные адресса
ddns-update-style interim; # находим и меняем на interim- Указать зоны которые будут использоваться для этого:
#vi /etc/dhcp/dhcpd.conf
zone vm.local { # Технически может быть достаточно и зоны только прямого просмотра
primary 172.16.1.2; # Указывает на master сервер
}
zone 1.16.172.in-addr.arpa { # Но в некоторых случаях полезно иметь и обратные адреса
primary 172.16.1.2; # Указывает на master сервер
}- Перезагрузить службу
Настройка DNS
- Добавьте параметр allow-update в параметры master зоны:
zone "vm.local" {
type master;
file "/etc/bind/db.vm";
allow-update { 172.16.1.254; };
};
Какие-то DNS записи
@ IN NS lego.dk.
IN MX 1 mail.lego.dk.
IN A 10.1.20.11
IN TXT "v=spf1 ipv4:mail.lego.dk -all"
2025._domainkey.lego.dk. IN TXT ( "v=DKIM1; h=sha256; k=rsa; "
"p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAyHpEDYtnNXMsePiyI7pnbQQjPdZErRs2ZUaeKaDlZS4qWRoLxQpKfr4vauJzb73Hl7oPojbLyYfECuSvjiNlscrHG72CFpdgvBEjyNwpeg1svAmSFbIUFUsnARlfjCF92gzxvhlBVYZfb3tdDm3Yxzh2j3Wo3zetNEM4IJkqrS1UsFp7p80N6zQy/TX9qy51eB8pkByDB1DuxR" "0r25gS7sOgVZnsiSOX4TFl7EihUtI1vNWbBmnxggeVmvJ/CtdUHtPCx1foaDScUqrGjBK6yZA0eMvycigM9hHMI0y6vmQeYWSGEmtJfRqZCayeDb9pKAjyXrdNWrRjIYDQBGu9UQIDAQAB" )
_dmarc.lego.dk. IN TXT "v=DMARC1; p=none; pct=100; rua=mailto:admin@lego.dk"
_ldap._tcp IN SRV 10 50 389 int-srv01int-srv01
crl IN CNAME lego.dk.
aia IN CNAME lego.dk.
ldap IN A 10.1.10.11
mail IN A 10.1.20.12- NS - запись которая обозначает DNS сервер, который обслуживает домен
- MX - запись для почты, при отправки почты на домен (lego.dk) пересылает его на почтовый сервер (mail.lego.dk). Единичка означает приоритет, нужен если несколько почтовых серверов. Нужна будет A запись.
- A - запись указывает на хост с DNS записью
- TXT - запись содержит любую информацию о домене. В нашем случае их 2:
- SPF - запись, которая говорит кто почтовый сервер
2025._domainkey.lego.dk.- DKIM Запись говорит что письмо, точно шло от нашего почтового сервера._dmarc.lego.dk.- DMARC запись политика для SPF и/или DKIM
- CNAME - запись ссылка на A запись
_ldap._tcp- служебная запись ldap указывает что:- SRV - запись сервера
- 10 - приоритет
- 50 - вес
- 389 - порт
Настройка view
Разделение локальной зоны и зоны внешней
- Создать файл /etc/bind/named.conf.acl
acl WAN {
192.168.4.0/24; };
acl Local {
192.168.1.0/24;
192.168.2.0/24;
192.168.3.0/24;
};- Дописать и закомментировать зону по умолчанию
# /etc/bind/named.conf
# Дописать
include "/etc/bind/named.conf.acl";
# Закоментировать
//include "/etc/bind/named.conf.default-zones";- Создать зоны
# /etc/bind/named.conf.local
view "local" {
match-clients {
Local;
};
zone "itnet.kz" {
type master;
allow-transfer { "none"; };
file "/etc/bind/view/local/itnet.kz";
};
};
view "wan" {
match-clients {
WAN;
};
zone "itnet.kz" {
type master;
allow-transfer { "none"; };
file "/etc/bind/view/wan/itnet.kz";
};
};- Настройки подключения
# Изменить на новый лад
allow-query { WAN; Local;};Проверка работоспособности DNS
nslookup Для проверки функциональности уполномоченного DNS сервера, необходимо выполнить nslookup на доменное имя из поддерживаемой им зоны (или зон).
nslookup vm.local #за место vm.local доменное имя поддерживаемой зоны сервером- В случае не удачи, нужно проверить статус сервера (все зоны должны быть импортированы, и упомянуты в процессе загрузки) настройки дополнительных опций, слушающих интерфейсов, разрешенных сетей и прочие выполненные и не выполненные настройки.
# vi /etc/reslov.conf
domain vm.local # Доменное имя локального хоста
search vm.local # вместе с domain для команды nslookup DNS1.vm.local
# без vm.local
nameserver 8.8.8.8 # посылать dns запросы в гугл
namesrver 192.168.1.1 # посылать dns запросы на локальный dns сервер