30天网站建设实录,我市建设车辆违章查询网站 病句,搜索引擎优化方案模板,短视频网站开发教程1、概念介绍
DNS#xff08;Domain Name System#xff09;域名系统#xff0c;是互联网的一项核心服务#xff0c;可以作为域名和IP地址相互映射的一个分布式数据库#xff0c;提供域名与IP地址的解析服务#xff0c;能够使人们更加方便的使用域名访问互联网而不是记住…1、概念介绍
DNSDomain Name System域名系统是互联网的一项核心服务可以作为域名和IP地址相互映射的一个分布式数据库提供域名与IP地址的解析服务能够使人们更加方便的使用域名访问互联网而不是记住繁琐的IP地址。
DNS 采用C/S架构
DNS 端口
udp/53 #是用来做DNS解析的tcp/53 #是用来做DNS主从复制区域传输
a. DNS 域名层次结构
DNS 系统采用的是分布式的解析方案整个 DNS 架构是一种层次树状结构这个树状结构称为 DNS 域名空间, 由于DNS 划分了域名空间所以各机构可以使用自己的域名空间创建DNS信息。
域名分层作用树状结构最顶层称为根域用“.” 表示相应服务器称为根服务器整个域名空间解析权都归根服务器所有但根服务器无法承担庞大的负载采用“委派”机制在根域下设置了一些顶级域然后将不同顶级域解析权分别委派给相应的顶级域服务器如将 com 域的解析全委派给 com 域服务器以后但凡跟服务器收到以 com 结尾的域名解析请求都会转发给com 域服务器同理为了减轻顶级域的压力又下设了若干二级域二级域又下设三级域或主机。 根域位于域名空间最顶层一般用一个“.” 表示其记录着Internet 的重要DNS 信息由Internet域名注册授权机构管理该机构把域名空间各部分的管理责任分配给连接到Internet 的各个组织。全球有13个根(root)服务器
顶级域一般代表一种类型的组织机构或国家地区如net、com、org、edu、gov、mil、cn、jp、hk。顶级域的3 种类型
组织域采用3 个字符的代号表示DNS 域中所包含的组织的主要功能或活动。 com 为商业机构组织 mil 为军事机构组织 int 为国际机构组织 edu 为教育机构组织 net 为网络机构组织 gov 为政府机构组织 org 为非营利机构组织
地区域采用两个字符的国家或地区代号。如cn 为中国kr 为韩国us 为美国。反向域这是个特殊域名字为in-addr.arpa用于将IP 地址映射到名字反向查询。
二级域用来标明顶级域内的一个特定的组织国家顶级域下面的二级域名由国家网络部门统一管理如.cn 顶级域名下面设置的二级域名.com.cn、.net.cn、.edu.cn
子域二级域下所创建的各级域统称为子域各个组织或用户可以自由申请注册自己的域名
主机主机位于域名空间最下层就是一台具体的计算机如www、mail、都是具体的计算机名字可用www.sina.com.cn.、mail.sina.com.cn. 来表示这种表示方式称为 FQDN (完全合格域名)也是这台主机在域名中的全名。平时上网输入的网址都是 FQDN 名如 www.sina.com.cn其实表示我们要访问 “sina.com.cn” 域中一台名为 “www” 的计算机
b. DNS 名称服务器
DNS名称服务器保存有资源记录并能响应名称查询的计算机。如果DNS服务器负责管理一个或多个区域就称此DNS服务器为这些区域的授权名称服务器。授权服务器负责管理所管辖的区域中的数据并为查询的DNS客户提供这些数据。
DNS 名称服务器的类型
主域名服务器: 主域名服务器负责存储授权区域的一切数据且管理该区域和对区域具有域名解析功能。辅助域名称服务器辅助名称服务器可以从主域名服务器中同步一整套区域信息。并且辅助名称服务器会定时从主名称服务器中更新数据同时可以接受客户机的查询唯高速缓存服务器缓存服务器负责临时存储主域名服务器己解析过域名记录
每个区域必须有主域名服务器另外每个区域建议至少要有一台辅助域名服务器否则如果该区域的主域名服务器崩溃了就无法解析该区域的名称。
辅助域名服务器的优点
容错能力: 配置辅助域名服务器后在该区域主服务器崩溃的情况下客户机仍能解析该区域的名称。一般把主服务器和辅助服务器安装在不同子网上这样如果到一个子网的连接中断DNS 客户机还能直接查询另一个子网上的名称服务器减少广域链路的通信量: 如果某个区在远程有大量客户机用户就可以在远程添加该区的辅助服务器并把远程的客户机配置成先查询这些服务器这样就能防止远程客户机通过慢速链路通信来进行DNS 查询减轻主服务器的负载辅助服务器能回答该区的查询从而减少该区主服务器必须回答的查询数。
DNS 缓存
DNS服务器在解析客户机请求时如果本地没有该DNS信息则可以会询问其他DNS服务器当其他域名服务器返回查询结果时该DNS服务器会将结果记录在本地的缓存中成为DNS缓存。当下一次客户机提交相同请求时DNS 服务器能够直接使用缓存中的DNS 信息进行解析。
c. DNS 查询过程
通过8个步骤的解析过程就使得客户端可以顺利访问www.163.com 这个域名但实际应用中通常这个过程是非常迅速的。 ⑴ 客户机提交域名解析请求并将该请求发送给本地的域名服务器。
⑵ 当本地的域名服务器收到请求后就先查询本地的缓存。如果有查询的DNS 信息记录则直接返回查询的结果。如果没有该记录本地域名服务器就把请求发给根域名服务器。
⑶ 根域名服务器再返回给本地域名服务器一个所查询域的顶级域名服务器的地址。
⑷ 本地服务器再向返回的域名服务器发送请求。
⑸ 接收到该查询请求的域名服务器查询其缓存和记录如果有相关信息则返回客户机查询结果否则通知客户机下级的域名服务器的地址。
⑹ 本地域名服务器将查询请求发送给返回的DNS 服务器。
⑺ 域名服务器返回本地服务器查询结果如果该域名服务器不包含查询的DNS 信息查询过程 将重复6、7步骤直到返回解析信息或解析失败的回应。
⑻ 本地域名服务器将返回的结果保存到缓存并且将结果返回给客户机。
递归查询递归查询是一种DNS 服务器的查询模式在该模式下DNS 服务器接收到客户机请求必须使用一个准确的查询结果解析成功或解析失败回复客户机。如果DNS 服务器本地没有存储查询DNS 信息那么该服务器会询问其他服务器并将返回的查询结果提交给客户机。
迭代查询DNS 服务器另外一种查询方式为迭代查询当客户机发送查询请求时DNS 服务器并不直接回复查询结果而是告诉客户机另一台DNS 服务器地址客户机再向这台DNS 服务器提交请求依次循环直到返回查询的结果为止。
上图中的步骤1和8就是递归查询2、3、4、5、6、7是迭代查询过程
正向解析正向解析是指域名到IP 地址的解析过程。
反向解析反向解析是从IP 地址到域名的解析过程。反向解析的作用为服务器的身份验证。
d. DNS 资源记录
A 资源记录A记录也称为主机记录是使用最广泛的DNS记录A记录把FQDN(完全合格的域名) 映射到IP 地址。 因为有此记录所以DNS服务器能解析FQDN域名对应的IP 地址。它是域名和IP地址的对应关系表现形式为 www.contoso.com.192.168.1.1 这就是一个A记录。
A记录除了进行域名和IP对应以外还有一个高级用法可以作为低成本的负载均衡的解决方案比如说www.contoso.com 可以创建多个相同A记录对应多台物理服务器的IP地址可以实现基本的流量均衡轮询查询功能。
CNAME 资源记录别名记录CNAME资源记录创建特定FQDN 的别名。
PTR 资源记录相对于A 资源记录指针PTR记录把IP地址映射到FQDN。 用于反向查询通过IP地址找到域名。
NS记录NSName Server记录是域名服务器记录用来指定该域名由哪些DNS服务器来进行解析。
SOA 资源记录NS记录说明了有多台服务器在进行解析但哪一个才是主服务器呢NS并没有说明这个就要看SOA记录了名叫起始授权机构记录Start of Authority RecordSOA记录说明了在众多NS记录里那一台才是主要的服务器。NS记录和SAO记录是任何一个DNS区域都不可或缺的两条记录。
MX 资源记录邮件交换MX资源记录在使用邮件服务器的时候MX记录是不可或缺的。
2、DNS 服务安装
BIND 全称为Berkeley Internet Name Domain(伯克利因特网名称域系统)。BIND 主要有三个版本BIND4、BIND8、BIND9。
BIND8 融合了许多提高效率、稳定性和安全性的技术而BIND9 增加了一些超前的理念IPv6支持、密钥加密、多处理器支持、线程安全操作、增量区传送等等。
a. 安装BIND
yum -y install bind bind-chroot bind-utils
bind 该包为DNS 服务的主程序包。bind-chroot 提高安全性。bind-utils 该包为客户端工具提供了对dns服务器的测试工具程序如nslookup等。bind-libs 提供了bind、bind-utils需要使用的库函数。
提示bind-chroot是bind的一个功能,使bind可以在一个chroot 的模式下运行为bind服务提供一个伪装的根目录将/var/named/chroot/目录作为bind的根目录。这样做的目的是为了提高安全性。因为在chroot的模式下,bind可以访问的范围仅限于这个目录的范围里,无法进一步提升,进入到系统的其他目录中。
b. 配置文件
/etc /named.conf 是BIND 的主配置文件它包含了BIND的基本配置但并不包括区域数据。
/var/named/ 目录为DNS数据库文件存放目录每一个域文件都放在这里。
# 修改监听ip
vim /etc/named.confoptions {listen-on port 53 { 192.168.137.253; };}
c. 启动服务
# 启动named服务
systemctl start naemd
# 将服务设置自启动
systemctl enable naemd
# 查看服务状态
systemctl status named # 查看DNS端口
netstat -antup | grep 53 | awk /named/{print $0} # 查看named进程
ps -ef | grep named # 在客户端配置DNS服务器地址
vim /etc/resolv.conf nslookup www.baidu.com 3、实验1主从服务器(主)
使用bind构建域名服务器时主要涉及两种类型的配置文件主配置文件和区域数据文件。
主配置文件用于设置named服务的全局选项、注册区域及访问控制等各种运行参数区域数据文件用于存放某个dns区域的地址解析记录正向记录或反向记录
主配置文件中主要包括全局配置options、区域配置zone两个部分每一条配置记录的行尾以分号“”表示结束以“#”号或“//”开始的部分表示注释文字大段注释可以使用“/*………*/”的格式
区域数据文件每个区域数据文件对应一个dns解析区域文件名和内容由该区域的管理员自行设置
a. 实验环境 主机名 角色 IP地址 CentOS_Server Dns主服务器 192.168.137.5 CentOS_Client Dns从服务器 192.168.137.6
b. 需要解析的域名信息
公司域名test.com
网站服务器: www.test.com 192.168.1.20 192.168.1.21 192.168.1.22
ftp服务器ftp.test.com 192.168.1.30
ftp别名服务器ftpserver.test.com
邮件服务器mail.test.com 192.168.1.40
c. /etc/named.conf
options {# 监听地址和端口listen-on port 53 { any; };# 监听IPv6地址和端口listen-on-v6 port 53 { any; };# 区域数据文件的默认存放位置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;# 设置允许DNS查询的客户端地址allow-query { any; };/* - If you are building an AUTHORITATIVE DNS server, do NOT enable recursion.- If you are building a RECURSIVE (caching) DNS server, you need to enable recursion. - If your recursive DNS server has a public IP address, you MUST enable access control to limit queries to your legitimate users. Failing to do so willcause your server to become part of large scale DNS amplification attacks. Implementing BCP38 within your network would greatlyreduce such attack surface */# DNS转发器.新增forwarders{ 8.8.8.8; 114.114.114.114; };# 设置递归查询recursion yes;# 设置是否启用DNSSEC支持DNSSEC可以用来验证DNS数据的有效性dnssec-enable yes;# 设置是否启用DNSSEC确认默认值为yes可以选择autodnssec-validation yes;/* Path to ISC DLV key */bindkeys-file /etc/named.root.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;
};# 正向test.com 区域
zone test.com IN {# 类型为主区域type master;# 区域数据文件名file test.com.zone;# 允许区域传输的从dns服务器地址allow-transfer{ 192.168.137.6; };
};# 反向 192.168.137.0/24区域
zone 137.168.192.in-addr.arpa IN {type master;file 192.168.137.arpa;allow-transfer { 192.168.137.6; };
};include /etc/named.rfc1912.zones;
include /etc/named.root.key;
根区域的区域数据文件默认是/var/named/named.ca该文件记录了internet中13台根域服务器的域名和ip地址等相关信息。
# 主配置文件语法检测
named-checkconf /etc/named.conf
echo $?
d. 创建正向区域数据文件
区域数据配置文件通常位于/var/named/目录下每个区域文件对应一个DNS解析区域文件名要与named.conf中设置的一致。
cd /var/named
cp /var/named/named.localhost /var/named/hualu.com.zone
vim hualu.com.zone
$TTL 1DIN SOA hualu.com. hualulemon.gmail.com. (0 ; serial1D ; refresh1H ; retry1W ; expire3H ) ; minimum
hualu.com. IN NS dns.hualu.com.nds.hualu.com. IN A 192.168.137.5
www.hualu.com. IN A 192.168.137.100
hualu.history.com. IN A 192.168.137.102
ftp.hualu.com. IN CNAME ftp.hualu.com. $TTL 1D 设置有效地址解析记录的默认缓存时间默认为1天也就是1D。 IN SOA hualu.com. hualu.gmail.com. SOA标记域名、管理邮箱 注在此配置文件中写域名时都把根. 也要写上。管理邮箱root.test.com.由于有其他含义所以用“.”代替。 0 更新序列号用于标示数据库的变更可以在10位整数以内如果存在辅助DNS区域,建议每次更新完数据库手动加1. 1D 刷新时间从域名服务器更新该数据库文件的间隔时间默认为1天 1H 重试延时从域名服务器更新数据库失败以后等待多长时间默认为为1小时 1W 失效时间超过该时间仍无法更新数据库则不再尝试默认为一周 3H 设置无效地址解析记录该数据库中不存在的地址默认缓存时间。设置无效记录最少缓存时间为3小时。 NSname server域名服务器 域名服务器记录用于设置当前域的DNS服务器的域名地址。
补充泛域名解析所谓“泛域名解析”是指利用通配符* 星号来做次级域名以实现所有的次级域名均指向同一IP地址。例如* IN A 192.168.36.251
注意在区域数据配置文件中凡是不以点号“.”结尾的主机地址系统在查找地址记录时都会自动将当前的域名作为后缀。例如若当前的dns域为test.com.则在文件中的主机地址“www”相当于www.test.com.。因此当用完整的FQDN地址时务必记得地址末尾的点号“.”不能省略
e. 创建反向区域数据文件
cp /var/named/named.localhost /var/named/192.168.137.arpa
vim 192.168.137.arpa
$TTL 1DIN SOA hualu.com. hualu.gmail.com. (0 ; serial1D ; refresh1H ; retry1W ; expire3H ) ; minimumIN NS dns.hualu.com.
5 IN PTR dns.hualu.com.
201 IN PTR hualuenglish.com.
202 IN PTR hualumath.com.
f. 更改正反向区域文件权限
# 更改正向区域文件的所有组
chown root:named /var/named/hualu.com.zone # 更改反向区域文件的所有组
chown root:named /var/named/192.168.137.arpa
ll /var/named/ g. 测试区域文件语法是否正确
# 检查主配置文件语法是否错误
named-checkconf -z /etc/named.conf# 检查正向区域文件语法是否正确
named-checkzone hualu.com /var/named/hualu.com.zone
h. 客户端测试
# 更改dns 配置文件
vim /etc/resolv.confnameserver 192.168.137.5# 测试主服务器中的dns地址
nslookup www.hlmath.com 4、实验1主从服务器(从)
主从时间一定要保持一致
a. 安装工具
# 安装dns服务
yum install -y bind bind-chroot bind-utils
b. 修改 named.conf
options {listen-on port 53 { any; };listen-on-v6 port 53 { any; };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; };forwarders { 8.8.8.8; 114.114.114.114; };recursion yes;dnssec-enable yes;dnssec-validation yes;/* Path to ISC DLV key */bindkeys-file /etc/named.root.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;
};zone lemon.com IN {type slave;file slaves/lemon.com.zone;masters { 192.168.137.5; };
};zone 137.168.192.in-addr.arpa IN {type slave;file slaves/192.168.137.arpa;masters { 192.168.137.5; };
};# 检查主配置文件语法是否正确
named-checkconf -z named.conf # 重启服务并设置开机自启
systemctl restart named
systemctl enabled named
c. 查看区域配置文件
主配置文件配置完成后重启服务自动从主服务器中拉取区域配置文件。正向区域文件和反向区域配置文件中都是乱码。
dns服务器是有缓存的如果想重新同步主服务器区域文件请删除/var/named/slaves/下的同步文件重启named d. 测试从服务器DNS
# 修改测试主机的DNS为从服务器IP地址
vim /etc/resolv.confnameserver 192.168.137.6# 测试地址
nslookup www.hlmath.com