今天和很高兴和大家分享DNS服务的配置,记得点赞哦! 话不多说了,赶紧进入正题吧!
简介:
1.Linux下使用的DNS服务器软件是Bind,其守护进程是named,用于提供域名解析服务
DNS的基本介绍:
DNS系统在网络中的作用就是维护着一个地址数据库,其中记录了各种主机域名与IP地址的对应关系,以便为客户机提供正向与反向的地址查询,即正向与反向解析。
正向解析:根据域名查ip地址,将指定的域名解析为相对应的ip地址。
反向解析:根据ip地址查域名,将指定的ip地址解析成相对应的域名。
DNS可分为不同的类型,常见的几类如下:
缓存域名服务器:只提供域名解析结果和缓存功能,目的在于高效查询速度和效率,但是没有自己控制的区域地址数据。配置此服务器时,必须指定其他DNS服务器作为解析。
主域名服务器:维护某个特定DNS区域的地址数据库,对其中的解析记录具有自主控制权,配置此服务器时,需要自行建立所负责区域的地址数据文件。
从域名服务器:与主服务器提供完全相同的DNS解析服务,通常用于服务器的热备份。
实验环境:
两台Linux虚拟机,一条做主服务器,并提供正、反解析,从服务器做服务器的热备份
RedHat6.2 64位 ip地址为192.168.100.20
系统中的各种软件包,及作用
bind-9.7.3-8.P3.el6.x86_64.rpm //主要程序及相关的配置文件 bind-chroot-9.7.3-8.P3.el6.x86_64.rpm //BIND服务的伪装根目录,以提高安全性 bind-libs-9.7.3-8.P3.el6.i686.rpm //提供了需要使用的数据函 bind-libs-9.7.3-8.P3.el6.x86_64.rpm bind-utils-9.7.3-8.P3.el6.x86_64.rpm //提供了对DNS服务器的测试工具host,nslookup
3.1 查询bind是否安装
rpm -q bind
如果没安装,则直接安装,方式有两种:
rpm -ivh /mnt/Packages/bind-9.7.3-8.P3.el6.x86_64.rpm //使用RPM进行安装
yum install bind //使用yum进行安装 (创建yum的方法这里就不解释了)如有需要,请看前几篇
[[email protected] ~]# rpm -qc bind //使用此命令,可以查看配置文件的所在目录 主要修改一下三个配置文件即可
/etc/logrotate.d/named /etc/named.conf 主配置文件 /etc/named.iscdlv.key /etc/named.rfc1912.zones 区域配置文件 /etc/named.root.key /etc/rndc.conf /etc/rndc.key /etc/sysconfig/named /var/named/named.ca /var/named/named.empty /var/named/named.localhost 区域数据配置文件 /var/named/named.loopback
主配置文件:位于etc目录下,/etc/named.conf,options定义服务器的全局配置选项,在一个named.conf文件中只能有一
options { listen-on port 53 { 192.168.100.20; }; //监听地址和端口 directory "/var/named"; //区域数据文件的默认存放位置 allow-query { any; }; //允许所有地址进行访问
区域配置部分:/etc/named.rfc1912.zones
zone "benet.com" IN { //正向“benet.com”区域 type master; //类型为主区域 file "benet.com.zone"; //区域数据文件为benet.com.zone allow-transfer { 192.168.100.30; }; //允许下载的从服务器地址 };
[[email protected] ~]# cd /var/named/
[[email protected] named]# ls
data dynamic named.ca named.empty named.localhost named.loopback slaves
[[email protected] named]# cp -p named.localhost benet.com.zone //复制一个新的区域数据文件,并保留属主、属组不变。
[[email protected] named]# vi benet.com.zone
区域数据配置文件:
编写正向解析数据文件:
$TTL 1D //有效解析记录的生存周期 @ IN SOA @ admin ( //SOA标记、域名、管理邮箱 10 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum 这里@是一个变量,相当于benet.com 地址解析部分: NS @ //记录当前区域的DNS服务器的主机地址 A 192.168.100.20 IN MX 5 benet.com. mail IN A 192.168.100.110 //设置A记录,正向解析记录 www IN A 192.168.100.120 ftp IN CNAME www.benet.com. //设置别名 * IN A 192.168.100.254 //设置泛域名解析
[[email protected] named]# echo "nameserver 192.168.100.20" > /etc/resolv.conf //指定本地DNS 解析的地址,并重定向到/etc/resolv.conf
[[email protected] named]# service named start //开启服务
启动 named: [确定]
为了做主从服务器,这里先关闭防火墙和SELinux,(不关,不影响正常解析)
[[email protected] named]# service iptables stop
iptables:清除防火墙规则: [确定]
iptables:将链设置为政策 ACCEPT:filter [确定]
iptables:正在卸载模块: [确定]
[[email protected] named]# setenforce 0
这时就能够在本地进行解析了
[[email protected] named]# host www.benet.com
www.benet.com has address 192.168.100.120
[[email protected] named]# host mail.benet.com
mail.benet.com has address 192.168.100.110
[[email protected] named]# host abc.benet.com
abc.benet.com has address 192.168.100.254
如果没有host测试工具,则使用RPM进行安装:rpm -ivh /mnt/Packages/bind-utils-9.7.3-8.P3.el6.x86_64.rpm
配置反向解析:
zone "100.168.192.in-addr.arpa" IN { //反向解析的区域为192.168.100.0段 type master; file "benet.com.local"; //区域数据文件为 benet.com.local allow-update { none; }; };
[[email protected] named]# cp -p benet.com.zone benet.com.local
[[email protected] named]# vi benet.com.local
配置区域数据文件:
这里@也是变量,表示为 192.168.100段
$TTL 1D @ IN SOA benet.com. admin.benet.com. ( 域名为benet.com. 管理员邮箱(完全合 格域名) 10 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum NS benet.com. A 192.168.100.20 110 IN PTR mail.benet.com. 使用PTR记录时,110表示ip地址的主机部分,表示 120 IN PTR www.benet.com. ip地址为192.168.100.110的主机,域名为mial、www.benet.com
[[email protected] named]# service named restart
停止 named: [确定]
启动 named: [确定]
这时就可以正常反向解析了;
[[email protected] named]# host 192.168.100.110
110.100.168.192.in-addr.arpa domain name pointer mail.benet.com.
[[email protected] named]# host 192.168.100.120
120.100.168.192.in-addr.arpa domain name pointer www.benet.com.
[[email protected] named]#
从服务器的配置:
全局配置:vi /etc/named.comf
options { listen-on port 53 { 192.168.100.30; }; //监听地址和端口 directory "/var/named"; //区域数据文件的默认存放位置 allow-query { any; }; //允许所有地址进行访问
区域配置:vi /etc/named.rfc1912.zones
zone "benet.com" IN { type slave; //类型为从区域 masters { 192.168.100.20; }; // 指定主服务器的IP地址 file "slaves/benet.com.zone"; // 下载的区域文件保存到slaves/目录,这里不用创建,将在主服务器上同步过来。 };
[[email protected] named]# service iptables stop
iptables:清除防火墙规则: [确定]
iptables:将链设置为政策 ACCEPT:filter [确定]
iptables:正在卸载模块: [确定]
[[email protected] named]# setenforce 0
[[email protected] named]# service named start
启动 named: [确定]
[[email protected] named]# echo "nameserver 192.168.100.30" > /etc/resolv.conf
[[email protected] named]# ls
data dynamic named.ca named.empty named.localhost named.loopback slaves
[[email protected] named]# cd slaves/
[[email protected] slaves]# cat benet.com.zone //这边是从主服务器上同步过来的
$ORIGIN . $TTL 86400; 1 day benet.comIN SOAbenet.com. admin.benet.com. ( 10 ; serial 86400 ; refresh (1 day) 3600 ; retry (1 hour) 604800 ; expire (1 week) 10800 ; minimum (3 hours) ) NS benet.com. A 192.168.100.20 MX 5 benet.com. * A 192.168.100.254 ftp CNAME www mail A 192.168.100.110 www A 192.168.100.120
上面以同步完成,在从服务器不用做任何配置,就可以解析到主服务器上的域名。
[[email protected] slaves]# host mail.benet.com
mail.benet.com has address 192.168.100.110
[[email protected] slaves]# host www.benet.com
www.benet.com has address 192.168.100.120
OK ,实验完成,祝你好运。记得评论哦!