DNS服务器搭建及配置
域名系统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,用于反向域名解析,因此称为反向域名。
现如今全球一共投放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.分布式数据库 -------------全球各地分放
查找方式:
递归 ------计算机只发送一次请求
迭代 -----多次
实际解析分为两段,一段递归一段迭代
此处递归与迭代查询类似于网络中的路由查询
正向解析: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协议。
资源记录名称:(数据库中的每一个条目)
SOA(起始授权记录) 记录提供有关dns区域工作方式的信息 -----具体负责哪个区域的解析
NS 将自己的域名映射到DNS 将域名最终映射到哪一台主机(由哪一台主机去解析当前所定义的域主机)
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(周),默认单位是秒
软件安装及配置
yum install bind -y
编辑主配置文件
[[email protected] ~]# cat /etc/named.conf
options {
listen-on port 53 { 192.168.1.102; };
directory "/var/named";
};
zone "baidu.com" IN {
type master;
file "named.baidu.com";
};
正向解析
[[email protected] ~]# cat /var/named/named.baidu.com
$TTL 1D
@ IN SOA @ admin.admin.com.(
0
1D
1H
1W
3H )
IN NS ns.baidu.com.
IN MX 10 mail.baidu.com.
ns IN A 192.168.1.102
www IN A 192.168.1.10
ftp IN A 192.168.1.20
测试解析
[[email protected] ~]# dig -t NS baidu.com
; <<>> DiG 9.9.4-RedHat-9.9.4-29.el7 <<>> -t NS baidu.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 24597
;; flags: qr rd ra; QUERY: 1, ANSWER: 5, AUTHORITY: 0, ADDITIONAL: 6
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;baidu.com. IN NS
;; ANSWER SECTION:
baidu.com. 86400 IN NS dns.baidu.com.
baidu.com. 86400 IN NS ns4.baidu.com.
baidu.com. 86400 IN NS ns2.baidu.com.
baidu.com. 86400 IN NS ns7.baidu.com.
baidu.com. 86400 IN NS ns3.baidu.com.
;; ADDITIONAL SECTION:
dns.baidu.com. 71700 IN A 202.108.22.220
ns2.baidu.com. 71668 IN A 220.181.37.10
ns3.baidu.com. 73527 IN A 112.80.248.64
ns4.baidu.com. 74196 IN A 14.215.178.80
ns7.baidu.com. 86370 IN A 180.76.76.92
;; Query time: 31 msec
;; SERVER: 61.153.81.74#53(61.153.81.74)
;; WHEN: 二 1月 22 15:11:19 CST 2019
;; MSG SIZE rcvd: 208
反向解析
[[email protected] ~]# cat /var/named/named.192.168.1
$TTL 1D
@ IN SOA @ admin.admin.com. (
0
1D
3H
1W
1D )
IN NS ns.baidu.com.
102 IN PTR ns.baidu.com.
10 IN PTR www.baidu.com.
20 IN PTR ftp.www.baidu.com.
[[email protected] ~]# cat /etc/named.conf
options {
listen-on port 53 { 192.168.1.102; };
directory "/var/named";
};
zone "baidu.com" IN {
type master;
file "named.baidu.com";
};
zone "1.168.192.in-addr.arpa" IN {
type slave;
file "slaves/named.baidu.com";
masters { 192.1681.102; };
};