1. [安装]
    2. yum install bind bind-utils bind-chroot -y
    3. [配置]
    4. :/etc/named.conf # 主配置文件
    5. :/etc/named/zone # 文件
    6. [bind-chroot - /var/named/chroot/etc/named.conf]
    7. $ cp -R /usr/share/doc/bind-9.9.4/sample/var/named/* /var/named/chroot/var/named/
    8. $ touch /var/named/chroot/var/named/data/cache_dump.db
    9. $ touch /var/named/chroot/var/named/data/named_stats.txt
    10. $ touch /var/named/chroot/var/named/data/named_mem_stats.txt
    11. $ touch /var/named/chroot/var/named/data/named.run
    12. $ mkdir /var/named/chroot/var/named/dynamic
    13. $ touch /var/named/chroot/var/named/dynamic/managed-keys.bind
    14. $ chmod -R 777 /var/named/chroot/var/named/data
    15. $ chmod -R 777 /var/named/chroot/var/named/dynamic
    16. $ cp -R /etc/named* /var/named/chroot/etc/
    17. $ chown -R root.named /var/named/chroot/
    1. [DNS服务配置 - vim /var/named/chroot/etc/named.conf]
    2. //
    3. // named.conf
    4. //
    5. // Provided by Red Hat bind package to configure the ISC BIND named(8) DNS
    6. // server as a caching only nameserver (as a localhost DNS resolver only).
    7. //
    8. // See /usr/share/doc/bind*/sample/ for example named configuration files.
    9. //
    10. // See the BIND Administrator's Reference Manual (ARM) for details about the
    11. // configuration located in /usr/share/doc/bind-{version}/Bv9ARM.html
    12. options {
    13. listen-on port 53 { any; }; ## 修改成any
    14. listen-on-v6 port 53 { ::1; };
    15. directory "/var/named";
    16. dump-file "/var/named/data/cache_dump.db";
    17. statistics-file "/var/named/data/named_stats.txt";
    18. memstatistics-file "/var/named/data/named_mem_stats.txt";
    19. recursing-file "/var/named/data/named.recursing";
    20. secroots-file "/var/named/data/named.secroots";
    21. allow-query { any; }; ## 修改成any
    22. /*
    23. - If you are building an AUTHORITATIVE DNS server, do NOT enable recursion.
    24. - If you are building a RECURSIVE (caching) DNS server, you need to enable
    25. recursion.
    26. - If your recursive DNS server has a public IP address, you MUST enable access
    27. control to limit queries to your legitimate users. Failing to do so will
    28. cause your server to become part of large scale DNS amplification
    29. attacks. Implementing BCP38 within your network would greatly
    30. reduce such attack surface
    31. */
    32. recursion yes; # 不用修改,启动递归服务
    33. dnssec-enable yes; # 不用修改
    34. dnssec-validation yes; # 不用修改
    35. /* Path to ISC DLV key */
    36. bindkeys-file "/etc/named.iscdlv.key";
    37. managed-keys-directory "/var/named/dynamic";
    38. pid-file "/run/named/named.pid";
    39. session-keyfile "/run/named/session.key";
    40. };
    41. logging {
    42. channel default_debug {
    43. file "data/named.run";
    44. severity dynamic;
    1. [域空间配置文件 vim /var/named/chroot/etc/named.rfc1912.zones]
    2. // named.rfc1912.zones:
    3. //
    4. // Provided by Red Hat caching-nameserver package
    5. //
    6. // ISC BIND named zone configuration for zones recommended by
    7. // RFC 1912 section 4.1 : localhost TLDs and address zones
    8. // and http://www.ietf.org/internet-drafts/draft-ietf-dnsop-default-local-zones-02.txt
    9. // (c)2007 R W Franks
    10. //
    11. // See /usr/share/doc/bind*/sample/ for example named configuration files.
    12. //
    13. zone "localhost.localdomain" IN {
    14. type master;
    15. file "named.localhost";
    16. allow-update { none; };
    17. };
    18. zone "localhost" IN {
    19. type master;
    20. file "named.localhost";
    21. allow-update { none; };
    22. };
    23. 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 {
    24. type master;
    25. file "named.loopback";
    26. allow-update { none; };
    27. };
    28. zone "1.0.0.127.in-addr.arpa" IN {
    29. type master;
    30. file "named.loopback";
    31. allow-update { none; };
    32. };
    33. zone "0.in-addr.arpa" IN {
    34. type master;
    35. file "named.empty";
    36. allow-update { none; };
    37. };
    38. // 新增配置项目
    39. zone "jiyuan.com" IN { ## jiyuan 自定义域名
    40. type master; ## DNS服务类型,默认为master,这里我们是搭建的第一个DNS服务器,则就定为主服务器,即默认的master
    41. file "creatson.com.zone"; ## 域名配置文件名, 这个文件名会在 /var/named/chroot/var/named/ 这个目录下去寻找
    42. };
    43. [为新增配置项目, 创建这个域的配置文件]
    44. // ## 已named.localhost为基础模板,复制一份并改为上一步配置的名称
    45. cp /var/named/chroot/var/named/named.localhost /var/named/chroot/var/named/jiyuan.com.zone
    46. vim /var/named/chroot/var/named/jiyuan.com.zone ## 编辑
    47. $TTL 1D
    48. @ IN SOA @ rname.invalid. (
    49. 0 ; serial
    50. 1D ; refresh
    51. 1H ; retry
    52. 1W ; expire
    53. 3H ) ; minimum
    54. NS @
    55. A 127.0.0.1
    56. AAAA ::1
    57. sinoxx IN A 192.168.9.89 ## 配置子域名,也就是主机名,对应的IP地址, A记录就是对应 IPV4 地址, IN 表示 internel 网络
    58. jenkins IN A 192.168.9.90
    59. gitlab IN A 192.168.9.55
    60. ## TTL 就是修改配置的生效时间,本质上就是这个域的DNS信息在别的DNS服务器的缓存中存在多久,默认为一天
    61. serial ## 这个是配置的编号,每次修改完配置后这个编号变化一下,通常是直接+1,这样从服务器就能知道有修改并更新配置
    62. refresh ## 从服务器刷新时间,默认一天刷新一次
    63. retry ## 如果刷新失败,默认1小时重试一次
    64. expire ## 缓存过期时间,一周
    1. // systemctl start named
    2. systemctl start named-chroot ## 启动服务,如何使用了bind-chroot 则启动 named-chroot 否则启动 named
    3. systemctl enable named-chroot ## 设为开机启动
    4. firewall-cmd --add-service=dns --permanent
    5. firewall-cmd --reload