DNS服务配置实践

## DNS服务配置实践

实验环境:

  • 客户机:windows 10
  • 虚拟软件:vmware15
  • dns server:Centos7 192.168.10.121
  • dns client:Centos7 192.168.10.122

dns服务

  • 功能:记录域名与ip地址之间的映射关系,将指定域名解析为对应ip,将指定的ip转换为对应域名的服务,使用端口tcp/udp 53,工作在应用层
  • 域名:便于人们记忆与在网络上使用的名字,通常与服务绑定,用于访问服务
  • 域名的组成:
    • 完全域名形如:www.baidu.com.
    • .:一个点,表示根域(通常使用时省略,自动添加)
    • .com:表示顶级域,顶级域有多种类型,按照组织划分的有:.com(商业)、.gov(政府)、.edu(教育),按照区域划为的有:.cn(中国)、.hk(中国香港)等
    • baidu:二级域名,还可以存在三级域名、四级域名等等,以点分隔
    • www:万维网服务的主机
    • 注:对于每一级域名长度的限制是63个字符,域名总长度则不能超过253个字符
  • 域名解析:将指定的域名(IP)转化为相对应的IP(域名)的过程
  • 域名解析分类
    • 按查询内容分
      • 正向解析:域名--->IP
      • 反向解析:IP--->域名
    • 查询方式分
      • 递归查询:dns服务器收到客户机请求后查询,若有结果则返回结果,若无结果则转交请求至上一层dns服务器,直至查询结束
      • 迭代查询:dns服务收到客户机请求后若有结果则返回结果,无结果则返回下一步应该查找的dns服务器的地址
  • dns服务器分类
    • 主域名服务器
    • 从域名服务器
    • 缓存域名服务器

dns服务安装

  • 使用bind软件提供dns服务
  • 安装包:bind、bind-chroot、bind-utils
  • 配置文件:/etc/name.conf、/var/named/chroot/etc/named.conf
  1. 服务安装(这里使用本地yum进行安装,若未配置yum需要先进行yum配置)
    1571638532008
  2. 备份原有配置文件
    1571638711536
  3. 修改配置文件
    1571639151232
options {  #全局选项配置
        listen-on port 53 { any; }; #指定ipv4上监听的端口和主机
        listen-on-v6 port 53 { any; }; #指定ipv6上监听的端口和主机
        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"; #内存状态
        recursing-file  "/var/named/data/named.recursing";
        secroots-file   "/var/named/data/named.secroots";
        allow-query     { any; }; #接受来自任何主机的dns查询
        recursion yes;

        dnssec-enable yes; #启用dnssec签名认证
        dnssec-validation no; #是否进行DNSSEC确认开关

        /* Path to ISC DLV key */
        bindkeys-file "/etc/named.iscdlv.key";

        managed-keys-directory "/var/named/dynamic";

        pid-file "/run/named/named.pid";
        session-keyfile "/run/named/session.key";
};
  1. 启动服务器
    1571640359193
  2. 查看监听端口状态
    1571640509537

DNS缓存服务器配置

  1. 修改配置文件,新增如下配置,并将原有的根区域配置注释
options {  #全局选项配置
	  ...
       forward only;  #只允许转发
       forwarders{202.106.0.20;202.106.148.1}; #指定转发目的dns
       ...
};
...
#zone "." IN {
#       type hint;
#       file "named.ca";
#};
...
  1. 配置文件语法检查:使用命令named-checkconf进行语法检查
  • 配置文件出现语法错误时:
    1571641130318
  • 配置文件无无法错误时无任何输出:
    1571641187447
  1. 重启服务
    1571641275292
  2. dns客户端配置
  • 查看客户端网络状态
    1571641443497
  • 指定dns服务器
    1571641472887
    1571641499004

  • 1571641601206
    1571641585560
  • 重启网络服务
    1571641643447
  1. 使用nslookup命令测试
  • 最小化安装,提示未找到该命令
    1571642024425
  • 查看测试命令所属的包
    1571641985699
  • 安装该包bind-utils
    1571642109867
  • 再次输入命令
    1571642133135
  • 注:测试正向解析时发生错误,dns无法连接,解决方法见文章末尾
  • 测试正向解析
    1571645458038
  • 测试反向解析
    1571645494598

dns连接错误的解决办法:

  1. 服务端与客户端防火墙(包括iptables、与wirewalld)未关闭,selinux未处于Permissive级别(setenforce 0)
    1571646318405
    1571646331403

  2. 为dns缓存服务端主机配置正确的网关,使其能够正常与外网的dns服务器通信,客户机与dns服务器应处于同一网段且能够互相通信
    1571646368042
    1571646489742
    1571647455181
    1571647523651
    1571647550485
    1571647573115

  3. 由于vmware 15的NAT网络模式,需要修改nat模式中的dns设置

  • 打开虚拟网络编辑器
    1571645704560
  • 选择所使用的nat,然后单击NAT设置选项
    1571645790859
  • 选择高级中的DNS设置选项
    1571645847228
  • 将自动检测可用的dns服务器选项取消勾选,并添加指定的dns服务器ip地址
    1571645923422
  • 可能会出现xshell等终端工具无法连接的问题,这是在NAT设置面板中需要添加端口转发规则(注:主机端口应大于1024,且未被使用)
    1571646001531
  • 使用xshell访问时重新添加连接,主机位127.0.0.1(或物理主机的ip)端口为设置的主机端口(这里是2049)
    1571646117890
posted @ 2019-10-21 17:07  MirL  阅读(444)  评论(0编辑  收藏  举报