Red Hat (RHEL/CentOS) 7 เชฎเชพเชŸเซ‡ chroot เชชเชฐเซเชฏเชพเชตเชฐเชฃเชฎเชพเช‚ BIND DNS เชธเชฐเซเชตเชฐเชจเซ‡ เชธเซ‡เชŸเช…เชช เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชธเซเชŸเซ‡เชช เชฌเชพเชฏ เชธเซเชŸเซ‡เชช เช—เชพเช‡เชก

เช…เชญเซเชฏเชพเชธเช•เซเชฐเชฎเชจเชพ เชตเชฟเชฆเซเชฏเชพเชฐเซเชฅเซ€เช“ เชฎเชพเชŸเซ‡ เชคเซˆเชฏเชพเชฐ เช•เชฐเซ‡เชฒ เชฒเซ‡เช–เชจเซ‹ เช…เชจเซเชตเชพเชฆ "เชฒเชฟเชจเช•เซเชธ เชธเซเชฐเช•เซเชทเชพ". เช† เชฆเชฟเชถเชพเชฎเชพเช‚ เชตเชฟเช•เชพเชธ เช•เชฐเชตเชพเชฎเชพเช‚ เชฐเชธ เชงเชฐเชพเชตเซ‹ เช›เซ‹? เช‡เชตเชพเชจ เชชเชฟเชธเซเช•เซเชจเซ‹เชตเชจเชพ เชฎเชพเชธเซเชŸเชฐ เช•เซเชฒเชพเชธเชจเชพ เชชเซเชฐเชธเชพเชฐเชฃเชจเซเช‚ เชฐเซ‡เช•เซ‹เชฐเซเชกเชฟเช‚เช— เชœเซเช“ "Windows เช…เชจเซ‡ MacOS เชจเซ€ เชธเชฐเช–เชพเชฎเชฃเซ€เชฎเชพเช‚ Linux เชฎเชพเช‚ เชธเซเชฐเช•เซเชทเชพ"

Red Hat (RHEL/CentOS) 7 เชฎเชพเชŸเซ‡ chroot เชชเชฐเซเชฏเชพเชตเชฐเชฃเชฎเชพเช‚ BIND DNS เชธเชฐเซเชตเชฐเชจเซ‡ เชธเซ‡เชŸเช…เชช เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชธเซเชŸเซ‡เชช เชฌเชพเชฏ เชธเซเชŸเซ‡เชช เช—เชพเช‡เชก

เช† เชฒเซ‡เช–เชฎเชพเช‚, เชนเซเช‚ เชคเชฎเชจเซ‡ RHEL 7 เช…เชฅเชตเชพ CentOS 7 เชชเชฐ DNS เชธเชฐเซเชตเชฐ เชธเซเชฏเซ‹เชœเชฟเชค เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡เชจเชพ เชชเช—เชฒเชพเช‚เช“ เชฆเซเชตเชพเชฐเชพ เชฒเชˆ เชœเชˆเชถ. เชฎเซ‡เช‚ เชชเซเชฐเชฆเชฐเซเชถเชจ เชฎเชพเชŸเซ‡ Red Hat Enterprise Linux 7.4 เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซเชฏเซ‹ เช›เซ‡. เช…เชฎเชพเชฐเซ‹ เชงเซเชฏเซ‡เชฏ เชซเซ‹เชฐเชตเชฐเซเชก เช…เชจเซ‡ เชฐเชฟเชตเชฐเซเชธ เชฒเซเช•เช…เชช เชเซ‹เชจ เชฎเชพเชŸเซ‡ เช…เชจเซเช•เซเชฐเชฎเซ‡ เชเช• A เชฐเซ‡เช•เซ‹เชฐเซเชก เช…เชจเซ‡ เชเช• PTR เชฐเซ‡เช•เซ‹เชฐเซเชก เชฌเชจเชพเชตเชตเชพเชจเซ‹ เช›เซ‡.

เชชเซเชฐเชฅเชฎ, DNS เชธเชฐเซเชตเชฐ เชฎเชพเชŸเซ‡ เชœเชฐเซ‚เชฐเซ€ rpm เชชเซ‡เช•เซ‡เชœเซ‹ เชธเซเชฅเชพเชชเชฟเชค เช•เชฐเซ‹.

เชจเซ‹เช‚เชง: RHEL เชฎเชพเชŸเซ‡ เชคเชฎเชพเชฐเซ€ เชชเชพเชธเซ‡ เชนเซ‹เชตเซเช‚ เช†เชตเชถเซเชฏเช• เช›เซ‡ เชธเช•เซเชฐเชฟเชฏ RHN เช‰เชฎเซ‡เชฆเชตเชพเชฐเซ€, เช…เชฅเชตเชพ เชคเชฎเซ‡ เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹ เชธเซเชฅเชพเชจเชฟเช• เช‘เชซเชฒเชพเช‡เชจ เชฐเชฟเชชเซ‹เชเซ€เชŸเชฐเซ€ เชธเซ‡เชŸ เช•เชฐเซ‹, เชœเซ‡เชจเซ€ เชธเชพเชฅเซ‡ เชชเซ‡เช•เซ‡เชœ เชฎเซ‡เชจเซ‡เชœเชฐ โ€œyumโ€ เชœเชฐเซ‚เชฐเซ€ rpm เชชเซ‡เช•เซ‡เชœเซ‹ เช…เชจเซ‡ เชจเชฟเชฐเซเชญเชฐเชคเชพเชจเซ‡ เชธเซเชฅเชพเชชเชฟเชค เช•เชฐเซ€ เชถเช•เซ‡ เช›เซ‡.

# yum install bind bind-chroot caching-nameserver

เชฎเชพเชฐเซ€ เชธเซ‡เชŸเชฟเช‚เช—เซเชธ:

# hostname
golinuxhub-client.example
ะœะพะน IP-ะฐะดั€ะตั 192.168.1.7
# ip address | egrep 'inet.*enp0s3'
    inet 192.168.1.7/24 brd 192.168.1.255 scope global dynamic enp0s3

เช…เชฎเซ‡ chroot เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€ เชฐเชนเซเชฏเชพ เชนเซ‹เชตเชพเชฅเซ€, เช…เชฎเชพเชฐเซ‡ เชธเซ‡เชตเชพเชจเซ‡ เช…เช•เซเชทเชฎ เช•เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡.

# systemctl stop named
# systemctl disable named

เชชเช›เซ€ chroot เชกเชฟเชฐเซ‡เช•เซเชŸเชฐเซ€เชฎเชพเช‚ เชœเชฐเซ‚เชฐเซ€ เชซเชพเช‡เชฒเซ‹เชจเซ€ เชจเช•เชฒ เช•เชฐเซ‹.
เชจเซ‰เซ…เชง. เชฆเชฒเซ€เชฒเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ‹ -p เชเช• เชŸเซ€เชฎเชฎเชพเช‚ cp เช…เชงเชฟเช•เชพเชฐเซ‹ เช…เชจเซ‡ เชฎเชพเชฒเชฟเช•เซ‹เชจเซ‡ เชฌเชšเชพเชตเชตเชพ เชฎเชพเชŸเซ‡.

[root@golinuxhub-client ~]# cp -rpvf /usr/share/doc/bind-9.9.4/sample/etc/*  /var/named/chroot/etc/
โ€˜/usr/share/doc/bind-9.9.4/sample/etc/named.confโ€™ -> โ€˜/var/named/chroot/etc/named.confโ€™
โ€˜/usr/share/doc/bind-9.9.4/sample/etc/named.rfc1912.zonesโ€™ -> โ€˜/var/named/chroot/etc/named.rfc1912.zonesโ€™

เชชเช›เซ€ เชเซ‹เชจ เชธเชพเชฅเซ‡ เชธเช‚เช•เชณเชพเชฏเซ‡เชฒ เชซเชพเช‡เชฒเซ‹เชจเซ‡ เชจเชตเชพ เชธเซเชฅเชพเชจ เชชเชฐ เช•เซ‰เชชเชฟ เช•เชฐเซ‹.

[root@golinuxhub-client ~]# cp -rpvf /usr/share/doc/bind-9.9.4/sample/var/named/* /var/named/chroot/var/named/
โ€˜/usr/share/doc/bind-9.9.4/sample/var/named/dataโ€™ -> โ€˜/var/named/chroot/var/named/dataโ€™
โ€˜/usr/share/doc/bind-9.9.4/sample/var/named/my.external.zone.dbโ€™ -> โ€˜/var/named/chroot/var/named/my.external.zone.dbโ€™
โ€˜/usr/share/doc/bind-9.9.4/sample/var/named/my.internal.zone.dbโ€™ -> โ€˜/var/named/chroot/var/named/my.internal.zone.dbโ€™
โ€˜/usr/share/doc/bind-9.9.4/sample/var/named/named.caโ€™ -> โ€˜/var/named/chroot/var/named/named.caโ€™
โ€˜/usr/share/doc/bind-9.9.4/sample/var/named/named.emptyโ€™ -> โ€˜/var/named/chroot/var/named/named.emptyโ€™
โ€˜/usr/share/doc/bind-9.9.4/sample/var/named/named.localhostโ€™ -> โ€˜/var/named/chroot/var/named/named.localhostโ€™
โ€˜/usr/share/doc/bind-9.9.4/sample/var/named/named.loopbackโ€™ -> โ€˜/var/named/chroot/var/named/named.loopbackโ€™
โ€˜/usr/share/doc/bind-9.9.4/sample/var/named/slavesโ€™ -> โ€˜/var/named/chroot/var/named/slavesโ€™
โ€˜/usr/share/doc/bind-9.9.4/sample/var/named/slaves/my.ddns.internal.zone.dbโ€™ -> โ€˜/var/named/chroot/var/named/slaves/my.ddns.internal.zone.dbโ€™
โ€˜/usr/share/doc/bind-9.9.4/sample/var/named/slaves/my.slave.internal.zone.dbโ€™ -> โ€˜/var/named/chroot/var/named/slaves/my.slave.internal.zone.dbโ€™
```bash
ะขะตะฟะตั€ัŒ ะดะฐะฒะฐะนั‚ะต ะฟะพัะผะพั‚ั€ะธะผ ะฝะฐ ะพัะฝะพะฒะฝะพะน ั„ะฐะนะป ะบะพะฝั„ะธะณัƒั€ะฐั†ะธะธ.
```bash
# cd /var/named/chroot/etc/

name.conf เชจเซ€ เชธเชพเชฎเช—เซเชฐเซ€ เชธเชพเชซ เช•เชฐเซ‹ เช…เชจเซ‡ เชจเซ€เชšเซ‡เชจเซ€ เชชเซ‡เชธเซเชŸ เช•เชฐเซ‹.

[root@golinuxhub-client etc]# vim named.conf
options {
        listen-on port 53 { 127.0.0.1; 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     { localhost; any; };
        allow-query-cache { localhost; any; };
};

logging {
        channel default_debug {
                file "data/named.run";
                severity dynamic;
        };
};

view my_resolver {
        match-clients      { localhost; any; };
        recursion yes;
        include "/etc/named.rfc1912.zones";
};

เชเซ‹เชจ เชตเชฟเชถเชฟเชทเซเชŸ เชฎเชพเชนเชฟเชคเซ€ เช‰เชฎเซ‡เชฐเชตเซ€ เช†เชตเชถเซเชฏเช• เช›เซ‡ /var/named/chroot/etc/named.rfc1912.zones. เชจเซ€เชšเซ‡เชจเซ€ เชเชจเซเชŸเซเชฐเซ€เช“ เช‰เชฎเซ‡เชฐเซ‹. example.zone เชซเชพเช‡เชฒ เชซเซ‹เชฐเชตเชฐเซเชก เชฒเซเช•เช…เชช เชเซ‹เชจ เชซเชพเช‡เชฒ เช›เซ‡, เช…เชจเซ‡ example.rzone - เชฐเชฟเชตเชฐเซเชธ เชเซ‹เชจ เชซเชพเช‡เชฒ.

เชฎเชนเชคเซเชตเชชเซ‚เชฐเซเชฃ เชจเซ‹เช‚เชง: เชฐเชฟเชตเชฐเซเชธ เชฒเซเช•เช…เชช เชเซ‹เชจเชฎเชพเช‚ 1.168.192 เช›เซ‡ เช•เชพเชฐเชฃ เช•เซ‡ เชฎเชพเชฐเซเช‚ IP เชธเชฐเชจเชพเชฎเซเช‚ 192.168.1.7 เช›เซ‡

zone "example" IN {
        type master;
        file "example.zone";
        allow-update { none; };
};

zone "1.168.192.in-addr.arpa" IN {
        type master;
        file "example.rzone";
        allow-update { none; };
};

เชเซ‹เชจ เชธเชพเชฅเซ‡ เชธเช‚เช•เชณเชพเชฏเซ‡เชฒ เชซเชพเช‡เชฒเซ‹ เช…เชนเซ€เช‚ เชธเซเชฅเชฟเชค เช›เซ‡:

# cd /var/named/chroot/var/named/

เช†เช—เชณ, เช…เชฎเซ‡ เชซเซ‹เชฐเชตเชฐเซเชก เช…เชจเซ‡ เชฐเชฟเชตเชฐเซเชธ เชเซ‹เชจ เชฎเชพเชŸเซ‡ เชซเชพเช‡เชฒเซ‹ เชฌเชจเชพเชตเซ€เชถเซเช‚. เชซเชพเช‡เชฒเชจเชพ เชจเชพเชฎเซ‹ เชซเชพเช‡เชฒเชฎเชพเช‚ เช‰เชชเชฐเชจเซ€ เชœเซ‡เชฎ เชœ เชนเชถเซ‡ name.rfc1912.zones. เช…เชฎเชพเชฐเซ€ เชชเชพเชธเซ‡ เชชเชนเซ‡เชฒเชพเชฅเซ€ เชœ เช˜เชฃเชพ เชกเชฟเชซเซ‰เชฒเซเชŸ เชจเชฎเซ‚เชจเชพเช“ เช›เซ‡ เชœเซ‡เชจเซ‹ เช…เชฎเซ‡ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€ เชถเช•เซ€เช เช›เซ€เช.

# cp -p named.localhost  example.zone
# cp -p named.loopback example.rzone

เชœเซ‡เชฎ เชคเชฎเซ‡ เชœเซ‹เชˆ เชถเช•เซ‹ เช›เซ‹, เชฌเชงเซ€ เชซเชพเช‡เชฒเซ‹ เช…เชจเซ‡ เชกเชฟเชฐเซ‡เช•เซเชŸเชฐเซ€เช“ เชชเชฐเชจเซ€ เชตเชฐเซเชคเชฎเชพเชจ เชชเชฐเชตเชพเชจเช—เซ€เช“ เช›เซ‡ เชฐเซเชŸ.

[root@golinuxhub-client named]# ll
total 32
drwxr-xr-x. 2 root root    6 May 22  2017 data
-rw-r--r--. 1 root root  168 May 22  2017 example.rzone
-rw-r--r--. 1 root root  152 May 22  2017 example.zone
-rw-r--r--. 1 root root   56 May 22  2017 my.external.zone.db
-rw-r--r--. 1 root root   56 May 22  2017 my.internal.zone.db
-rw-r--r--. 1 root root 2281 May 22  2017 named.ca
-rw-r--r--. 1 root root  152 May 22  2017 named.empty
-rw-r--r--. 1 root root  152 May 22  2017 named.localhost
-rw-r--r--. 1 root root  168 May 22  2017 named.loopback
drwxr-xr-x. 2 root root   71 Feb 12 21:02 slaves

เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพเชจเซ‡ เชฎเชพเชฒเชฟเช• เชคเชฐเซ€เช•เซ‡ เชฆเชฐเซเชถเชพเชตเชตเชพ เชฎเชพเชŸเซ‡ เชฌเชงเซ€ เชซเชพเช‡เชฒเซ‹เชจเซ€ เชชเชฐเชตเชพเชจเช—เซ€เช“ เชฌเชฆเชฒเซ‹ เชฐเซเชŸ เช…เชจเซ‡ เชœเซ‚เชฅ เชจเชพเชฎเชตเชพเชณเซ€.

# chown root:named *

เชชเชฐเช‚เชคเซ เชกเซ‡เชŸเชพ เชฎเชพเชŸเซ‡ เชฎเชพเชฒเชฟเช• เชนเซ‹เชตเซ‹ เชœเซ‹เชˆเช เชจเชพเชฎ: เชจเชพเชฎ เช†เชชเซเชฏเซเช‚.

# chown -R  named:named data
# ls -l
total 32
drwxr-xr-x. 2 named named    6 May 22  2017 data
-rw-r--r--. 1 root  named  168 May 22  2017 example.rzone
-rw-r--r--. 1 root  named  152 May 22  2017 example.zone
-rw-r--r--. 1 root  named   56 May 22  2017 my.external.zone.db
-rw-r--r--. 1 root  named   56 May 22  2017 my.internal.zone.db
-rw-r--r--. 1 root  named 2281 May 22  2017 named.ca
-rw-r--r--. 1 root  named  152 May 22  2017 named.empty
-rw-r--r--. 1 root  named  152 May 22  2017 named.localhost
-rw-r--r--. 1 root  named  168 May 22  2017 named.loopback
drwxr-xr-x. 2 root  named   71 Feb 12 21:02 slaves

เชคเชฎเชพเชฐเซ€ เชซเซ‹เชฐเชตเชฐเซเชก เชเซ‹เชจ เชซเชพเช‡เชฒเชฎเชพเช‚ เชจเซ€เชšเซ‡เชจเซ€ เชธเชพเชฎเช—เซเชฐเซ€ เช‰เชฎเซ‡เชฐเซ‹. เช…เชนเซ€เช‚ เช†เชชเชฃเซ‡ เชฒเซ‹เช•เชฒเชนเซ‹เชธเซเชŸ (golinuxhub-client) เชฎเชพเชŸเซ‡ A เชฐเซ‡เช•เซ‹เชฐเซเชก เช…เชจเซ‡ เชธเชฐเซเชตเชฐ (golinuxhub-server) เชฎเชพเชŸเซ‡ เชฌเซ€เชœเซ‹ เชฐเซ‡เช•เซ‹เชฐเซเชก เชฌเชจเชพเชตเซ€เช เช›เซ€เช.

# vim example.zone
$TTL 1D
@       IN SOA  example. root (
                                        1       ; serial
                                        3H      ; refresh
                                        15M     ; retry
                                        1W      ; expire
                                        1D )    ; minimum

                IN NS           example.

                        IN A 192.168.1.7
golinuxhub-server       IN A 192.168.1.5
golinuxhub-client       IN A 192.169.1.7

เช†เช—เชณ, เชฐเชฟเชตเชฐเซเชธ เชเซ‹เชจ เชซเชพเช‡เชฒเชฎเชพเช‚ เชธเชพเชฎเช—เซเชฐเซ€ เช‰เชฎเซ‡เชฐเซ‹. เช…เชนเซ€เช‚ เช…เชฎเซ‡ golinuxhub-client เช…เชจเซ‡ golinuxhub-server เชฎเชพเชŸเซ‡ PTR เชฐเซ‡เช•เซ‹เชฐเซเชก เชฌเชจเชพเชตเซ€เช เช›เซ€เช.

# vim example.rzone
$TTL 1D
@       IN SOA  example. root.example. (
                                        1997022700      ; serial
                                        28800           ; refresh
                                        14400           ; retry
                                        3600000         ; expire
                                        86400  )        ; minimum

        IN NS   example.
5       IN PTR  golinuxhub-server.example.
7       IN PTR  golinuxhub-client.example.

เช…เชฎเซ‡ เชธเซ‡เชตเชพ เชถเชฐเซ‚ เช•เชฐเซ€เช เชคเซ‡ เชชเชนเซ‡เชฒเชพเช‚ name-chroot, เชšเชพเชฒเซ‹ เชเซ‹เชจ เชซเชพเช‡เชฒเชจเซเช‚ เชฐเซ‚เชชเชฐเซ‡เช–เชพเช‚เช•เชจ เชคเชชเชพเชธเซ€เช.

[root@golinuxhub-client named]# named-checkzone golinuxhub-client.example example.zone
zone golinuxhub-client.example/IN: loaded serial 1
OK

[root@golinuxhub-client named]# named-checkzone golinuxhub-client.example example.rzone
zone golinuxhub-client.example/IN: loaded serial 1997022700
OK

เชฌเชงเซเช‚ เชธเชพเชฐเซเช‚ เชฒเชพเช—เซ‡ เช›เซ‡. เชนเชตเซ‡ เชจเซ€เชšเซ‡เชจเชพ เช†เชฆเซ‡เชถเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เชฐเซ‚เชชเชฐเซ‡เช–เชพเช‚เช•เชจ เชซเชพเช‡เชฒเชจเซ‡ เชคเชชเชพเชธเซ‹.

[root@golinuxhub-client named]# named-checkconf -t /var/named/chroot/ /etc/named.conf

เชคเซ‡เชฅเซ€, เชฌเชงเซเช‚ เชธเชซเชณเชคเชพเชชเซ‚เชฐเซเชตเช• เชชเซ‚เชฐเซเชฃ เชฅเชฏเซเช‚.

[root@golinuxhub-client named]# echo $?
0

เชฎเชนเชคเซเชตเชจเซ€ เชจเซ‹เช‚เชง: เชฎเชพเชฐเซ€ เชชเชพเชธเซ‡ SELinux เชชเชฐเชตเชพเชจเช—เซ€ เชฎเซ‹เชกเชฎเชพเช‚ เช›เซ‡

# getenforce
Permissive

เชฌเชงเซเช‚ เชธเชพเชฐเซเช‚ เชฒเชพเช—เซ‡ เช›เซ‡, เชคเซ‡เชฅเซ€ เช…เชฎเชพเชฐเซ€ เชธเซ‡เชตเชพ เชถเชฐเซ‚ เช•เชฐเชตเชพเชจเซ‹ เชธเชฎเชฏ เช›เซ‡ name-chroot .

[root@golinuxhub-client named]# systemctl restart named-chroot

[root@golinuxhub-client named]# systemctl status named-chroot
โ— named-chroot.service - Berkeley Internet Name Domain (DNS)
   Loaded: loaded (/usr/lib/systemd/system/named-chroot.service; disabled; vendor preset: disabled)
   Active: active (running) since Mon 2018-02-12 21:53:23 IST; 19s ago
  Process: 5236 ExecStop=/bin/sh -c /usr/sbin/rndc stop > /dev/null 2>&1 || /bin/kill -TERM $MAINPID (code=exited, status=0/SUCCESS)
  Process: 5327 ExecStart=/usr/sbin/named -u named -c ${NAMEDCONF} -t /var/named/chroot $OPTIONS (code=exited, status=0/SUCCESS)
  Process: 5325 ExecStartPre=/bin/bash -c if [ ! "$DISABLE_ZONE_CHECKING" == "yes" ]; then /usr/sbin/named-checkconf -t /var/named/chroot -z "$NAMEDCONF"; else echo "Checking of zone files is disabled"; fi (code=exited, status=0/SUCCESS)
 Main PID: 5330 (named)
   CGroup: /system.slice/named-chroot.service
           โ””โ”€5330 /usr/sbin/named -u named -c /etc/named.conf -t /var/named/chroot

Feb 12 21:53:23 golinuxhub-client.example named[5330]: managed-keys-zone/my_resolver: loaded serial 0
Feb 12 21:53:23 golinuxhub-client.example named[5330]: zone 0.in-addr.arpa/IN/my_resolver: loaded serial 0
Feb 12 21:53:23 golinuxhub-client.example named[5330]: zone 1.0.0.127.in-addr.arpa/IN/my_resolver: loaded serial 0
Feb 12 21:53:23 golinuxhub-client.example named[5330]: zone 1.168.192.in-addr.arpa/IN/my_resolver: loaded serial 1997022700
Feb 12 21:53:23 golinuxhub-client.example named[5330]: zone example/IN/my_resolver: loaded serial 1
Feb 12 21:53:23 golinuxhub-client.example named[5330]: zone localhost/IN/my_resolver: loaded serial 0
Feb 12 21:53:23 golinuxhub-client.example named[5330]: zone 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa/IN/my_resolver: loaded serial 0
Feb 12 21:53:23 golinuxhub-client.example named[5330]: zone localhost.localdomain/IN/my_resolver: loaded serial 0
Feb 12 21:53:23 golinuxhub-client.example named[5330]: all zones loaded
Feb 12 21:53:23 golinuxhub-client.example named[5330]: running
```bash
ะฃะฑะตะดะธั‚ะตััŒ, ั‡ั‚ะพ resolv.conf ัะพะดะตั€ะถะธั‚ ะฒะฐัˆ IP-ะฐะดั€ะตั, ั‡ั‚ะพะฑั‹ ะพะฝ ะผะพะณ ั€ะฐะฑะพั‚ะฐั‚ัŒ ะฒ ะบะฐั‡ะตัั‚ะฒะต DNS-ัะตั€ะฒะตั€ะฐ.
```bash
# cat /etc/resolv.conf
search example
nameserver 192.168.1.7
```bash
ะ”ะฐะฒะฐะนั‚ะต ะฟั€ะพะฒะตั€ะธะผ ะฝะฐัˆ DNS-ัะตั€ะฒะตั€ ะดะปั ะพะฑั€ะฐั‚ะฝะพะน ะทะพะฝั‹, ะธัะฟะพะปัŒะทัƒั dig.
```bash
[root@golinuxhub-client named]# dig -x 192.168.1.5

; <<>> DiG 9.9.4-RedHat-9.9.4-50.el7 <<>> -x 192.168.1.5
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 40331
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;5.1.168.192.in-addr.arpa.      IN      PTR

;; ANSWER SECTION:
5.1.168.192.in-addr.arpa. 86400 IN      PTR     golinuxhub-server.example.

;; AUTHORITY SECTION:
1.168.192.in-addr.arpa. 86400   IN      NS      example.

;; ADDITIONAL SECTION:
example.                86400   IN      A       192.168.1.7

;; Query time: 1 msec
;; SERVER: 192.168.1.7#53(192.168.1.7)
;; WHEN: Mon Feb 12 22:13:17 IST 2018
;; MSG SIZE  rcvd: 122

เชœเซ‡เชฎ เชคเชฎเซ‡ เชœเซ‹เชˆ เชถเช•เซ‹ เช›เซ‹, เช…เชฎเชจเซ‡ เช…เชฎเชพเชฐเซ€ เชตเชฟเชจเช‚เชคเซ€ (QUERY) เชฎเชพเชŸเซ‡ เชนเช•เชพเชฐเชพเชคเซเชฎเช• เชชเซเชฐเชคเชฟเชธเชพเชฆ (ANSWER) เชฎเชณเซเชฏเซ‹ เช›เซ‡.

[root@golinuxhub-client named]# dig -x 192.168.1.7

; <<>> DiG 9.9.4-RedHat-9.9.4-50.el7 <<>> -x 192.168.1.7
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 55804
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;7.1.168.192.in-addr.arpa.      IN      PTR

;; ANSWER SECTION:
7.1.168.192.in-addr.arpa. 86400 IN      PTR     golinuxhub-client.example.

;; AUTHORITY SECTION:
1.168.192.in-addr.arpa. 86400   IN      NS      example.

;; ADDITIONAL SECTION:
example.                86400   IN      A       192.168.1.7

;; Query time: 1 msec
;; SERVER: 192.168.1.7#53(192.168.1.7)
;; WHEN: Mon Feb 12 22:12:54 IST 2018
;; MSG SIZE  rcvd: 122

เช…เชฎเซ‡ เชคเซ‡ เชœ เชฐเซ€เชคเซ‡ เชกเชพเชฏเชฐเซ‡เช•เซเชŸ เชเซ‹เชจเชจเซ‡ เชคเชชเชพเชธเซ€ เชถเช•เซ€เช เช›เซ€เช.

[root@golinuxhub-client named]# nslookup golinuxhub-client.example
Server:         192.168.1.7
Address:        192.168.1.7#53

Name:   golinuxhub-client.example
Address: 192.169.1.7

[root@golinuxhub-client named]# nslookup golinuxhub-server.example
Server:         192.168.1.7
Address:        192.168.1.7#53

Name:   golinuxhub-server.example
Address: 192.168.1.5

เช† เชฒเซ‡เช– เชฅเซ‹เชกเซ‹ เชœเซ‚เชจเซ‹ เช›เซ‡ เช•เชพเชฐเชฃ เช•เซ‡ RHEL 7 เชฎเชพเช‚ เชคเชฎเชพเชฐเซ‡ เชนเชตเซ‡ chroot เชฎเชพเช‚ เชฌเชพเช‡เชจเซเชก เชฐเซ‚เชชเชฐเซ‡เช–เชพเช‚เช•เชจ เชซเชพเช‡เชฒเซ‹เชจเซ€ เชจเช•เชฒ เช•เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เชจเชฅเซ€. เชธเซเชŸเซ‡เชช-เชฌเชพเชฏ-เชธเซเชŸเซ‡เชช เชŸเซเชฏเซเชŸเซ‹เชฐเซ€เชฏเชฒ: เชฌเชพเชˆเชจเซเชก เช•เซเชฐเซ‹เชŸเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ DNS เชธเชฐเซเชตเชฐเชจเซ‡ เช—เซ‹เช เชตเซ‹ (CentOS/RHEL 7).

เชธเซ‹เชฐเซเชธ: www.habr.com

เชเช• เชŸเชฟเชชเซเชชเชฃเซ€ เช‰เชฎเซ‡เชฐเซ‹