目录
- 搭建DNS服务器
- 搭建一个DNS缓存域名服务器
- 主从DNS服务器的工作原理
- 查域里的域名服务器记录
- 记录类型
- 做一个自己的域名数据库,给sc.com提供解析
- 反向解析的配置文件和数据文件
搭建DNS服务器
主配置文件:/etc/named.conf
次要配置文件:/etc/named.rfc1912.zones
named.ca
:记录13台根域名服务器地址的文件
主进程:named
监听的端口:53 tcp/udp
数据文件(存放域名解析的相关数据):/var/named/chroot/var/named
搭建一个DNS缓存域名服务器
-
准备工作:关闭防火墙和selinux
service firewalld stop systemctl disable firewalld setenforce 0 # 将selinux配置文件enforcing改为disabled,永久关闭 sed -i '/^SELINUX=/ s/enforcing/disabled/' /etc/selinux/config
-
安装bind,bind(The Berkrlry Internet Name Domain DNS server)是历史非常悠久而且性能非常好的DNS域名系统的软件
yum install bind* -y
-
设置named服务器开机启动,并且立马启动DNS服务
named是DNS服务的名字(named deamon)
service named start systemctl enable named
-
修改域名解析文件
[root@localhost conf]# cat /etc/resolv.conf # Generated by NetworkManager #search localdomain #nameserver 192.168.232.2 # 这个IP地址是用来测试TCP/IP协议在本机是否能正常运行,这个IP地址只能在本机访问,如果其他主机想要通过这个DNS服务器来上网,需要在named配置文件中修改监听IP127.0.0.1为0.0.0.0 nameserver 127.0.0.1
修改完成之后使用nslookup命令查看能不能解析域名的IP地址,如果可以解析就说明修改成功
-
修改监听的IP,任何人都可以访问
vim /etc/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; };
修改完成之后重启named服务
service named restart
查询追踪整个域名解析的过程
dig +trace www.baidu.com
主从DNS服务器的工作原理
主从 DNS 服务器架构提供了高可用性和负载均衡的好处。即使主服务器不可用,从服务器仍然可以提供域名解析服务。当主服务器恢复时,从服务器会同步更新以保持数据一致性。这种架构还可以减轻主服务器的负载,提高系统的性能和可靠性
- 当客户端发出 DNS 查询请求时,请求会首先发送到从服务器,因为它们可以提供更快的响应时间。
- 如果从服务器拥有所需的域名解析记录,它会立即返回解析结果给客户端。
- 如果从服务器没有所需的记录,或者记录已过期,它会向主服务器发出查询请求,以获取最新的记录。
- 主服务器会响应查询请求,并将最新的 DNS 记录发送给从服务器。
- 从服务器将获取到的记录存储在本地,并响应客户端的查询请求。
查域里的域名服务器记录
dig qq.com NS
或
[root@localhost named]# nslookup
> set type=ns
> qq.com
记录类型
-
A 记录(Address Record):将域名映射到 IPv4 地址
www.example.com. IN A 192.168.1.1
-
AAAA 记录(IPv6 Address Record):将域名映射到 IPv6 地址
ipv6.example.com. IN AAAA 2001:db8::1
-
CNAME 记录(Canonical Name Record):创建域名的别名,指向另一个域名
mail.example.com. IN CNAME server.example.com.
-
NS 记录(Name Server Record):指定域名的权威域名服务器
example.com. IN NS ns1.example.com.
-
MX 记录(Mail Exchange Record):指定邮件服务器的优先级和域名。用于电子邮件服务
example.com. IN MX 10 mail.example.com.
-
TXT 记录(Text Record):存储文本信息,通常用于验证域名所有权或提供其他信息
example.com. IN TXT "This is a sample TXT record."
-
PTR 记录(Pointer Record):用于反向解析,将 IP 地址映射到域名
1.1.168.192.in-addr.arpa. IN PTR www.example.com.
做一个自己的域名数据库,给sc.com提供解析
vim /etc/named.rfc1912.zones
# 以下配置建议加在localhost的后面
zone "sc.com" IN {
type master; # 主域名
file "sc.com.zone"; # 这个文件需要自己创建
allow-update { none; };
}
然后在/var/named/
目录下创建一个sc.com的数据文件,修改A记录为自己的IP地址
cd /var/named/
cp -a named.localhost sc.com.zone
检查区域文件
named-checkconf /etc/named.rfc1912.zones named-checkzone sc.com /var/named/sc.com.zone
反向解析的配置文件和数据文件
-
在配置文件里添加反向解析的zone
vim /etc/named.rfc1912.zones zone "1.0.0.127.in-addr.arpa" IN { type master; file "named.loopback"; allow-update { none; }; }; zone "232.168.192.in-addr.arpa" IN { type master; file "192.168.232.zone"; allow-update { none; }; };
-
然后再数据文件里添加记录
[root@localhost named]# cat 192.168.232.zone $TTL 1D @ IN SOA @ rname.invalid. ( 0 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum NS @ A 192.168.232.161 PTR ns1.chen.com 161 IN PTR www.chen.com 162 IN PRT db.chen.com
-
测试,如果能解析出域名就是成功了
nslookup 192.168.232.161