DNS域名管理服务

  • DNS服务的作用及工作原理
  • DNS服务的正向和反向解析配置
  • DNS服务的主从同步搭建

    一、DNS介绍

    DNS域名解析系统

  • 域名:有特定的格式组成,用来表示互联网中某一台计算机或者计算机组的名称。能够使人更方便的访问互联网,而不用记住能够被机器直接读取的IP地址

    1. DNS的作用

  • 域名正向解析

    • 域名 —-> IP A记录
  • 域名反向解析

    • IP —-> 域名 PTR记录

      2. DNS的结构

      根域:
  • 在整个DNS系统的最上方一定是. (小数点)这个DNS服务器(称为root),也叫“根域”

一级域名(顶级域|国家域):
二级域名
域名机构

3. DNS工作原理

如果询问一次得到结果, 递归查询 C-S 由CLIENT到SERVER
如果询问多次得到结果, 迭代查询 S-S 由SERVER到SERVER

二、DNS服务器搭建

  • DNS的域名解析都是 udp/53,主从之间的数据传输默认使用tcp/53
  • DNS软件: bind

    需求1

    搭建DNS服务器,能将www.aaa.io 解析成192.168.1.254 正向解析
    1. 如果换作是bbs.aaa.io 是一样的,bbs只是该域下所管理的一台主机

环境:

  • DNS-server:10.1.1.2
  • client:10.1.1.3

思路:

  1. 关闭防火墙和selinux
  2. 配置yum源
  3. 软件三步曲
    • 查看并安装软件
    • 确认成功安装
    • 查看软件列表(配置文档)
  4. 了解配置文件(语法|参数配置) —> man 5 xxx.conf
  5. 根据需求通过修改配置文件完成服务的搭建
  6. 启动服务,开机自启动
  7. 测试验证

步骤:

  • DNS-server上:
  1. 关闭防火墙和selinux
  2. yum list | grep bind``yum -y install bind
    1. rpm -q bind
    2. 查看软件的文件列表rpm -ql bind
  3. 了解配置文件
    1. 主配置文件
    2. 子配置文件
  4. 修改配置文件完成服务的搭建 ```powershell
  5. 修改主配置文件 /etc/named.conf —>监听方式和允许谁来查询 vim /etc/named.conf 修改内容: options { listen-on port 53 { 127.0.0.1;any; }; //any全网监听 listen-on-v6 port 53 { ::1; }; directory “/var/named”; dump-file “/var/named/data/cache_dump.db”;
    1. statistics-file "/var/named/data/named_stats.txt";
    2. memstatistics-file "/var/named/data/named_mem_stats.txt";
    allow-query { localhost;any; }; //any允许任何人查询 recursion yes; dnssec-enable no; dnssec-validation no; / Path to ISC DLV key / bindkeys-file “/etc/named.iscdlv.key”; managed-keys-directory “/var/named/dynamic”; }; …
  6. 修改子配置文件 /etc/named.rfc1912.zones —>定义管理域 aaa.io 在文件的最后增加以下内容: zone “aaa.io” IN { type master; file “aaa.io.zone”; //文件名自己取 allow-update { none; }; };
  7. 在/var/named 目录里创建相应的zone文件 cp -p /var/named/named.localhost /var/named/aaa.io.zone //注意文件的权限
    1. $TTL 1D
    @ IN SOA aaa.io. rname.invalid. (
    1. 0 ; serial
    2. 1D ; refresh
    3. 1H ; retry
    4. 1W ; expire
    5. 3H ) ; minimum
    @ NS dns1.aaa.io. //dns1可以随便指定,但后面的A记录保持一致 dns1 A 10.1.1.2 //前两行,一定是DNS服务器的IP,要在正向文件中指定出来 www A 192.168.1.254 //DNS服务器只是帮助解析的,与自身网段无关
  8. 使用命令检查配置文件语法是否有误 named-checkconf /etc/named.conf named-checkconf /etc/named.rfc1912.zones named-checkzone aaa.io.zone aaa.io.zone //区域文件写2遍 ```

  9. 启动服务,service named start``chkconfig named on

    1. netstat -nltup | grep 53 查看tcp 和udp协议
  10. 测试验证。

client:10.1.1.3上

  1. 1. 指定DNS服务器
  2. echo "nameserver 10.1.1.2" > /etc/resolv.conf
  3. 2. 使用工具去测试
  4. nslookup www.aaa.io
  5. dig @10.1.1.2 www.aaa.io
  6. host www.aaa.io

需求2

搭建DNS服务器实现,正向反向解析 192.168.1.254 —-> www.aaa.io
步骤:

  1. /etc/named.conf 主配置文件
  2. /etc/named.rfc1912.zones 定义了aaa.io 正向域

    1. 文件最后增加以下内容
    2. zone "1.168.192.in-addr.arpa" IN { //192.168.1.0反着写,0不用写
    3. type master;
    4. file "192.168.1.zone"; //文件名自己取
    5. allow-update { none; };
    6. };
  3. 创建/var/named/192.168.1.zone 文件

    1. cp -p named.loopback 192.168.1.zone
      1. $TTL 1D
      2. @ IN SOA aaa.io. rname.invalid. (
      3. 0 ; serial
      4. 1D ; refresh
      5. 1H ; retry
      6. 1W ; expire
      7. 3H ) ; minimum
      8. @ NS dns1.aaa.io. //如果dns1.aaa.io和正向区域文件里存在,可不用写下面的A记
      9. //录,整行可以删掉
      10. dns1 A 10.1.1.2
      11. 254 PTR www.aaa.io. //192.168.1.254
  4. 重启服务(SERVER端),测试验证

  5. 建议关闭NetworkManager
    1. service NetworkManager stop chkconfig NetworkManager off
  6. dig @10.1.1.2 -x 192.168.1.254
    1. nslookup 192.168.1.254
    2. host 192.168.1.254

      三、主从DNS搭建

      主从DNS服务器,是指客户端需要把主和从都配置上,当主服务器挂掉后,仍然可以从从服务器那里获取到和主服务器那里一样的解析结果。

      1. 搭建时间同步服务器

      方法1:
      ntp(network time protocol)端口:123
  • 查看软件是否安装yum | list ntp
    • rpm -q ntp rpm -ql ntp
  • 允许10.1.1.0网段的主机向我同步时间
    • echo "restrict 10.1.1.0 mask 255.255.255.0 nomodify notrap" >> /etc/ntp.conf
    • service ntpd restart
    • 查看下端口,netstat -nltpu | grep ntpd
  • 客户端同步,ntpdate 10.1.1.4 10.1.1.4为SERVER端
  • 依赖于外网,同步时间有延迟

方法2:

  • echo "disabled = no" >> /etc/xinetd.d/time-dgram
  • echo "disabled = no" >> /etc/xinetd.d/stream
  • service xinetd restart
  • netstat -nltup | grep :37
  • 一般适用于局域网
  • 客户端同步,rdate -s 10.1.1.4 10.1.1.4为SERVER端

    2. 部署安装

    环境:
    master-dns: 10.1.1.2
    slave-dns: 10.1.1.3
    ntp-server: 10.1.1.4
    思路:
  1. master和slave的系统时间保持一致
  2. slave服务器上安装相应的软件(系统版本、软件版本保持一致)
  3. 根据需求修改相应的配置文件(master和slave都应该修改)

步骤:

  1. 1. 同步masterslave的系统时间
  2. crontab -e #添加定时任务,master和slave上都需要做
  3. */2 * * * * /usr/bin/rdate -s 10.1.1.4 &>/dev/null
  4. 2. 搭建备用的dns服务器
  5. 以下操作在slave上进行
  6. 1) 安装软件
  7. yum -y install bind
  8. 2) 修改配置文件
  9. vim /etc/named.conf #定义监听方式以及允许谁来查询
  10. 与配置dns配置文件一样,略过
  11. 3) 修改子配置文件
  12. vim /etc/named.rfc1912.zones
  13. zone "test.org" IN {
  14. type slave; //类型是slave
  15. masters {10.1.1.2;}; //指定master dns的ip地址
  16. file "slaves/slave.test.org"; //同步过来的文件的保存路径及名字
  17. };
  18. zone "momowu.cc" IN {
  19. type slave;
  20. masters {10.1.1.2;};
  21. file "slaves/slave.momowu.cc"; //文件名自己取
  22. };
  23. 3. master上操作
  24. 1 /etc/named.conf
  25. 2 /etc/named.rfc1912.zones
  26. allow-update {none;}; //删除,或者把none改成slave的ip
  27. 4. 重启服务,masterslave都要操作
  28. service named restart
  29. 5. 测试验证
  30. client 10.1.1.4
  31. echo nameserver 10.1.1.2 > /etc/resolv.conf
  32. echo nameserver 10.1.1.3 >> /etc/resolv.conf
  • 只允许特定的slave(10.1.1.3)向master进行同步数据
    • vim /etc/named.conf
      • 在花括号内添加allow-transfer {10.1.1.3;};