大家都在搜

如何快速创建微型DNS服务器

试想一下,假如我们要搭建一个移动app,同时又没有充足的预算去购买软硬件资源的话,该怎么办呢?比方说,如果我们要在现有的基础设施上运行这个app,偏偏我们手头上只有一些老旧的低性能机器的话,有什么办法可以实现移动app的部署和运行?

对于一些公司来说,他们的应用本身用户量不算多,固定用户大概也就几百人。这种情况下花大量的经费去购买资源肯定是不合算的,何况公司的团队也很小,难以维护大量的设施。公司没有足够的经费,但是又的确需要搭建专门的开发运维环境,这种例子在现实中比比皆是。

条件稍微好点的创业型公司可以购买AWS的实例,也有的会买一些IP地址分配给服务器,但是也有一些小团队无法提供这些条件。据我所知,有的团队直接用的家用电脑来做服务器,IP地址也只有1个,只能靠搭建子网,用代理服务器来实现流量的重定向。在这种情况下就需要自定义DNS规则,将服务器主机名与内网IP一一匹配。

通过Docker, Alpine和Unbound快速创建微型DNS服务器

Docker问世之后,这种尴尬的局面即将结束,现在我们可以通过Docker,Alpine和Unbound快速实现DNS服务器托管了。首先,我们需要调用下面的Dockerfile脚本:

FROM alpine:3.3

MAINTAINER Philip Miglinci "[email protected]"

RUN apk add --update unbound ;

rm -rf /var/cache/apk/* ;

COPY unbound.conf /etc/unbound/unbound.conf

COPY root.hints /var/unbound/etc/root.hints

COPY root.key /var/unbound/etc/root.key

RUN unbound-checkconf

CMD ["unbound"]

root.key表示的是上面我们下载的顶层DNS服务器:

. IN DS 19036 8 2 49AAC11D7B6F6446702E54A1607371607A1A41855200FD2CE1CDDE32F24E8FB5

在 unbnound.conf 文件里,大家可以创建自定义的DNS Entry,比如下面这段配置脚本就设置了A-record的记录值:

server:

interface: 0.0.0.0

verbosity: 1

do-daemonize: no

access-control: 0.0.0.0/0 allow

do-ip4: yes

do-ip6: no

do-udp: yes

do-tcp: no

hide-identity: yes

hide-version: yes

harden-glue: yes

harden-dnssec-stripped: yes

use-caps-for-id: yes

cache-min-ttl: 3600

cache-max-ttl: 86400

prefetch: yes

num-threads: 4

msg-cache-slabs: 8

rrset-cache-slabs: 8

infra-cache-slabs: 8

key-cache-slabs: 8

rrset-cache-size: 256m

msg-cache-size: 128m

so-rcvbuf: 1m

private-address: 192.168.1.0/16

unwanted-reply-threshold: 10000

do-not-query-localhost: no

val-clean-additional: yes

local-zone: "pmig.at." static

local-data: "pmig.at. IN A 192.168.1.201"

forward-zone:

name: "."

forward-addr: 195.34.133.10

forward-addr: 213.33.99.70

forward-addr: 8.8.8.8

forward-addr: 8.8.4.4

我们还可以在文件里定义local-zone并设置A record的值,如果当前主机地址不在local zone里面,系统就会向其他DNS服务器发送请求,本例中我用的是当前ISP服务商的DNS,如果ISP无法提供DNS服务,系统就会启用Google DNS。

另外说一句,大家如果要采用这种方式来实现DNS托管,还需要开放docker宿主机的UDP 53号端口,并在内网路由器中进行设置。

上述配置完成后,我们的内网环境就建好了,大家可以不受限制地在局域网中搭建docker开发环境,这种办法既方便又省钱,可谓是一举多得。

版权声明:本文内容由互联网用户自发贡献以及网络收集编辑和原创所得,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任,详见本站的版权声明与免责声明。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。 转载请注明出处:https://www.yzjzlsb.com/tgfx/25359.html

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
请登录后评论...
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~