LINUX下dns的搭建(主dns和辅助dns)
首先,看看dns是否安装,这里的包名为bind
这里就说明所有dns需要的包已经安装。如果没有安装,我们直接连接镜像文件,直接界面化安装,也可以用命令来安装(需要注意安装顺序)注:如果已经安装,则下面安装步骤可以跳过!
我们在虚拟机属性面板点击连接,默认是未勾选的
然后我们在桌面就会发现一个DVD的标志,我们点击它,选择server
(在这里补充一下,结合一下我所见到的问题,可能会出现找不到server文件夹,安装报错等情况,主要原因还是因为linux安装的镜像与挂载的镜像是同一个,如果版本不同,或者错误镜像都会出现意想不到的错误)
在这里面都是该镜像文件带的各个服务,我们既然做的是DNS,则找到与bind有关的包
就这样点击应用进行安装,图形化安装比用rpm命令安装的好处就是能够忽略依赖关系,所以我们就不用注意安装顺序啦!
这里我没有用linux自带的dns没有模板,所以就直接创建(模版路径/usr/share/doc/dhcp*/dhcpd.conf.sample ,需要用时直接复制到/etc目录下就可以了)
Vi /etc/named.conf
这里options 里面定义了
监听端口:53(any)代表所有人都可以访问
directory:表示主文件放置的目录
注意:每次大括号结尾和语句结尾都要加上";"分号结尾,否则启动服务的时候会报错。
我们用vi编辑器打开下面文件,主要放置各种正向解析和逆向解析有关配置(自带的配置最好不要改,有些配置信息小编也解释不清,所以为了减少麻烦,直接在最后加上我们需要的正向解析和逆向解析相关配置就好。)
这里我们建立正向解析和逆向解析
然后解释一下含义:
每个zone代表一个域
type:类型,分为master和slave就是主dns和辅助dns的不同类型
file:文件放置位置
需要注意的是:bind可以在chroot环境下配置,或者在非chroot环境下配置,配置文件的路径会因为是否安装chroot包而不同。
如果带有chroot,说明我们就要在/etc/named.rfc1912.zones下重新写刚才我们配置的正向解析和逆向解析的命令
想证明有没有chroot很简单,看/var/named下有没有chroot文件就知道了
chroot的作用是防止黑客,所以就没有放置在默认的目录下,而是/chroot/var/named/目录下放置着我们的正向解析和逆向解析文件,chroot包不装也可以,但是一旦安装,各个配置文件就不是默认存放位置了,而是以/var/named/chroot为起点,各个配置文件都会在以此为起点然后再跟上默认路径,这点一定要注意,否则在启动服务的时候会出现,配置文件未找到,用nslookup测试无法正向解析或反向解析等错误。
这里不要被那些错误文件误导,因为小编在做的时候也出了好多错误,没有将那些错误文件删除,小编在此只是为了展示解析文件的存放位置。
然后我们看一下正向解析文件的内容
小编在学习中也发现了“;”在解析文件中只起注释作用,写不写都不影响文件的执行。还有就是root后面可以跟上你的域,比如root.mez.com.这样,起的效果是一样的,这点省略同样不影响。还有就是那些数字加英文字母所代表的意义。D:day;H:hour;W:weekend;最上面的TTL大家应该也很熟悉啦,就是TIME TO LIVE(生存时间)
说明:在区域文件中,SOA是开始授权(Start Of Authority)的意思。它的值的第一段是授权名称服务器的完全限定域名。完全限定域名后面跟着的是电子邮件地址。(注:@有特定意义,代表本域。)
以下是典型的常用DNS记录类型:
NS:域名服务器
A: 地址记录,记录主机名到IP地址的映射
MX: 邮件交换记录。这里我们只用了一个邮件交换记录,设置其优先级为10。如果有多个邮件交换记录,我们可以使用多个数值优先级,数字小的优先级最高。例如,MX 0比MX 1优先级更高。
CNAME: 别名。如果在一台单一服务器上托管了多个服务,也很可能将多个名称解析到某个单一服务器。CNAME指定了一台服务器可能有的其它名称,并且将它们指向具有实际A记录的名称。
反向解析文件的内容
说明:除了下面的参数外,反向区域文件中的大多数参数和转发区域文件中的相同。
PTR: IP反向解析记录,指向一个反向限定域名。
这里记得在后面加上".",否则会报错
我们要让dns正确解析,还需要在resolv.conf中输入本机的ip地址
一定注意,这里的ip要与本机ip一致,否则dns也不能正常解析
在这里第一行也可以不写,不同教程上写的都不一样,小编也就不做多余的解释了,主要还是定义你的dns服务器的ip地址。
OK,既然都配置完毕,我们重启服务(网卡修改配置要重启,dns修改配置也要重启才能生效)
服务启动成功,然后我们用nslookup命令来验证(dig,host都可以,这里用的是nslookup)
正向解析
反向解析
可能各位在做的时候不会一次性成功解析的到,小编在补充的文字中也说出了自己见到的错误,当然并不代表全部,只是给各位一些错误提醒,方便大家能够快速的搭建成功。还有就是,dns服务成功开启了,各位不要过于激动,也会出现解析不到的情况,这个时候很有可能就是配置文件的路径问题,大家再细心一些,相信各位一定能够找到出错的地方。
这里小编就用的linux自己来测试的,也可以用Windows来测试,不过要注意设置dns为该服务器的ip呦,如果以前配置过dhcp,就可以修改dhcp配置,让dhcp给客户机自动分配dns
2.辅助dns的配置
(这里小编补充一下,主dns在正常工作时,辅助dns几乎不齐什么作用,一旦主dns服务器出现故障,辅助dns就能代替主dns来工作。还有就是,主dns要和辅助dns在一个网段内)
各位久等,小编狠一狠心,终于把辅助dns自己做了一遍。下面就由小编来详细讲解。
首先,我们开启另外一台linux虚拟机(dns需要的rpm包已经装好,这里小编就不再讲解)
我们配置ip地址,可以用命令,也可以界面化输入进行配置
这里的named.conf主配置文件是用的模板文件,执行命令
cp -R /usr/share/doc/bind-9.3.6/sample/etc/* /var/named/chroot/etc/
这里面打开的就是模板的配置文件named.conf然后我们需要在最后加上一些配置,其他的都可以删除,保留四项内容:options、logging、view "localhsot_resolver"和view "internal"即可,named.conf记得放在view里面,要不然会报错,这里需要指定master相关字段和内容。
一开始为了保险,我们和主dns配置相同,也在named.rfc1912.zones文件的尾部添加刚在在主配置文件添加的zone内容
然后我们在/etc/resolv.conf中进行设置,上面写上本机(辅助dns)ip地址,下面是主dns的ip地址
因为我们新建的文件会以默认的权限,这里我们需要修改named目录的访问权限为可写chmod 777 /var/named/chroot/var/named
最后,我们需要关闭防火墙(方法已经教过大家)
对了,我们还要在主dns的正向解析文件和逆向解析文件中多些配置
正向解析文件需要多这两行
逆向解析需要多这两行
我们多这些内容是为了让主dns找到辅助dns
然后我们在主dns和辅助dns上重启服务,用nslookup命令进行解析
然后我们用第三台机器(win7)来进行验证
由于一开始小编已经配置了dhcp服务器,这里我们就自动获取(记住要在dhcpd.conf设置两个dns)
这里我们就获取到了dhcp服务器给我们分配的ip地址等信息。
然后我们用nslookup命令进行验证,这里我们就可以看到主dns和辅助dns的信息啦
这样我们的辅助dns就成功搭建啦
注意:我们在用客户机获取dns时首先要确保53端口是允许访问的,而linux默认是不允许的,我们有两种方式
(1) 将53端口设置为开放并允许访问列表中 iptables -A INPUT -p tcp --dport 53 -j ACCEPT
(2) 直接关闭防火墙 chkconfig iptables off
(3) 查看防火墙状态 service iptables status(用于方法一的验证,也可以看防火墙是否工作)
结论:无论搭建那种服务器,最重要的就是细心,有可能一个小小的细节就可能导致服务无法正常启动。
下面说几点可能会出错的地方
1.检测主配置文档 named.conf后跟主配置文档路径及名字
例:当前在/var/named/chroot/var/named下,正向解析和逆向解析文件
2.service named start 如果启动失败会告诉你出错原因。(有些服务器启动失败没有)
3.查看日志文件(/var/log/messages),根据日志文件能够找到出错原因(英语看不懂那就GG)。
另外在注意在测试时一定要将防火墙关闭,祝各位成功!!!