赞
踩
DNS是域名系统(Domain Name System)英文名称的缩写,是一种组织域层次结构的计算机和网络服务命名系统。
域名系统DNS是由主机名解析方案发展起来的一种新的名字的解析机制。域名系统将主机名解析成IP地址使用了一个全局的、层次性的分布式数据库系统。该数据库系统包含了Internet上所有域名及IP的对应信息。数据库的层次性允许将域名空间划分成独立的管理部分,并称为域(Domain)。数据库的分布式特性则允许将数据库的各个不同的部分分配到不同网络的域名服务器上,这样各域名服务器可以实现独立的管理。
DNS的域是一种分布式的层次结构,这种结构非常类似于UNIX文件系统的层次结构。下面是域名体系结构层次图
域名空间是指表示DNS这个分布式数据库的逆向树型层次结构,完整域名由从树叶节点到根节点的一条路径的所有节点以分隔符“.”按顺序连接而成,如http://www.tony.com.cn/,其中“.”代表根域(当“.”出现在域名的最右边时,实际上还表示其右边有代表根的空标签“”;也可以用最右边的“.”来表示根),“cn”为顶级域,“com”为二级域,“tony”为三级域,“www”为主机名。
cn域名解析的工作原理和过程如下:
以www.tony.com.cn为例,域名解析过程如下:
正向解析:将域名解析为IP
反向解析:将IP解析为域名
A记录: 将域名指向一个IPv4地址,需要增加A记录
CNAME记录: 如果将域名指向一个域名,实现与被指向域名相同的访问效果,需要增加CNAME记录。这个域名一般是主机服务商提供的一个域名
MX记录: 建立电子邮箱服务,将指向邮件服务器地址,需要设置MX记录。建立邮箱时,一般会根据邮箱服务商提供的MX记录填写此记录
NS记录: 域名解析服务器记录,如果要将子域名指定某个域名服务器来解析,需要设置NS记录
TXT记录: 可任意填写,可为空。一般做一些验证记录时会使用此项,如:做SPF(反垃圾邮件)记录
AAAA记录: 将主机名(或域名)指向一个IPv6地址,需要添加AAAA记录
SRV记录: 添加服务记录服务器服务记录时会添加此项,SRV记录了哪台计算机提供了哪个服务。格式为:服务的名字.协议的类型(例如:_example-server._tcp)。
SOA记录: SOA叫做起始授权机构记录,NS用于标识多台域名解析服务器,SOA记录用于在众多NS记录中那一台是主服务器
PTR记录: PTR记录是A记录的逆向记录,又称做IP反查记录或指针记录,负责将IP反向解析为域名
sudo apt install bind9
# 安装后的配置文件如下:
root@test:/etc/bind# ls
bind.keys db.0 db.127 db.255 db.empty db.local named.conf named.conf.default-zones named.conf.local named.conf.options named.conf.options.bak rndc.key zones.rfc1918
cd /etc/bind/ vim named.conf.local # 配置正向解析 # 正向解析是指将域名解析为 IP 地址的过程。在第一个配置块中,定义了名为 "test.cn" 的域名区域,并在 "/etc/bind/db.test.cn" 文件中存储了相应的域名和 IP 地址映射信息。当域名服务器接收到一个查询请求时,它会查询这个配置文件,并将查询结果返回给客户端。 zone "test.cn" { type master; file "/etc/bind/db.test.cn"; }; # 配置反向解析 # 反向解析则是将 IP 地址解析为域名的过程。在第二个配置块中,定义了名为 "172.168.192.in-addr.arpa" 的域名区域,并在 "/etc/bind/db.192.example.com" 文件中存储了相应的 IP 地址和反向域名映射信息。当域名服务器接收到一个反向查询请求时,它会查询这个配置文件,并将查询结果返回给客户端。 zone "172.168.192.in-addr.arpa" { type master; file "/etc/bind/192.zone"; };
# 配置正向解析文件 vim /etc/bind/db.test.cn $TTL 604800 $ORIGIN test.cn. @ IN SOA test.cn. root.test.cn. ( 2006080401 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 604800 ) ; Negative Cache TTL ; @ IN NS ns1 @ IN A 192.168.172.201 ns1 IN A 192.168.172.201 www IN A 192.168.172.201 blog IN A 172.16.172.56
参数解释:
这是一个简单的 DNS 区域配置文件,用于配置一个名为"test.cn"的域名区域。以下是对配置文件中各条目的解释:
1.$TTL 604800:定义了区域数据的 Time To Live(TTL)为 604800 秒,即 172 小时。这意味着区域数据在缓存中的生存时间为 172 小时,过了这个时间后,缓存的数据将被清除。
2. $ORIGIN test.cn.:指定域名空间的根区域为 “test.cn”。
3. @ IN SOA test.cn. root.test.cn. ( 2006080401 ; Serial ) ; Serial:定义了区域配置的序列号(Serial),表示每次对该文件进行修改时,序列号应递增。这里设置的序列号为 2006080401。
4. 604800 ; Refresh:刷新间隔时间为 604800 秒,即 172 小时。这意味着区域数据在每次更新后,刷新时间为 172 小时。
5. 86400 ; Retry:定义了区域数据的重试时间为 86400 秒,即 24 小时。当区域数据更新失败时,重试时间为 24 小时。
6. 2419200 ; Expire:定义了区域数据的过期时间为 2419200 秒,即 688 小时。过期时间表示区域数据在缓存中的最长生存时间。
7. 604800 ) ; Negative Cache TTL:负缓存时间(Negative Cache TTL)为 604800 秒,即 172 小时。这意味着在查询失败时,负缓存时间用于防止错误的信息在缓存中传播。
8. @ IN NS ns1:定义了一个名为 “ns1” 的域名服务器,负责解析 “test.cn” 域名下的所有域名。
9. @ IN A 192.168.172.201:指定域名 “test.cn” 的 IP 地址为 192.168.172.201。
10. www IN A 172.16.1.201:将 “www” 域名解析为 IP 地址 192.168.172.201。
vim /etc/bind/192.zone $TTL 604800 @ IN SOA test.com. root.test.com. ( 20211201;Serial 604800 ;Refresh 86400 ;Retry 2419200 ;Expire 604800) ;Negative Cache TTL ; @ IN NS ns1.test.com. 201 IN PTR ns1.test.com. 201 IN PTR www.test.com. 56 IN PTR blog.test.com. # 注意域名后面的点千万不要少了,否则会报错
下面是几个参数的解释:
vim /etc/bind/named.conf.options options { directory "/var/cache/bind"; // If there is a firewall between you and nameservers you want // to talk to, you may need to fix the firewall to allow multiple // ports to talk. See http://www.kb.cert.org/vuls/id/800113 // If your ISP provided one or more IP addresses for stable // nameservers, you probably want to use them as forwarders. // Uncomment the following block, and insert the addresses replacing // the all-0's placeholder. // forwarders { // 0.0.0.0; // }; // option配置文件路径为 /etc/bind/named.conf.options, 去掉文件中forwarders的注释。forwarders节点配置的是转发器,所有非本域的和在缓存中无法找到的域名查询都将转发到设置的DNS转发器上,由这台DNS来完成解析工作并做缓存。转发器设置两个常用的DNS服务器即可: forwarders { 8.8.8.8; }; //======================================================================== // If BIND logs error messages about the root key being expired, // you will need to update your keys. See https://www.isc.org/bind-keys //======================================================================== dnssec-validation auto; listen-on-v6 { any; }; auth-nxdomain no; # conform to RFC1035 listen-on port 53 {192.168.172.201;}; //这一项是填写自己的DNS服务器IP地址 allow-transfer {any; }; allow-query{ any; }; };
# 启动 systemctl restart bind9 # 修改配置文件重新启动后,可能不会立即生效,可执行下述命令刷新之后重新验证 systemctl reload bind9 # 验证 vim /etc/resolv.conf # 自建的DNS服务器地址 nameserver 192.168.172.201 # 测试命令 nslookup blog.test.cn # dig 域名 DNS服务器地址 dig www.test.com 192.168.172.201 # dig -x ip @DNS服务器IP dig 192.168.192.56 @ 192.168.172.201 dig -x 192.168.172.201
vim /etc/resolv.conf
nameserver 192.168.172.201
控制面板\网络和 Internet\网络连接
如果通过nslookup解析出来的DNS地址和配置的DNS不一致,则可以使用如下步骤解决:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。