项目搭建:使用Docker快速搭建DNS服务器

1.背景
在研发业务应用过程中,经常会使用到DNS解析,我们最常使用的方法是直接修改Windows/Linux系统中的host文件达到离线解析的效果。但当多台主机需要使用域名时,修改host的方式尤为不便,特别是当主机地址有变化时,所有主机均需要修改,耗时费力。
下面使用介绍使用docker快速搭建DNS服务,在使用前确保已经安装好docker以及docker-compose应用
2.搭建内网
创建docker-compose.yml,放置在/opt/docker/dnsmas文件夹下,可根据自己的实际需要放在目录下面。
version: ‘3’
services:
dns:
image: andyshinn/dnsmasq
container_name: dnsmasq
command: –no-daemon
environment:
DNS1: “61.139.2.69”
DNS2: “8.8.8.8”
ports:
– “53:53/tcp”
– “53:53/udp”
cap_add:
– NET_ADMIN
restart: always
volumes:
– ./dnsmasq.conf:/etc/dnsmasq.conf
– ./logs:/var/log/
创建配置文件:
touch ./dnsmasq.conf
在内容中加入需要解析的域名:

基础配置

port=53 # 监听53端口(DNS默认端口)
interface=eth0 # 监听网卡(容器内默认eth0)
no-resolv # 禁用默认的resolv.conf读取
no-hosts # 可选:是否忽略容器内hosts文件
cache-size=1000 # DNS缓存大小,提升解析速度

上游 DNS

server=223.5.5.5
server=223.6.6.6

域名与IP映射

address=/node1/172.16.2.100
address=/node2/172.16.2.101

可选:启用DNSSEC(安全验证)

dnssec

可选:日志(排查问题用)

log-queries
log-facility=/var/log/dnsmasq.log

基础配置项目中,对其中的项目不进行任何修改。上游DNS可修改为服务商提供的DNS地址,或使用公共DNS,以提高响应速度。
启动服务:
docker-compose up -d
测试解析
安装测试工具:
yum -y install bind-utils
执行测试命令,解析域名node1,指定dns服务器为本机127.0.0.1(实际可换为你本机对外的IP)。可以看到所有域名已经正常完成数据解析。

解析内部域名

nslookup node1 127.0.0.1

解析公共域名

nslookup baidu.com 127.0.0.1

对外提供服务时,服务器还需要对外开放53端口的TCP和UDP端口,参考如下:
firewall-cmd –add-port=53/tcp –permanent
firewall-cmd –add-port-53/udp –permanent
firewall-cmd –reload
这样便完成轻量化DNS服务器的搭建。

运维贼船
90后运维老司机,折腾各种服务器软硬件、树莓派、软路由。公众号分享大量Linux干货,包括Linux基础、Linux应用、服务器技术,软件,以及Python等前沿实用系列教程
188篇原创内容
公众号
往期推荐:
1、Linux 安装 ollama 大模型软件
2、案例:SSH无法登录,报Permission denied
3、H3C 实现无线WLAN配置,完整配置演示

声明:来自运维贼船,仅代表创作者观点。链接:https://eyangzhen.com/5596.html

运维贼船的头像运维贼船

相关推荐

添加微信
添加微信
Ai学习群
返回顶部