目录
定义
DNS的分布式互联网解析库
DNS使用的端口
DNS的作用
查询方式
查询原理
常见DNS记录类型
解析配置
第一台机子
另一台机子
测试
反向解析
测试
主从复制
主服务器配置
从服务器
测试
解析命令
dig
host
选项
nslookup
进入交互模式的两种方法
交互模式
非交互模式
DNS是将域名和IP地址相互映射的一个分布式数据库,能够使人更方便的访问互联网
根域: 全球IPV4根服务器节点只有13个,10个在美国,1个荷兰,1个瑞典,1个日本
IPV6根服务器:全球共25个,包括3台主根服务器和22台辅根服务器。主根服务器分别位于中国、美国和日本。中国一主三辅,美国一主二辅,日本一主,其余辅根服务器分布在其他多个国家
大型、分布式的互联网DNS解析库
根. 根域名DNS服务器:专门负责根域名
一级DNS服务器:专门负责一级域名的解析(一般代表一种类型的组织机构或国家地区)
.com(工商 企业)
.net(网络供应商)
.edu(教育机构)
.cn(中国国家域名)
.org(团体组织)
.gov (政府部门)
二级DNS服务器:专门负责二级域名的解析
.net.cn
.edu.cn
.com.cn
子域名DNS服务器:专门负责子域名的解析
.sina.com.cn
.pku.edu.cn
主机站点
mail
www
DNS服务使用TCP和UDP的53端口,TCP的53端口用于连接DNS服务器,UDP的53端口用于解析DNS
正向解析:根据域名查找对应的IP地址
反向解析:根据IP地址查找对应的域名
递归查询:一般客户机和本地DNS服务器之间属于递归查询,当客户机向DNS服务器发出请求后,若DNS服务器本身不能解析,会向别的服务器查询,并将所得结果交给客户机(不需要自己动手)
迭代查询:一般情况下(有例外)本地服务器向其他DNS服务器的查询属于迭代查询,当对方不能返回权威结果则会多次发起查询直到返回查询的结果为止(需要自己动手)
正向解析查询过程
1、先查本机缓存记录
2、查询hosts文件
3、查询DNS域名服务器缓存,有直接返回没有进行下一步
4、求助根域服务器,根域服务器让去找可能知道结果的顶级域服务器
5、求助顶级域服务器,顶级域服务器让去找可能知道结果的二级域服务器
6、求助二级域服务器,二级域把查询到的ip地址返回给权威服务器具体几次根据域名长度有关
7、到达权威DNS服务器,会将结果反馈给缓存服务器,缓存服务器给客户端
类型 | 含义 |
A | 地址记录,用来指定域名的ipv4地址,如果需要将域名指向ip地址,就需要添加A记录 |
AAAA | 用来指定主机名或域名对应的ipv6地址 |
CNAM | 如需将域名指向另一个域名,再由另一个域名提供IP地址(别名) |
MX | 如需设置邮箱,让邮箱能收到邮件 |
NS | 域名服务器记录,如需把子域名交给其他DNS服务器解析,就需添加 |
SOA | 是所有区域性文件中的强制性记录,必须是文件中的第一个记录 |
TXT | 可以写任何东西,长度限制为255,大多数TXT用来做SPF记录(反垃圾邮件) |
[root@localhost ~]# yum install bind bind-utils -y
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# setenforce 0
[root@localhost ~]# vim /etc/named.conf
#修改主配置文件
[root@localhost ~]# vim /etc/named.rfc1912.zones
#修改区域配置文件
需手动添加,也可复制一段模板下来,改动一下
[root@localhost ~]# cd /var/named
[root@localhost named]# ls
data dynamic named.ca named.empty named.localhost named.loopback slaves
[root@localhost named]# cp -p named.localhost ./kgc.com.zone
[root@localhost named]# ls
data dynamic kgc.com.zone named.ca named.empty named.localhost named.loopback slaves
[root@localhost named]# vim kgc.com.zone
#修改区域数据文件
[root@localhost ~]# vim /etc/resolv.conf
#nameserver 192.168.247.110 将主机ip设为dns服务器地址
[root@localhost named]# rndc reload
server reload successful
#重新加载DNS服务
[root@localhost ~]# vim /etc/resolv.conf
#nameserver 192.168.247.110 指向域名服务器的ip
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# setenforce 0
[root@localhost ~]# nslookup www.kgc.com
Server: 192.168.247.110
Address: 192.168.247.110#53
Name: www.kgc.com
Address: 192.168.247.111
[root@localhost ~]# nslookup mail.kgc.com
Server: 192.168.247.110
Address: 192.168.247.110#53
Name: mail.kgc.com
Address: 192.168.247.112
[root@localhost named]# vim /etc/named.rfc1912.zones
[root@localhost named]# cp -p kgc.com.zone kgc.com.zone.mjy
[root@localhost named]# vim kgc.com.zone.mjy
[root@localhost named]# rndc reload
server reload successful
#重启服务
[root@localhost named]# nslookup 192.168.247.111
111.247.168.192.in-addr.arpa name = www.kgc.com.
[root@localhost named]# nslookup 192.168.247.112
112.247.168.192.in-addr.arpa name = mail.kgc.com.
[root@localhost ~]# yum install bind bind-utils -y
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# setenforce 0
[root@localhost ~]# vim /etc/named.conf
#修改主配置文件
[root@localhost ~]# vim /etc/named.rfc1912.zones
#修改区域配置文件
[root@localhost ~]# cd /var/named
[root@localhost named]# ls
data dynamic named.ca named.empty named.localhost named.loopback slaves
[root@localhost named]# cp -p named.localhost ./kgc.com.zone
[root@localhost named]# ls
data dynamic kgc.com.zone named.ca named.empty named.localhost named.loopback slaves
[root@localhost named]# vim kgc.com.zone
#修改区域数据文件
[root@localhost named]# cp -p kgc.com.zone kgc.com.zone.mjy
[root@localhost named]# vim kgc.com.zone.mjy
[root@localhost named]# vim /etc/resolv.conf
#亦可进入网卡配置里更改
#将主从的ip地址配置上
[root@localhost ~]# yum install bind bind-utils -y
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# setenforce 0
[root@localhost ~]# vim /etc/named.conf
#修改主配置文件
[root@localhost ~]# vim /etc/named.rfc1912.zones
#修改区域配置文件
[root@localhost named]# vim /etc/resolv.conf
#亦可进入网卡配置里更改
#将主从的ip地址配置上
[root@localhost named]# systemctl start named
dig 命令默认的输出信息比较丰富,大概可以分为 5 个部分。
第一部分显示 dig 命令的版本和输入的参数。
第二部分显示服务返回的一些技术详情,比较重要的是 status。如果 status 的值为 NOERROR 则说明本次查询成功结束。
第三部分中的 "QUESTION SECTION" 显示我们要查询的域名。
第四部分的 "ANSWER SECTION" 是查询到的结果。
第五部分则是本次查询的一些统计信息,比如用了多长时间,查询了哪个 DNS 服务器,在什么时间进行的查询等等。
host 选项 参数
用于从DNS服务器查询域名、ip 或其他DNS记录信息
有两种工作模式,交互模式和非交互模式。在交互模式下,用户可以向域名服务器查询各类主机、域名的信息,或者输出域名中的主机列表。在非交互模式下,针对一个主机或域名仅仅获取特定的名称或所需信息。
1、直接输nslookup,不加任何参数,此时nslookup会连接默认域名服务器(/etc/resolv.conf里的第一个DNS地址);
2、第一个参数是连字符(-),第二个参数是域名服务器的主机名或IP,如 nalookup - server/ip