通过Docker配置DNS服务器

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 [email protected]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机上测试如下,成功:

时间: 2024-08-01 22:44:01

通过Docker配置DNS服务器的相关文章

如何配置DNS服务器(局域网——域名指向某个IP地址)

单击“开始”,指向“管理工具”,然后单击“DNS”,打开 DNS 管理器.   如有必要,向管理单元添加适用的服务器,然后连接该服务器.在控制台树中,单击适用的 DNS 服务器.   在“操作”菜单上,单击“配置 DNS 服务器”.打开DNS服务配置向导   然后根据公司规模大小来选择查找区域类型,点击“下一步”主服务器配置界面   如果本机做为DNS服务器,则选择第一项,如果是配置网络上的一台DNS服务器则选择ISP维护区域,选择后点击“下一步”进入区域名称选择窗口.   输入区域名称后点击“

学习记录——配置DNS服务器

一实验准备工作 主DNS服务器 1.配置主机域名 [[email protected] ~]# hostname xuan.com   ///临时修改名,永久修改需要去/etc/sysconfig/network 修改.然后记住在/etc/hosts 里更新自己的域,为了方便实验,先修改了名字 2.取消dhcp,ip地址改为静态 3.安装DNS [[email protected] -]# yum -y install bind 二配置DNS服务器 1.查看安装文件目录 [[email prot

redhat 6.5 & windows 配置DNS服务器

场景描述: 某客户处,企业内有多台Linux搭建的DNS服务器,也有多台windows 搭建的DNS服务器.某客户想把Linux的DNS服务器添加到windows 的DNS服务器上的"反向查找区域".如下图所示: 环境搭建: 说明:windows的DNS服务器搭建略过,本文将重点介绍使用redhat 6.5搭建DNS服务器. Redhat 6.5搭建DNS服务器之环境介绍: 一台windows DNS服务器,计算机名:dc01.contoso.com,IP:192.168.10.10

RedHat6.3配置DNS服务器

RedHat6.3配置DNS服务器 作者:沈小然 北京证联支付有限责任公司 1         系统环境 OS:Red Hat Enterprise Linux Server release 6.3 (Santiago) DNS 服务器:172.21.20.1/255.255.0.0 2         安装DNS # yum -y install bind 3         配置DNS 3.1           开始配置DNS主配置文件 named.conf 编辑 /etc/named.c

烂泥:centos安装及配置DNS服务器

本文由秀依林枫提供友情赞助,首发于烂泥行天下. 要在centos配置DNS服务器,要先安装DNS软件BIND.当然我们也可以安装其他的DNS软件,比如国内的开源DNS软件DNSPod. 在此我们以通过DNS软件BIND为例,进行实验. 本次实验:OS centos6.5 64bit 安装DNS软件,使用如下命令: yum -y install bind bind-chroot bind-utils BIND配置文件保存在两个主要位置: /etc/named.conf 这个是BIND服务主配置文件

CentOS7安装配置DNS服务器

准备工作(假设名称为bigcloud.local) #更改主机名称 #vi /etc/sysconfig/network # Created by anaconda NETWORKING=yes HOSTNAME=bigcloud.local #修改文件/etc/hosts,内容如下: 127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1         localhost local

在Debian上用Bind 配置DNS服务器

1 什么是DNS 初学者可能不理解DNS到底是什么,干什么用.我是在1998年大学毕业时才听说这个词的.那时我在聊天室碰到潍坊信息港的一个网管,我恬不知耻地说我也是个网管,他说也维护DNS吗?我说,DNS是什么? --DNS,DomainName Service,或者Domain Name Server,域名服务/域名服务器. 你在你的浏览器里面输入http://www.linuxsir.com之后,之所以可以上去,就是因为有了DNS. 简单地说,DNS把一串名字,转换成了IP地址.你可能会说:

配置DNS服务器IP

1 #############################脚本功能及说明#################### 2 #该脚本用来在本地服务器上配置DNS服务器IP 3 #创建时间:2014-10-22 4 5 #########################定义函数############################# 6 #定义函数:配置DNS 7 #ConnectionID为网卡ID:$dnsservers为要配置的DNS服务器的IP列表 8 function DNSConfig

centOS7配置DNS服务器

世上无难事只怕有心人,遇事千万千万不要抵触,消极的情绪是失败之母,一点一滴,踏踏实实是通往幸福的捷径. 历经激动,受挫,抵触和鼓励以及征服,终于配好了让我欢喜让我忧的dns.在这里记录下来,希望能够给和我一样对dns配置陌生的朋友们做个参考,不足之处,请多指教! 一,DNS服务器是什么 计算机之间的连接只能通过ip地址,为什么我们可以通过输入不同的域名访问散落在世界各地的计算机呢?我们输入域名的时候,其实实质是指向了一个具体的ip,所以我们才可以通简单的."顾名思义"的域名去访问散落在