DNS解析分为正向解析和反向解析,简单地说,正向解析为使用域名去访问,解析到实际的服务器ip;反向解析,则是使用ip去访问解析到域名。
比较官方的介绍:
DNS域名解析服务(Domain Name System)是用于解析域名与IP地址对应关系的服务,功能上可以实现正向解析与反向解析:
正向解析:根据主机名(域名)查找对应的IP地址。
反向解析:根据IP地址查找对应的主机名(域名)。
工作形式上又分主服务器、从服务器和缓存服务器。
主服务器:在特定区域内具有唯一性、负责维护该区域内的域名与IP地址对应关系。
从服务器:从主服务器中获得域名与IP地址对应关系并维护,以防主服务器宕机等情况。
缓存服务器:通过向其他域名解析服务器查询获得域名与IP地址对应关系,提高重复查询时的效率。
操作系统:fedora 35
#安装
dnf install bind bind-libs bind-utils
#编辑主配置文件
vim /etc/named.conf
listen-on port 53 { any; }; #修改此处
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";
secroots-file "/var/named/data/named.secroots";
recursing-file "/var/named/data/named.recursing";
allow-query { any; }; #修改此处
#配置正向解析
vim /etc/named.rfc1912.zones
#正向解析
zone "codemiracle.com.cn" IN {
type master;
file "codemiracle.com.cn.zone";
allow-update { none; };
};
#复制模板进行修改
cd /var/named/
cp -a named.localhost codemiracle.com.cn.zone
#修改配置
$TTL 1D
@ IN SOA codemiracle.com.cn. codemiracle.com.cn. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS ns.codemiracle.com.cn.
ns A 192.168.0.100
AAAA ::1
MX 10 mail.codemiracle.com.cn.
www A 192.168.80.100
harbor A 192.168.80.100
mail A 192.168.80.100
#检查配置文件
named-checkconf /etc/named.conf
named-checkzone codemiracle.com.cn /var/named/codemiracle.com.cn.zone
#重启服务,进行测试
systemctl restart named
#将本机的dns指向本机
cat /etc/resolv.conf
nameserver 192.168.80.100
nslookup www.codemiracle.com.cn
nslookup mail.codemiracle.com.cn
nslookup harbor.codemiracle.com.cn
#反向解析
vim /etc/named.rfc1912.zones
zone "80.168.192.in-addr.arpa" IN {
type master;
file "192.168.80.zone";
allow-update { none; };
};
#复制模板修改
cp -a named.loopback 192.168.80.zone
$TTL 1D
@ IN SOA codemiracle.com.cn. codemiracle.com.cn. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS ns.codemiracle.com.cn.
ns A 192.168.80.100
AAAA ::1
100 PTR ns.codemiracle.com.cn.
100 PTR www.codemiracle.com.cn.
100 PTR harbor.codemiracle.com.cn.
100 PTR mail.codemiracle.com.cn.
#重启服务进行测试
systemctl restart named
nslookup 192.168.80.100
局域网内自建DNS服务器有很用,经常模拟一些公网环境。
-------------------------------------------------------------------
# 配置文件详解
name.conf文件
options {
listen-on port 53 { 127.0.0.1; }; //设置named服务器监听端口及IP地址
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 { any; }; //允许DNS查询客户端
allow-query-cache { any; };
};
logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
};
view localhost_resolver {
match-clients { any; };
match-destinations { any; };
recursion yes; //设置允许递归查询
include "/etc/named.rfc1912.zones";
};
# 区域文件/etc/named.rfc1912.zones
zone "." IN { //定义了根域
type hint; //定义服务器类型为hint
file "named.ca"; //定义根域的配置文件名
};
zone "localdomain" IN { //定义正向DNS区域
type master; //定义区域类型
file "localdomain.zone"; //设置对应的正向区域地址数据库文件
allow-update { none; }; //设置允许动态更新的客户端地址(none为禁止)
};
zone "localhost" IN {
type master;
file "localhost.zone";
allow-update { none; };
};
zone "0.0.127.in-addr.arpa" IN { //设置反向DNS区域
type master;
file "named.local";
allow-update { none; };
};
# 根域配置文件named.ca
根域配置文件设定根域的域名数据库,包括根域中13台DNS服务器的信息。几乎所有系统的这个文件都是一样的,用户不需要进行修改。
# 正向域名解析数据库文件
$TTL 600
@ IN SOA dns.codemiracle.com dnsadmin.codemiracle.com. (//SOA字段
2015031288 //版本号 同步一次 +1
1H //更新时间
2M // 更新失败,重试更新时间
2D // 更新失败多长时间后此DNS失效时间
1D //解析不到请求不予回复时间
)
IN NS dns //有两域名服务器
IN NS ns2
IN MX 10 mial // 定义邮件服务器,10指优先级 0-99 数字越小优先级越高
ns2 IN A 192.168.1.113 //ns2域名服务器的ip地址
dns IN A 192.168.1.10 //dns域名服务器的ip地址
mail IN A 192.168.1.111 //邮件服务器的ip地址
www IN A 192.168.1.112 //www.codemiracle.com的ip地址
pop IN CNAME mail //pop的正式名字是mail
ftp IN CNAME www //ftp的正式名字是www
# 反向域名解析数据库文件
$TTL 600
@ IN SOA dns.codemiracle.com. dnsadmin.codemiracle.com. (
2014031224
1H
2M
2D
1D
)
IN NS dns.codemiracle.com.
10 IN PTR dns.codemiracle.com. //反向解析PTR格式
111 IN PTR mail.codemiracle.com.
112 IN PTR www.codemiracle.com.
// 声明域的时候已经有了,192.168.1 所以我们只需要输入10即代表192.168.1.10jc
监听端口:udp/53,tcp/53
应用程序:bind
根域:.
一级域:
组织域:.com, .org, .net, .mil, .edu, .gov, .info, .cc, .me, .tv
国家域:.cn, .us, .uk, .jp, .tw, .hk, .iq, .ir
反向域:.in-addr.arpa
DNS 记录类型:DNS 域名数据库由资源记录和区文件指令组成。
SOA 记录:起始授权机构记录,SOA 备注说明了众多 NS(name server)记录中谁是主名称服务器,不参与功能,但是不能缺少。
NS 记录:域授权记录,当请求到达根域的时候,通过 NS 记录找到对应的域。
A 记录:当通过 NS 记录到达域以后,比如访问 www.baidu.com,通过 NS 我们找到了 baidu.com,此时就需要通过 A 记录找到 www。
MX:将该域下的所有邮件服务器地址指向邮件服务器。
AAAA 记录:A 记录处理 IPV4,AAAA 处理 IPV6。
PTR 记录:反向解析,将 IP 解析成域名。
CNAME:别名记录,允许多个名字映射到另外一个域名。比如我们 ping 百度的时候可以发现返回其实是 www.a.shifen.com 这个域名返回。所有 www.baidu.com 其实是个别名。