Настройка и тестирование DNS-сервера в RedHat 7

Пример:
Предположим, что в домене «gztzy.org», где расположено устройство, есть три хоста, и имена хостов: jwc.gztzy.org, yds.gztzy.org и cys.gztzy.org. Адрес DNS-сервера 192.168.1.3. IP-адреса трех хостов: 192.168.1.4, 192.168.1.5 и 192.168.1.6. Теперь требуется, чтобы DNS-сервер
dns.gztzy.org мог разрешать соответствующие отношения между тремя именами хостов и IP-адресами.
Анализ: Согласно предыдущим операциям, сначала создайте основной файл конфигурации и задайте область gztzy.org, которую можно будет разобрать. Затем создайте файл зоны "gztzy.org" и установите записи ресурсов SOA, NS и A в файле зоны. Наконец, настройте клиент. Конкретные шаги следующие:
**

1. Настройте статический IP-адрес DNS-сервера.

**
Пожалуйста, добавьте описание изображения

[root@localhost 桌面]# vim /etc/sysconfig/network-scripts/ifcfg-eno16777736 
[root@localhost 桌面]# nmtui
[root@localhost 桌面]# systemctl restart network
[root@localhost 桌面]# ifconfig 
eno16777736: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.1.3  netmask 255.255.255.0  broadcast 192.168.1.255
        inet6 fe80::20c:29ff:fe80:3fb8  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:80:3f:b8  txqueuelen 1000  (Ethernet)
        RX packets 166  bytes 15574 (15.2 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 275  bytes 29706 (29.0 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 0  (Local Loopback)
        RX packets 539  bytes 48368 (47.2 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 539  bytes 48368 (47.2 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
[root@localhost Desktop]# df -h
Filesystem             Size  Used Avail Use% Mounted on
/dev/mapper/rhel-root   38G  2.9G   35G   8% /
devtmpfs               905M     0  905M   0% /dev
tmpfs                  914M  140K  914M   1% /dev/shm
tmpfs                  914M  8.9M  905M   1% /run
tmpfs                  914M     0  914M   0% /sys/fs/cgroup
/dev/sda1              497M  119M  379M  24% /boot
/dev/sr0               3.5G  3.5G     0 100% /run/media/root/RHEL-7.0 Server.x86_64
[root@localhost Desktop]# mkdir /mnt/cdrom && mount /dev/sr0 /mnt/cdrom
mount: /dev/sr0 is write-protected, mounting read-only
[root@localhost Desktop]# vim /etc/yum.repos.d/a.repo
[a]
name=welcome to redhatroom
baseurl=file:///mnt/cdrom
enabled=1
gpgcheck=0
[root@localhost Desktop]# yum install -y bind-chroot.x86_64 
[root@localhost Desktop]# systemctl status named
named.service - Berkeley Internet Name Domain (DNS)
   Loaded: loaded (/usr/lib/systemd/system/named.service; disabled)
   Active: inactive (dead)

[root@localhost Desktop]# systemctl start named
[root@localhost Desktop]# systemctl status named
named.service - Berkeley Internet Name Domain (DNS)
   Loaded: loaded (/usr/lib/systemd/system/named.service; disabled)
   Active: active (running) since Thu 2022-11-03 02:26:41 EDT; 1s ago
  Process: 14259 ExecStart=/usr/sbin/named -u named $OPTIONS (code=exited, status=0/SUCCESS)
  Process: 14258 ExecStartPre=/usr/sbin/named-checkconf -z /etc/named.conf (code=exited, status=0/SUCCESS)
 Main PID: 14261 (named)
   CGroup: /system.slice/named.service
           └─14261 /usr/sbin/named -u named

В системе Linux имя программы службы привязки называется name. В первую очередь нужно найти основной конфигурационный файл сервисной программы в каталоге /etc, а затем изменить адреса в строке 11 и строке 19 на любые, что означает, что все IP-адреса на сервере могут предоставлять доменное имя DNS службы разрешения и разрешить всем отправлять запрос DNS-запроса на этот сервер.

Основной файл конфигурации (/etc/named.conf): всего 59 строк, а после удаления информации комментариев и пустых строк фактически действующие параметры составляют всего около 30 строк, эти параметры используются для определения работы сервисной программы привязки.

Файл конфигурации зоны (/etc/named.rfc1912.zones): используется для сохранения места соответствия между доменными именами и IP-адресами. Подобно каталогу книг, он соответствует определенному местоположению каждого домена и соответствующему IP-адресу. Когда вам нужно просмотреть или изменить, вы можете найти соответствующие файлы в соответствии с этим местоположением.

Каталог файла конфигурации данных (/var/named): Этот каталог используется для сохранения файла конфигурации данных реального соответствия между доменным именем и IP-адресом.

[root@localhost named]# vim /etc/named.conf
//
// named.conf
//
// Provided by Red Hat bind package to configure the ISC BIND named(8) DNS
// server as a caching only nameserver (as a localhost DNS resolver only).
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//

options {
    
    
        listen-on port 53 {
    
     any; };
        listen-on-v6 port 53 {
    
     ::1; };
        directory       "/var/named";
        dump-file       "/var/named/data/cache_dump.db";
        statistics-file "/var/named/data/named_stats.txt";
        memstatistics-file "/var/named/data/named_mem_stats.txt";
        allow-query     {
    
     any; };

1. Реализация форвардного анализа

[root@localhost named]# vim /etc/named.rfc1912.zones
zone "gztzy.org" IN {
    
    
        type master;
        file "gztzy.org";
        allow-update {
    
     none; };
};
[root@localhost named]# cd /var/named/
[root@localhost named]# ls
data  dynamic  named.ca  named.empty  named.localhost  named.loopback  slaves
[root@localhost named]# cp -a named.localhost gztzy.org
[root@localhost named]# vim gztzy.org 
$TTL 1D #Время жизни 1 день
@ В СОА gztzy.org. root.gztzy.org. (
#Информация об авторизации начинается: #Адрес зоны DNS #Адрес электронной почты администратора доменного имени (не используйте символ @)
0 ; сериал # Обновить серийный номер
1D ; обновить # Время обновления
1Н; повторить попытку # повторная задержка
1 Вт ; истекает #Время истечения
3Н); минимум #Время кэширования недопустимых записей парсинга
NS dns.gztzy.org. # Записи сервера доменных имен
DNS В 192.168.1.3 #Адресная запись(dns.gztzy.org.)
кувшин В 192.168.1.4 # Адресная запись (jwc.gztzy.org.)
ярдов В 192.168.1.5 #Адресная запись(yds.gztzy.org.)
цис В 192.168.1.6 # Адресная запись (cys.gztzy.org.)

В файле разрешения тип записи A указывает, что имя домена указывает на адрес IPv4, а AAAA указывает, что имя домена указывает на адрес IPv6. Кроме того, существует 8 типов записи:

тип записи эффект
А Укажите доменное имя на адрес IPV4
CNAME Укажите доменное имя на другое доменное имя
АААА Укажите доменное имя на адрес IPV6
NS Укажите имя поддомена, которое будет разрешено другими DNS-серверами.
МХ Укажите доменное имя на адрес почтового сервера
СРВ Запишите сервер, который предоставляет конкретную услугу
ТЕКСТ Текстовое содержимое обычно составляет 512 байт и часто используется в качестве записи SPF для защиты от спама.
САА Проверка авторизации центра сертификации CA
явный URL Перенаправить доменное имя на другой адрес
скрытый URL То же, что и явный тип URL, но скрывает реальный целевой адрес.
[root@localhost named]# named-checkconf				// 检查主配置文件语法或参数的错误。
[root@localhost named]# systemctl restart named
[root@localhost named]# systemctl status named
named.service - Berkeley Internet Name Domain (DNS)
   Loaded: loaded (/usr/lib/systemd/system/named.service; disabled)
   Active: active (running) since 一 2022-10-24 15:05:15 CST; 4s ago
  Process: 46529 ExecStop=/bin/sh -c /usr/sbin/rndc stop > /dev/null 2>&1 || /bin/kill -TERM $MAINPID (code=exited, status=0/SUCCESS)
  Process: 45686 ExecReload=/bin/sh -c /usr/sbin/rndc reload > /dev/null 2>&1 || /bin/kill -HUP $MAINPID (code=exited, status=0/SUCCESS)
  Process: 46539 ExecStart=/usr/sbin/named -u named $OPTIONS (code=exited, status=0/SUCCESS)
  Process: 46537 ExecStartPre=/usr/sbin/named-checkconf -z /etc/named.conf (code=exited, status=0/SUCCESS)
 Main PID: 46543 (named)
   CGroup: /system.slice/named.service
           └─46543 /usr/sbin/named -u named
[root@localhost named]# nslookup 
> jwc.gztzy.org
Server:		192.168.1.3
Address:	192.168.1.3#53

Name:	jwc.gztzy.org
Address: 192.168.1.4
> yds.gztzy.org
Server:		192.168.1.3
Address:	192.168.1.3#53

Name:	yds.gztzy.org
Address: 192.168.1.5
> cys.gztzy.org
Server:		192.168.1.3
Address:	192.168.1.3#53

Name:	cys.gztzy.org
Address: 192.168.1.6
> 

2. Реализация обратного анализа

Отредактируйте файл конфигурации зоны. Обратное разрешение заключается в преобразовании IP-адреса в формат доменного имени, поэтому при определении зоны (области) IP-адрес должен быть обращен, например, исходный 192.168.1.0 должен быть 1.168.192 после обратной записи, и нужно только написать IP Сетевые биты адреса достаточны. Добавьте следующие параметры после параметров прямого синтаксического анализа.

[root@localhost named]# vim /etc/named.rfc1912.zones 
zone "gztzy.org" IN {
    
    
        type master;
        file "gztzy.org";
        allow-update {
    
     none; };
};
zone "1.168.192.in-addr.arpa" IN {
    
    
        type master;
        file "192.168.1.arpa";
        allow-update {
    
     none; };
};
[root@localhost named]# ls
data  dynamic  gztzy.org  named.ca  named.empty  named.localhost  named.loopback  slaves
[root@localhost named]# cp -a named.loopback 192.168.1.arpa
[root@localhost named]# vim 192.168.1.arpa 
[root@localhost named]# named-checkconf 
[root@localhost named]# systemctl restart named
[root@localhost named]# systemctl status named
named.service - Berkeley Internet Name Domain (DNS)
   Loaded: loaded (/usr/lib/systemd/system/named.service; disabled)
   Active: active (running) since 一 2022-10-24 15:16:07 CST; 4s ago
  Process: 46787 ExecStop=/bin/sh -c /usr/sbin/rndc stop > /dev/null 2>&1 || /bin/kill -TERM $MAINPID (code=exited, status=0/SUCCESS)
  Process: 45686 ExecReload=/bin/sh -c /usr/sbin/rndc reload > /dev/null 2>&1 || /bin/kill -HUP $MAINPID (code=exited, status=0/SUCCESS)
  Process: 46797 ExecStart=/usr/sbin/named -u named $OPTIONS (code=exited, status=0/SUCCESS)
  Process: 46796 ExecStartPre=/usr/sbin/named-checkconf -z /etc/named.conf (code=exited, status=0/SUCCESS)
 Main PID: 46799 (named)
   CGroup: /system.slice/named.service
           └─46799 /usr/sbin/named -u named

Файл конфигурации 192.168.1.arpa
проверить результаты теста

[root@localhost named]# nslookup 
> 192.168.1.3
Server:		192.168.1.3
Address:	192.168.1.3#53

3.1.168.192.in-addr.arpa	name = dns.gztzy.org.
> 192.168.1.4
Server:		192.168.1.3
Address:	192.168.1.3#53

4.1.168.192.in-addr.arpa	name = jwc.gztzy.org.
> 192.168.1.5
Server:		192.168.1.3
Address:	192.168.1.3#53

5.1.168.192.in-addr.arpa	name = yds.gztzy.org.
> 192.168.1.6
Server:		192.168.1.3
Address:	192.168.1.3#53

6.1.168.192.in-addr.arpa	name = cys.gztzy.org.
> exit

2. Разверните подчиненный сервер

Как важная служба инфраструктуры Интернета, очень важно обеспечить нормальную работу службы разрешения доменных имен DNS.Только таким образом мы можем обеспечить стабильную, быструю и бесперебойную службу запросов доменных имен. В службе разрешения доменных имен DNS подчиненный сервер может получить файл данных назначенной зоны от главного сервера, тем самым играя роль резервного копирования записей разрешения и балансировки нагрузки. Следовательно, развертывание подчиненного сервера может не только снизить нагрузку на главный сервер, но и повысить эффективность запросов пользователей.

Случай применения
Настройте подчиненный сервер для DNS-сервера с IP-адресом 192.168.1.3 и адресом 192.168.1.20.
Шаг 1: Разрешите запрос на обновление подчиненного сервера в файле конфигурации зоны главного сервера, то есть измените параметр allow-update {адрес хоста, который позволяет обновлять информацию о зоне;};, а затем перезапустите службу DNS. программа главного сервера.

[root@localhost named]# vim /etc/named.rfc1912.zones 
 		zone "gztzy.org" IN {
    
    
        type master;
        file "gztzy.org";
        allow-update {
    
     192.168.1.20; };
};
zone "1.168.192.in-addr.arpa" IN {
    
    
        type master;
        file "192.168.1.arpa";
        allow-update {
    
     192.168.1.20; };
};

Шаг 2: Настройте правила выпуска брандмауэра на главном сервере, чтобы обеспечить бесперебойную передачу трафика протокола DNS
[root@localhost named]# firewall-config
Пожалуйста, добавьте описание изображения
Шаг 3: Установите пакет bind-chroot на подчиненном сервере. Измените файл конфигурации, чтобы подчиненный сервер мог также предоставлять службы DNS извне, установите IP-адрес подчиненного сервера и проверьте его сетевое подключение к главному серверу.

[root@localhost 桌面]# yum install -y bind
[root@localhost 桌面]# ifconfig 
eno16777736: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.1.20  netmask 255.255.255.0  broadcast 192.168.1.255
        inet6 fe80::20c:29ff:fe44:2ec6  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:44:2e:c6  txqueuelen 1000  (Ethernet)
        RX packets 744  bytes 66179 (64.6 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 2215  bytes 188465 (184.0 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
[root@localhost named]# vim /etc/named.conf
options {
    
    
        listen-on port 53 {
    
     any; };
        listen-on-v6 port 53 {
    
     ::1; };
        directory       "/var/named";
        dump-file       "/var/named/data/cache_dump.db";
        statistics-file "/var/named/data/named_stats.txt";
        memstatistics-file "/var/named/data/named_mem_stats.txt";
        allow-query     {
    
     any; };

[root@localhost 桌面]# ping 192.168.1.3 -c4       
PING 192.168.1.3 (192.168.1.3) 56(84) bytes of data.
64 bytes from 192.168.1.3: icmp_seq=1 ttl=64 time=0.228 ms
64 bytes from 192.168.1.3: icmp_seq=2 ttl=64 time=0.292 ms
64 bytes from 192.168.1.3: icmp_seq=3 ttl=64 time=1.25 ms
64 bytes from 192.168.1.3: icmp_seq=4 ttl=64 time=0.295 ms

--- 192.168.1.3 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3001ms
rtt min/avg/max/mdev = 0.228/0.516/1.252/0.426 ms

Шаг 4: Введите IP-адрес главного сервера и информацию об области, которую нужно захватить на подчиненном сервере, а затем перезапустите службу. Обратите внимание, что тип сервиса в это время должен быть ведомым (slave), а не ведущим (master). За параметром masters должен следовать IP-адрес главного сервера, а за параметром file должно следовать место, где будет сохранен файл конфигурации синхронизированных данных, и синхронизированный файл можно будет увидеть в этом каталоге позже.

[root@localhost named]# vim /etc/named.rfc1912.zones 
zone "gztzy.org." IN {
    
    
        type slave;
        masters {
    
    192.168.1.3; };
        file "slaves/gztzy.org.zones";
};
zone "1.168.192.in-addr.arpa" IN {
    
    
        type slave;
        masters {
    
    192.168.1.3; };
        file "slaves/192.168.1.arpa";
};
[root@localhost named]# named-checkconf 
[root@localhost named]# systemctl restart named
root@localhost named]# cd /var/named/slaves/
[root@localhost slaves]# ls
192.168.1.arpa  gztzy.org.zones

Шаг 5: Проверьте результаты анализа. После перезапуска программы службы DNS подчиненного сервера файл конфигурации данных автоматически синхронизируется с главным сервером, и этот файл будет помещен в каталог, указанный в файле конфигурации зоны по умолчанию. Затем измените сетевые параметры подчиненного сервера и измените параметр адреса DNS на 192.168.1.20, чтобы можно было использовать службу разрешения доменных имен DNS, предоставляемую самим подчиненным сервером. Наконец, вы можете использовать команду nslookup, чтобы плавно просмотреть результаты анализа.

[root@localhost slaves]# nslookup 
> 192.168.1.3
Server:		192.168.1.20
Address:	192.168.1.20#53

3.1.168.192.in-addr.arpa	name = dns.gztzy.org.
> yds.gztzy.org
Server:		192.168.1.20
Address:	192.168.1.20#53

Name:	yds.gztzy.org
Address: 192.168.1.5
> exit

рекомендация

отblog.csdn.net/weixin_52532523/article/details/127490262