域名系统DNS(Domain Name System)是因特网使用的命名系统,用来把便于人们使用的机器名字转换成为IP地址。域名系统其实就是名字系统。为什么不叫“名字”而叫“域名”呢?这是因为在这种因特网的命名系统中使用了许多的“域(domain)”,因此就出现了“域名”这个名词。“域名系统”明确地指明这种系统是应用在因特网中。
1、因特网的域名结构
由于因特网的用户数量较多,所以因特网在命名时采用的是层次树状结构的命名方法。任何一个连接在因特网上的主机或路由器,都有一个唯一的层次结构的名字,即域名(domain name)。这里,“域”(domain)是名字空间中一个可被管理的划分。
域名只是逻辑概念,并不代表计算机所在的物理地点。分为三大类:
(1)国家顶级域名:采用ISO3166的规定。如:cn代表中国,us代表美国,uk代表英国,等等。国家域名又常记为ccTLD(cc表示国家代码contry-code)。
(2)通用顶级域名:最常见的通用顶级域名有7个,即:com(公司企业),net(网络服务机构),org(非营利组织),int(国际组织),gov(美国的政府部门),mil(美国的军事部门)。
(3)基础结构域名(infrastructure domain):这种顶级域名只有一个,即arpa,用于反向域名解析,因此称为反向域名。www.baidu.com.
IANA the internet Assigned Numbers Authority 互联网数字分配机构
ICANN the internet Corporation for Assigned names and Nunbers 互联网名称与数字地址分配机构
现如今全球一共投放13个根服务器
服务器主要用来管理互联网的主目录,全世界只有13台。1个为主根服务器,放置在美国。其余12个均为辅根服务器,其中9个放置在美国,欧洲2个,位于英国和瑞典,亚洲1个,位于日本。所有根服务器均由美国政府授权的互联网域名与号码分配机构ICANN统一管理,负责全球互联网域名根服务器、域名体系和IP地址等的管理。 这13台根服务器可以指挥Firefox或互联网 Explorer这样的Web浏览器和电子邮件程序控制互联网通信。换句话说——攻击整个因特网最有力、最直接,也是最致命的方法恐怕就是攻击根域名服务器了。
由于根服务器中有经美国政府批准的260个左右的互联网后缀(如.com、.net等)和一些国家的指定符(如法国的.fr、挪威的.no等),美国政府对其管理拥有很大发言权。
在与现有IPv4根服务器体系架构充分兼容基础上,由下一代互联网国家工程中心牵头发起的“雪人计划”于2016年在美国、日本、印度、俄罗斯、德国、法国等全球16个国家完成25台IPv6(互联网协议第六版)根服务器架设,事实上形成了13台原有根加25台IPv6根的新格局,为建立多边、民主、透明的国际互联网治理体系打下坚实基础。
发展:
Hosts文件 ---------------需要不停地添加域名
1.周期性任务 ---------------在指定时间自动的去写(自动化)
2.server ---------------东西太多(性能)
3.分布式数据库 -------------全球各地分放
查找方式:
递归 ------计算机只发送一次请求
迭代 -----多次
实际解析分为两段,一段递归一段迭代
应答方式:
肯定答案
否定答案
权威答案
非权威答案
ISPDNS
I
c游览器www.haha.com.
缓存
hosts
SLAVE
HINT
114.114.114.114是国内移动、电信和联通通用的DNS,手机和电脑端都可以使用,干净无广告,解析成功率相对来说更高,国内用户使用的比较多,而且速度相对快、稳定,是国内用户上网常用的DNS
8.8.8.8是GOOGLE公司提供的DNS,该地址是全球通用的,相对来说,更适合国外以及访问国外网站的用户使用
FQDN<-->IP,双向解析,但是使用完全不同的方法
正向解析:FQDN---->Ip
Ip 域名 (一对多)
反向解析:IP----->FQDN
主DNS服务器:数据修改 (接受用户请求返回数据) master
辅助dns服务器: 定期请求数据同步 slave
缓存dns服务器: 只缓存dns数据 hint
转发器:缓存服务器去掉缓存功能 forward
提供dns服务的套件叫bind但执行服务名称的是named
yum install bind -y
rpm -ql bind 查看
bind:
/etc/named.conf
进程的工作属性
区域的定义
/etc/rndc.key: remount named domain controller密钥文件
/etc/rndc.conf: 相关配置文件
区域数据文件,需要手动创建
/var/named/zidingyi.zone
配置检查脚本工具
/usr/sbin/named-checkconf
区域配置检查工具
/usr/sbin/named-checkzone
#全球十三个根服务器的相关信息;
/var/named/named.ca 区域文件dns数据库
如果没有该文件,可用以下命令重新创建
dig -t NS . #查询根域
dig -t NS . @a.root-servers.net. #指定根服务器进行查询
配置文件详解:
dns的主配置文件,作为dns的设定档,将我自己的设定档案列出来然后逐部分进行解释。
注意格式:"//" "/* */" ";"结尾
该文件属主root,named用户组
###################################3
#全局选项
options {
#定义监听端口,如果所有地址都监听,则只写端口
listen-on port 53 { 127.0.0.1; };
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";分配统计目录
#只允许本地主机进行查询
allow-query { localhost; };
#允许递归
recursion yes;
指定可以递归的范围
#allow-recursion { 192.168.0.0/16; };
logging { //指定日志记录分类和他们的目标位置
};
Zone{ 定义区域,一个zone定义一个区域
type hint;
};
#包含其他配置文件
include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";
区域类型:
主区域:主DNS,master
从区域:从DNS,slave
缓存区域:hint,在找不到相关信息的时候去从根查找,标识根的地址
转发区域:forward,转发到指定区域,而不是指向根
DNS在53端口上监听请求并提供响应的服务。出于性能的考虑,DNS查询请求用UDP协议交互并且每个请求的大小小于512字节,但是如果返回的请求大小大于512字节,交互双方会协商使用TCP协议。
资源记录名称:(数据库中的每一个条目)baidu.com
SOA(起始授权记录) 记录提供有关dns区域工作方式的信息 -----具体负责哪个区域的解析
NS 将自己的域名映射到DNS 将域名最终映射到哪一台主机(由哪一台主机去解析当前所定义的域主机)-----定义dns主机ip
A (ipv4地址记录) 资源记录将主机名映射到ipv4地址。
CNAME (规范名称)记录域别名
MX 邮件交换记录
PTR指针记录 将IPV4 IPV6地址映射到主机名 (用于反向DNS)
AAAA (IPV6 地址记录) 资源记录(四A记录)将主机名映射到ipv6地址。
五种定义的信息
serial number: 序列号 定义当前使用的数据序列号 sn遵循“年+月+日+编号” ·
refresh: 定义检查间隔时间 (上次和这次变化的时间)
retry: 重试时间 < 检查时间>
expire: 过期时间 缓存放多久过期
nagative enswer TTL: 否定答案的缓存时长 (如果解析在规定时间里没有解析到答案会否定解析不到)
时间单位:M(分钟)、H(小时)、D(天)、W(周),默认单位是秒
推荐查看博客: DNS服务简介和配置详解_成长中的强大的技术博客_51CTO博客_dns服务
案例一:正向解析
主配置文件 /etc/named.conf
资源记录包含的元素:
owner-name TTL class type date
主机名 资源记录生存时间 INTERNET A 记录存储数据(主机ip)
TTL(time to live)生存时间dns记录在dns服务器上的缓存时长。
@域名 IN INTERNET输入标准 起始授权记录 服务器所对应的主域名服务器 管理员邮件以.代替常见的类型的@
如何查看是否解析成功:
Dig -t
#查询NS记录
dig -t NS baidu.com
dig +trace -t A www.linux7.com
#使用nslookup,windows操作系统也可以使用
nslookup;交互式
Nslookup -type=A www.baidu.com
[root@localhost ~]# nslookup -type=A www.baidu.com
案例二: 反向解析
测试:
重启服务正常
区域传送
将一个区域文件复制到多个服务器上的过程叫做区域传送。将主服务器上的信息复制到辅助服务器上来实现。
两种区文件复制方式:
完全区域传送:axfr,all transfer,全部区域文件复制,复制整个区域文件
增量区域传送:ixfr,incremental transfer,仅复制区域里变化的文件
#定义全局,在options选项内定义
allow-transfer { 192.168.75.130; };
IXFR: 增量区域传送
查询上次序列号改变后的信息
dig -t ixfr=1 baidu.com @192.168.75.129
案例三:完全区域传送
在服务器端的主配置文件定义完全区域传送
在另一台虚拟机作为从服务器安装bind软件包:
配置主配置文件/etc/named.conf
#ll /var/named/slaves
[root@localhost slaves]# ll
-rw-r--r--. 1 named named 274 1月 16 22:30 named.192.168.221
-rw-r--r--. 1 named named 336 1月 16 22:30 named.linux7.com
重启服务会动态同步主服务其中的区域数据文件。
案例四:增量区域传送
1.修改主服务器的区域配置文件/var/named/named.baidu.com
$TTL 1D @ IN SOA @ admin.baidu.com. ( 2018012313; 修改这个序列号,每次增加1 1M 1M 1M 3M ) IN NS ns.baidu.com. IN NS ns2.baidu.com. IN MX 10 mail.baidu.com. ns IN A 192.168.221.132 ns2 IN A 192.168.221.133 mail IN A 192.168.221.132 maiaal IN A 192.168.221.132 注意每次增删一条资源记录 |
2.重载主服务器的服务
[root@localhost ~]# systemctl reload named |
3.查看结果
通过tail -f /var/log/message来查看从服务器的日志,注意传送过程
[root@localhost ~]# tail -f /var/log/messages Jan 23 16:29:50 localhost named[73533]: reloading configuration succeeded Jan 23 16:29:50 localhost named[73533]: reloading zones succeeded Jan 23 16:29:50 localhost named[73533]: zone baidu.com/IN: refresh: failure trying master 192.168.18.132#53 (source 0.0.0.0#0): operation canceled Jan 23 16:29:50 localhost named[73533]: zone baidu.com/IN: loaded serial 2018012313 Jan 23 16:29:50 localhost named[73533]: zone baidu.com/IN: expired Jan 23 16:29:50 localhost named[73533]: all zones loaded Jan 23 16:29:50 localhost named[73533]: running Jan 23 16:29:50 localhost systemd: Reloaded Berkeley Internet Name Domain (DNS). Jan 23 16:30:01 localhost systemd: Started Session 48 of user root. Jan 23 16:30:01 localhost systemd: Starting Session 48 of user root. |
案例五:批量解析
批量解析(主服务器:vim /var/named/named.baidu.com)
$GENERATE 1-10 $.linux7.com. IN A 192.168.221.$
在从服务器上: ping 1.baidu.com
反向格式
$GENERATE 1-10 $ IN PTR $.linux7.com.
根域名服务器,定义了每个域名服务器的地址信息
顶级域名服务器,管理在该顶级域名服务器注册的所有二级域名
权限域名服务器,负责一个区的域名服务器
返回的是最佳查询点或者主机
缓存
ip
172.16.30.233
255.255.255.0
172.16.30.254
114.114.114.114
hosts
缓存
. 位置信息
.com
ISP
dns服务的完整主机名
$TTL 1D #指定资源记录的生存时间(秒)。解析器应缓存此记录的时间长度
@ IN SOA www.baidu.com. admin.baidu.com. (
#DNS资源记录的名称解析的是哪一个域
#class INTERNAT IN
#起始授权记录(记录dns区域工作方式的信息) -----具体负责哪个区域的解析,
#服务器所对应的主域名服务器
#管理员邮箱 以.代替常见的类型的@
0 ;序列号 年月日01
1D ;检查时间间隔,刷新时间
1H ;重试时间
1W ;过期时间
3H ) ;解析在规定时间里没有解析到答案,否定时间的缓存时长
域 IN NS ns.linux7.com. ;将域名最终映射到哪一台主机(由哪一台主机去解析当前主机所定义的域)
IN MX 10 mail.linux7.com.
ns IN A 192.168.221.132
mail IN A 192.168.221.132
www IN A 192.168.221.132