Centos下部署DNS服务器 773次阅读 Centos • 学习归纳 2021-08-06 ## 壹:前言 ------ ### 什么是DNS服务器? DNS(Domain Name Server,域名服务器)是进行域名(domain name)和与之相对应的IP地址 (IP address)转换的服务器 ### 关于DNS服务器的一些碎碎念: DNS服务器有三个较为重要的文件,分别是主文件、正向查找文件、反向查找文件 主文件包含了一些主要设置,包括但不限于日志文件路径、正反向查找文件名字和路径、监听端口等等..... 正向查找文件包含了从IP转换为网址的过程,里面包含了转换记录,最常见的是A(主机)记录 反向查找文件包含了从网址转换为IP的过程(也叫做逆向记录),里面同样也包含了转换记录,最常见的是PTR(指针)记录 ------ ## 贰:安装和配置服务 ------ ```centos [root@centos1 ~]# yum -y install bind* ``` 使用该命令安装bind服务 ```centos [root@centos1 ~]# systemctl start named.service [root@centos1 ~]# systemctl enable named.service Created symlink from /etc/systemd/system/multi-user.target.wants/named.service to /usr/lib/systemd/system/named.service. [root@centos1 ~]# systemctl status named.service ``` 启动dns服务 设置dns服务开机启动 检查dns服务运行状态 ------ ## 叁:修改主配置文件named.conf ------ ```centos vim /etc/named.conf ``` 使用vim命令打开并修改主配置文件 /etc/named.conf,下面为非标准例子,根据实际情况修改 ``` options { listen-on port 53 { any; }; //named监听的端口号53,与外部主机通信的地址 (修改为any,即任意ip ) listen-on-v6 port 53 { any; }; //支持Ipv6(修改为any,即任意ip ) 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查询的客户端地址(修改为any,即任意ip ) forward first; //设置为forward first转发服务器,还有一种是forward only(仅仅转发,本地不做任何工作),不填默认只管本地设定的dns条数 forwarders{223.5.5.5;114.114.114.114;};//设定转发的服务器,可多选,用;号分割 ``` ``` logging { //定义bind服务的日志 channel default_debug { //日志输出方式,只有当服务器的debug级别非0时,才产生输出。这里默认保存在/var/named/data目录下 file "data/named.run";//输出到文本文件 severity dynamic;//消息的严重性等级 }; }; zone "." IN {//定义根区域。根数据库文件在/var/named/named.ca,这个文件定义了全世界根文件服务器 type hint; file "named.ca"; }; zone "xiewenwei.cn" IN { //xiewenwei.cn为正向查找的主域名,其他保持格式填写 type master; //模式为主服务器,还有一种模式是slave,辅助服务器 file "xiewenwei.cn.zone"; //正向查找配置文件的文件名,文档默认存储在var/named目录下 }; zone "31.168.192.in-addr.arpa" IN { //31.168.192为反向查找的网段,其他保持格式填写,注意,ip需要倒着写 type master; //模式为主服务器,还有一种模式是slave,辅助服务器 file "31.168.192.cn.zone"; //反向查找配置文件的文件名,文档默认存储在var/named目录 }; #include "/etc/named.rfc1912.zones"; //辅助区域文件 #include "/etc/named.root.key";//用来签名和验证DNS资源记录的公共密钥文件 ``` ------ ## 肆:修改正向解析文件 ------ ``` [root@centos1 /]# cd /var/named ``` 使用cd命令进入/var/named目录 ``` [root@centos1 named]# cp -p named.empty xiewenwei.cn.zone ``` 使用cp -p命令复制模板文件named.empty,并修改名字为xiewenwei.cn.zone,要和主配置文件named.conf里对应上 ``` [root@centos1 named]# chown named:named xiewenwei.cn.zone [root@centos1 named]# ll xiewenwei* -rw-r-----. 1 named named 931 6月 21 2007 xiewenwei.cn.zone ``` 使用chown命令修改xiewenwei.cn.zone文件的所属用户、用户组为named,用ll命令确认 ``` [root@centos1 named]# vim xiewenwei.cn.zone ``` 使用vim文本编辑器按照参考模板修改正向查找文件,下面为参考模板 ```centos $TTL 1D //DNS客户端缓存数据的有效期,1D为一天 @ IN SOA dns1.xiewenwei.cn. mail.xiewenwei.cn. (↑ //指互联网 //指开始授权记录 //该域名解析使用的服务器 //该域名管理者的email地址 //↑(@是一个占位符,表示为自己,也可以填写根域名) 24//更新序列号,如果本地比权威服务器大,就同步一次 1D//从DNS服务器在检查主DNS服务器的SOA记录之前应等待的时间 1H//从DNS服务器在主DNS服务器不能使用时,重试请求应等待的时间 1W//从DNS服务器与主DNS不能通信时,其区域信息保存的时间 3H)//没有定义TTL时,默认使用的TTL值 @ NS dns1.xiewenwei.cn. @ IN A 192.168.31.120 dns1 IN A 192.168.31.120 www IN A 192.168.31.120 ``` ![image-20210806133805795](https://blog.gdsdxy.fun/doc/3dns/image-20210806133805795.png) ------ ## 伍:修改反向解析文件 ------ ``` [root@centos1 /]# cd /var/named ``` 使用cd命令进入/var/named目录 ``` [root@centos1 named]# cp -p named.empty 31.168.192.cn.zone ``` 使用cp -p命令复制模板文件named.empty,并修改名字为31.168.192.cn.zone,要和主配置文件named.conf里对应上 ``` [root@centos1 named]# chown named:named 31.168.192.cn.zone [root@centos1 named]# ll 31.168*-rw-r-----. 1 named named 152 12月 15 2009 31.168.192.cn.zone ``` 使用chown命令修改31.168.192.cn.zone文件的所属用户、用户组为named,用ll命令确认 ``` [root@centos1 named]# vim 31.168.192.cn.zone ``` 使用vim文本编辑器按照参考模板修改反向查找文件,下面为参考模板 ``` $TTL 1D //DNS客户端缓存数据的有效期,1D为一天 @ IN SOA dns1.xiewenwei.cn. mail.xiewenwei.cn. (↑ //指互联网 //指开始授权记录 //该域名解析使用的服务器 //该域名管理者的email地址 //↑(@是一个占位符,表示为自己,也可以填写根域名) 24//更新序列号,如果本地比权威服务器大,就同步一次 1D//从DNS服务器在检查主DNS服务器的SOA记录之前应等待的时间 1H//从DNS服务器在主DNS服务器不能使用时,重试请求应等待的时间 1W//从DNS服务器与主DNS不能通信时,其区域信息保存的时间 3H)//没有定义TTL时,默认使用的TTL值 NS dns1.xiewenwei.cn. dns1 A 192.168.31.120 120 PTR xiewenwei.cn. 120 PTR dns1.xiewenwei.cn. 120 PTR www.xiewenwei.cn. ``` ![image-20210806133830955](https://blog.gdsdxy.fun/doc/3dns/image-20210806133830955.png) ------ ## 陆:测试 ------ 设置客户机的dns服务器为dns服务器的ip ### centos: ``` [root@centos ~]# yum install -y bind-utils ``` 确保系统已安装该网络组件 ``` [root@centos ~]# ifconfig ens192:flags=4163 mtu 1500 inet 192.168.31.170 netmask 255.255.255.0 broadcast 192.168.31.255 [root@centos ~]# nmcli c mod ens192 ipv4.dns 192.168.31.120 [root@centos ~]# systemctl restart network ``` 使用ifconfig命令查询网卡名称,再用nmcli命令更改网卡dns服务器,然后重启网络 ![image-20210806110748002](https://blog.gdsdxy.fun/doc/3dns/image-20210806110748002.png) 可以看到,解析成功 ### Windows: 控制面板→网络与共享中心 ![image-20210806110942779](https://blog.gdsdxy.fun/doc/3dns/image-20210806110942779.png) 找到目前活动的网络 ![image-20210806111024033](https://blog.gdsdxy.fun/doc/3dns/image-20210806111024033.png) 点开WLAN状态 ![image-20210806111059760](https://blog.gdsdxy.fun/doc/3dns/image-20210806111059760.png) 点击属性,找到ipv4,点开 ![image-20210806111225366](https://blog.gdsdxy.fun/doc/3dns/image-20210806111225366.png) 将首选DNS服务器的ip地址设置为我们的本地dns服务器ip,确定,确定保存 ![image-20210806111335308](https://blog.gdsdxy.fun/doc/3dns/image-20210806111335308.png) 可以看到,解析成功 ![image-20210806111412213](https://blog.gdsdxy.fun/doc/3dns/image-20210806111412213.png) 使用域名打开网页,测试成功 ------ ## 柒:补充 ------ ### ①nslookup命令拿到的是ipv6的地址,无法测试? 先禁用ipv6地址分配再试~ ### ②正反向文件复制黏贴都无法运行? 注意格式不能错哦,//要删干净,可能一个空格都要命~ ### ③系统内运行正常,无法被客户端解析? 关闭防火墙和selinux再试,命令: ```centos [root@centos ~]#systemctl stop firewalld.service [root@centos ~]#systemctl disable firewalld.service [root@centos ~]#sed -ri '/^SELINUX=/cSELINUX=disabled' /etc/sysconfig/selinux [root@centos ~]#setenforce 0 ``` ###④关于 DNS记录类型: A记录(主机记录): 使用最广泛的DNS记录,A记录的基本作用就是指定一个域名对应的IP。 DNS负载均衡用法,一个A记录对应多个IP,实现简单的负载均衡。 AAAA记录: 和A记录一样的功能,区别就是该记录指定的IP是IPv6的IP地址。 NS(Name Server/域名服务器)记录: NS记录实际上也是在DNS服务器之间,表明谁对某个区域有解释权,即权威DNS。 指定该域名由那些DNS服务器来进行解析。 不可缺的记录类型。 “优先级”中的数字越小表示级别越高。 NS记录优先于A记录。 SOA(起始授权机构)记录: SOA记录表明了DNS服务器之间的关系。 SOA记录表明了谁是这个区域的主要DNS服务器。 指定NS中的DNS服务器列表中的主DNS服务器, 不可缺记录类型。 MX(邮件交换)记录: 记录是邮件交换记录。 指向一个邮件服务器,用于电子邮件系统发邮件时根据收信人的地址后缀来定位邮件服务器。 MX记录可以使用主机名或IP地址。 MX记录可以通过设置优先级实现主辅服务器设置,“优先级”中的数字越小表示级别越高。也可以使用相同优先级达到负载均衡的目的。 如果在“主机名”中填入子域名则此MX记录只对该子域名生效。 CNAME记录(别名记录): 将注册的不同域名都转到一个域名记录上,由这个域名记录统一解析管理。 CNAME别名记录设置的可以是一个域名的描述而不是IP地址。 CNAME的目标主机地址只能使用主机名,不能使用IP地址。 主机名前不能有任何其他前缀,如:http:// 等是不被允许的。 A记录优先于CNAME记录。即如果一个主机地址同时存在A记录和CNAME记录,则CNAME记录不生效。 SRV记录: SRV记录是服务器资源记录的缩写 SRV记录的作用是说明一个服务器能够提供什么样的服务 PTR(pointer)记录: "PTR"就是"反向DNS" PTR记录也被称为指针记录,PTR记录是A记录的逆向记录,作用是把IP地址解析为域名。 一定要有固定公网IP地址以及真实可用域名。 同时要注意反向解析的域名的A记录一定要指向该IP。 对于有多个固定公网IP地址的,只要做主要出口IP的反向解析即可,不管您有多少SMTP服务器,只要是通过该IP连接至外网就将这些SMTP服务器的HELO域名改成IP反向解析之域名即可。 TXT记录: 指某个主机名或域名的说明 TXT的应用之一,SPF(Sender Policy Framework)反垃圾邮件。SPF是跟DNS相关的一项技术,它的内容写在DNS的TXT类型的记录里面。 SPF的作用主要是反垃圾邮件,主要针对那些发信人伪造域名的垃圾邮件。 谢文伟 写于2021-08-06 最后一次更新于2021-08-09 DNS centos
0 条评论