dnsmasq DNS服务
简介
1、dnsmasq是一款小巧的DNS服务器和DHCP服务器的工具,适用于小型网络,它提供了DNS解析功能和可选择的DHCP功能。
2、dnsmasq可以解决小范围的dns查询问题,如果业务是跨机房、跨地区的话不建议使用dnsmasq做为dns解析服务器
部署
# 下载dnsmasq镜像
docker pull andyshinn/dnsmasq
# 创建上游DNS服务地址配置文件
mkdir -p /data/dns
cat >/data/dns/resolv.dnsmasqs<<EOF
nameserver 8.8.8.8
nameserver 114.114.114.114
EOF
# 创建内部IP与域名解析地址文件
cat >/data/dns/dnsmasq.hosts<<EOF
10.0.0.10 test1
10.0.0.20 test2
EOF
# 创建dns配置文件
cat >/data/dns/dnsmasq.conf<<EOF
#定义上游DNS服务器的地址
resolv-file=/etc/resolv.dnsmasqs
#顺序从上到下进行DNS解析
strict-order
#本地域名配置文件
addn-hosts=/etc/dnsmasq.hosts
#缓存条数
cache-size=100
#为防止DNS污染,使用参数定义的DNS解析的服务器。注意:如果是阿里云服务器上配置dnsmasq要启用此项。
bogus-nxdomain=114.114.114.114
#记录dns查询日志服务器
log-queries
#设置日志记录器
log-facility=/var/log/dnsmasq.log
EOF
# 运行DNS-SERVER容器
docker run -tid \
-p 53:53/tcp -p 53:53/udp -p 8080:8080 \
--cap-add=NET_ADMIN \
--name dns-server \
--hostname dns-server \
--restart=always \
-v /data/dns/resolv.dnsmasqs:/etc/resolv.dnsmasqs \
-v /data/dns/dnsmasq.hosts:/etc/dnsmasq.hosts \
-v /data/dns/dnsmasq.conf:/etc/dnsmasq.conf \
andyshinn/dnsmasq:latest
或
vim docker-dnsmasq.yml
version: "3"
services:
dns:
image: soulteary/docker-dnsmasq
restart: always
# 如果你需要一个简单的 Basic Auth 认证
#environment:
# - HTTP_USER=user
# - HTTP_PASS=pass
ports:
- "53:53/udp"
- "53:53/tcp"
- "8080:8080"
volumes:
- /data/dns/resolv.dnsmasqs:/etc/resolv.dnsmasqs
- /data/dns/dnsmasq.hosts:/etc/dnsmasq.hosts
- /data/dns/dnsmasq.conf:/etc/dnsmasq.conf
docker-compose -f docker-dnsmasq.yml up -d
# 用nslookup测试
apt install dnsutils && systemctl restart networking
yum install bind-utils && systemctl restart network
#nslookup test1
Server: 192.168.81.100
Address: 192.168.81.100#53
Name: test1
Address: 10.0.0.10
#nslookup test2
Server: 192.168.81.100
Address: 192.168.81.100#53
Name: test2
Address: 10.0.0.20
#nslookup 10.0.0.10
Server: 192.168.81.100
Address: 192.168.81.100#53
10.0.0.10.in-addr.arpa name = test1.
#nslookup 10.0.0.20
Server: 192.168.81.100
Address: 192.168.81.100#53
20.0.0.10.in-addr.arpa name = test2.
本文来自博客园,站在巨人的肩膀上,坚持开源精神,遵循开源协议:Apache Licene 2.0协议。
浙公网安备 33010602011771号