Linux的DNS配置
Linux的DNS配置
注:本次测试机器为centos8,从本章开始,难度会开始上升。
1.DNS简介
在日常生活中人们习惯使用域名访问服务器,但机器间互相只认IP地址,域名与IP地址之间是多对一的关系,一个ip地址不一定只对应一个域名,且一个完整域名只可以对应一个ip地址,它们之间的转换工作称为域名解析,域名解析需要由专门的域名解析服务器来完成,整个过程是自动进行的。 DNS是“域名系统”的英文缩写。它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。 DNS服务使用TCP和UDP的53端口,TCP的53端口用于连接DNS服务器,UDP的53端口用于解析DNS。每一级域名长度的限制是63个字符,域名总长度则不能超过253个字符。
2.DNS域名解析方式
正向解析:根据域名查找对应的IP地址
反向解析:根据IP地址查找对应的域名
3.安装bind
[root@localhost ~]#yum install -y bind //安装DNS服务,bind为DNS服务名称
4.查看配置文件位置
[root@localhost ~]#rpm -qc bind //查看DNS服务文件位置
/etc/logrotate.d/named
/etc/named.conf //主配置文件
/etc/named.iscdlv.key
/etc/named.rfc1912.zones //区域配置文件
/etc/named.root.key
/etc/rndc.conf
/etc/rndc.key
/etc/sysconfig/named
/var/named/named.ca
/var/named/named.empty
/var/named/named.localhost //正向配置文件模板
/var/named/named.loopback //反向配置文件模板
5.修改主配置文件
[root@localhost ~]#vim /etc/named.conf
options {
listen-on port 53 { 192.168.130.10; }; //监听53端口,ip地址使用提供服务的本地IP,也可用any表示所有
#listen-on-v6 port 53 { ::1; };
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 { 192.168.130.0/24; }; //允许使用本DNS解析服务的网段,也可用any代表所有
};
zone "." IN { //正向解析“.”根区域
type hint; //类型为根区域
file "named.ca"; //区域数据文件为named.ca,记录了13台根域服务器的域名和IP地址等信息
};
include "/etc/named.rfc1912.zones"; //包含区域配置文件里的所有配置
6.修改区域配置文件
[root@localhost ~]#vim /etc/named.rfc1912.zones
--文件里有模版,可复制粘贴后修改
zone "localhost" IN { --正向解析“named.localhost”区域
type master; --类型为主区域
file "named.localhost"; --指定区域数据文件为named.localhost
allow-update { none; };
};
zone "1.0.0.172.in-addr.arpa" IN { --反向解析“named.loopback”区域
type master; --类型为主区域
file "named.loopback"; --指定区域数据文件为named.loopback
allow-update { none; };
};
//我编的示列
zone "skills.com" IN {
type master;
file "named.skills.com";
allow-update { none; };
};
zone "130.168.192.in-addr.arpa" IN {
type master;
file "named.192.168.130";
allow-update { none; };
};
7.配置区域数据文件
[root@localhost ~]#cd /var/named [root@localhost named]#ls data dynamic named.ca named.empty named.localhost named.loopback slaves [root@localhost named]#cp -a named.localhost named.skills.com //named.localhost为原区域数据配置文件,可以拷贝做模板(需要保留权限复制)
[root@localhost named]#cp -a named.loopback named.192.168.130 //named.loopback为原区域数据配置文件,可以拷贝做模板(需要保留权限复制)
8.配置正向文件
[root@localhost named]#vim named.skills.com
@ IN SOA skills.com. admin.skills.com. (
--“@”这里是一个变量,当前DNS区域名;
--SOA记录中的更新序列号用于同步主、从服务器的区域数据,当从服务器判断区域更新时,若发现主服务器中的序列号与本地区域数据中的序列号相同,则不会进行下载。
--“skills.com.”此为完全合格域名(FQDN),后面有个“.”不能漏掉
--“admin.skills.com.”表示管理员邮箱,原本local后的“@”符号已有其他含义,所以用“.”代替(即admin@skills.com)
0 ; serial --更新序列号,可以是 10 位以内的整数
1D ; refresh --刷新时间,重新下载地址数据的间隔
1H ; retry --重试延时,下载失败后的重试间隔
1W ; expire --失效时间,超过该时间仍无法下载则放弃
3H ) ; minimum --无效解析记录的生存周期
NS named.skills.com. --记录当前区域的DNS服务器的名称
A 192.168.130.10 --记录主机IP地址
IN MX 10 mail.skills.com. --MX为邮件交换记录,数字越大优先级越低
www IN A 192.168.130.10 --记录正向解析www.local.com对应的ip
mail IN A 192.168.130.15 --记录正向解析mail.benet.com对应的ip
ftp IN CNAME www --别名,ftp为www的别名
IN A 192.168.130.50 --泛域名解析,“*”代表任意主机名
9.配置反向文件
[root@localhost ~]#vim named.192.168.130
$TTL 1D @ IN SOA skills.com. admin.skills.com. ( 0 --serial 1D --refresh 1H --retry 1W --expire 3H ) --minimum NS named.skills.com. A 192.168.116.10 10 IN PTR www.skills.com. --PTR为反向指针,反向解析192.168.116.10地址结果为www.local.com 15 IN PTR mail.skills.com.
10.启动named服务
[root@localhost ~]#systemctl restart named
11.关闭防火墙和selinux
[root@localhost ~]#systemctl stop firewalld
[root@localhost ~]#setenforce 0
12.测试客户端添加上一个配置的DNS服务端ip并测试正向域名解析功能
[root@localhost ~]#vim /etc/sysconfig/network-scripts/ifcfg-ens33 DNS1=192.168.130.10 //在文件末尾添加已配置好的DNS服务器地址 //重启网卡使配置生效 [root@localhost ~]#nmcli c up ens33
//按照配置文件依次测试,解析成功 [root@localhost ~]#nslookup www.skills.com Server: 192.168.130.10 Address: 192.168.130.10#53 Name: www.skills.com Address: 192.168.130.10 [root@localhost ~]#nslookup mail.skills.com Server: 192.168.130.10 Address: 192.168.130.10#53 Name: mail.skills.com Address: 192.168.130.15
13.测试反向域名解析功能
[root@localhost ~]#nslookup 192.168.130.10
10.130.168.192.in-addr.arpa name = www.skills.com.130.168.192.in-addr.arpa.
[root@localhost ~]#nslookup 192.168.130.15
15.130.168.192.in-addr.arpa name = mail.skills.com.130.168.192.in-addr.arpa.