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
- 服务安装(这里使用本地yum进行安装,若未配置yum需要先进行yum配置)
- 备份原有配置文件
- 修改配置文件
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";
};
- 启动服务器
- 查看监听端口状态
DNS缓存服务器配置
- 修改配置文件,新增如下配置,并将原有的根区域配置注释
options { #全局选项配置
...
forward only; #只允许转发
forwarders{202.106.0.20;202.106.148.1}; #指定转发目的dns
...
};
...
#zone "." IN {
# type hint;
# file "named.ca";
#};
...
- 配置文件语法检查:使用命令named-checkconf进行语法检查
- 配置文件出现语法错误时:
- 配置文件无无法错误时无任何输出:
- 重启服务
- dns客户端配置
- 查看客户端网络状态
- 指定dns服务器
- 或
- 重启网络服务
- 使用nslookup命令测试
- 最小化安装,提示未找到该命令
- 查看测试命令所属的包
- 安装该包bind-utils
- 再次输入命令
- 注:测试正向解析时发生错误,dns无法连接,解决方法见文章末尾
- 测试正向解析
- 测试反向解析
dns连接错误的解决办法:
-
服务端与客户端防火墙(包括iptables、与wirewalld)未关闭,selinux未处于Permissive级别(setenforce 0)
-
为dns缓存服务端主机配置正确的网关,使其能够正常与外网的dns服务器通信,客户机与dns服务器应处于同一网段且能够互相通信
-
由于vmware 15的NAT网络模式,需要修改nat模式中的dns设置
- 打开虚拟网络编辑器
- 选择所使用的nat,然后单击NAT设置选项
- 选择高级中的DNS设置选项
- 将自动检测可用的dns服务器选项取消勾选,并添加指定的dns服务器ip地址
- 可能会出现xshell等终端工具无法连接的问题,这是在NAT设置面板中需要添加端口转发规则(注:主机端口应大于1024,且未被使用)
- 使用xshell访问时重新添加连接,主机位127.0.0.1(或物理主机的ip)端口为设置的主机端口(这里是2049)