关于DNS的配置实验
实验采用DNS服务器软件bind。
bind软件目录下的各配置文件作用
yum install -y bind #安装bind软件包
pm -qc bind #查询bind软件配置文件所在路径
/etc/logrotate.d/named #主配置文件 控制系统全局
/etc/named.rfc1912.zones #区域配置文件 控制具体单个区域
/var/named/named.localhost #区域数据配置文件 区域信息
A记录 正向解析
P记录 反向解析
SOA记录
一、配置bind使系统支持DNS正向解析过程
1、修改主要配置文件
vim /etc/named.conf
options {
listen-on port 53 { 192.168.110.128; }; *监听53端口,ip地址使用提供服务的本地IP,也可用any表示所有
#listen-on-v6 port 53 { ::1; }; ipv6行如不使用可以注释掉或者删除
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 { 192.168.80.0/24; 172.16.100.0/24; }; *允许使用本DNS解析服务的网段,也可用any代表所有
}
zone "." IN {#正向解析“."根区域
type hint;#类型为根区域
file "named.ca";#区域数据文件为named.ca,#记录了13台根域服务器的域名和IP地址等信息
};
include “/etc/named.rfc1912.zones”; #包含区域配置文件里的所有配置
2.修改区域配置文件,添加正向区域配置
vim /etc/named.rfc1912.zones
zone "benet.com" IN{ 正向解析"benet.com"区域
type master; 类型为主区域
file "benet.com.zone"; 指定区域数据文件为benet.com.zone
allow-update { none; } ;
};
3.配置正向区域数据文件
cd /var/ named/
cp -p named.localhost benet.com.zone #保留源文件的权限和属主的属性复制
vim /var/named/benet.com.zone
$TTL 1D #有效解析记录的生存周期
@ in SOA benet.com. admin.benet.com. ( #“@"符号表示当前的DNS区域名
0 ; serial #更新序列号,可以是10位以内的整数
1D ; refresh #刷新时间,重新下载地址数据的间隔
1H ; retry #重试延时,下载失败后的重试间隔
1W ; expire #失效时间,超过该时间仍无法下载则放弃#
3H) ; minimum #无效解析记录的生存周期,
NS benet.com #记录当前区域的DNS服务器的名称
A 192.168.80.10. #记录主机IP地址
IN MX 10 mail.benet.com #MX为邮件交换记录,数字越大优先级越低
www IN A 192.168.80.10 #记录正向解析www.benet.com对应的IP
mail IN A 192.168.80.11 #MX为邮件交换记录,数字越大优先级低
ftp IN CNAME www #CNAME使用别名,ftp 是www的别名
* IN A 192.168.80.100 #泛域名解析,“*"代表任意主机名
4.启动服务,关闭防火墙
systemctl start named
systemctl stop firewalld
setenforce 0
#如果服务启动失败,可以查看日志文件来排查错误
tail -f /var/log/messages
#如果服务启动卡住,可以执行下面命令解决
rndc-confgen -r /dev/urandom -a
#对域名语法进行检查(named.conf)
named-checkconf -z /etc/named.conf
5.在Linux客户端的域名解析配置文件中添加DNS服务器地址
vi /etc/resolv .conf
#修改完后立即生效
nameserver 192.168.80.10
或
vi /etc/sysconfig/network-scripts/ifcfg-ens33
#修改完后需要重启网卡
DNS1=192.168.80.10
systemctl restart network
6.测试DNS解析
host www.benet.com
nslookup www.benet.com #也是windows系统验证方式
ext file
lenath:11.599 lines:231
Ln:121 Co
二、配置DNS反向解析过程
vim /etc/named.rfc1912.zones
// 192.168.10.0 反向则是 10.168.192
zone "10.168.192.in-addr.arpa" IN {
type master;
file "benet.com.zone.local;"; #指定反向解析的数据文件,也可以跟正向解析的数据文件相同
allow-update { none; };
};
cd /var/named/
cp -p benet.com.zone benet.com.zone.local
$TTL 1D #有效解析记录的生存周期,默认单位为秒
@ IN SOA benet.com. admin.benet.com. ( #SOA标记、域名和管理员邮箱,@变量表示域名
0 ; serial #更新序列号,10位以内数字,用于主从同步,主服务器这个数值要大于从服务器否则无法同步
1D ; refresh #刷新时间
1H ; retry #重试刷新时间间隔
1W ; expire #失效时间,超过该时间则放弃
3H ) ; minimum #无效解析记录的生存周期
NS benet.com.
A 192.168.10.22
100 IN PTR www.benet.com
200 IN PTR mail.benet.com
20是192.168.10.20的意思
RTP反向指针 功能:反向解析
systemctl restart named //rndc reload #也可以重载配置文件
host 192.168.10.20 #将会反向解析出域名www.benet.com
三、DNS主从服务器及自动同步
实验环境:
主服务器:192.168.100.80
从服务器:192.168.100.17
配置主服务器 192.168.100.80
1.主配置文件
vim /etc/named.conf
listen-on port 53{} 中值为any
allow-query{}中值改为any
2.区域配置文件
vim /etc/named.rfc1912.zones
zone "benet.com" IN {
type master; #类型为主区域
file "benet.com.zone";
allow-transfer { 192.168.100.17; }; #设置从服务器地址
};
zone "100.168.192.in-addr.arpa" IN {
type master;
file "benet.com.zone.local";
allow-transfer{ 192.168.100.17; };
};
3.配置正向区域数据文件
cd /var/named/
cp -p name.localhost benet.com.zone
vim /var/named/benet.com.zone
$TTL 1D #有效解析记录的生存周期
@ in SOA benet.com. admin.benet.com. ( #“@"符号表示当前的DNS区域名
0 ; serial #更新序列号,可以是10位以内的整数
1D ; refresh #刷新时间,重新下载地址数据的间隔
1H ; retry #重试延时,下载失败后的重试间隔
1W ; expire #失效时间,超过该时间仍无法下载则放弃#
3H) ; minimum #无效解析记录的生存周期,
NS benet.com. #记录当前区域的DNS服务器的名称
A 192.168.100.80 #记录主机IP地址
IN MX 10 mail.benet.com. #MX为邮件交换记录,数字越大优先级越低
www IN A 192.168.100.80 #记录正向解析www.benet.com对应的IP
mail IN A 192.168.100.81 #MX为邮件交换记录,数字越大优先级低
ftp IN CNAME www #CNAME使用别名,ftp 是www的别名
* IN A 192.168.100.200 #泛域名解析,“*"代表任意主机名
配置从服务器192.168.100.17
yum install -y bind
vim /etc/named.conf
options {
listen-on port 53 { 192.168.100.17; }; ●监听53端口,ip地址使用提供服务的本地IP,也可用any表示所有
#listen-on-v6 port 53 { ::1; }; #ipv6行如不使用可以注释掉或者删除
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解析服务的网段,也可用any代表所有
}
修改从域名服务器区域配置文件,添加正、反区域配置
vim /etc/named.rfc1912.zones
zone "benet.com" IN {
type slave; #类型为从区域
file "slaves/benet.com.zone"; #下载的区域数据文件保存到slaves/目录下
masters { 192.168.100.80; }; #设置主服务器地址 192.168.100.80
};
zone "100.168.192.in-addr.arpa" IN {
type slave;
file "slaves/benet.com.zone.local";
masters { 192.168.100.80; };
主、从都重启动服务,并查看区域数据文件是否已下载成功
systemctl restart named
ls -1 /var/named/slaves/
在客户端的域名解析配置文件中添加从DNs服务器地址
echo "nameserver 192.168.100.17" >> /etc/ resolv.conf
测试
host 192.168.100.80
nslookup 192.168.100.17
停止主服务器的服务,模拟主服务器故障
四、DNS分离解析
实验环境:
主服务器:192.168.20.80 网卡vmnet2
Web服务器:192.168.20.80 网卡vmnet2
外网客户主机:10.0.0.101 网卡vmnet3 DNS 解析地址 10.0.0.100
分离解析的域名服务器实际也是主域名服务器,这里主要是指根据不同的客户端提供不同的域名解析记录。比如来自内网和外网的不同网段地址区域的客户机请求解析同一域名时,为其提供不同的解析结果,得到不同的IP地址。\
注:DNS分离解析即将内外网的相同域名解析为不同的IP地址。现实网络中一些电商网站为了让用户有更好的体验效果解析速度更快,就把来自不同运营商的用户解析到相对应的服务器这样就大大提升了访问速度
配置网关服务器搭建DNS分离解析
在网关服务器搭建DNS分离解析,使局域网主机解析www.benet.com为192.168.20.80,外网主机解析www.benet.com
为10.0.0.100。
1.为网关服务器配置双网卡
在关机状态下再添加一块网卡,重启系统
ens33 192.168.20.80
ifconfig ens37 10.0.0.1/24
2.安装bind软件包
yum install -y bind
3.修改主配置文件
vim /etc/named.conf
options {
listen-on port 53 { any; }; ●监听53端口,ip地址使用提供服务的本地IP,也可用any表示所有
#listen-on-v6 port 53 { ::1; }; #ipv6行如不使用可以注释掉或者删除
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解析服务的网段,也可用any代表所有
}
include "/etc/named. rfc1912. zones";
vim /etc/named.rfc1912.zones
view "lan" { #定义内网view,view代表容器分割
match-clients { 192.168.20.0/24; } ; #匹配内网网段
zone "benet.com" IN { #设置要解析的区域
type master;
file "benet.com.zone.lan"; #数据配置文件
};
zone "." IN { #可将根域配置从主配置文件剪切过来,dd+p
type hint; #hint是根区域类型
file "named.ca";
};
view "wan" { #定义外网view .
match-clients { any; } ; #匹配除了内网网段以外的任意地址
zone "benet.com" IN {
type master;
file "benet.com.zone.wan";
};
};
注意:一旦启用view,所有的zone必须都在view下,所以要把系统默认的自检用的zone也放在view下或者删55
修改区域数据配置文件
cd /var/named
cp -p named.localhost benet.com.zone.lan
cp -p named.localhost benet.com.zone.wan
vim benet.com.zone.lan
$TTL 1D #有效解析记录的生存周期
@ in SOA benet.com. admin.benet.com. ( #“@"符号表示当前的DNS区域名
0 ; serial #更新序列号,可以是10位以内的整数
1D ; refresh #刷新时间,重新下载地址数据的间隔
1H ; retry #重试延时,下载失败后的重试间隔
1W ; expire #失效时间,超过该时间仍无法下载则放弃#
3H) ; minimum #无效解析记录的生存周期,
NS benet.com. #记录当前区域的DNS服务器的名称
A 192.168.20.80 #记录主机IP地址
www IN A 192.168.20.80 #记录正向解析www.benet.com对应的IP
vim benet.com.zone.wan
$TTL 1D #有效解析记录的生存周期
@ in SOA benet.com. admin.benet.com. ( #“@"符号表示当前的DNS区域名
0 ; serial #更新序列号,可以是10位以内的整数
1D ; refresh #刷新时间,重新下载地址数据的间隔
1H ; retry #重试延时,下载失败后的重试间隔
1W ; expire #失效时间,超过该时间仍无法下载则放弃#
3H) ; minimum #无效解析记录的生存周期,
NS benet.com. #记录当前区域的DNS服务器的名称
A 10.0.0.1 #记录主机IP地址
www IN A 10.0.0.100 #记录正向解析www.benet.com对应的IP
启动服务
systemctl start named
在内、外网客户端的域名解析配置文件中添加DNS服务器地址
echo "nameserver 192.168.20.80" >> /etc/resolv.conf #内网客户端
echo "nameserver 10.0.0.1" >> /etc/resolv.conf #外网客户端
在内、外网客户端上测试
nslookup www.benet.com