DNS域名系统
互联网中的计算采用 IP地址 标识自己身份的唯一性。IP比较难记。所以就有了DNS域名系统。
DNS:域名系统domain name system。DNS系统中记录了 域名 和 IP地址 的对应(映射map)关系。
手机电话本中记录了 别人的姓名 和 电话号码 的对应关系。
正向解析(常用):实现将域名解析成IP地址。域名――〉IP地址。
反向解析(不常用):实现将IP地址解析成域名。IP地址――〉域名。
域名正向解析过程:依次向本地DNS服务器--〉根DNS服务器--〉一级域名服务器--〉二级域名服务器 发请求“www.baidu.com”的IP地址是多少?
DNS服务器的身份:
主DNS服务器(master主):DNS系统中用来记录域名和IP地址对应关系(资源配置文件)的权威服务。可以理解成公司的总经理。
辅助DNS服务器(slave备):相当于公司的副总。辅助DNS服务器上的资源配置文件来源于主DNS服务器。会自动从主DNS服务器上下载资源配置文件,或定期跟主DNS服务器同步资源配置文件数据。辅助DNS服务器可以帮助主DNS服务器分担一定的域名解析压力。
缓存DNS服务器(cache缓存):用来缓存域名解析的数据。可以用来作为DNS解析加速器。
域名的命名规则:
例 www.baidu.com
域名格式: 主机名.二级域名.一级域名[.根域] 域名采用分层结构
外国人的姓名特点: 名字.姓
com 1.1.1.1
net 2.2.2.2
根域:用.点表示。根域是域名系统的最顶层。全球有13台根域服务器。大部分的根域服务器在美国。
一级域名:用于标识组织机构的类别。如下所示:
com企业、公司 net网络机构 org非盈利组织 cn中国 hk香港
gov政府机构 edu教育机构 tw台湾
二级域名:用于标识组织机构名称。通常有公司或个人向域名系统管理机构申请一个用于标识身份的名称。常见的互联网公司二级域名代号如下:
阿里:ali 淘宝 taobao 58同城 58 腾讯 qq、tencent 网易163 新浪sina
三级域名(或主机名):集团公司通常用于标识不同地区的公司。如58同城的公司有:wh.58.com、hz.58.com、bj.58.com。
DNS域名正向解析的过程:www.baidu.com
www.baidu.com 180.97.33.107
1、client客户机向本地的DNS 服务器发出解析请求:“你知道www.baidu.com”的IP地址吗?服务器就在自己的DNS数据库中查询是否有www.baidu.com的区域记录和资源记录。
2 、如果本地的DNS服务器上有记录,则直接将www.baidu.com的IP地址告诉给客户机。否则,本地DNS服务器就回去问“根”DNS服务器。
3、根DNS服务器告诉本地DNS服务器.com的DNS服务器IP地址。
4、本地DNS服务器向.com服务器发出请求:“你知道www.baidu.com”的IP地址吗?
5、.com的DNS服务器告诉本地DNS服务器baidu.com的DNS服务器IP地址。
6、本地DNS服务器向baidu.com服务器发出请求:“你知道www.baidu.com”的IP地址吗?
7、baidu.com的DNS服务器告诉本地DNS服务器www.baidu.com的服务器IP地址。
8、本地DNS服务器告诉Client客户机:"www.baidu.com"的IP地址是180.97.33.107。
9、Client客户机向IP地址为180.97.33.107的www.baidu.com的WEB服务器发出请求“请给我一个网站的主页文件,例如index.html”
10、WEB服务器180.97.33.107将网站的主页文件使用http协议传送给Client客户机。
文件路径:/etc/sysconfig/network-scripts/ifcfg-ens33
根域的DNS服务器记录的信息:
主机名 | IP地址 |
com | 1.1.1.1 |
cn | 2.2.2.2 |
net | 3.3.3.3 |
com的DNS服务器记录的信息:
主机名 | IP地址 |
baidu.com | 1.1.1.2 |
sina.cn | 2.2.2.5 |
163.net | 3.3.3.5 |
baidu.com的DNS服务器记录的信息:
主机名 | IP地址 |
www.baidu.com | 1.1.1.3 |
pan.baidu.com | 1.1.1.4 |
map.baidu.com | 1.1.1.5 |
DNS服务器的部署:
服务器软件:bind 服务名:named
客户端软件:bind-utils
DNS服务配置的网络拓扑:
主DNS服务器:192.168.11.11
辅助DNS服务器:192.168.11.12
DNS客户机:192.168.11.1
服务器部署思路:
1.查软件是否已安装:rpm -q bind bind-utils
2.安装软件:yum install -y bind bind-utils
3.启动服务,允许开机自动启动:systemctl restart named && systemctl enable named
4.查服务状态,查网络进程端口:systemctl status named 或lsof -i:53 或 netstat -atunlp|grep :53
5.DNS服务器配置文件语法检测的命令:
named-checkconf named-checkzone localhost /var/named/named.localhost | 检测/etc/named.conf主配置文件语法 检测localhost区域配置文件的语法 |
6.查配置文件:rpm -qc bind
/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 | DNS的日志轮滚策略文件 DNS的主配置文件 DNS的区域配置文件(正向解析、反向解析的区域设置) |
7.修改DNS的配置文件/etc/named.conf。
cd /etc ls named* cp -v named.conf named.conf.bak vim 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; }; recursion yes; dnssec-enable yes; dnssec-validation yes; /* 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"; }; logging { channel default_debug { file "data/named.run"; severity dynamic; }; }; zone "." IN { type hint; file "named.ca"; 文件路径是/var/named/named.ca }; include "/etc/named.rfc1912.zones"; include "/etc/named.root.key"; | 选项设置 监听端口为53,监听IPv4为127.0.0.1,还可以是any任何IP DNS服务的工作目录 缓存文件 状态信息文件 内在状态信息文件 允许查询,localhost表示仅允许本机自己查,如果要让网络中的任何主机查询就用any。(白名单) 允许递归查询 启用DNS安全功能 DNS服务的PID文件 根域设置 类型为hint根域 主机名和IP地址映射关系的资源记录文件名 指定包含的配置文件,named.rfc1912.zones是区域配置文件 |
8.配置正向解析的区域信息。
cd /etc cp -v named.rfc1912.zones{,.bak} vim named.rfc1912.zones |
|
zone "localhost.localdomain" IN { type master; file "named.localhost"; allow-update { none; }; }; | 配置localhost.localdomain名称区域 类型为master主区域 资源记录文件名为named.localhost,完整路径是/var/named/named.localhost 允许更新,为none则不允许更新 |
|
|
练习:在named.rfc1912.zones区域配置文件中创建一个名称为qf.com的正向解析区域。
第1步,创建qf.com正向解析区域的配置信息。
vim /etc/named.rfc1912.zones | 在文件的最后一行添加如下内容 |
zone "qf.com" IN { type master; file "qf.com.zx"; allow-update { none; }; allow-transfer { 192.168.11.15;}; }; | 配置localhost.localdomain名称区域 类型为master主区域 资源记录文件名为qf.com.zx,完整路径是/var/named/qf.com.zx 允许更新,为none则不允许更新 允许传输qf.com区域的资源数据到192.168.11.15主机上 |
第2步,创建qf.com正向解析区域的资源记录(域名和IP地址的映射关系)文件qf.com.zx。
cd /var/named ls cp -av named.localhost qf.com.zx vim qf.com.zx | 修改后的文件内容如下 |
$TTL 1D @ IN SOA dns.qf.com. 12700696.qq.com. ( 0 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum NS @ A 127.0.0.1 NS dns.qf.com. dns A 192.168.11.11 AAAA ::1 www A 1.1.1.1 ftp A 1.1.1.2 mail A 1.1.1.3 web CNAME www.qf.com. | 缓存数据的生命周期值为1天 SOA记录,指定权威的DNS服务器名称及管理员邮箱 文件修改的版本号,通常用年月日编号来写,如20190213001 刷新时间为1D(即1天) 重试时间为1H(即1小时) 过期时间为1W(即1周) 默认缓存时间为3H(即3小时) NS记录,即name server记录 NS记录,指定DNS服务器名称 A记录,指定域名对应的IP地址 A记录,指定www主机名对应的IP地址是1.1.1.1 A记录,address记录 A记录 CNAME别名记录,给www.qf.com域名定义别名为web.qf.com |
注意:配置文件中的@是个变量,@变量的取值是/var/named.rfc1912.zones中zone代码行中的“域名”。
第3步,分别检测DNS的两个配置文件的语法 ,重启named服务,做DNS的内测(本地测试)。
named-checkconf named-checkzone www.qf.com /var/named/qf.com.zx systemctl restart named nslookup server server 192.168.11.11 www.qf.com ftp.qf.com web.qf.com | 检测/etc/named.conf语法(选做) 检测qf.com.zx区域配置文件的语法(选做) 重启named服务 运行DNS客户端软件nslookup 查看当前的默认DNS服务器IP信息 临时设置DNS解析服务器IP为192.168.11.11 查询www.qf.com域名的IP地址 同上 同上 |
练习:参考qf.com正向解析区域的创建方法,在192.168.11.11这台DNS服务器上创建一个名称为baidu.com的域名,并给这个域名的区域创建资源记录文件 baidu.com.zone。最后做正向解析测试。
vim /etc/named.rfc1912.conf
zone "baidu.com" IN {
type master;
file "baidu.com.zone";
allow-update { none;};
};
cd /var/named
cp -av qf.com.zx baidu.com.zone
vim baidu.com.zone 内容如下
$TTL 1D @ IN SOA dns.baidu.com. 12700696.qq.com. ( 0 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum NS @ A 127.0.0.1 NS dns.baidu.com. dns A 192.168.11.11 AAAA ::1 www A 2.2.2.1 ftp A 2.2.2.2 mail A 2.2.2.3 web CNAME www.baidu.com. |
|
第3步,分别检测DNS的两个配置文件的语法 ,重启named服务,做DNS的内测(本地测试)。
named-checkconf named-checkzone www.baidu.com /var/named/qf.baidu.zx systemctl restart named nslookup server server 192.168.11.11 www.baidu.com ftp. baidu.com web.baidu.com | 检测/etc/named.conf语法(选做) 检测qf.com.zx区域配置文件的语法(选做) 重启named服务 运行DNS客户端软件nslookup。win7/10也用此命令 查看当前的默认DNS服务器IP信息 临时设置DNS解析服务器IP为192.168.11.11 查询www.baidu.com域名的IP地址 同上 同上 |
9.配置反向解析的区域信息。
练习:在named.rfc1912.zones区域配置文件中创建一个名称为192.168.5.0的反向解析区域。
第1步,创建192.168.5.0反向解析区域的配置信息。
vim /etc/named.rfc1912.zones | 在文件的最后一行添加如下内容 |
zone "5.168.192.in-addr.arpa" IN { type master; file "192.168.5.fx"; allow-update { none; }; }; | 配置5.168.192.in-addr.arpa反向解析区域 类型为master主区域 资源记录文件名为192.168.5.fx,完整路径是/var/named/192.168.5.fx 允许更新,为none则不允许更新 |
第2步,创建192.168.5.0反向解析区域的资源记录(域名和IP地址的映射关系)文件192.168.5.fx。
cd /var/named ls cp -av named.loopback 192.168.5.fx vim 192.168.5.fx | 修改后的文件内容如下 |
$TTL 1D @ IN SOA dns.qf.com. 12700696.qq.com. ( 0 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum NS @ A 127.0.0.1 AAAA ::1 PTR localhost. [u1] NS dns.qf.com. dns A 192.168.11.11 2 PTR www.qf.com. 3 PTR ftp.qf.com. 4 PTR mail.qf.com. | 缓存数据的生命周期值为1天 SOA记录,指定权威的DNS服务器名称及管理员邮箱 文件修改的版本号,通常用年月日编号来写,如20190213001 刷新时间为1D(即1天) 重试时间为1H(即1小时) 过期时间为1W(即1周) 默认缓存时间为3H(即3小时) NS记录,即name server记录 A记录,指定域名对应的IP地址 PTR记录,指定IP地址对应的主机名 |
d注意:配置文件中的@是个变量,@变量的取值是/var/named.rfc1912.zones中zone代码行中的“域名”。
第3步,分别检测DNS的两个配置文件的语法 ,重启named服务,做DNS的内测(本地测试)。
named-checkconf named-checkzone 192.168.5.2 /var/named/192.168.5.fx systemctl restart named nslookup server server 192.168.11.11 192.168.5.2 192.168.5.3 192.168.5.4 exit | 检测/etc/named.conf语法(选做) 检测192.168.5.fx区域配置文件的语法(选做) 重启named服务 运行DNS客户端软件nslookup 查看当前的默认DNS服务器IP信息 临时设置DNS解析服务器IP为192.168.11.11 查询192.168.5.2的IP地址对应的域名 同上 同上 退出nslookup客户端软件 |
技术要点:辅助DNS服务器
辅助DNS服务器:192.168.11.12
需求:按照上文的实验内容搭建好主DNS服务器,分别创建上文中指定的正向域名解析区域、反向解析区域,并做好测试。然后在192.168.11.12上安装bind和bind-utils软件,配置辅助DNS服务器,创建qf.com区域的辅助DNS解析功能。
以下是在192.168.11.12这台主机上的操作
第1步,安装软件。
rpm -q bind bind-utils
yum install -y bind bind-utils
systemctl restart named && systemctl enable named
rpm -qc bind
第2步,备份指定的配置文件。
cd /etc
ls named*
cp -v named.conf{,.bak}
cp -v named.rfc1912.zones{,.bak}
第3步,修改/etc/named.conf主配置文件,将文件中的127.0.0.1和localhost全部改成any。
vim /etc/named.conf 修改如下两行内容的{}中的内容为any
listen-on port 53 { any; };
allow-query { any; };
检测named.conf语法:named-checkconf
第4步,在区域配置文件/etc/named.rfc1912.zones中创建qf.com的辅助DNS解析参数。
vim /etc/named.rfc1912.zones |
|
zone "qf.com" IN { type slave; file "slaves/qf.com.zx"; allow-update { none; }; masters { 192.168.11.11; }; }; | 声明主DNS服务器的IP地址 |
第5步,查看/var/named、/var/named/slaves目录中是否有qf.com.zx文件,重启named服务,再看是否有qf.com.zx资源记录文件。
ls /var/named /var/named/slaves
systemctl restart named
ls /var/named /var/named/slaves 发现/var/named/slaves目录中有qf.com.zx文件,这个文件是从主DNS服务器192.168.11.11上下载过来的。
主DNS和辅助DNS服务器的综合练习:
准备工作:保证主DNS和辅助DNS服务器上都安装了bind软件,并启动了named服务,/etc/named.conf主配置文件中的127.0.0.1和localhost都改成了any。并重启了named服务,再做如下操作。
主DNS服务器:(在192.168.11.11主机上操作)
创建一个sina.com的正向解析区域,其资源记录配置文件名为/var/named/sina.com.zone,资源记录文件内容参考qf.com.zx的内容。
vim /etc/named.rfc1912.zones |
|
zone "sina.com" IN { type master; file "sina.com.zone"; allow-update { none; }; allow-transfer { 192.168.11.12; }; }; |
|
cd /var/named cp -av named.localhost sina.com.zone vim sina.com.zone | 在文件最后添加如下内容 |
www A 1.2.3.4 ftp A 1.2.3.5 mail A 1.2.3.6 A 1.2.3.7 * A 1.2.3.8 web CNAME www.sina.com. | 泛域名解析记录,*星号是通配符,匹配任意0个或多个字符 |
systemctl restart named host www.sina.com 127.0.0.1 dig web.sina.com @127.0.0.1 |
|
辅助DNS服务器:(在192.168.11.12主机上操作)
创建一个sina.com的正向解析区域,类型为slave,其资源记录配置文件名为slaves/sina.com.slave。指定他的主DNS服务器IP地址是192.168.11.11。参考上文的qf.com的辅助DNS服务器配置步骤。
vim /etc/named.rfc1912.zones |
|
zone "sina.com" IN { type slave; file "slaves/sina.com.slave"; allow-update { none; }; masters { 192.168.11.11; }; }; |
|
ls /var/named/slaves systemctl restart named ls /var/named/slaves host www.sina.com 192.168.11.12 dig web.sina.com @192.168.11.12 |
|
02-14AM
练习:参考qf.com正向解析区域在192.168.11.11这台DNS服务器上创建一个qq.com的正向解析区域,其资源记录配置文件为/var/named/qq.com.zone,资源记录配置文件的内容自已灵活定义。
rpm -q bind bind-utils
yum install -y bind bind-utils
systemctl restart named && systemctl enable named
lsof -i:53 或 netstat -atunlp | grep :53
cd /etc
ls named*
cp -v named.conf named.conf.bak
cp -v named.rfc1912.zones named.rfc1912.zones.bak
vim /etc/named.conf 将文件中所有的127.0.0.1和localhost修改成any
named-checkconf 检测named.conf语法
vim /etc/named.rfc1912.zones 在文件最后添加如下内容
zone "qq.com" IN {
type master;
file "qq.com.zone";
allow-update { none; };
allow-transfer { 192.168.11.12;};
};
cd /var/named
ls
cp -av named.localhost qq.com.zone
vim qq.com.zone 在文件最后添加如下内容
www A 1.1.1.1
ftp A 1.1.1.2
mail A 1.1.1.3
web CNAME www.qq.com.
语法检测:named-checkzone www.qq.com /var/named/qq.com.zone
重启服务:systemctl restart named
DNS的本地解析测试(内测):nslookup www.qq.com 127.1
host web.qq.com 127.1
dig web.qq.com @127.1
DNS的视图功能:
DNS视图:通过视图功能可以实现内网、外网解析出不同的IP地址。即解析同一个域名时,对于不同网段的客户机查询出不同结果的IP地址。
警告:在使用DNS视图功能的 DNS服务器上要在/etc/named.conf中删除或注释掉根域的配置信息,注释掉named.rfc1912.zones和root.key这些代码.否则会出错.
DNS视图代码:/etc/named.conf
acl dianxin { 定义访问控制列表名称为dianxin电信
192.168.10.0/24; 指定网络地址和子网掩码,24是255.255.255.0这个子网掩码
};
view "dianxin" { 定义视图名称为dianxin电信
match-clients { dianxin; }; 匹配客户端的网段为dianxin(即acl定义的名称)
recursion yes; 启用递归查询
zone "test.com" IN { 登记test.com匹配配置
type master; 类型为master主DNS服务器
file "dianxin.test.com.zone"; 区域的解析资源配置文件
};
};
练习:给192.168.10.7[电信]这台主机的ens33网卡临时添加2个IP地址(192.168.100.7[移动]、192.168.110.7[联通])。创建一个dianxin的视图,在视图中定义test.com区域,并创建解析资源记录文件,主机名和IP地址随便定,但IP必须是192.168.10.0这个网段的。做解析测试。
ifconfig ens33:1 192.168.100.7 up
ifconfig ens33:2 192.168.110.7 up
vim /etc/named.conf 修改如下内容(黄底色为必须注释掉的内容)
#zone "." IN {
# type hint;
# file "named.ca";
#};
#include "/etc/named.rfc1912.zones";
#include "/etc/named.root.key";
#以下为要添加的新内容
acl dianxin {
192.168.10.0/24;
};
view "dianxin" {
match-clients { dianxin; };
recursion yes;
zone "test.com" IN {
type master;
file "dianxin.test.com.zone";
};
};
创建dianxin.test.com.zone这个解析配置文件:
cd /var/named
cp -pv named.localhost dianxin.test.com.zone
vim dianxin.test.com.zone 内容如下
$TTL 1D
@ IN SOA dns1.test.com. 12700696.qq.com (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS dns1.test.com.
dns1 A 192.168.10.7
AAAA ::1
www A 192.168.10.11
ftp A 192.168.10.12
mail A 192.168.10.13
本地解析测试:
systemctl restart named
nslookup dns1.test.com 192.168.10.7
------------------
DNS子域授权:
子域授权的意义:就是在父域DNS服务器上能够查出子域DNS服务器中的域名和IP地址的映射关系。
子域:除了根域以外的都称为子域
为什么使用子域?
能够减轻父域的负担,且不受dns服务商的影响
子域一般在公司内部使用。
父域只需要解析自己的子域即可。
子域完成的是子域中所有的主机的解析。
子域授权:就是指在父域名服务器上登记子域的域名和这个域名信息所在的服务器的IP地址。
子域名授权的代码(在区域的资源解析配置文件中添加的代码):
子域名 NS 主机名.子域名.
主机名.子域名. A IP地址
NS dns1.qf.com
dns1 A 192.168.11.11
wh NS 58.com.
bj NS 58.com.
hz NS 58.com.
wh.58.com. A 192.168.11.12
bj.58.com. A 192.168.11.13
一级域名服务 192.168.11.11器(父域):区域名com IP:192.168.11.11
二级域名服务器(子域):区域名sohu.com IP:192.168.11.12
实施参考:
第1步,配置二级域名服务器sohu.com (在192.168.11.12这台主机上完成)
setenforce 0
systemctl stop firewalld
vim /etc/named.conf 添加如下内容
zone "sohu.com" IN {
type master;
file "sohu.com.zone";
allow-update { none; };
allow-transfer { none; };
};
----------------------
cd /var/named
cp -pv named.localhost sohu.com.zone
vim sohu.com.zone 内容如下
$TTL 1D
@ IN SOA dns1.sohu.com. 12700696.qq.com. ( 0 1D 1H 1W 3H )
NS dns1.sohu.com.
dns1 A 192.168.11.11
www A 192.168.13.11
ftp A 192.168.13.12
mail A 192.168.13.13
----------------------
systemctl restart named
nslookup dns1.sohu.com 192.168.11.12
------------------------------------------------------------------------------------------------
第2步、配置一级域名服务器com。(在192.168.11.11这台主机上完成)
setenforce 0
systemctl stop firewalld
vim /etc/named.conf 添加如下内容
zone "com" IN {
type master;
file "com.zone";
allow-update { none; };
allow-transfer { none; };
};
-------------------------------
cd /var/named
cp -pv named.localhost com.zone
vim com.zone 内容如下
$TTL 1D
@ IN SOA dns1.com. 12700696.qq.com. ( 0 1D 1H 1W 3H )
NS dns1.com.
sohu.com. NS dns1.sohu.com. #声明子域名名称sohu.com保存在dns1.sohu.com这台服务器中
dns1.com. A 192.168.11.11 #一级域名服务器com的IP地址
dns1.sohu.com. A 192.168.11.12 #dns1.sohu.com二级域名服务器的IP地址
注:NS记录:指定域名及域名所保存的位置(即保存在哪台服务器上)
重启服务:systemctl restart named
在192.168.11.11的解析测试:nslookup dns1.com 192.168.11.11
在192.168.11.11的解析测试:nslookup ftp.sohu.com 192.168.11.[u2]11
子域授权的意义:就是在父域DNS服务器上能够查出子域DNS服务器中的域名和IP地址的映射关系。
-----------------------------
此行可不要
父域服务器的IP,在父域服务器里查子域服务器(写的是父服务器的ip),查到的信息是子域服务器的资源配置文件里所写的域名及对应的IP
查的IP是父域服务器的IP,会显示子域服务器的信息