DNS系统的作用
正向解析:域名到IP的解析过程
反向解析:IP到域名的解析过程,反向解析的作用为服务器身份验证
DNS系统的工作模式:
递归查询:DNS 服务器可使用其自身的资源记录信息缓存来应答查询,也可代表请求客户机来查询或联系其他 DNS 服务器,并随后将应答返回至客户机
迭代查询:如果没有查询到所需数据,该DNS服务器会告诉客户机另一台DNS服务器地址。客户机自己尝试联系其他的 DNS 服务器来解析名称,使用基于服务器应答的独立和附加的查询
主域名服务器:特定DNS区域的官方服务器,具有唯一性。负责维护该区域所有域名->IP的映射记录
从域名服务器:维护的域名->IP来源于主域名服务器
软件包:bind
服务名:named
端口:53
master主DNS配置
1、安装Bind软件包。
yum install -y bind
2、修改主DNS服务器配置文件。
vim /etc/named.conf
13 listen-on port 53 { 192.168.200.101; }; #监听网卡及端口
directory "/var/named"; #DNS解析记录位置
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"; #内存状态备份
19 allow-query { any; }; #允许所有人访问
recursion yes; #递归查询,删除是迭代查询
zone "." IN { #根DNS配置
type hint; #服务器类型:根DNS
file "named.ca"; #根DNS信息保存位置/var/named/named.ca
};
#包含子配置,把下列文件加载到主配置文件中
include "/etc/named.rfc1912.zones"; #声明DNS区域文件
include "/etc/named.root.key"; #访问根DNS需要的秘钥
3、修改主DNS服务器区域文件。
vim /etc/named.rfc1912.zones
zone "a.com" IN { #正向解析域名
type master; #类型:主DNS
file "a.com.localhost"; #主机名与IP对应关系配置文件
allow-update { none; }; #不允许客户端动态升级
};
zone "200.168.192.in-addr.arpa" IN { #反向解析域名的IP地址,应把网络位反写,不写主机位
type master; #类型:主DNS
file "192.168.200.empty";
allow-update { none; };
};
cd /var/named/ #copy模板文件,-p保留文件属性(文件所属组必须是named)
cp -p named.localhost a.com.localhost
cp -p named.empty 192.168.200.empty
4. 主DNS服务器正向区域文件。
vim /var/named/a.com.localhost
$TTL 1D #生存周期一天
@ IN SOA a.com. rname.invalid. (
# @代表域名,IN跳转指针,引出后面内容;SOA起始授权记录,引出后面参数;域名要在末尾加“.”
rname.invalid.表示管理员邮箱“.”代表了邮箱符号“@”
0 ; serial #序列号,更改一次+1
1D ; refresh #每隔一天检查序列号更新
1H ; retry #同步失败每隔一小时检查序列号更新
1W ; expire #辅DNS与主DNS断开连接一周后不响应客户端解析
3H ) ; minimum #最小生存周期(缓存最大生存时间)
NS ns1.a.com.
ns1 A 192.168.200.101
www A 192.168.200.104
5. 主DNS服务器反向区域文件。
vim /var/named/192.168.200.empty
$TTL 3H
@ IN SOA a.com. rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS ns1.a.com.
101 PTR ns1.a.com. #101是主机位IP地址
104 PTR www.a.com.
6. 主DNS服务器配置文件和区域文件语法检测。
named-checkconf /etc/named.conf
named-checkzone a.com /var/named/a.com.localhost
named-checkzone 200.168.192.in-addr.arpa /var/named/192.168.200.empty
7. 启动Bind服务。
systemctl start named
systemctl enable named
ss -ntlu | grep 53
udp UNCONN 0 0 192.168.200.101:53 *:*
8. 在Web服务器上安装apache安装包。
yum install -y httpd
9. 修改apache配置文件。
vim /etc/httpd/conf/httpd.conf
95 ServerName www.a.com:80
10. 创建apache默认文档。
echo "apache ip:192.168.200.104" > /var/www/html/index.html
11. 启动apache服务。
httpd -t
systemctl start httpd
systemctl enable httpd
ss -ntlu | grep 80
tcp LISTEN 0 128 :::80 :::*
12. 访问测试
master主DNS + slave辅DNS
1. 安装Bind软件包。
yum install -y bind
2. 修改主DNS服务器配置文件,允许区域传输。
vim /etc/named.rfc1912.zones
16 allow-update { 192.168.200.102; };
23 allow-update { 192.168.200.102; };
3. 修改主DNS服务器正向区域文件和反向区域文件,添加辅助DNS相关记录。
vim /var/named/a.com.localhost
$TTL 1D
@ IN SOA a.com. rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS ns1.a.com.
NS ns2.a.com.
ns1 A 192.168.200.101
ns2 A 192.168.200.102
www A 192.168.200.104
vim /var/named/192.168.200.empty
$TTL 3H
@ IN SOA a.com. rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS ns1.a.com.
NS ns2.a.com
101 PTR ns1.a.com.
102 PTR ns2.a.com.
104 PTR www.a.com.
然后重新启动named服务
systemctl restart named
4. 修改辅助DNS服务器配置文件。
vim /etc/named.conf
12 options {
13 listen-on port 53 { 192.168.200.102; };
14 listen-on-v6 port 53 { ::1; };
15 directory "/var/named";
16 dump-file "/var/named/data/cache_dump.db";
17 statistics-file "/var/named/data/named_stats.txt";
18 memstatistics-file "/var/named/data/named_mem_stats.txt";
19 allow-query { any; };
5. 修改辅助DNS服务器配置文件。
vim /etc/named.rfc1912.zones
zone "a.com" IN {
type slave; #类型设置为辅DNS服务器
file "slaves/a.com.localhost";
masters { 192.168.200.101; }; #指定主服务器地址
};
zone "200.168.192.in-addr.arpa" IN {
type slave;
file "slaves/192.168.200.empty";
masters { 192.168.200.101; };
};
6. 检测辅助DNS服务器配置文件和区域文件语法。
named-checkconf /etc/named.conf
named-checkconf /etc/named.rfc1912.zones
7. 启动辅助DNS服务。
systemctl restart named
systemctl enable named
ss -ntlu | grep 53
udp UNCONN 0 0 192.168.200.102:53 *:*
ll /var/named/slaves/ #发现此目录有了主DNS的服务器中的配置文件
8. 客户端基于域名访问apache站点。
客户端dns指向192.168.200.102
master主DNS + slave辅DNS + 缓存DNS
1. 修改主DNS服务器正向区域文件和反向区域文件,添加缓存DNS相关记录。
vim /var/named/a.com.localhost
$TTL 1D
@ IN SOA a.com. rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS ns1.a.com.
NS ns2.a.com.
NS ns3.a.com.
ns1 A 192.168.200.101
ns2 A 192.168.200.102
ns3 A 192.168.200.103
www A 192.168.200.104
vim /var/named/192.168.200.empty
$TTL 3H
@ IN SOA a.com. rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS ns1.a.com.
NS ns2.a.com.
NS ns3.a.com.
101 PTR ns1.a.com.
102 PTR ns2.a.com.
103 PTR ns3.a.com.
104 PTR www.a.com.
然后重新启动named服务
systemctl restart named
2. 在缓存DNS服务器上安装Bind软件包。
yum install -y bind bind-devel bind-chroot
3. 修改缓存DNS服务器配置文件。
vim /etc/named.conf
listen-on port 53 { 192.168.200.103; };
allow-query { any; };
forward only;
forwarders { 192.168.200.101;192.168.200.102; };
4. 检测缓存DNS服务器配置文件和区域文件语法。
named-checkconf /etc/named.conf
5. 启动Bind服务。
systemctl restart named
systemctl enable named
ss -ntlu | grep 53
udp UNCONN 0 0 192.168.200.103:53
6. 客户端基于域名访问apache站点。
客户端dns指向192.168.200.103
不能解析:vim /etc/named.conf yes更改为no
dnssec-enable no;
dnssec-validation no;
DNS转发
1. 添加主DNS服务器和辅助DNS服务器配置文件。
vim /etc/named.conf
forward first;
forwarders { 119.29.29.29;114.114.114.114 };
systemctl restart named
2. 客户端dns指向192.168.200.103