码迷,mamicode.com
首页 > 其他好文 > 详细

通过Docker配置DNS服务器

时间:2015-07-20 12:33:26      阅读:887      评论:0      收藏:0      [点我收藏+]

标签:

1. 概述

DockerHub中的 sameersbn/bind 镜像提供了搭建DNS服务器的功能,本文给出使用该镜像搭建DNS服务器的例子。

2. 环境

DNS服务器主机 IP:10.11.150.73  域名:master.open.com

客户端1的 IP:10.11.150.74  域名:node.open.com

客户端2的 IP:10.11.150.75  域名:node2.open.com

测试环境中73、74、75机不能连接DockerHub,中转机可连接73、74、75机和DockerHub。

3. 搭建

3.1 导入sameersbn/bind镜像

在中转机中下载sameersbn/bind镜像:

docker pull sameersbn/bind:latest

将镜像存出为tar包:

docker save -o sameersbn_bind.tar sameersbn:bind

通过scp将tar包复制到73机的/opt/scs/openxxs/目录下(任意具有读写权限的目录均可):

scp sameersbn_bind.tar scs@10.11.150.73:/opt/scs/openxxs/

在73机上将镜像导入:

docker load --input sameersbn_bind.tar

此时在73机上即有了sameersbn/bind的镜像了:

技术分享

3.2 新建并启动DNS服务器容器

在73机运行如下命令新建并启动容器:

docker run --name=bind -d -p 53:53/udp -e WEBMIN_ENABLED=false -v /opt/scs/openxxs/bind:/data sameersbn/bind:latest

其中--name是将该容器命名为bind;-p 开放53:53/udp端口便于其它主机访问DNS服务器;sameersbn/bind镜像本身安装了一个webmin服务,提供浏览器界面供用户配置域名项,本文通过修改配置文件进行DNS设置,因此通过 -e WEBMIN_ENABLED=false 禁用webmin的服务;-v 挂载73主机的/opt/scs/openxxs/bind目录(也可为其它目录),新建容器后将在该目录下生成bind/ect和bind/lib目录,其中etc目录下为DNS的相关配置文件。

3.3 参数配置

修改73、74、75主机的 /etc/resolv.conf 文件,添加如下内容,表示使用73机作为DNS服务器之一:

nameserver 10.11.150.73

 在/opt/scs/openxxs/bind/bind/etc目录下,打开named.conf文件,内容如下:

技术分享

可看出DNS的相关配置信息被分为了named.conf.options、named.conf.local和named.conf.default-zones三个文件。打开named.conf.options文件,修改allow-query 和 allow-transfer 字段为如下内容,表示允许73、74、75机使用73机上的DNS服务。

技术分享

打开named.conf.local文件,增加正向解析和反向解析(注意每个zone后面要加上分号):

技术分享

基于db.local新建正向解析文件forward.open(与named.conf.local中的命名一致):

cp db.local forward.open

内容如下:

技术分享

基于db.127新建反向解析文件reverse.open(与named.conf.local中的命名一致):

cp db.127 reverse.open

内容如下:

技术分享

修改了配置文件之后,需要进入bind容器中重新加载配置文件:

docker exec -i -t bind bash

进入bind容器后,里面的 /etc/bind 目录对应的就是73主机中的 /opt/scs/openxxs/bind/bind/etc 目录。先执行如下命令对配置文件的语法进行检查:

named-checkconf

语法没有问题后,使用rndc命令重新加载配置信息:

rndc reconfig

如果只是修改了某个区域的一些条目,则更新该区域即可,如下命令更新了open.com区域:

rndc reload open.com

3.4 测试

在73机上测试如下,成功:

技术分享

在74机上测试如下,成功:

技术分享

通过Docker配置DNS服务器

标签:

原文地址:http://www.cnblogs.com/openxxs/p/4655612.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!