文章目录
前言
DNS是什么?
DNS域名系统(Domain Name system缩写DNS,Domain
Name被译为域名)是因特网的一项核心服务,它作为可以将域名和I地址相互映射的一个分布式数据库,能够使人更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。
一、DNS系统的作用
DNS域名系统(Domain Name system缩写DNS,DomainName被译为域名)是因特网的一项核心服务,它作为可以将域名和I地址相互映射的一个分布式数据库,能够使人更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。
- 正向解析:根据域名查找对应的IP地址
- 反向解析:根据IP地址查找对应的域名
1.DNS系统的分布式数据结构:
根.根域名DNS服务器:专门负责根域名
一级DNS服务器:专门负责一级域名的解析(一般代表一种类型的组织机构或国家地区)
.com(工商企业)
.net(网络供应商)
.edu(教育机构)
.cn(中国国家域名)
.org (团体组织)
gov(政府部门)
二级DNS服务器:专门负责二级域名的解析
.net.cn
.edu. cr.com.cn
子域名DNS服务器:专门负责子域名的解析
ina . com.cn
.pku.edu . cn主机站点
tts9
tts6
mail
www
2.DNS端口号
DNS的默认端口为53。DNS端口分为TCP和UDP
TCP是用来做区域传送,多用于主从同步
UDP用来做DNS解析
3.域名体系结构
所有的域名必须以点结尾
www.qq.com. www.baidu.com.
根域名(.)
一级域名:.cn(中国).us .tw .kr(韩国).jp(日本).hk(香港)uk(英国) .......
二级域名: .com.cn(中国商业组织) edu.cn(教育机构).org.cn (非盈利) .net.cn (中国运营商)
三级域名: sina.com.cn nb.com.cn haixi.com.cn ..... . ...
组织域:.com .org .net .cc
国家域: .cn .tw (台湾).hk(香港).iq .ir .jp(日本)
反向域
114.114.114.114是国内移动、电信和联通通用的DNS,手机和电脑端都可以使用。
8.8.8.8是cooGLE公司提供的DNS,该地址全球通用,相对来说,更适合国外以及访问国外网站的用户使用
阿里云
223.5.5.5 和223.6.6.6
IPV6 2400:3200: : 1和2400:3200:baba : : 1
江苏省南京市(中国电信)
首选DNS为:218.2.135.1备用DNS为: 61.147.37.1
FQDN:(Fully Qualified Domain
Name)全限定域名:同时带有主机名和域名的名称。从全限定域名中包含的信息可以看出主机在域名树中的位置。
二、DNS两种查询方式
1.递归查询
递归查询是一种DNS 服务器的查询模式,在该模式下DNS服务器接收到客户机请求,必须使用一个准确的查询结果回复客户机。如果DNS服务器本地没有存储查询 DNS信息,那么该服务器会询问其他服务器,并将返回的查询结果提交给客户机。
总的一句话,就是客户机发送请求后自己只用等待结果即可,中间具体过程交给服务器实现。
2.迭代查询
DNS 服务器另外一种查询方式为迭代查询,当客户机发送查询请求时,DNS 服务器并不直接回复查询结果,而是告诉客户机另一台 DNS 服务器地址,客户机再向这台 DNS服务器提交请求,依次循环直到返回查询的结果为止。
总的一句话,客户机的请求需要自己挨个去查询才能得到结果,服务器没有结果时候只会给你提供其它服务器的地址,而不会帮你去请求查询,这与递归截然相反。
三、DNS系统类型
1.缓存域名服务器
- 也称为DNS高速缓存服务器
- 通过向其他域名服务器查询获得域名->IP地址记录
- 将域名查询结果缓存到本地,提高重复查询时的速度
2.主域名服务器
- 特定DNS区域的权威服务器,具有唯一性
- 负责维护该区域内所有域名->IP地址的映射记录
- 需要自行建立所负责区域的地址数据文件
负责维护一个区域的所有域名信息,是特定的所有信息的权威信息源,数据可以修改。构建主域名服务器时,需要自行建立所负责区域的地址数据文件
3.从域名服务器
- 也称为辅助域名服务器,是对主域名服务器的热备份
- 其维护的域名->IP地址记录来源于主域名服务器
- 需要从主域名服务器自动同步区域地址数据库
当主域名服务器出现故障、关闭或负载过重时,从域名服务器作为备份服务提供域名解析服务。从域名服务器提供的解析结果不是由自己决定的,而是来自于主域名服务器。构建从域名服务器时,需要指定主域名服务器的位置,以便服务器能自动同步区域的地址数据库。
四、bind安装及配置
1.安装bind
4.1.bind的软件包
bind-9.9.4-37.el7.x86 64.rpm //提供了域名服务的主要程序及相关文件。
bind-utils-9.9.4-37.el7.x86 64.rpm //提供了对DNS服务器的测试工具程序,如 nslookup等
bind-libs-9.9.4-37.el7.x86_64.rpm //提供了bind、bind-utils需要使用的库函数。
bind-chroot-9.9.4-37.el7.x86 64.rpm //为 BIND服务提供一个伪装的根目录(将/var/named/chroot/文件夹作为BIND 服务的根目录),以提高安全性。
默认已安装 bind-utils 和 bind-libs,因此只需要安装 bind和 bind-chroot即可
[root@c7-1 ~]# yum install bind -y
4.2 bind 主配置文件 named.conf
[root@localhost ~]# rpm -qc bind//#查询bind软件配置文件所在路径
/etc/logrotate.d/named //主配置文件控制系统全局
/etc/named.rfc1912.zones //区域配置文件控制具体单个区域
/var/named/named.localhost //区域数据配置文件区域信息
2.正向解析配置
2.1 修改主要配置文件
[root@c7-1 ~]# vim /etc/named.conf //修改主要配置文件
options {
listen-on port 53 { 192.168.3.3; }; //ip地址使用提供服务的本地IP,也可用any表示所有
#listen-on-v6 port 53 { ::1; }; //注释掉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解析服务的网段,也可用any代表所有
2.2 修改区域配置文件,添加正向区域配置
[root@c7-1 ~]# vim /etc/named.rfc1912.zones
zone "dashiji.com" IN { //正向解析benet.com区域
type master; //类型为主区域
file "dashiji.com.zone"; //指定区域数据文件为benet.com.zone
allow-update { none; };
};
2.3 配置正向区域数据文件
[root@c7-1 ~]# cd /var/named/
[root@c7-1 named]# cp -p named.localhost dashiji.com.zone //复制localhost的模板,保留源文件的权限和属主的属性复制
[root@c7-1 named]# vim /var/named/dashiji.com.zone //配置正向区域数据文件
$TTL 1D
@ IN SOA dashiji.com. admin.dashiji.com. ( //"@"符号表示当前的DNS区域名
0 ; serial //更新序列号,可以是10位以内的整数
1D ; refresh //刷新时间,重新下教地址数据的间隔
1H ; retry //重试延时,下教失败后的重试间隔
1W ; expire //失效时间,超过该时间仍无法下载则放弃
3H ) ; minimum //无效解析记录的生存周期
NS dashiji.com. //记录当前区域的DNS服务器的名称
A 192.168.3.3 //记录主机IP地址
IN MX 10 mail.dashiji.com. //MX为邮件交换记录,数字越大优先级越低
www IN A 192.168.3.3 //记录正向解析www.dashiji.com对应的IP
mail IN A 192.168.3.30 //记录正向解析mail对应的IP
ftp IN CNAME www //CNAME使用别名,ftp是www的别名
* IN A 192.168.3.33 //泛域名解析,“*"代表任意主机名
"@"这里是一个变量,当前DNS区域名
SOA记录中的更新序列号用于同步主、从服务器的区域数据,当从服务器判断区域更新时,若发现主服务器中的序列号与本地区域数据中的序列号相同,则不会进行下载。
"dashiji.com. "此为完全合格域名(FQDN),后面有个"."不能漏掉
"admin.dashiji.com."表示管理员邮箱,这里的"@"符号已有其他含义,所以用"."代替
2.4 在客户端的域名解析配置文件中添加DNS服务器地址
[root@c7-1 named]# vim /etc/resolv.conf
# Generated by NetworkManager
#nameserver 114.114.114.114
nameserver 192.168.3.3 //添加DNS服务器地址
2.5 测试DNS正向解析
[root@c7-1 named]# systemctl stop firewalld //关闭防火墙
[root@c7-1 named]# systemctl start named //启动服务
[root@c7-1 named]# host www.dashiji.com //DNS解析
www.dashiji.com has address 192.168.3.3
[root@c7-1 named]# host mail.dashiji.com
mail.dashiji.com has address 192.168.3.30
[root@c7-1 named]# host 123.dashiji.com
123.dashiji.com has address 192.168.3.33
3.反向解析配置
3.1 修改区域配置文件,添加反向区域配置
[root@c7-1 named]# vim /etc/named.rfc1912.zones
zone "3.168.192.in-addr.arpa" IN { //反向解析
type master;
file "dashiji.com.zone.loacl";
allow-update { none; };
};
3.2 配置反向区域数据文件
[root@c7-1 ~]# cd /var/named/
[root@c7-1 named]# cp -p dashiji.com.zone dashiji.com.zone.local
[root@c7-1 named]# vim /var/named/dashiji.com.zone.local
$TTL 1D
@ IN SOA dashiji.com. admin.dashiji.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS dashiji.com.
A 192.168.3.3
100 IN PTR www.dashiji.com.
200 IN PTR mail.dashiji.com.
220 IN PTR ftp.dashiji.com.
3.3 在客户端的域名解析配置文件中添加DNS服务器地址
[root@c7-1 named]# vim /etc/resolv.conf
# Generated by NetworkManager
#nameserver 114.114.114.114
nameserver 192.168.3.3 //添加DNS服务器地址
3.4测试DNS反向解析
[root@c7-1 named]# systemctl restart named //重启服务
[root@c7-1 named]# host 192.168.3.100
100.3.168.192.in-addr.arpa domain name pointer www.dashiji.com.
[root@c7-1 named]# host 192.168.3.200
200.3.168.192.in-addr.arpa domain name pointer mail.dashiji.com.
[root@c7-1 named]# host 192.168.3.220
220.3.168.192.in-addr.arpa domain name pointer ftp.dashiji.com.
4.主从服务器及自动同步配置
4.1 配置主服务器 192.168.3.3
4.1.1 配置主区域文件
[root@c7-1 named]# vim /etc/named.conf
options {
listen-on port 53 { 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 { any; }; //
4.1.2 修改区域配置文件,添加主从区域配置
zone "dashiji.com" IN {
type master;
file "dashiji.com.zone";
allow-transfer { 192.168.3.101; }; //设置从服务器地址
};
zone "3.168.192.in-addr.arpa" IN {
type master;
file "dashiji.com.zone.local";
allow-transfer { 192.168.3.101; };
};
4.2 配置从服务器 192.168.3.101
4.2.1 安装bind
[root@c7-3 ~]# yum install bind -y
4.2.2 配置主区域文件
[root@c7-3 ~]# vim /etc/named.conf //添加如下
options {
listen-on port 53 { 192.168.3.101; }; //监听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 { any; }; //允许使用本DNS解析服务的网段,也可用any代表所有
4.2.3 修改从域名服务器区域配置文件,添加正、反区域配置
[root@c7-3 ~]# vim /etc/named.rfc1912.zones //添加如下
zone "dashiji.com" IN {
type slave; //类型为从区域
file "slaves/dashiji.com.zone"; //下载的区域数据文件保存到slaves/目录下
masters { 192.168.3.3; }; //设置主服务器地址
};
zone "3.168.192.in-addr.arpa" IN {
type slave;
file "dashiji.com.zone.local";
masters { 192.168.3.3; };
};
4.2.4 在客户端的域名解析配置文件中添加从DNS服务器地址
[root@c7-3 named]# vim /etc/resolv.conf
# Generated by NetworkManager
#nameserver 114.114.114.114
nameserver 192.168.3.3
nameserver 192.168.3.101
4.2.5 查看区域数据文件是否已下载成功
[root@c7-3 ~]# cd /var/named/
[root@c7-3 named]# ls -l
总用量 20
-rw-r--r--. 1 named named 433 8月 30 21:55 dashiji.com.zone.local
drwxrwx---. 2 named named 23 8月 30 21:55 data
drwxrwx---. 2 named named 35 8月 30 21:55 dynamic
-rw-r-----. 1 root named 2253 4月 5 2018 named.ca
-rw-r-----. 1 root named 152 12月 15 2009 named.empty
-rw-r-----. 1 root named 152 6月 21 2007 named.localhost
-rw-r-----. 1 root named 168 12月 15 2009 named.loopback
drwxrwx---. 2 named named 30 8月 30 21:55 slaves //下载成功
4.2.6 重启服务并测试
[root@c7-3 ~]# systemctl restart named
[root@c7-3 named]# host www.dashiji.com
www.dashiji.com has address 192.168.3.3 //解析成功
4.3 停止主服务器服务,模拟主服务器故障
4.3.1 停止主服务器服务
[root@c7-1 named]# systemctl stop named
4.3.2 在从服务器测试
[root@c7-3 slaves]# host www.dashiji.com
www.dashiji.com has address 192.168.3.3 //测试成功
5.分离解析配置
5.1 环境
主服务器:192.168.10.20 网卡vmnet2
web服务器:192.168.10.21 网卡vmnet3
5.2 安装bind并添加网卡
[root@localhost ~]# yum install -y bind
[root@localhost ~]# ifconfig ens37 10.0.0.1/24
5.3 修改主配置文件
[root@localhost ~]# vim /etc/named.conf //添加如下
options {
listen-on port 53 { any; }; //监听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 { any; }; //允许使用本DNS解析服务的网段,也可用any代表所有
5.4 修改区域配置文件
[root@localhost ~]#vim /etc/named.rfc1912.zones
view "lan" {
match-clients { 192.168.20.0/24; } ;
zone "dashiji.com" IN {
type master;
file "dashiji.com.zone.lan";
};
zone "." IN {
type hint;
file "named.ca";
};
};
view "wan" {
match-clients { any; };
zone "dashiji.com" IN {
type master;
file "dashiji.com.zone.wan";
};
};
5.5 配置区域数据文件
[root@localhost ~]# cd /var/named
[root@localhost /var/named]# cp -p named.localhost dashiji.com.zone.lan
[root@localhost /var/named]# cp -p named.localhost dashiji.com.zone.wan
[root@localhost /var/named]# vim dashiji.com.zone.lan
$TTL 1D
@ IN SOA dashiji.com. admin.dashiji.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS dashiji.com.
A 192.168.20.21
www IN A 192.168.20.21
[root@localhost /var/named]# vim dashiji.com.zone.wan
$TTL 1D
@ IN SOA dashiji.com. admin.dashiji.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS dashiji.com.
A 10.0.0.101
www IN A 10.0.0.101
5.6 在内、外网客户端的域名解析配置文件中添加DNs服务器地址
echo "nameserver 192.168.20.21" >> /etc/resolv.conf
#内网客户端
echo "nameserver 10.0.0.101" >> /etc/resolv.conf
#外网客户端
5.7 验证
[root@localhost /var/named]#systemctl restart named
[root@localhost /var/named]#host www.dashiji.com
www.dashiji.com has address 10.0.0.101
总结
- 正向解析:根据域名查找对应的IP地址
- 反向解析:根据IP地址查找对应的域名(域名的反向解析不是很常用,只在一些特殊场合才会用到,比如可用于反垃圾邮件的验证。)
- 域名结构:
http:// www .sina.com.cn./
http://主机名.子域.二级域.顶级域根域/ - 两种查询方式:
1.递归查询
2.迭代查询 - DNS服务器系统类型:
1.主域名服务器
2.从域名服务器
3.缓存域名服务器
4.转发域名服务器 - 分离解析的域名服务器实际也是主域名服务器,这里主要是指根据不同的客户端提供不同的域名解析记录。比如来自内网和外网的不同网段地址区域的客户机请求解析同一域名时,为其提供不同的解析结果,得到不同的IP地址。