dns服务
Posted 扫驴
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了dns服务相关的知识,希望对你有一定的参考价值。
假设我们的dns服务器ip是192.168.1.65 我们网站的域名是hh.com,我们租用了192.168.1这个网段的全部ip地址
比如www.hh.com的ip是192.168.1.4
xx.hh.com的ip是192.168.1.8
特别注意的是,我们的dns服务器是dns.hh.com,ip是192.168.1.65
首先安装dns服务yum -y install bind
配置文件,有两处地方:
第一:
[root@localhost etc]# ls /etc/named*
/etc/named.conf /etc/named.iscdlv.key /etc/named.rfc1912.zones /etc/named.root.key
第二:
[root@localhost ~]# cd /var/named
[root@localhost named]# ls
data dynamic named.ca named.empty named.localhost named.loopback slaves
首先编辑主配置文件:
有一个地方要留意,两个地方要修改
修改:
listen-on port 53 { 192.168.1.65; };
这个是dns服务器的dns服务监听哪个端口,当然,最好写成any listen-on port 53 { any; };顺便把ipv6哪个配置项也改成any listen-on-v6 port 53 { any; };
修改:
allow-query { any; };允许哪些ip进行dns请求,这个当然要允许所有的主机
留意:
主配置文件最下方,有两段话
include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";
这个的作用不再多说,有一定经验的应该清楚
其次编辑 /etc/named.rfc1912.zones 这个配置文件定义了正向解析和反向解析相关的
在原有基础上添加,或者把原来的配置文件全部删除,重新配置都可以,这里我们是在原有基础上添加
因为这个dns服务器只负责解析hh.com这一个域和192.168.1这一段ip,所以只需要给这俄格与添加一条正向和一条反向即可
添加一个正向解析的配置:
zone "hh.com" IN {
type master;
file "hh.localhost";
allow-update { none; };
};
再添加一个反向解析的配置
zone "1.168.192.in-addr.arpa" IN {
type master;
file "hh.loopback";
allow-update { none; };
};
以上,type是配置这个dns是从服务器还是主dns服务器 ,allow-update表示是否允许其他的dns服务器进行跟新,这是针对搭建dns集群时有用,这里我们只建一台,所以我们就配置为master
allow-update 配置为none
如果搭建主从dns服务器的时候,那么主服务器就因该类似这样配置:
zone "hh.com" IN {
type master;
file "hh.localhost";
allow-update { 192.168.1.66;192.168.1.67; };
};
从服务器类似这样:
zone "hh.com" IN {
type slave;
masters { 192.168.1.65; };
file "slaves/hh.localhost";
allow-update { none; };
};
//masters { 192.168.1.65; };注意192.168.1.65;两边要留有空格
//从服务器约定俗称的把解析记录保存再/var/named/slaves目录下,这个是约定俗称的规矩
file表示具体的解析记录是在/var/named目录下的什么文件,比如这里我们具体的正向解析记录的文件为/var/named/hh.localhost
最后就是配置具体的解析记录了:
/var/named目录下已经为我们准备好了正向和反向的模板,我们就先复制一下,然后再修改
[root@localhost named]# cp -a named.localhost hh.localhost
[root@localhost named]# cp -a named.loopback hh.loopback
编辑正向解析文件 hh.localhost:
$TTL 1D @ IN SOA hh.com. rname.invalid. ( 0 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum NS dns.hh.com. dns A 192.168.1.65 www A 192.168.1.4 xx A 192.168.1.8
SOA后面跟dns具体负责解析哪个域
ns记录代表dns的域名
注意以上两个,后面都必须带.,不能省略,这个.代表根域,事实上所有的域名后面都带这个,只不过,很多时候我们省略了,比如我在浏览器里键入网址的时候,只不过是浏览器帮我们补全了,这里
不能省略必须带上
同时还需要注意的是,解析记录里必须包含dns解析
dns A 192.168.1.65
编辑反向解析
$TTL 1D @ IN SOA hh.com. rname.invalid. ( 0 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum NS dns.hh.com. 65 PTR dns.hh.com. 4 PTR www.hh.com. 8 PTR xx.hh.com.
然后启动dns服务,
service named start
然后我们把windows的dns临时修改为192.168.1.65,以供测试,再ping一下
配置视图以实现智能dns(本测试例子中,有来自1网段的客户端,和来自二网段的客户端,他们访问www.xx.com,得到的dns解析地址是不同的):
还是编辑主配置文件,把include "/etc/named.rfc1912.zones";这句话注释掉,然后添加下面的配置,
view dns1 {//定义视图 match-clients{ 192.168.1.0/24; };//匹配客户端地址列表 match-destinations { any; }; recursion yes;//允许递归查询开关 include "/etc/dns1.zones";//定义解析域,然后定义不同的数据库文件 }; view dns2 {//定义视图 match-clients{ 192.168.2.0/24; };//匹配客户端地址列表 match-destinations { any; }; recursion yes;//允许递归查询开关 include "/etc/dns2.zones";//定义解析域,然后定义不同的数据库文件 };
然后就能分别编写相应的dns1.zones和dns2.zones以及各自对应的位于/var/named目录下的解析记录文件,步骤和前面相同
以上是关于dns服务的主要内容,如果未能解决你的问题,请参考以下文章
Windows 2012 R2 DataCenter服务器DNS无法打开AD, DNS错误代码4000 4007 4013