以下是一个经过优化的部署unbound服务的Docker Compose文件示例,其中包括参数优化,所有配置都在YAML文件中,不使用卷挂载:
version: '3.8'
services:
unbound:
image: mvance/unbound:latest
ports:
- "53:53/udp"
- "53:53/tcp"
environment:
- TZ=UTC
- UPSTREAM_RESOLVER=1.1.1.1
- CACHE_MAX_SIZE=500m
- NUM_THREADS=4
- MSG_CACHE_SIZE=16m
- RRSET_CACHE_SIZE=32m
- OUTGOING_RANGE="4096"
- INFRA_CACHE_SLABS="4"
- INFRA_CACHE_CHUNK_SIZE="128k"
- QNAME_MIN_WIRE=0
- QNAME_MIN_STRLEN=0
- DO_IPV6="no"
- DO_UDP="yes"
- DO_TCP="yes"
- DO_DAEMONIZE="no"
- HARDEN_GLUE="yes"
- HARDEN_DNSSEC_STRICT="yes"
- USE_CAPS_FOR_ID="yes"
- EDNS_BUFFER_SIZE="4096"
- EDNS_DO_QUERY_SOURCE="yes"
- EDNS_EXTENDED_RCODE="yes"
restart: always
networks:
unbound-network:
ipv4_address: 172.18.19.42
networks:
unbound-network:
driver: bridge
ipam:
config:
- subnet: 172.18.19.0/24
name: unbound-network
在上述示例中,我们使用了一些额外的环境变量来进行更详细的参数优化:
MSG_CACHE_SIZE=16m
:设置消息缓存的大小为16兆字节。RRSET_CACHE_SIZE=32m
:设置RRset缓存的大小为32兆字节。OUTGOING_RANGE="4096"
:设置出站端口的范围为4096,用于并发查询。INFRA_CACHE_SLABS="4"
:设置基础缓存的分片数为4,用于提高缓存性能。INFRA_CACHE_CHUNK_SIZE="128k"
:设置基础缓存的块大小为128千字节。QNAME_MIN_WIRE=0
:设置查询名称的最小长度(以字节为单位),默认为0。QNAME_MIN_STRLEN=0
:设置查询名称的最小长度(以字符为单位),默认为0。DO_IPV6="no"
:禁用IPv6支持,如果你的环境不需要IPv6,可以使用此选项。DO_UDP="yes"
:启用UDP查询支持。DO_TCP="yes"
:启用TCP查询支持。DO_DAEMONIZE="no"
:禁用守护进程模式,使unbound以前台模式运行。HARDEN_GLUE="yes"
:启用对DNS回答中的附加信息(例如NS记录)的严格检查。HARDEN_DNSSEC_STRICT="yes"
:启用严格的DNSSEC验证。USE_CAPS_FOR_ID="yes"
:使用大写字母作为查询ID。EDNS_BUFFER_SIZE="4096"
:设置EDNS缓冲区的大小为4096字节。EDNS_DO_QUERY_SOURCE="yes"
:启用查询源IP地址的EDNS选项。EDNS_EXTENDED_RCODE="yes"
:启用扩展的RCODE编码。
这些参数优化可以根据你的需求进行修改,以满足特定的性能和安全要求。
请注意,unbound的参数优化涉及多个方面,根据你的具体需求和环境,可能需要进一步调整和优化参数。
这个示例提供了一个更详细的参数优化的部署unbound服务的Docker Compose文件。你可以根据需要修改这些参数和配置。