我有一个网络服务器(运行 Ubuntu 12.04 服务器和 Nginx)并且我正在其上建立一些网站。
我对管理自己的网络服务器还很陌生,除了配置 DNS 方面的问题外,我一切都进展顺利。
我希望一台服务器同时充当 Web 服务器和 DNS 服务器(除非有人能说服我...)
我已阅读了一些 BIND9 指南,但就是不明白它为什么如此复杂!
我想要一个可以运行的脚本,类似于:configure-dns.sh mydomain.com
它将为“mydomain”创建区域和条目,并将当前服务器设置为主机和权威服务器。
理想情况下,我希望新域名的工作流程简单如下:
- 在注册商处注册域名
- 在注册商处,将我的 DNS 设置为我的服务器
- 在我的服务器上,运行 1 个脚本来设置相关的 DNS 条目
- 在我的服务器上,运行 1 个脚本来设置相关的 Web 服务器配置(我已经有了)
所以, 您能使用简单的 bash 脚本添加 DNS 条目吗?
谢谢,迪恩。
答案1
添加至/etc/bind/named.conf:
include "/etc/bind/domain-enabled.conf";
制作目录:
# mkdir /etc/bind/domain-enabled/
脚本:
cat <<EOF >>/etc/bind/domain-enabled.conf
zone "$1" {
type master;
file "/etc/bind/domain-enabled/$1.db";
};
EOF
cat <<EOF >/etc/bind/domain-enabled/$1.db
\$TTL 604800
@ IN SOA ns1.$1. root.localhost. (
2 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
@ IN NS ns1.$1.
@ IN A $2
ns1 IN A $2
EOF
rndc reload
跑步:
add-domain examle.com 127.0.0.1
答案2
是的,我已经多次使用 shell 脚本针对不同工作场所的不同基础设施实现 DNS 自动化管理。
至于您的另一个伪问题“为什么它必须如此复杂”,那是因为 DNS 在一般情况下并不是一件小事,而 BIND 试图处理所有复杂的极端情况。这意味着简单的事情并不像它们本来应该的那样简单,然而很高兴知道无论事情变得多么棘手,您都能处理它。
答案3
查看 h2n。O'Reilly 的 BIND 书籍中引用了它。
http://my.safaribooksonline.com/book/networking/dns/0789722739/the-dns-tool-chest/ch07lev1sec2